From 7b08695183f60d110166f14ce790e6d741265be2 Mon Sep 17 00:00:00 2001 From: cybersimon Date: Wed, 8 May 2019 17:25:36 +1000 Subject: [PATCH] Modify selectable year range on "entry time" field. The value of "entry time" for a form entry can only be in the past, therefore the SelectDateWidget in the admin should have a range of years ranging from now into the past, rather than now into the future (as is the Django default). --- forms_builder/forms/forms.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/forms_builder/forms/forms.py b/forms_builder/forms/forms.py index b8e3ae53..8a1a6509 100644 --- a/forms_builder/forms/forms.py +++ b/forms_builder/forms/forms.py @@ -285,6 +285,8 @@ def __init__(self, form, request, formentry_model=FormEntry, self.form_fields = form.fields.all() self.entry_time_name = str(self.formentry_model._meta.get_field( "entry_time").verbose_name) + this_year = date.today().year + self.years = range(this_year - 10, this_year + 1) super(EntriesForm, self).__init__(*args, **kwargs) for field in self.form_fields: field_key = "field_%s" % field.id @@ -330,9 +332,9 @@ def __init__(self, form, request, formentry_model=FormEntry, initial=True, label=label, required=False) self.fields["%s_filter" % field_key] = date_filter_field self.fields["%s_from" % field_key] = forms.DateField( - label=" ", widget=SelectDateWidget(), required=False) + label=" ", widget=SelectDateWidget(years=self.years), required=False) self.fields["%s_to" % field_key] = forms.DateField( - label=_("and"), widget=SelectDateWidget(), required=False) + label=_("and"), widget=SelectDateWidget(years=self.years), required=False) def __iter__(self): """