From 6bf9327f87bcb70b486652db3f751cdb0aebe920 Mon Sep 17 00:00:00 2001 From: johan12345 Date: Thu, 31 May 2018 18:14:45 +0200 Subject: [PATCH] improvements after review --- src/pretix/base/forms/questions.py | 15 ++++---- src/pretix/static/pretixcontrol/js/ui/main.js | 34 ++++++++++++------- 2 files changed, 30 insertions(+), 19 deletions(-) diff --git a/src/pretix/base/forms/questions.py b/src/pretix/base/forms/questions.py index e1acf5827..1d7184531 100644 --- a/src/pretix/base/forms/questions.py +++ b/src/pretix/base/forms/questions.py @@ -200,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 default if default 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 default if default 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 default if default else None, + initial=initial.answer if initial else (default if default else None), ) elif q.type == Question.TYPE_CHOICE: field = forms.ModelChoiceField( @@ -246,21 +246,24 @@ 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 dateutil.parser.parse(default).date() if default 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 dateutil.parser.parse(default).time() if default 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 dateutil.parser.parse(default).astimezone(tz) if default 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 diff --git a/src/pretix/static/pretixcontrol/js/ui/main.js b/src/pretix/static/pretixcontrol/js/ui/main.js index cc0c0fdc3..a446090cf 100644 --- a/src/pretix/static/pretixcontrol/js/ui/main.js +++ b/src/pretix/static/pretixcontrol/js/ui/main.js @@ -1,12 +1,6 @@ /*global $,gettext*/ -function question_page_toggle_view() { - var show = $("#id_type").val() == "C" || $("#id_type").val() == "M"; - $("#answer-options").toggle(show); - - show = $("#id_type").val() == "B" && $("#id_required").prop("checked"); - $(".alert-required-boolean").toggle(show); - +function update_default_value_field() { let input = $('#id_default_value'); let common_attrs = ' name="default_value" placeholder="' + input.attr('placeholder') + '" title="' + input.attr('title') + '" id="id_default_value"'; let value = input.val(); @@ -28,24 +22,38 @@ function question_page_toggle_view() { input.replaceWith(''); $('.form-group:has(#id_default_value)').show(); break; - case 'F': - $('.form-group:has(#id_default_value)').hide(); - break; case 'D': - input.replaceWith(''); + let dateField = input.replaceWith(''); + form_handlers(dateField.parent()); $('.form-group:has(#id_default_value)').show(); break; case 'H': - input.replaceWith(''); + let timeField = input.replaceWith(''); + form_handlers(timeField.parent()); $('.form-group:has(#id_default_value)').show(); break; case 'W': - input.replaceWith(''); + let dtField = input.replaceWith(''); + form_handlers(dtField.parent()); $('.form-group:has(#id_default_value)').show(); break; + default: + // file, choice, and multiple choice are not implemented + $('.form-group:has(#id_default_value)').hide(); + input.val('') } } +function question_page_toggle_view() { + var show = $("#id_type").val() == "C" || $("#id_type").val() == "M"; + $("#answer-options").toggle(show); + + show = $("#id_type").val() == "B" && $("#id_required").prop("checked"); + $(".alert-required-boolean").toggle(show); + + update_default_value_field(); +} + var waitingDialog = { show: function (message) { "use strict";