You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

forms.py 967B

1234567891011121314151617181920212223
  1. from datetime import date, datetime
  2. from django import forms
  3. from oscar.core.loading import import_module
  4. report_utils = import_module('reports.utils', ['GeneratorRepository'])
  5. class ReportForm(forms.Form):
  6. generators = report_utils.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)
  11. start_date = forms.DateField(widget=forms.widgets.DateInput(format="%d/%m/%Y"))
  12. end_date = forms.DateField(widget=forms.widgets.DateInput(format="%d/%m/%Y"))
  13. def clean(self):
  14. if 'start_date' in self.cleaned_data and 'end_date' in self.cleaned_data and self.cleaned_data['start_date'] > self.cleaned_data['end_date']:
  15. raise forms.ValidationError("Your start date must be before your end date")
  16. return self.cleaned_data