class Workshop(colander.MappingSchema): """ Schema for workshop creation/edition """ come_from = forms.come_from_node() name = colander.SchemaNode( colander.String(), validator=colander.Length(max=255), title=u"Titre de l'atelier", ) leaders = LeaderSequence( title=u"Animateur(s)/Animatrice(s)", widget=deform_widget.SequenceWidget(min_len=1), ) info1_id = colander.SchemaNode( colander.Integer(), widget=deferred_info1, title=u"Intitulé de l'action financée 1", description=u"Utilisée comme titre dans la sortie PDF", ) info2_id = colander.SchemaNode( colander.Integer(), widget=deferred_info2, title=u"Intitulé de l'action financée 2", description=u"Utilisée comme sous-titre dans la sortie PDF", missing=colander.drop, ) info3_id = colander.SchemaNode( colander.Integer(), widget=deferred_info3, title=u"Intitulé de l'action financée 3", description=u"Utilisée comme second sous-titre dans la sortie PDF", missing=colander.drop, ) participants = activity.ParticipantsSequence( title=u"Participants", widget=deform_widget.SequenceWidget(min_len=1), ) timeslots = TimeslotsSequence( title=u"Tranches horaires", description=u"Les différentes tranches horaires de l'atelier \ donnant lieu à un émargement", widget=deform_widget.SequenceWidget(min_len=1), )
class HolidaysSchema(colander.MappingSchema): holidays = HolidaysList(title=u"", widget=widget.SequenceWidget(min_len=1))
def upload_form(): schema = UploadSchema() form = deform.Form(schema, buttons=('submit', 'cancel')) form['tags'].widget = w.SequenceWidget(min_len=1) return form
class MainSchema(colander.Schema): msgid = MessageID(title="msgid", widget=widget.SequenceWidget(orderable=True))
class WorkshopSchema(colander.MappingSchema): """ Schema for workshop creation/edition """ come_from = forms.come_from_node() name = colander.SchemaNode( colander.String(), validator=colander.Length(max=255), title=u"Titre de l'atelier", ) owner = trainer_choice_node_factory( title="Gestionnaire de l'atelier", validator=deferred_owner_validator, missing=colander.drop, ) trainers = trainer_choice_node_factory( multiple=True, title=u"Animateur(s)/Animatrice(s)", ) signup_mode = colander.SchemaNode( colander.String(), title=u"Mode d'inscription", widget=deform.widget.SelectWidget( values=EVENT_SIGNUP_MODE, default='closed', ), validator=colander.OneOf([key for key, _ in EVENT_SIGNUP_MODE]), ) description = colander.SchemaNode( colander.String(), description=u"Facultatif", widget=deform.widget.TextAreaWidget(), missing=u"", ) info1_id = colander.SchemaNode( colander.Integer(), widget=deferred_info1, title=u"Intitulé de l'action financée 1", description=u"Utilisée comme titre dans la sortie PDF", missing=colander.null, default=colander.null, ) info2_id = colander.SchemaNode( colander.Integer(), widget=deferred_info2, title=u"Intitulé de l'action financée 2", description=u"Utilisée comme sous-titre dans la sortie PDF", missing=colander.null, default=colander.null, ) info3_id = colander.SchemaNode( colander.Integer(), widget=deferred_info3, title=u"Intitulé de l'action financée 3", description=u"Utilisée comme second sous-titre dans la sortie PDF", missing=colander.null, default=colander.null, ) participants = ParticipantsSequence( title=u"Participants", widget=deform_widget.SequenceWidget( min_len=0, add_subitem_text_template=u"Ajouter un participant", ), ) timeslots = TimeslotsSequence( title=u"Tranches horaires", description=u"Les différentes tranches horaires de l'atelier \ donnant lieu à un émargement", widget=deform_widget.SequenceWidget(min_len=1), )