Beispiel #1
0
class IRegistrationActions(model.Schema):
    """"""

    mailer = actions.Mailer(
        title=_(u"Email response"),
        description=_(u"Email based on form inputs"),
        body_pt=DEFAULT_MAIL_BODY,
        to_field=u"email",
        replyto_field=None,
        subject_field=None,
        includeEmpties=False,
        body_pre=RichTextValue(
            _(u"Informations about your subscription"),
            "text/plain",
            "text/html",
        ),
    )

    sub_script = actions.CustomScript(
        title=_(u"Subscription adding"),
        ProxyRole="Manager",
        ScriptBody=SUBSCRIPTION_SCRIPT,
    )

    save = actions.SaveData(
        title=_(u"Subscription saving"),
        UseColumnNames=True,
        ExtraData=["dt"],
    )
Beispiel #2
0
def create_registration_form(container):
    current_lang = api.portal.get_current_language()
    reg_text = translate(_(u"Registration to"), target_language=current_lang)

    # Create & configure form
    form = api.content.create(
        type="EasyForm",
        title=u"{0} : {1}".format(reg_text, container.Title()),
        container=container,
    )

    form.exclude_from_nav = True

    set_fields(form, IRegistrationForm)
    form.submitLabel = translate(_(u"Register"), target_language=current_lang)
    form.thankstitle = translate(_(u"Thank you"), target_language=current_lang)
    form.thanksdescription = translate(
        _(u"Thank you for your subscription"),
        target_language=current_lang,
    )
    form.includeEmpties = False

    # Configure actions
    IRegistrationActions.setTaggedValue(CONTEXT_KEY, form)
    set_actions(form, IRegistrationActions)

    actions = get_actions(form)
    mailer = actions.get("mailer")
    mailer.msg_subject = reg_text

    form.reindexObject()
class IPeriod(model.Schema):
    """ Marker interface and Dexterity Python Schema for Period
    """

    start = schema.Date(title=_(u"Start date"))

    end = schema.Date(title=_(u"End date"))

    nb_places = schema.Int(title=_(u"Number of total available places"))
Beispiel #4
0
    def __call__(self, context):
        if isinstance(context, dict):
            return SimpleVocabulary([])
        registration = context.aq_parent
        values = []
        if IRegistration.providedBy(registration):
            brains = api.content.find(context=registration,
                                      portal_type="period")
            for brain in brains:
                if not availability_registration(brain):
                    continue
                nb_places_available = brain.available_places
                key = brain.getId
                title = brain.Title
                start_date = brain.start.strftime("%d/%m/%Y")
                end_date = brain.end.strftime("%d/%m/%Y")
                string = _(u"{0} (from {1} to {2} - {3} place(s) left)")
                value = translate(string, context=getRequest()).format(
                    title.decode("utf-8"),
                    start_date,
                    end_date,
                    str(nb_places_available),
                )
                item = dict()
                item[key] = value
                values.append(item)

        return dict_list_2_vocabulary(values)
Beispiel #5
0
def event_add_cancelled_event(obj, event):
    url = obj.aq_parent.absolute_url()
    api.portal.show_message(
        _(u"The creation of registration has been cancelled"),
        request=obj.REQUEST,
        type=u"info",
    )
    api.content.delete(obj=obj)
    obj.REQUEST.RESPONSE.redirect(url)
Beispiel #6
0
class IRegistrationForm(model.Schema):
    """"""

    email = schema.Email(title=_(u"Email address"), required=True)

    first_name = schema.TextLine(title=_(u"First name"), required=True)

    last_name = schema.TextLine(title=_(u"Last name"), required=True)

    number_of_people = schema.Int(title=_(u"Number of people"),
                                  required=True,
                                  default=1,
                                  min=1)

    period = schema.Choice(
        title=_(u"Period"),
        source="collective.registration.vocabularies.periods",
        required=True,
    )
class ISubscriber(model.Schema):
    """ Marker interface and Dexterity Python Schema for Subscriber
    """

    first_name = schema.TextLine(title=_(u"First name"), required=True)

    last_name = schema.TextLine(title=_(u"Last name"), required=True)

    email = ploneschema.Email(title=_(u"Email"), required=True)

    number_of_people = schema.Int(title=_(u"Number of people"), required=True)

    subscription_date = schema.Datetime(title=_(u"Subscription time"),
                                        required=True,
                                        default=datetime.now())

    all_informations = RichText(title=_(u"Summary of all other informations"),
                                required=False)