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
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))
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)
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))
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, )
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))
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" )
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, )
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))