Esempio n. 1
0
 def render(cls, event):
     start_dt, end_dt = get_access_dates(get_last_request(event))
     if start_dt.date() == end_dt.date():
         return to_unicode(format_datetime(start_dt, format='d MMM YYY', locale='en_GB'))
     else:
         return "{} - {}".format(to_unicode(format_datetime(start_dt, format='d MMM YYY', locale='en_GB')),
                                 to_unicode(format_datetime(end_dt, format='d MMM YYY', locale='en_GB')))
Esempio n. 2
0
    def _registration_created(self, registration, management, **kwargs):
        if management:
            return

        regform = registration.registration_form
        personal_data_form = g.pop('personal_data_form', None)

        if not regform.cern_access_request or not regform.cern_access_request.is_active or not personal_data_form:
            return

        req = get_last_request(registration.event)
        if not req or not req.data['during_registration']:
            return

        required = req.data['during_registration_required']
        if not required and not personal_data_form.request_cern_access.data:
            return

        license_plate = (
            sanitize_license_plate(personal_data_form.license_plate.data)
            if personal_data_form.license_plate.data
            else None
        )

        registration.cern_access_request = CERNAccessRequest(birth_date=personal_data_form.birth_date.data,
                                                             nationality=personal_data_form.nationality.data,
                                                             birth_place=personal_data_form.birth_place.data,
                                                             license_plate=license_plate,
                                                             request_state=CERNAccessRequestState.not_requested,
                                                             reservation_code='')
Esempio n. 3
0
    def _get_personal_data_form(self,
                                event,
                                regform,
                                management,
                                registration=None,
                                **kwargs):
        if management or registration is not None:
            return

        if regform.cern_access_request and regform.cern_access_request.is_active:
            req = get_last_request(event)
            if not req.data['during_registration']:
                return
            required = req.data['during_registration_required']
            form_cls = AccessIdentityDataForm if required else RegistrationFormPersonalDataForm
            form = g.get('personal_data_form')
            if not form:
                form = form_cls()
                if req.data['during_registration_preselected'] and not required:
                    form.request_cern_access.data = True
            start_dt, end_dt = get_access_dates(req)
            return render_plugin_template('regform_identity_data_section.html',
                                          event=event,
                                          form=form,
                                          start_dt=start_dt,
                                          end_dt=end_dt,
                                          registration=registration,
                                          required=required)
 def render(cls, event):
     start_dt, end_dt = get_access_dates(get_last_request(event))
     if start_dt.date() == end_dt.date():
         return format_datetime(start_dt, format='d MMM YYY', locale='en_GB')
     else:
         return '{} - {}'.format(format_datetime(start_dt, format='d MMM YYY', locale='en_GB'),
                                 format_datetime(end_dt, format='d MMM YYY', locale='en_GB'))
Esempio n. 5
0
    def _registration_created(self, registration, management, **kwargs):
        if management:
            return

        regform = registration.registration_form
        personal_data_form = g.pop('personal_data_form', None)

        if not regform.cern_access_request or not regform.cern_access_request.is_active or not personal_data_form:
            return

        req = get_last_request(registration.event)
        mode = req.data.get('regform_data_mode')
        if mode not in (RegformDataMode.during_registration,
                        RegformDataMode.during_registration_required):
            return

        required = req.data.get(
            'regform_data_mode'
        ) == RegformDataMode.during_registration_required
        if not required and not personal_data_form.request_cern_access.data:
            return

        registration.cern_access_request = CERNAccessRequest(
            birth_date=personal_data_form.birth_date.data,
            nationality=personal_data_form.nationality.data,
            birth_place=personal_data_form.birth_place.data,
            request_state=CERNAccessRequestState.not_requested,
            reservation_code='')
Esempio n. 6
0
    def _get_personal_data_form(self,
                                event,
                                regform,
                                management,
                                registration=None,
                                **kwargs):
        if management or registration is not None:
            return

        if regform.cern_access_request and regform.cern_access_request.is_active:
            req = get_last_request(event)
            mode = req.data.get('regform_data_mode')
            if mode not in (RegformDataMode.during_registration,
                            RegformDataMode.during_registration_required):
                return
            required = mode == RegformDataMode.during_registration_required
            form_cls = AccessIdentityDataForm if required else RegistrationFormPersonalDataForm
            form = g.get('personal_data_form') or form_cls()
            start_dt, end_dt = get_access_dates(req)
            return render_plugin_template('regform_identity_data_section.html',
                                          event=event,
                                          form=form,
                                          start_dt=start_dt,
                                          end_dt=end_dt,
                                          registration=registration,
                                          required=required)
Esempio n. 7
0
 def render(cls, param, regform, registration):
     locale_data = {
         'en': {'locale': 'en_GB', 'separator': 'to'},
         'fr': {'locale': 'fr_FR', 'separator': 'au'},
     }
     start_dt, end_dt = get_access_dates(get_last_request(registration.event))
     tpl = get_template_module('cern_access:_common.html')
     return Markup(tpl.render_access_dates(start_dt, end_dt, **locale_data[param]))
    def _process(self):
        form = AccessIdentityDataForm()
        access_request = self.registration.cern_access_request
        if access_request is not None and not access_request.has_identity_info and form.validate_on_submit():
            form.populate_obj(access_request)
            db.session.flush()
            send_ticket(self.registration)
            return redirect(url_for('.access_identity_data', self.registration.locator.uuid))

        start_dt, end_dt = get_access_dates(get_last_request(self.event))
        return WPAccessRequestDetails.render_template('identity_data_form.html', self.event, form=form,
                                                      access_request=access_request, start_dt=start_dt, end_dt=end_dt)
Esempio n. 9
0
    def _registration_form_validated(self, form, **kwargs):
        if type(form).__name__ != 'RegistrationFormWTF':
            return

        if type(g.rh) is not RHRegistrationForm:
            return

        regform = g.rh.regform
        if not regform.cern_access_request or not regform.cern_access_request.is_active:
            return

        req = get_last_request(regform.event)
        if not req or not req.data['during_registration']:
            return

        required = req.data['during_registration_required']
        form_cls = AccessIdentityDataForm if required else RegistrationFormPersonalDataForm
        # we pass 'csrf_enabled' on to allow unit tests to set it to False
        g.personal_data_form = form = form_cls(csrf_enabled=form.meta.csrf)

        if not form.validate_on_submit():
            return False
Esempio n. 10
0
    def _registration_form_validated(self, form, **kwargs):
        if type(form).__name__ != 'RegistrationFormWTF':
            return

        if type(g.rh) is not RHRegistrationForm:
            return

        req = get_last_request(g.rh.regform.event)
        if not req:
            return

        mode = req.data.get('regform_data_mode')
        if mode not in (RegformDataMode.during_registration,
                        RegformDataMode.during_registration_required):
            return

        required = req.data.get(
            'regform_data_mode'
        ) == RegformDataMode.during_registration_required
        form_cls = AccessIdentityDataForm if required else RegistrationFormPersonalDataForm
        g.personal_data_form = form = form_cls()
        if not form.validate_on_submit():
            return False
Esempio n. 11
0
 def _process_args(self):
     RHRegistrationFormRegistrationBase._process_args(self)
     self.cern_access_request = get_last_request(self.event)
     if not self.cern_access_request:
         raise NotFound
Esempio n. 12
0
 def _is_past_event(self, event):
     end_dt = get_access_dates(get_last_request(event))[1]
     return end_dt < now_utc()