Exemplo n.º 1
0
    def _process(self):
        form = make_registration_form(self.regform)()
        if form.validate_on_submit() and not self.regform.limit_reached:
            registration = create_registration(self.regform, form.data, self.invitation)
            return redirect(url_for('.display_regform', registration.locator.registrant))
        elif form.is_submitted():
            # not very pretty but usually this never happens thanks to client-side validation
            for error in form.error_list:
                flash(error, 'error')

        user_data = {t.name: getattr(session.user, t.name, None) if session.user else '' for t in PersonalDataType}
        if self.invitation:
            user_data.update((attr, getattr(self.invitation, attr)) for attr in ('first_name', 'last_name', 'email'))
        user_data['title'] = get_title_uuid(self.regform, user_data['title'])
        return self.view_class.render_template('display/regform_display.html', self.event,
                                               regform=self.regform,
                                               sections=get_event_section_data(self.regform),
                                               payment_conditions=payment_event_settings.get(self.event,
                                                                                             'conditions'),
                                               payment_enabled=self.event.has_feature('payment'),
                                               user_data=user_data,
                                               invitation=self.invitation,
                                               registration=self.registration,
                                               management=False,
                                               login_required=self.regform.require_login and not session.user)
Exemplo n.º 2
0
    def _process(self):
        form = make_registration_form(self.regform)()
        if self._can_register() and form.validate_on_submit():
            registration = create_registration(self.regform, form.data,
                                               self.invitation)
            return redirect(
                url_for('.display_regform', registration.locator.registrant))
        elif form.is_submitted():
            # not very pretty but usually this never happens thanks to client-side validation
            for error in form.error_list:
                flash(error, 'error')

        user_data = {
            t.name: getattr(session.user, t.name, None) if session.user else ''
            for t in PersonalDataType
        }
        if self.invitation:
            user_data.update((attr, getattr(self.invitation, attr))
                             for attr in ('first_name', 'last_name', 'email'))
        user_data['title'] = get_title_uuid(self.regform, user_data['title'])
        return self.view_class.render_template(
            'display/regform_display.html',
            self.event,
            regform=self.regform,
            sections=get_event_section_data(self.regform),
            payment_conditions=payment_event_settings.get(
                self.event, 'conditions'),
            payment_enabled=self.event.has_feature('payment'),
            user_data=user_data,
            invitation=self.invitation,
            registration=self.registration,
            management=False,
            login_required=self.regform.require_login and not session.user,
            is_restricted_access=self.is_restricted_access)
Exemplo n.º 3
0
 def _process_GET(self):
     user_data = get_user_data(self.regform, session.user, self.invitation)
     initial_values = get_initial_form_values(self.regform) | user_data
     return self.view_class.render_template('display/regform_display.html', self.event,
                                            regform=self.regform,
                                            form_data=get_flat_section_submission_data(self.regform),
                                            initial_values=initial_values,
                                            payment_conditions=payment_event_settings.get(self.event, 'conditions'),
                                            payment_enabled=self.event.has_feature('payment'),
                                            invitation=self.invitation,
                                            registration=self.registration,
                                            management=False,
                                            login_required=self.regform.require_login and not session.user,
                                            is_restricted_access=self.is_restricted_access)
Exemplo n.º 4
0
 def _process_GET(self):
     form_data = get_flat_section_submission_data(self.regform, management=self.management,
                                                  registration=self.registration)
     registration_data = get_form_registration_data(self.regform, self.registration, management=self.management)
     return self.view_class.render_template(self.template_file, self.event,
                                            regform=self.regform,
                                            form_data=form_data,
                                            payment_conditions=payment_event_settings.get(self.event, 'conditions'),
                                            payment_enabled=self.event.has_feature('payment'),
                                            registration=self.registration,
                                            management=self.management,
                                            paid=self.registration.is_paid,
                                            registration_data=registration_data,
                                            file_data=self._get_file_data())
Exemplo n.º 5
0
 def _process(self):
     conditions = payment_event_settings.get(self.event, 'conditions')
     return jsonify_template('events/payment/terms_and_conditions.html', conditions=conditions)
