Exemple #1
0
    def validate(self, obj):
        errors = super(AmountMaxValidator, self).validateObject(obj)

        xrequest = self.request
        transportation = xrequest[
            'form.widgets.ITransportationexpenses.amount_transportation'] or '0.0'
        viatical = xrequest[
            'form.widgets.ITravelexpenses.amount_travel'] or '0.0'
        total = eval(transportation) + eval(viatical)

        if self.context:
            # ya está creado el objeto
            parent = self.context.aq_parent
        else:
            parent = [
                xparent for xparent in xrequest['PARENTS']
                if isinstance(xparent, Moneysack)
            ][0]

        if parent.amountmax:
            if total > parent.amountmax:
                errors += (Invalid(
                    _(u"The amount must be smaller than '${amountmax}'",
                      mapping={'amountmax': parent.amountmax})), )

        if parent.remaining_amount() < total:
            errors += (Invalid(
                _(u"The amount available is less than the amount requested, you dispose of '${remainingamount}'",
                  mapping={'amountmax': parent.remaining_amount})), )

        return errors
Exemple #2
0
 def validateFields(data):
     if data.amount_transportation > 0 and data.transportation_type == set([]):
         message = 'Invalid Transportation Type: You must select at least one transportation, please correct it.'
         raise Invalid(_('label_im_applications_error_transportation', default=message))
     elif data.amount_transportation == 0:
         if data.transportation_type.__contains__('groudtransportation') or data.transportation_type.__contains__('airtransport'):
             message = 'Invalid Transportation Type: You amount transportation is zero the transportation type must be empty, please correct it.'
             raise Invalid(_('label_im_applications_error_transportation2', default=message))
Exemple #3
0
def TransportationTypeVocabulary(context):
    items = [
        # (_(u'Car'), 'car'),
        (_(u'Ground transportation'), 'groudtransportation'),
        (_(u'Air Transport'), 'airtransport'),
    ]

    items = [SimpleTerm(i[1], i[1], i[0]) for i in items]
    return SimpleVocabulary(items)
Exemple #4
0
class ITransportationexpenses(model.Schema):
    """
    """

    amount_transportation = schema.Float(
        title=_(u'label_applications_amount_transportation', u'Amount for Transportation Expenses'),
        required=True,
        min=0.0,
    )

    directives.widget(transportation_type=CheckBoxFieldWidget)
    transportation_type = schema.Set(
        title=_(u'label_applications_transportation_type', default=u'Type Transportation'),
        value_type=schema.Choice(
            vocabulary='im.applications.TransportationType',
        ),
        required=False,
    )

    directives.read_permission(amount_transportation_recommended='im.applications.ViewComision')
    directives.write_permission(amount_transportation_recommended='im.applications.EditComision')
    amount_transportation_recommended = schema.Float(
        title=_(u'label_applications_amount_transportation_recommended', u'Approved Amount by Special Comision for Transportation Expenses'),
        required=True,
        min=0.0,
    )

    directives.read_permission(amount_transportation_authorized='im.applications.ViewCantidadAutorizada')
    directives.write_permission(amount_transportation_authorized='im.applications.EditConsejo')
    amount_transportation_authorized = schema.Float(
        title=_(u'label_applications_amount_transportation_authorized', u'Approved Amount by Consejo Interno for Transportation Expenses'),
        required=True,
        min=0.0,
    )

    directives.read_permission(amount_transportation_used='im.applications.ViewCantidadUtilizada')
    directives.write_permission(amount_transportation_used='im.applications.EditCantidadUtilizada')
    amount_transportation_used = schema.Float(
        title=_(u'label_applications_amount_transportation_used', u'Used Amount for Transportation Expenses'),
        required=True,
        min=0.0,
    )

    @invariant
    def validateFields(data):
        if data.amount_transportation > 0 and data.transportation_type == set([]):
            message = 'Invalid Transportation Type: You must select at least one transportation, please correct it.'
            raise Invalid(_('label_im_applications_error_transportation', default=message))
        elif data.amount_transportation == 0:
            if data.transportation_type.__contains__('groudtransportation') or data.transportation_type.__contains__('airtransport'):
                message = 'Invalid Transportation Type: You amount transportation is zero the transportation type must be empty, please correct it.'
                raise Invalid(_('label_im_applications_error_transportation2', default=message))
Exemple #5
0
 def validate(self, value):
     """Validate international phone number on input
     """
     super(DateInRangeValidator, self).validate(value)
     if value:
         if value < self.context.start:
             raise Invalid(
                 _(u"The start date must be grather than '${name}'",
                   mapping={'name': self.context.start}))
