@@ -158,29 +158,31 @@ def ensure_no_other_subscriptions(self) -> bool:
158
158
return True
159
159
160
160
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
184
186
return True
185
187
186
188
def ensure_can_book_if_locked (self ) -> bool :
0 commit comments