Esempio n. 1
0
def validate_template(context, request, data):
    if context.portal_type == 'seantis.reservation.emailtemplate':
        folder = context.aq_inner.aq_parent
    else:
        folder = context

    templates = utils.portal_type_in_context(
        folder, portal_type='seantis.reservation.emailtemplate'
    )

    duplicate = False

    for template in templates:
        if template.id == context.id:
            continue

        if template.getObject().title == context.title:
            duplicate = True
            break

    if duplicate:
        msg = utils.translate(
            context, request,
            _(u"There's already an Email template in the same folder for the "
              u"same language")
        )
        utils.form_error(msg)
Esempio n. 2
0
def validate_template(context, request, data):
    if context.portal_type == 'seantis.reservation.emailtemplate':
        folder = context.aq_inner.aq_parent
    else:
        folder = context

    templates = utils.portal_type_in_context(
        folder, portal_type='seantis.reservation.emailtemplate')

    duplicate = False

    for template in templates:
        if template.id == context.id:
            continue

        if template.getObject().title == context.title:
            duplicate = True
            break

    if duplicate:
        msg = utils.translate(
            context, request,
            _(u"There's already an Email template in the same folder for the "
              u"same language"))
        utils.form_error(msg)
Esempio n. 3
0
def validate_timeframe(context, request, data):
    overlap = overlapping_timeframe(context, data['start'], data['end'])
    if overlap:
        msg = utils.translate(
            context, request,
            _(u"Timeframe overlaps with '${overlap}' in the current folder",
              mapping={'overlap': overlap.title}))
        utils.form_error(msg)
Esempio n. 4
0
    def validate(self, data):
        try:
            start, end = utils.get_date_range(data["day"], data["start_time"], data["end_time"])
            if not self.allocation(data["id"]).contains(start, end):
                utils.form_error(_(u"Reservation out of bounds"))

            return start, end
        except (NoResultFound, TypeError):
            utils.form_error(_(u"Invalid reservation request"))
Esempio n. 5
0
def validate_timeframe(context, request, data):
    overlap = overlapping_timeframe(context, data['start'], data['end'])
    if overlap:
        msg = utils.translate(
            context, request,
            _(
                u"Timeframe overlaps with '${overlap}' in the current folder",
                mapping={'overlap': overlap.title}
            ))
        utils.form_error(msg)
Esempio n. 6
0
    def validate(self, data):
        try:
            start, end = utils.get_date_range(data['day'], data['start_time'],
                                              data['end_time'])
            if not self.allocation(data['id']).contains(start, end):
                utils.form_error(_(u'Reservation out of bounds'))

            return start, end
        except (NoResultFound, TypeError):
            utils.form_error(_(u'Invalid reservation request'))
Esempio n. 7
0
    def validate(self, data):
        try:
            start, end = utils.get_date_range(
                data['day'], data['start_time'], data['end_time']
            )
            if not self.allocation(data['id']).contains(start, end):
                utils.form_error(_(u'Reservation out of bounds'))

            return start, end
        except (NoResultFound, TypeError):
            utils.form_error(_(u'Invalid reservation request'))
Esempio n. 8
0
    def build_export_url(self, data):
        if not self.uuids:
            utils.form_error(_(u"Missing 'uuid' parameter"))

        url_template = (
            u'{base}/reservation-export.{format}?source={export}&uuid={uuids}'
            u'&year={year}&month={month}'
        )

        data['base'] = self.context.absolute_url()
        data['uuids'] = '&uuid='.join(self.uuids)

        return url_template.format(**data)