Changeset - b0263491a0ee
[Not reviewed]
0 2 0
Ben Sturmfels (bsturmfels) - 6 months ago 2021-12-10 07:37:13
ben@sturm.com.au
assignment: Validate that end date is provided if you didn't choose open-ended.
2 files changed with 9 insertions and 3 deletions:
0 comments (0 inline, 0 general)
www/conservancy/apps/assignment/forms.py
Show inline comments
...
 
@@ -62,3 +62,6 @@ class AssignmentForm(forms.ModelForm):
 
    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']:
 
            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')
www/conservancy/templates/assignment/assignment_form.html
Show inline comments
...
 
@@ -24,7 +24,8 @@
 
   // End date field should be shown only when "a specific past date" is selected.
 
   const form = document.querySelector('#assignment-form');
 
   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);
 
   togglePastDate();  // Run change handler once to initialise form.
 

	
...
 
@@ -33,10 +34,12 @@
 

	
 
   function togglePastDate() {
 
       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 {
 
           past_date_field.style.display = '';
 
           past_date_container.style.display = '';
 
           past_date_field.required = true;
 
       }
 
   }
 
  </script>
0 comments (0 inline, 0 general)