def _show_registration_form(self): displayed_regforms, user_registrations = get_event_regforms_registrations( self.event, session.user) if len(displayed_regforms) == 1: return redirect( url_for('event_registration.display_regform', displayed_regforms[0])) return redirect( url_for('event_registration.display_regform_list', self.event))
def _process(self): displayed_regforms, user_registrations = get_event_regforms_registrations(self.event, session.user, only_in_acl=self.is_restricted_access) if len(displayed_regforms) == 1: return redirect(url_for('.display_regform', displayed_regforms[0])) return self.view_class.render_template('display/regform_list.html', self.event, regforms=displayed_regforms, user_registrations=user_registrations, is_restricted_access=self.is_restricted_access)
def _inject_event_header(event, **kwargs): from indico.modules.events.registration.util import get_event_regforms_registrations if event.has_feature('registration'): displayed_regforms, user_registrations = get_event_regforms_registrations(event, session.user, include_scheduled=False) # A participant could appear more than once in the list in case he register to multiple registration form. # This is deemed very unlikely in the case of meetings and lectures and thus not worth the extra complexity. return render_template('events/registration/display/event_header.html', event=event, regforms=displayed_regforms, user_registrations=user_registrations)
def test_get_event_regforms_registration(dummy_event, dummy_user, dummy_regform, start_dt, end_dt, include_scheduled, freeze_time): freeze_time(datetime(2019, 12, 13, 8, 0, 0)) if start_dt: dummy_regform.start_dt = dummy_event.tzinfo.localize(start_dt) if end_dt: dummy_regform.end_dt = dummy_event.tzinfo.localize(end_dt) regforms, registrations = get_event_regforms_registrations( dummy_event, dummy_user, include_scheduled=False) assert list(registrations.values())[0].user == dummy_user assert dummy_regform in regforms
def _show_registration_form(self): displayed_regforms, user_registrations = get_event_regforms_registrations( self.event, session.user) if displayed_regforms and all( r.require_login for r in displayed_regforms) and not session.user: # force the user to log in first. like this they will go back to the page they tried to # originally access in case they are already registered for the event raise Forbidden if len(displayed_regforms) == 1: return redirect( url_for('event_registration.display_regform', displayed_regforms[0])) return redirect( url_for('event_registration.display_regform_list', self.event))
def test_get_event_regforms_no_registration(dummy_event, dummy_user, dummy_regform, freeze_time, start_dt, end_dt, include_scheduled, expected_regform_flag): freeze_time(datetime(2019, 12, 13, 8, 0, 0)) if start_dt: dummy_regform.start_dt = dummy_event.tzinfo.localize(start_dt) if end_dt: dummy_regform.end_dt = dummy_event.tzinfo.localize(end_dt) regforms, registrations = get_event_regforms_registrations( dummy_event, dummy_user, include_scheduled) assert (dummy_regform in regforms) == expected_regform_flag assert list(registrations.values()) == [None]