def _process(self): all_regforms = get_event_regforms(self.event, session.user) scheduled_and_registered_regforms = [regform[0] for regform in all_regforms if regform[0].is_scheduled or regform[1]] user_registrations = [regform[0].id for regform in all_regforms if regform[1]] if len(scheduled_and_registered_regforms) == 1: return redirect(url_for('.display_regform', scheduled_and_registered_regforms[0])) return self.view_class.render_template('display/regform_list.html', self.event, regforms=scheduled_and_registered_regforms, user_registrations=user_registrations)
def _process(self): all_regforms = get_event_regforms(self.event_new, session.user) scheduled_and_registered_regforms = [regform[0] for regform in all_regforms if regform[0].is_scheduled or regform[1]] user_registrations = [regform[0].id for regform in all_regforms if regform[1]] if len(scheduled_and_registered_regforms) == 1: return redirect(url_for('.display_regform', scheduled_and_registered_regforms[0])) return self.view_class.render_template('display/regform_list.html', self._conf, event=self.event_new, regforms=scheduled_and_registered_regforms, user_registrations=user_registrations)
def _inject_event_header(event, **kwargs): from indico.modules.events.registration.util import get_event_regforms if event.has_feature('registration'): all_regforms = get_event_regforms(event, session.user, with_registrations=True) open_and_registered_regforms = [regform for regform, registration in all_regforms if regform.is_open or registration] user_registrations = {regform: registration for regform, registration in all_regforms} # 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=open_and_registered_regforms, user_registrations=user_registrations)
def _inject_regform_announcement(event, **kwargs): from indico.modules.events.registration.util import get_registrations_with_tickets, get_event_regforms if event.has_feature('registration'): all_regforms = get_event_regforms(event, session.user) user_registrations = sum(regform[1] for regform in all_regforms) open_and_registered_regforms = [regform[0] for regform in all_regforms if regform[0].is_open or regform[1]] if open_and_registered_regforms: return render_template('events/registration/display/conference_home.html', regforms=open_and_registered_regforms, event=event, user_registrations=user_registrations, registrations_with_tickets=get_registrations_with_tickets(session.user, event))
def _inject_event_header(event, **kwargs): from indico.modules.events.registration.util import get_event_regforms if event.has_feature('registration'): all_regforms = get_event_regforms(event, session.user, with_registrations=True) open_and_registered_regforms = [regform for regform, registration in all_regforms if regform.is_open or registration] user_registrations = {regform: registration for regform, registration in all_regforms} # 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=open_and_registered_regforms, user_registrations=user_registrations)
def _inject_regform_announcement(event, **kwargs): from indico.modules.events.registration.util import get_registrations_with_tickets, get_event_regforms if event.has_feature('registration'): all_regforms = get_event_regforms(event, session.user) user_registrations = sum(regform[1] for regform in all_regforms) open_and_registered_regforms = [regform[0] for regform in all_regforms if regform[0].is_open or regform[1]] if open_and_registered_regforms: return render_template('events/registration/display/conference_home.html', regforms=open_and_registered_regforms, event=event, user_registrations=user_registrations, registrations_with_tickets=get_registrations_with_tickets(session.user, event))
def _inject_regform_announcement(event, roles, has_contrib, **kwargs): from indico.modules.events.registration.util import get_registrations_with_tickets, get_event_regforms if event.has_feature('registration'): all_regforms = get_event_regforms(event, session.user) user_registrations = sum(regform[1] for regform in all_regforms) return render_template( 'events/registration/display/conference_tab.html', event=event, roles=roles, has_contrib=has_contrib, user_registrations=user_registrations, registrations_with_tickets=get_registrations_with_tickets( session.user, event))
def RHredirectToExternal(contrib_id): contrib = Contribution.get_or_404(contrib_id) event = contrib.event if not session.user: flash(_("The vc link is only available to logged in users."), 'error') raise BadRequest(response=redirect(event.url)) vcas = contrib.vc_room_associations vca = None for _vca in vcas: vca = _vca if isinstance(vca.vc_room.plugin, RedirectorPlugin): break else: raise BadRequest(response=redirect(event.url)) if vca.data.get('only_registered_users') and \ not any([x[1] for x in get_event_regforms(event, session.user)]): flash(_("The vc link is only available to registered users."), 'error') raise BadRequest(response=redirect(event.url)) vcroom = vca.vc_room url = vcroom.data['room_url_base'] data = {'id': contrib.friendly_id, 'username': session.user.name} req = requests.post(url, json=data) if req.status_code != 200: flash('Error: The redirector did not succeed!', 'error') raise BadRequest(response=redirect(event.url)) res = req.json() if res['status'] != 'success': flash(_("Videoconference link:") + ' ' + res['message'], 'error') raise BadRequest(response=redirect(event.url)) return redirect(res['url'])
def is_registered(self, event): return any([x[1] for x in get_event_regforms(event, session.user)])