From 5cecc0bee27a252f0c7e739234923fed50ecdeb0 Mon Sep 17 00:00:00 2001 From: Henrik Levkowetz Date: Tue, 7 Apr 2020 10:40:14 +0000 Subject: [PATCH] Added validation of the duration in interim meeting requests, with settings for min and max duration in settings. - Legacy-Id: 17591 --- ietf/meeting/forms.py | 8 ++++++++ ietf/meeting/tests_views.py | 2 +- ietf/settings.py | 2 ++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/ietf/meeting/forms.py b/ietf/meeting/forms.py index c8680a099..2c145816f 100644 --- a/ietf/meeting/forms.py +++ b/ietf/meeting/forms.py @@ -240,6 +240,14 @@ class InterimSessionModelForm(forms.ModelForm): raise forms.ValidationError('Required field') return date + def clean_requested_duration(self): + min_minutes = settings.INTERIM_SESSION_MINIMUM_MINUTES + max_minutes = settings.INTERIM_SESSION_MAXIMUM_MINUTES + duration = self.cleaned_data.get('requested_duration') + if not duration or duration < datetime.timedelta(minutes=min_minutes) or duration > datetime.timedelta(minutes=max_minutes): + raise forms.ValidationError('Provide a duration, %s-%smin.' % (min_minutes, max_minutes)) + return duration + def save(self, *args, **kwargs): """NOTE: as the baseform of an inlineformset self.save(commit=True) never gets called""" diff --git a/ietf/meeting/tests_views.py b/ietf/meeting/tests_views.py index abd2792fc..ef6e90f6c 100644 --- a/ietf/meeting/tests_views.py +++ b/ietf/meeting/tests_views.py @@ -1888,7 +1888,7 @@ class InterimTests(TestCase): 'session_set-0-id':meeting.session_set.first().id, 'session_set-0-date':formset_initial['date'].strftime('%Y-%m-%d'), 'session_set-0-time':new_time.strftime('%H:%M'), - 'session_set-0-requested_duration':formset_initial['requested_duration'], + 'session_set-0-requested_duration': '00:30', 'session_set-0-remote_instructions':formset_initial['remote_instructions'], #'session_set-0-agenda':formset_initial['agenda'], 'session_set-0-agenda_note':formset_initial['agenda_note'], diff --git a/ietf/settings.py b/ietf/settings.py index f7dde5fb4..44616f9a5 100644 --- a/ietf/settings.py +++ b/ietf/settings.py @@ -764,6 +764,8 @@ IDSUBMIT_ANNOUNCE_LIST_EMAIL = 'i-d-announce@ietf.org' # Interim Meeting Tool settings INTERIM_ANNOUNCE_FROM_EMAIL = 'IESG Secretary ' VIRTUAL_INTERIMS_REQUIRE_APPROVAL = True +INTERIM_SESSION_MINIMUM_MINUTES = 30 +INTERIM_SESSION_MAXIMUM_MINUTES = 150 # Days from meeting to day of cut off dates on submit -- cutoff_time_utc is added to this IDSUBMIT_DEFAULT_CUTOFF_DAY_OFFSET_00 = 13