Skip to content

Commit 4c66b87

Browse files
Allow admin to ignore 6 year limit
1 parent 604e3c2 commit 4c66b87

File tree

1 file changed

+25
-23
lines changed

1 file changed

+25
-23
lines changed

src/onegov/fsi/forms/subscription.py

+25-23
Original file line numberDiff line numberDiff line change
@@ -158,29 +158,31 @@ def ensure_no_other_subscriptions(self) -> bool:
158158
return True
159159

160160
def ensure_6_year_time_interval(self) -> bool:
161-
if self.attendee_id.data and self.course_event_id.data:
162-
last_subscribed_event = self.request.session.query(
163-
CourseEvent).join(CourseSubscription).filter(
164-
CourseSubscription.attendee_id == self.attendee_id.data
165-
).order_by(desc(CourseEvent.start)).first()
166-
if last_subscribed_event and self.event_from_form and (
167-
# Chosen event needs to start at least 6 years after the last
168-
# subscribed event
169-
self.event_from_form.start < datetime(
170-
last_subscribed_event.start.year + 6, 1, 1,
171-
tzinfo=pytz.utc)
172-
):
173-
assert isinstance(self.course_event_id.errors, list)
174-
self.course_event_id.errors.append(
175-
_('The selected course must take place at least 6 years '
176-
'after the last course for which the attendee was '
177-
'registered. The last course for this attendee was '
178-
'on ${date}.', mapping={
179-
'date': last_subscribed_event.start.strftime(
180-
'%d.%m.%Y')}
181-
)
182-
)
183-
return False
161+
if not self.request.is_admin:
162+
if self.attendee_id.data and self.course_event_id.data:
163+
last_subscribed_event = self.request.session.query(
164+
CourseEvent).join(CourseSubscription).filter(
165+
CourseSubscription.attendee_id == self.attendee_id.data
166+
).order_by(desc(CourseEvent.start)).first()
167+
if last_subscribed_event and self.event_from_form and (
168+
# Chosen event needs to start at least 6 years after the
169+
# last subscribed event
170+
self.event_from_form.start < datetime(
171+
last_subscribed_event.start.year + 6, 1, 1,
172+
tzinfo=pytz.utc)
173+
):
174+
assert isinstance(self.course_event_id.errors, list)
175+
self.course_event_id.errors.append(
176+
_('The selected course must take place at least 6 '
177+
'years after the last course for which the attendee '
178+
'was registered. The last course for this attendee '
179+
'was on ${date}.', mapping={
180+
'date': last_subscribed_event.start.strftime(
181+
'%d.%m.%Y')}
182+
)
183+
)
184+
return False
185+
return True
184186
return True
185187

186188
def ensure_can_book_if_locked(self) -> bool:

0 commit comments

Comments
 (0)