assignment: Prevent unhandled error when fields not provided

This typically happens when a bot is submitting the form. This should be a
validation error rather than an unhandled exception.
This commit is contained in:
Ben Sturmfels 2023-10-19 11:52:04 +11:00
parent cf359b6a64
commit 05c7ed6647
Signed by: bsturmfels
GPG key ID: 023C05E2C9C068F0

View file

@ -63,10 +63,11 @@ 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']: period_begins = self.cleaned_data.get('period_begins')
period_ends = self.cleaned_data.get('period_ends')
period_end_type = self.cleaned_data.get('period_end_type')
if period_begins and period_ends and period_begins > period_ends:
raise ValidationError('End of period is before start') raise ValidationError('End of period is before start')
if period_end_type == 'a specific past date' and not period_ends:
if self.cleaned_data['period_end_type'] == 'a specific past date' and not self.cleaned_data['period_ends']:
raise ValidationError('This field is required') raise ValidationError('This field is required')
return period_ends
return self.cleaned_data['period_ends']