diff --git a/src/pretix/base/forms/questions.py b/src/pretix/base/forms/questions.py
index e1acf5827f..1d71845313 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 cc0c0fdc3d..a446090cf8 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";