improvements after review

This commit is contained in:
johan12345
2019-03-27 18:42:42 +01:00
parent f761f93550
commit 6bf9327f87
2 changed files with 30 additions and 19 deletions
+9 -6
View File
@@ -200,21 +200,21 @@ class BaseQuestionsForm(forms.Form):
field = forms.DecimalField( field = forms.DecimalField(
label=label, required=required, label=label, required=required,
help_text=q.help_text, 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'), min_value=Decimal('0.00'),
) )
elif q.type == Question.TYPE_STRING: elif q.type == Question.TYPE_STRING:
field = forms.CharField( field = forms.CharField(
label=label, required=required, label=label, required=required,
help_text=help_text, 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: elif q.type == Question.TYPE_TEXT:
field = forms.CharField( field = forms.CharField(
label=label, required=required, label=label, required=required,
help_text=help_text, help_text=help_text,
widget=forms.Textarea, 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: elif q.type == Question.TYPE_CHOICE:
field = forms.ModelChoiceField( field = forms.ModelChoiceField(
@@ -246,21 +246,24 @@ class BaseQuestionsForm(forms.Form):
field = forms.DateField( field = forms.DateField(
label=label, required=required, label=label, required=required,
help_text=help_text, 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(), widget=DatePickerWidget(),
) )
elif q.type == Question.TYPE_TIME: elif q.type == Question.TYPE_TIME:
field = forms.TimeField( field = forms.TimeField(
label=label, required=required, label=label, required=required,
help_text=help_text, 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')), widget=TimePickerWidget(time_format=get_format_without_seconds('TIME_INPUT_FORMATS')),
) )
elif q.type == Question.TYPE_DATETIME: elif q.type == Question.TYPE_DATETIME:
field = SplitDateTimeField( field = SplitDateTimeField(
label=label, required=required, label=label, required=required,
help_text=help_text, 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')), widget=SplitDateTimePickerWidget(time_format=get_format_without_seconds('TIME_INPUT_FORMATS')),
) )
field.question = q field.question = q
+21 -13
View File
@@ -1,12 +1,6 @@
/*global $,gettext*/ /*global $,gettext*/
function question_page_toggle_view() { function update_default_value_field() {
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);
let input = $('#id_default_value'); let input = $('#id_default_value');
let common_attrs = ' name="default_value" placeholder="' + input.attr('placeholder') + '" title="' + input.attr('title') + '" id="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(); let value = input.val();
@@ -28,24 +22,38 @@ function question_page_toggle_view() {
input.replaceWith('<input type="checkbox" ' + common_attrs + ' ' + checked + '>'); input.replaceWith('<input type="checkbox" ' + common_attrs + ' ' + checked + '>');
$('.form-group:has(#id_default_value)').show(); $('.form-group:has(#id_default_value)').show();
break; break;
case 'F':
$('.form-group:has(#id_default_value)').hide();
break;
case 'D': case 'D':
input.replaceWith('<input type="date" class="form-control" value="' + value + '" ' + common_attrs + '>'); let dateField = input.replaceWith('<input type="text" class="form-control datepickerfield" value="' + value + '" ' + common_attrs + '>');
form_handlers(dateField.parent());
$('.form-group:has(#id_default_value)').show(); $('.form-group:has(#id_default_value)').show();
break; break;
case 'H': case 'H':
input.replaceWith('<input type="time" class="form-control" value="' + value + '" ' + common_attrs + '>'); let timeField = input.replaceWith('<input type="text" class="form-control timepickerfield" value="' + value + '" ' + common_attrs + '>');
form_handlers(timeField.parent());
$('.form-group:has(#id_default_value)').show(); $('.form-group:has(#id_default_value)').show();
break; break;
case 'W': case 'W':
input.replaceWith('<input type="datetime-local" class="form-control" value="' + value + '" ' + common_attrs + '>'); let dtField = input.replaceWith('<input type="text" class="form-control datepickerfield" value="' + value + '" ' + common_attrs + '>');
form_handlers(dtField.parent());
$('.form-group:has(#id_default_value)').show(); $('.form-group:has(#id_default_value)').show();
break; 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 = { var waitingDialog = {
show: function (message) { show: function (message) {
"use strict"; "use strict";