From 8e22c0f3a4ed8d7bd3ea0f0ac5a105bcffe4b7bc Mon Sep 17 00:00:00 2001 From: Johan von Forstner Date: Sat, 26 May 2018 13:58:39 +0200 Subject: [PATCH] Show initial values in form --- src/pretix/base/forms/questions.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/pretix/base/forms/questions.py b/src/pretix/base/forms/questions.py index ddf7778531..e1acf5827f 100644 --- a/src/pretix/base/forms/questions.py +++ b/src/pretix/base/forms/questions.py @@ -173,6 +173,7 @@ class BaseQuestionsForm(forms.Form): initial = None tz = pytz.timezone(event.settings.timezone) help_text = rich_text(q.help_text) + default = q.default_value label = escape(q.question) # django-bootstrap3 calls mark_safe required = q.required and not self.all_optional if q.type == Question.TYPE_BOOLEAN: @@ -185,6 +186,8 @@ class BaseQuestionsForm(forms.Form): if initial: initialbool = (initial.answer == "True") + elif default: + initialbool = (default == "True") else: initialbool = False @@ -197,21 +200,21 @@ class BaseQuestionsForm(forms.Form): field = forms.DecimalField( label=label, required=required, help_text=q.help_text, - initial=initial.answer if initial else None, + initial=initial.answer if initial else default if default else None, min_value=Decimal('0.00'), ) elif q.type == Question.TYPE_STRING: field = forms.CharField( label=label, required=required, help_text=help_text, - initial=initial.answer if initial else None, + initial=initial.answer if initial else default if default else None, ) elif q.type == Question.TYPE_TEXT: field = forms.CharField( label=label, required=required, help_text=help_text, widget=forms.Textarea, - initial=initial.answer if initial else None, + initial=initial.answer if initial else default if default else None, ) elif q.type == Question.TYPE_CHOICE: field = forms.ModelChoiceField( @@ -243,21 +246,21 @@ class BaseQuestionsForm(forms.Form): field = forms.DateField( label=label, required=required, help_text=help_text, - initial=dateutil.parser.parse(initial.answer).date() if initial and initial.answer else None, + initial=dateutil.parser.parse(initial.answer).date() if initial and initial.answer else dateutil.parser.parse(default).date() if default else None, widget=DatePickerWidget(), ) elif q.type == Question.TYPE_TIME: field = forms.TimeField( label=label, required=required, help_text=help_text, - initial=dateutil.parser.parse(initial.answer).time() if initial and initial.answer else None, + initial=dateutil.parser.parse(initial.answer).time() if initial and initial.answer else dateutil.parser.parse(default).time() if default else None, widget=TimePickerWidget(time_format=get_format_without_seconds('TIME_INPUT_FORMATS')), ) elif q.type == Question.TYPE_DATETIME: field = SplitDateTimeField( label=label, required=required, help_text=help_text, - initial=dateutil.parser.parse(initial.answer).astimezone(tz) if initial and initial.answer else None, + initial=dateutil.parser.parse(initial.answer).astimezone(tz) if initial and initial.answer else dateutil.parser.parse(default).astimezone(tz) if default else None, widget=SplitDateTimePickerWidget(time_format=get_format_without_seconds('TIME_INPUT_FORMATS')), ) field.question = q