Example #1
0
def notify_registration_confirmation(event, registrant):
    reg_form = registrant.getRegistrationForm()
    from_address = reg_form.getNotificationSender()
    reg_details = _get_reg_details(reg_form, registrant)

    # Send email to organizers
    notification = reg_form.getNotification()
    to_list = notification.getToList()
    cc_list = notification.getCCList()
    if to_list or cc_list:
        reg_page = url_for('event_mgmt.confModifRegistrants-modification', registrant, _external=True, _secure=True)
        tpl = get_template_module('events/registration/emails/registration_confirmation_organizers.html', event=event,
                                  registrant=registrant, reg_page=reg_page, reg_details=reg_details)
        yield make_email(to_list, cc_list, from_address=from_address, subject=tpl.get_subject(), body=tpl.get_body(),
                         html=True)

    # Send email to the registrant
    if reg_form.isSendRegEmail():
        needs_to_pay = registrant.doPay() and payment_event_settings.get(event, 'enabled')
        registration_email_msg = payment_event_settings.get(event, 'register_email')
        params = {}
        if not registrant.getAvatar():
            params = {'registrantId': registrant.getId(), 'authkey': registrant.getRandomId()}
        reg_page = url_for('event.confRegistrationFormDisplay', event, _external=True, _secure=True, **params)
        tpl = get_template_module('events/registration/emails/registration_confirmation_registrant.html', event=event,
                                  registrant=registrant, payment_enabled=payment_event_settings.get(event, 'enabled'),
                                  reg_page=reg_page, needs_to_pay=needs_to_pay, reg_details=reg_details,
                                  registration_email_msg=registration_email_msg)

        ticket = reg_form.getETicket()
        attachments = []
        if ticket.isEnabled() and ticket.isAttachedToEmail():
            attachments.append({
                'name': 'Ticket.pdf',
                'binary': TicketToPDF(event, registrant).getPDFBin()
            })

        yield make_email(registrant.getEmail(), from_address=from_address, subject=tpl.get_subject(),
                         body=tpl.get_body(), attachments=attachments, html=True)
Example #2
0
 def _process(self):
     set_best_lang()  # prevents from having a _LazyString when generating a pdf without session.lang set
     filename = "{0}-Ticket.pdf".format(self._target.getTitle())
     pdf = TicketToPDF(self._target, self._registrant)
     return send_file(filename, StringIO(pdf.getPDFBin()), 'PDF')
Example #3
0
def generate_ticket(registration):
    pdf = TicketToPDF(registration.registration_form.event, registration)
    return BytesIO(pdf.getPDFBin())
 def _process(self):
     filename = "{0}-Ticket.pdf".format(self._target.getTitle())
     pdf = TicketToPDF(self._target, self._registrant)
     return send_file(filename, StringIO(pdf.getPDFBin()), 'PDF')
    def _process(self):
        canManageRegistration = self._conf.canManageRegistration(
            self._getUser())
        if not canManageRegistration and not self._regForm.isActivated():
            p = registrationForm.WPRegFormInactive(self, self._conf)
            return p.display()
        params = self._getRequestParams()
        email = self._regForm.getPersonalData().getValueFromParams(
            params, 'email')
        if email is None:
            raise FormValuesError(
                _("An email address has to be set in order to make the registration in the event."
                  ))
        elif not validMail(email, False):
            raise FormValuesError(_("The given email address is not valid."))
        matchedUsers = AvatarHolder().match({"email": email}, exact=1)
        if matchedUsers:
            user = matchedUsers[0]
        else:
            user = None
        # Check if the user can register
        if not canManageRegistration:  # normal user registering. Managers can.
            if self._conf.getRegistrationForm().isFull():
                self._redirect(
                    urlHandlers.UHConfRegistrationFormDisplay.getURL(
                        self._conf))
                return
            elif not self._conf.getRegistrationForm().inRegistrationPeriod():
                p = registrationForm.WPRegistrationFormClosed(self, self._conf)
                return p.display()
        if user is None:
            if self._conf.hasRegistrantByEmail(email):
                raise FormValuesError(
                    "There is already a user with the email \"%s\". Please choose another one"
                    % email)
        else:
            if user.isRegisteredInConf(
                    self._conf) or self._conf.hasRegistrantByEmail(email):
                if canManageRegistration:
                    raise FormValuesError(
                        "There is already a user with the email \"%s\". Please choose another one"
                        % email)
                else:
                    raise FormValuesError(
                        "You have already registered with the email address \"%s\". If you need to modify your registration, please contact the managers of the conference."
                        % email)

        rp = registration.Registrant()
        self._conf.addRegistrant(rp, user)
        rp.setValues(self._getRequestParams(), user)

        if user is not None:
            user.addRegistrant(rp)
            rp.setAvatar(user)

        # This creates the email to the new registrant and SENDS the email to the organizers if necessary... WTF.
        email = self._regForm.getNotification().createEmailNewRegistrant(
            self._regForm, rp)
        if self._regForm.isSendRegEmail() and rp.getEmail().strip():
            modEticket = self._conf.getRegistrationForm().getETicket()

            if modEticket.isEnabled() and modEticket.isAttachedToEmail():
                attachment = {
                    'name': "{0}-Ticket.pdf".format(self._target.getTitle()),
                    'binary': TicketToPDF(self._target, rp).getPDFBin(),
                }
                email["attachments"] = [attachment]
            GenericMailer.send(email)

        if canManageRegistration and user != self._getUser():
            self._redirect(RHRegistrantListModif._uh.getURL(self._conf))
        else:
            self._redirect(
                urlHandlers.UHConfRegistrationFormCreationDone.getURL(rp))
 def _process(self):
     filename = "{0}-Ticket.pdf".format(self._target.getTitle())
     pdf = TicketToPDF(self._target, self._registrant)
     return send_file(filename, StringIO(pdf.getPDFBin()), 'PDF')