Exemplo n.º 6
0
 def _process(self):
     conditions = payment_event_settings.get(self.event, 'conditions')
     return WPPaymentEvent.render_template('terms_and_conditions.html',
                                           self._conf,
                                           conditions=conditions)
Exemplo n.º 7
0
    def _process(self):
        form = make_registration_form(self.regform)()

        verif_field, reg_field = ('', '')
        for k in form._fields:
            if form._fields[k].label.text.lower() == 'registration option':
                reg_field = form._fields[k].label.field_id
            if form._fields[k].label.text.lower() == 'verification code':
                verif_field = form._fields[k].label.field_id

        verif_code = ''
        if verif_field and form._fields[verif_field].data:
            verif_code = form._fields[verif_field].data
        elif request.args.get('vc'):
            verif_code = request.args.get('vc')

        reg_opt = ''
        if reg_field and form._fields[reg_field].data:
            reg_opt = form._fields[reg_field].data

        opt_text = ''
        if reg_opt:
            for i in self.regform.active_fields:
                if i.title.lower() == 'registration option':
                    for k in i.data['captions']:
                        if k == next(iter(reg_opt)):
                            opt_text = i.data['captions'][k]
                else:
                    continue

        members_choice = False
        if opt_text and re.search(r' members', opt_text, flags=re.IGNORECASE):
            members_choice = True

        user_data = {
            t.name: getattr(session.user, t.name, None) if session.user else ''
            for t in PersonalDataType
        }

        reg_allowed = False
        if members_choice:
            str_list = [
                user_data['first_name'] + user_data['last_name'] + '/' +
                str(self.event.id) + '/' +
                datetime.today().strftime('%Y-%m-%d'),
                user_data['first_name'] + user_data['last_name'] + '/' +
                str(self.event.id) + '/' +
                (datetime.now() + timedelta(days=-1)).strftime('%Y-%m-%d'),
                user_data['first_name'] + user_data['last_name'] + '/' +
                str(self.event.id) + '/' +
                (datetime.now() + timedelta(days=-2)).strftime('%Y-%m-%d')
            ]
            for strn in str_list:
                sha = hmac.new(u''.encode(),
                               strn.lower().encode('utf-8'),
                               hashlib.sha256).hexdigest()
                md = hmac.new(''.encode(), sha.encode(),
                              hashlib.md5).hexdigest()
                enc = codecs.encode(codecs.decode(
                    md, 'hex'), 'base64').decode().replace("\n", "").replace(
                        "=", "").replace("/", "9").replace("+", "8")
                if enc == verif_code:
                    reg_allowed = True

        setattr(self.regform, 'member_attempt', False)
        if (members_choice and reg_allowed) or not members_choice:
            if form.validate_on_submit() and not self.regform.limit_reached:
                registration = create_registration(self.regform, form.data,
                                                   self.invitation)
                return redirect(
                    url_for('.display_regform',
                            registration.locator.registrant))
            elif form.is_submitted():
                # not very pretty but usually this never happens thanks to client-side validation
                for error in form.error_list:
                    flash(error, 'error')
        else:
            setattr(self.regform, 'member_attempt', True)

        if self.invitation:
            user_data.update((attr, getattr(self.invitation, attr))
                             for attr in ('first_name', 'last_name', 'email'))
        user_data['title'] = get_title_uuid(self.regform, user_data['title'])

        if verif_field:
            user_data[verif_field] = request.args.get('vc')

        return self.view_class.render_template(
            'display/regform_display.html',
            self.event,
            regform=self.regform,
            sections=get_event_section_data(self.regform),
            payment_conditions=payment_event_settings.get(
                self.event, 'conditions'),
            payment_enabled=self.event.has_feature('payment'),
            vc=request.args.get('vc'),
            user_data=user_data,
            invitation=self.invitation,
            registration=self.registration,
            management=False,
            login_required=self.regform.require_login and not session.user)
Exemplo n.º 8
0
 def _process(self):
     conditions = payment_event_settings.get(self.event, 'conditions')
     return jsonify_template('events/payment/terms_and_conditions.html', conditions=conditions)