improvements after review

This commit is contained in:
johan12345
2018-05-31 18:14:45 +02:00
parent f761f93550
commit 6bf9327f87
2 changed files with 30 additions and 19 deletions

View File

@@ -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

View File

@@ -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('<input type="checkbox" ' + common_attrs + ' ' + checked + '>');
$('.form-group:has(#id_default_value)').show();
break;
case 'F':
$('.form-group:has(#id_default_value)').hide();
break;
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();
break;
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();
break;
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();
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";