Example #7
0
def generate_ticket(registration):
    pdf = TicketToPDF(registration.registration_form.event, registration)
    return BytesIO(pdf.getPDFBin())
Example #8
0
    def _process(self):
        canManageRegistration = self._conf.canManageRegistration(self._getUser())
        if not canManageRegistration and not self._regForm.isActivated():
            p = registrationForm.WPRegFormInactive(self, self._conf)
            return p.display()
        params = self._getRequestParams()
        email = self._regForm.getPersonalData().getValueFromParams(params, 'email')
        if email is None:
            raise FormValuesError(_("An email address has to be set in order to make the registration in the event."))
        elif not validMail(email, False):
            raise FormValuesError(_("The given email address is not valid."))
        matchedUsers = AvatarHolder().match({"email": email}, exact=1)
        if matchedUsers:
            user = matchedUsers[0]
        else:
            user = None
        # Check if the user can register
        if not canManageRegistration:  # normal user registering. Managers can.
            if self._conf.getRegistrationForm().isFull():
                self._redirect(urlHandlers.UHConfRegistrationFormDisplay.getURL(self._conf))
                return
            elif not self._conf.getRegistrationForm().inRegistrationPeriod():
                p = registrationForm.WPRegistrationFormClosed(self, self._conf)
                return p.display()
        if user is None:
            if self._conf.hasRegistrantByEmail(email):
                raise FormValuesError("There is already a user with the email \"%s\". Please choose another one" % email)
        else:
            if user.isRegisteredInConf(self._conf) or self._conf.hasRegistrantByEmail(email):
                if canManageRegistration:
                    raise FormValuesError("There is already a user with the email \"%s\". Please choose another one" % email)
                else:
                    raise FormValuesError("You have already registered with the email address \"%s\". If you need to modify your registration, please contact the managers of the conference." % email)

        rp = registration.Registrant()
        self._conf.addRegistrant(rp, user)
        rp.setValues(self._getRequestParams(), user)
        rp.setSessionBillingEnabled(self._regForm.getSessionsForm().getType() != "2priorities")
        if user is not None:
            user.addRegistrant(rp)
            rp.setAvatar(user)
        # avoid multiple sending in case of db conflict
        email = self._regForm.getNotification()\
            .createEmailNewRegistrant(self._regForm, rp)

        modEticket = self._conf.getRegistrationForm().getETicket()

        if modEticket.isEnabled() and modEticket.isAttachedToEmail():
            attachment = {}
            filename = "{0}-Ticket.pdf".format(self._target.getTitle())
            attachment["name"] = filename
            pdf = TicketToPDF(self._target, rp)
            attachment["binary"] = pdf.getPDFBin()
            email["attachments"] = [attachment]

        if email:
            GenericMailer.send(email)
        if canManageRegistration and user != self._getUser():
            self._redirect(RHRegistrantListModif._uh.getURL(self._conf))
        else:
            self._redirect(urlHandlers.UHConfRegistrationFormCreationDone.getURL(rp))