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

12345678910111213141516171819202122232425262728293031323334
  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',
  5. 'GeneratorRepository')
  6. class ReportForm(forms.Form):
  7. generators = GeneratorRepository().get_report_generators()
  8. type_choices = []
  9. for generator in generators:
  10. type_choices.append((generator.code, generator.description))
  11. report_type = forms.ChoiceField(widget=forms.Select(),
  12. choices=type_choices,
  13. label=_("Report Type"),
  14. help_text=_("Only the offer and order"
  15. " reports use the selected"
  16. " date range"))
  17. date_from = forms.DateField(label=_("Date from"))
  18. date_to = forms.DateField(label=_("Date to"),
  19. help_text=_("The report is inclusive of this"
  20. " date"))
  21. download = forms.BooleanField(label=_("Download"), required=False)
  22. def clean(self):
  23. if ('date_from' in self.cleaned_data and 'date_to' in self.cleaned_data
  24. and self.cleaned_data['date_from'] >
  25. self.cleaned_data['date_to']):
  26. raise forms.ValidationError(_("Your start date must be before your"
  27. " end date"))
  28. return self.cleaned_data