Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

1234567891011121314151617181920212223242526
  1. from django import forms
  2. from django.utils.translation import ugettext_lazy as _
  3. from oscar.core.loading import get_class
  4. GeneratorRepository = get_class('dashboard.reports.utils', 'GeneratorRepository')
  5. class ReportForm(forms.Form):
  6. generators = GeneratorRepository().get_report_generators()
  7. type_choices = []
  8. for generator in generators:
  9. type_choices.append((generator.code, generator.description))
  10. report_type = forms.ChoiceField(widget=forms.Select(), choices=type_choices, label=_("Report Type"),
  11. help_text=_("Only the offer and order reports "
  12. "use the selected date range"))
  13. date_from = forms.DateField(label=_("Date from"))
  14. date_to = forms.DateField(label=_("Date to"),
  15. help_text=_("The report is inclusive of this date"))
  16. download = forms.BooleanField(label=_("Download"), required=False)
  17. def clean(self):
  18. if 'date_from' in self.cleaned_data and 'date_to' in self.cleaned_data and self.cleaned_data['date_from'] > self.cleaned_data['date_to']:
  19. raise forms.ValidationError(_("Your start date must be before your end date"))
  20. return self.cleaned_data