class IRegistrationfees(model.Schema):
    """
    """

    amount_registration = schema.Float(
        title=_(u'label_applications_amount_registration',
                u'Amount for Registration Fees'),
        required=True,
        min=0.0,
    )

    directives.read_permission(
        amount_registration_recommended='im.applications.ViewComision')
    directives.write_permission(
        amount_registration_recommended='im.applications.EditComision')
    amount_registration_recommended = schema.Float(
        title=_(u'label_applications_amount_registration_recommended',
                u'Approved Amount by Special Comision for Registration Fees'),
        required=True,
        min=0.0,
    )

    directives.read_permission(
        amount_registration_authorized='im.applications.ViewCantidadAutorizada'
    )
    directives.write_permission(
        amount_registration_authorized='im.applications.EditConsejo')
    amount_registration_authorized = schema.Float(
        title=_(u'label_applications_amount_registration_authorized',
                u'Approved Amount by Consejo Interno for Registration Fees'),
        required=True,
        min=0.0,
    )

    directives.read_permission(
        amount_registration_used='im.applications.ViewCantidadUtilizada')
    directives.write_permission(
        amount_registration_used='im.applications.EditCantidadUtilizada')
    amount_registration_used = schema.Float(
        title=_(u'label_applications_amount_registration_used',
                u'Used Amount for Registration Fees'),
        required=True,
        min=0.0,
    )
Exemple #7
0
class IMoneysack(model.Schema):
    """ Marker interface and Dexterity Python Schema for Moneysack
    """
    title = schema.TextLine(
        title=_(u'label_applications_moneysack_title', default=u'Title of sack'),
        required=True,
    )

    start = schema.Date(
        title=_(u'label_applications_moneysack_start_date', default=u'Start date of the activity'),
        required=True,
    )

    end = schema.Date(
        title=_(u'label_applications_moneysack_end_date', default=u'End date of the activity'),
        required=True,
    )

    amount = schema.Float(
        title=_(u'label_applications_moneysack_amount', u'Approved Amount'),
        required=True,
        min=1.0,
        # max=25000.0,
    )

    amountmax = schema.Float(
        title=_(u'label_applications_moneysack_amountmax', u'Max Approved Amount by application'),
        description=_(u'help_applications_moneysack_amountmax', u'If this field is empty the max amount application is the Approved Amount'),
        required=False,
        min=1.0,
        # max=25000.0,
    )

    @invariant
    def validateDateFields(data):
        if data.end < data.start:
            message = 'Invalid Dates: the Star Date must be greater that End Date, please correct it.'
            raise Invalid(_('label_applications_error_datesbefore', default=message))
Exemple #8
0
 def validateDateFields(data):
     if data.end < data.start:
         message = 'Invalid Dates: the Star Date must be greater that End Date, please correct it.'
         raise Invalid(_('label_applications_error_datesbefore', default=message))
 def summary(self):
     return _(
         u"The im applications information will be saved in the Uni Admin Section"
     )
Exemple #10
0
class IColoquioApplication(model.Schema):
    """ Marker interface and Dexterity Python Schema for ColoquioApplication
    """

    directives.read_permission(campus='cmf.ManagePortal')
    directives.write_permission(campus='cmf.ManagePortal')
    campus = schema.Choice(
        title=_(u'label_applications_campus', default=u'Campus Applications'),
        vocabulary='im.applications.IMCampus',
        required=False,
    )

    title = schema.TextLine(
        title=_(u'label_applications_coloquio_title', default=u'Speaker Name'),
        required=True,
    )

    institution = schema.TextLine(
        title=_(u'label_applications_coloquio_institution',
                default=u'Speaker Institution'),
        required=True,
    )

    exposition_date = schema.Date(
        title=_(u'label_applications_coloquio_exposition_date',
                default=u'Exposition Date'),
        required=True,
    )

    comments = schema.Text(
        title=_(u'label_applications_comments', u'Adtional Comments'),
        required=False,
    )

    directives.read_permission(specialc_date='im.applications.ViewComision')
    directives.write_permission(specialc_date='im.applications.EditComision')
    specialc_date = schema.Date(
        title=_(u'label_applications_amount_specialc_date',
                default=u'Special Comision Date'),
        required=True,
    )

    directives.read_permission(
        comments_recommended='im.applications.ViewComision')
    directives.write_permission(
        comments_recommended='im.applications.EditComision')
    comments_recommended = schema.Text(
        title=_(u'label_applications_comments_recommended',
                u'Special Comision Comments'),
        required=False,
    )

    directives.read_permission(minute='im.applications.ViewConsejo')
    directives.write_permission(minute='im.applications.EditConsejo')
    minute = schema.TextLine(
        title=_(u'label_applications_minute', default=u'Minute Number'),
        description=_(u'help_applications_minute',
                      default=u'Minute of Consejo Interno'),
        required=False,
    )

    directives.read_permission(internalc_date='im.applications.ViewConsejo')
    directives.write_permission(internalc_date='im.applications.EditConsejo')
    internalc_date = schema.Date(
        title=_(u'label_applications_amount_internalc_date',
                default=u'Consejo Interno Date'),
        required=True,
    )

    directives.read_permission(
        comments_authorized='im.applications.ViewConsejo')
    directives.write_permission(
        comments_authorized='im.applications.EditConsejo')
    comments_authorized = schema.Text(
        title=_(u'label_applications_comments_authorized',
                u'Consejo Interno Comments'),
        required=False,
    )
