assignment: Validate that end date is provided if you didn't choose open-ended.
This commit is contained in:
parent
530890f6ad
commit
b0263491a0
2 changed files with 9 additions and 3 deletions
|
@ -62,3 +62,6 @@ class AssignmentForm(forms.ModelForm):
|
||||||
def clean_period_ends(self):
|
def clean_period_ends(self):
|
||||||
if 'period_begins' in self.cleaned_data and 'period_ends' in self.cleaned_data and self.cleaned_data['period_begins'] and self.cleaned_data['period_ends'] and self.cleaned_data['period_begins'] > self.cleaned_data['period_ends']:
|
if 'period_begins' in self.cleaned_data and 'period_ends' in self.cleaned_data and self.cleaned_data['period_begins'] and self.cleaned_data['period_ends'] and self.cleaned_data['period_begins'] > self.cleaned_data['period_ends']:
|
||||||
raise ValidationError('End of period is before start')
|
raise ValidationError('End of period is before start')
|
||||||
|
|
||||||
|
if self.cleaned_data['period_end_type'] == 'a specific past date' and not self.cleaned_data['period_ends']:
|
||||||
|
raise ValidationError('This field is required')
|
||||||
|
|
|
@ -24,7 +24,8 @@
|
||||||
// End date field should be shown only when "a specific past date" is selected.
|
// End date field should be shown only when "a specific past date" is selected.
|
||||||
const form = document.querySelector('#assignment-form');
|
const form = document.querySelector('#assignment-form');
|
||||||
const past_date_label = document.querySelector('label[for=id_period_ends]');
|
const past_date_label = document.querySelector('label[for=id_period_ends]');
|
||||||
const past_date_field = document.querySelector('#assignment-form > p:nth-child(11)');
|
const past_date_field = document.querySelector('#id_period_ends');
|
||||||
|
const past_date_container = past_date_field.parentElement;
|
||||||
form.addEventListener('change', togglePastDate);
|
form.addEventListener('change', togglePastDate);
|
||||||
togglePastDate(); // Run change handler once to initialise form.
|
togglePastDate(); // Run change handler once to initialise form.
|
||||||
|
|
||||||
|
@ -33,10 +34,12 @@
|
||||||
|
|
||||||
function togglePastDate() {
|
function togglePastDate() {
|
||||||
if (form['period_end_type'].value === 'all future contributions') {
|
if (form['period_end_type'].value === 'all future contributions') {
|
||||||
past_date_field.style.display = 'none';
|
past_date_container.style.display = 'none';
|
||||||
|
past_date_field.required = false;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
past_date_field.style.display = '';
|
past_date_container.style.display = '';
|
||||||
|
past_date_field.required = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
Loading…
Reference in a new issue