Exemple #11
0
def TypeActivityIMVocabularyFactory(context):
    items = [
        (_(u'Coloquio'), '01'),
        (_(u'Conferencia'), '02'),
        (_(u'Congreso'), '03'),
        (_(u'Curso'), '04'),
        (_(u'Diplomado'), '05'),
        (_(u'Encuentro'), '06'),
        (_(u'Foro'), '07'),
        (_(u'Jornada'), '08'),
        (_(u'Mesa redonda'), '09'),
        (_(u'Módulos de exposiciones'), '10'),
        (_(u'Módulos de ferias'), '11'),
        (_(u'Reunión'), '12'),
        (_(u'Seminario'), '13'),
        (_(u'Simposio'), '14'),
        (_(u'Taller'), '15'),
        (_(u'Videoconferencia'), '16'),
        (_(u'Feria'), '17'),
        (_(u'Cátedra'), '32'),
        (_(u'Escuela'), '101'),
        (_(u'Otra actividad'), '99'),
    ]
    items = [SimpleTerm(i[1], i[1], i[0]) for i in items]
    return SimpleVocabulary(items)
class IActivitiesBudgetApplication(model.Schema):
    """ Marker interface and Dexterity Python Schema for ActivitiesBudgetApplication
    """
    # If you want, you can load a xml model created TTW here
    # and customize it in Python:

    # model.load('activities_budget_application.xml')

    # directives.widget(level=RadioFieldWidget)
    # level = schema.Choice(
    #     title=_(u'Sponsoring Level'),
    #     vocabulary=LevelVocabulary,
    #     required=True
    # )

    # text = RichText(
    #     title=_(u'Text'),
    #     required=False
    # )

    # url = schema.URI(
    #     title=_(u'Link'),
    #     required=False
    # )

    # fieldset('Images', fields=['logo', 'advertisement'])
    # logo = namedfile.NamedBlobImage(
    #     title=_(u'Logo'),
    #     required=False,
    # )

    # advertisement = namedfile.NamedBlobImage(
    #     title=_(u'Advertisement (Gold-sponsors and above)'),
    #     required=False,
    # )

    # directives.read_permission(notes='cmf.ManagePortal')
    # directives.write_permission(notes='cmf.ManagePortal')
    # notes = RichText(
    #     title=_(u'Secret Notes (only for site-admins)'),
    #     required=False
    # )

    title = schema.TextLine(
        title=_(u'label_applications_title', default=u'Activity Name'),
        required=True,
    )

    edition = schema.TextLine(
        title=_(u'label_applications_edition', default=u'Edition'),
        description=_(
            u'help_applications_edition',
            default=
            u'The edition of the activity, in case of academic activity. By example Thirty-third'
        ),
        required=True,
    )

    minute = schema.TextLine(
        title=_(u'label_applications_minute', default=u'Minute Number'),
        description=_(u'help_applications_minute',
                      default=u'Minute of Consejo Interno'),
        required=False,
    )

    internalc_date = schema.Date(
        title=_(u'label_applications_amount_internalc_date',
                default=u'Consejo Interno Date'),
        required=False,
    )

    # typeactivity = schema.TextLine(
    #     title=_(u'label_applications_typeactivity', u'Type activity Activity'),
    #     required=True,
    # )

    typeactivity = schema.Choice(
        title=_(u'label_applications_typeactivity', u'Type activity Activity'),
        required=True,
        vocabulary='im.applications.TypeActivityIM',
    )

    responsables = schema.Text(
        title=_(u'label_applications_responsables', u'Responsable(s) Name'),
        required=True,
    )

    requested_amount = schema.Float(
        title=_(u'label_applications_requested_amount', u'Requested Amount'),
        # description=_(u'help_applications_amount', u'Amount when the solicitud was created'),
        required=False,
        min=1.0,
        # max=25000.0,
    )

    amount = schema.Float(
        title=_(u'label_applications_amount', u'Approved Amount'),
        # description=_(u'help_applications_amount', u'Amount when the solicitud was created'),
        required=True,
        min=1.0,
        # max=25000.0,
    )

    start = schema.Date(
        title=_(u'label_applications_start_date',
                default=u'Start date of the activity'),
        required=True,
    )

    end = schema.Date(
        title=_(u'label_applications_end_date',
                default=u'End date of the activity'),
        required=True,
    )

    place_activity = schema.Text(
        title=_(u'label_applications_place_activity', u'Place Activity'),
        required=True,
    )

    description_activity = schema.Text(
        title=_(u'label_applications_description_activity',
                u'Description Activity'),
        required=False,
    )

    @invariant
    def validateDateFields(data):
        if data.end < data.start:
            message = 'Invalid Dates: the Star Date must be greater that End Date, please correct it.'
            raise Invalid(
                _('label_applications_error_datesbefore', default=message))