Ejemplo n.º 1
0
class FileUploadSchema(colander.Schema):
    parent_id = colander.SchemaNode(
        colander.Integer(),
        widget=deform.widget.HiddenWidget(),
        missing=colander.drop,
    )

    come_from = forms.come_from_node()

    filetype = colander.SchemaNode(
        colander.String(),
        widget=deferred_filetype_select,
        missing="",
        title=u"Type de fichier",
    )

    description = colander.SchemaNode(colander.String())

    upload = colander.SchemaNode(
        deform.FileData(),
        widget=deferred_upload_widget,
        title=u"Choix du fichier",
        description=file_description,
        validator=filesize_validator,
    )
Ejemplo n.º 2
0
class FileUploadSchema(colander.Schema):
    come_from = forms.come_from_node()
    popup = forms.popup_node()

    file_type_id = FileTypeNode(missing=colander.drop)
    upload = FileNode()

    description = colander.SchemaNode(colander.String())
Ejemplo n.º 3
0
class FileUploadSchema(colander.Schema):
    come_from = forms.come_from_node()
    popup = forms.popup_node()

    file_type_id = FileTypeNode(missing=colander.drop)
    upload = FileNode()

    description = colander.SchemaNode(
        colander.String(),
        validator=colander.Length(
            min=5,
            max=100,
            min_err=
            u"La description ne doit pas être inférieure à 5 caractères",
            max_err=
            u"La description ne doit pas être supérieure à 100 caractères"),
    )
Ejemplo n.º 4
0
class PaymentSchema(colander.MappingSchema):
    """
        colander schema for payment recording
    """
    come_from = forms.come_from_node()
    bank_remittance_id = colander.SchemaNode(
        colander.String(),
        title=u"Identifiant de la remise en banque",
        description=u"Ce champ est un indicateur permettant de \
retrouver la remise en banque à laquelle cet encaissement est associé",
        default=deferred_bank_remittance_id_default,
    )
    amount = colander.SchemaNode(
        AmountType(5),
        title=u"Montant de l'encaissement",
        validator=deferred_total_validator,
        default=deferred_amount_default,
    )
    date = forms.today_node()
    mode = colander.SchemaNode(
        colander.String(),
        title=u"Mode de paiement",
        widget=deferred_payment_mode_widget,
        validator=deferred_payment_mode_validator,
    )
    bank_id = colander.SchemaNode(
        colander.Integer(),
        title=u"Banque",
        missing=colander.drop,
        widget=deferred_bank_widget,
        validator=deferred_bank_validator,
        default=forms.get_deferred_default(BankAccount),
    )
    tva_id = colander.SchemaNode(colander.Integer(),
                                 title=u"Tva liée à cet encaissement",
                                 widget=forms.get_deferred_select(
                                     Tva, mandatory=True, keys=('id', 'name')),
                                 validator=deferred_tva_id_validator)
    resulted = colander.SchemaNode(
        colander.Boolean(),
        title=u"Soldé",
        description="""Indique que le document est soldé (
ne recevra plus de paiement), si le montant indiqué correspond au
montant de la facture celle-ci est soldée automatiquement""",
        default=False,
    )
Ejemplo n.º 5
0
class CreateActivitySchema(colander.MappingSchema):
    """
        Activity creation schema
    """
    come_from = forms.come_from_node()

    conseillers = conseiller_choice_node(
        title=u"Conseillers menant le rendez-vous",
        multiple=True,
    )
    datetime = forms.now_node(title=u"Date de rendez-vous")
    type_id = colander.SchemaNode(
        colander.Integer(),
        widget=get_deferred_select_type(),
        title=u"Nature du rendez-vous",
    )
    action_id = colander.SchemaNode(
        colander.Integer(),
        widget=deferred_select_action,
        title=u"Intitulé de l'action (financée)",
        missing=colander.null,
        default=colander.null,
    )
    subaction_id = colander.SchemaNode(
        colander.Integer(),
        widget=deferred_select_subaction,
        title=u"Intitulé sous-action",
        missing=colander.null,
        default=colander.null,
    )
    mode = colander.SchemaNode(
        colander.String(),
        widget=deferred_select_mode,
        title=u"Mode d'entretien",
    )
    participants = participant_choice_node(
        multiple=True,
        description=u"Participants attendus au rendez-vous",
    )
    companies = company_choice_node(
        multiple=True,
        title=u"Entreprises concernées (donner le droit de consultation)",
        description=u"Les membres de ces entreprises qui ne participent \
pas au rendez-vous peuvent quand même le consulter.",
    )
Ejemplo n.º 6
0
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),
        )
Ejemplo n.º 7
0
class MultiplePaymentSchema(colander.MappingSchema):
    """
        colander schema for payment recording
    """
    come_from = forms.come_from_node()
    bank_remittance_id = colander.SchemaNode(
        colander.String(),
        title=u"Identifiant de la remise en banque",
        default=
        deferred_remittance_amount_default,  # FIXME: C'est quoi cette ligne ?
    )
    payment_amount = colander.SchemaNode(
        AmountType(5),
        title=u"Montant du paiement",
        description=u"Ce champ permet de contrôler que la somme des \
encaissements saisis dans ce formulaire correspondent bien au montant du \
paiement.",
        validator=deferred_total_validator,
        default=deferred_amount_default,
    )
    date = forms.today_node(title=u"Date de la remise")
    mode = colander.SchemaNode(
        colander.String(),
        title=u"Mode de paiement",
        widget=deferred_payment_mode_widget,
        validator=deferred_payment_mode_validator,
    )
    bank_id = colander.SchemaNode(
        colander.Integer(),
        title=u"Banque",
        missing=colander.drop,
        widget=deferred_bank_widget,
        default=forms.get_deferred_default(BankAccount),
    )
    tvas = TvaPaymentSequence(title=u'Encaissements par taux de Tva')
    resulted = colander.SchemaNode(
        colander.Boolean(),
        title=u"Soldé",
        description="""Indique que le document est soldé (
ne recevra plus de paiement), si le montant indiqué correspond au
montant de la facture celle-ci est soldée automatiquement""",
        default=False,
    )
Ejemplo n.º 8
0
class ExpensePaymentSchema(colander.MappingSchema):
    """
    Schéma de saisi des paiements des notes de dépense
    """
    come_from = forms.come_from_node()
    amount = colander.SchemaNode(
        AmountType(),
        title=u"Montant du paiement",
        validator=deferred_expense_total_validator,
        default=deferred_amount_default,
    )
    date = forms.today_node()
    mode = colander.SchemaNode(
        colander.String(),
        title=u"Mode de paiement",
        widget=deferred_payment_mode_widget,
        validator=deferred_payment_mode_validator,
    )
    bank_id = colander.SchemaNode(
        colander.Integer(),
        title=u"Banque",
        missing=colander.drop,
        widget=deferred_bank_widget,
        validator=deferred_bank_validator,
        default=forms.get_deferred_default(BankAccount),
    )
    waiver = colander.SchemaNode(
        colander.Boolean(),
        title=u"Abandon de créance",
        description="""Indique que ce paiement correspond à un abandon de
créance à la hauteur du montant indiqué (le Mode de paiement et la Banque sont
alors ignorés)""",
        default=False,
    )
    resulted = colander.SchemaNode(
        colander.Boolean(),
        title=u"Soldé",
        description="""Indique que le document est soldé (
ne recevra plus de paiement), si le montant indiqué correspond au
montant de feuille de notes de dépense celle-ci est soldée automatiquement""",
        default=False,
    )
Ejemplo n.º 9
0
class PaymentSchema(colander.MappingSchema):
    """
        colander schema for payment recording
    """
    come_from = forms.come_from_node()
    amount = colander.SchemaNode(AmountType(),
                                 title=u"Montant",
                                 validator=deferred_total_validator,
                                 default=deferred_amount_default)
    mode = colander.SchemaNode(colander.String(),
                               title=u"Mode de paiement",
                               widget=deferred_payment_mode_widget,
                               validator=deferred_payment_mode_validator)
    resulted = colander.SchemaNode(
        colander.Boolean(),
        title=u"Soldé",
        description="""Indique que le document est soldé (
ne recevra plus de paiement), si le montant indiqué correspond au
montant de la facture celle-ci est soldée automatiquement""",
        default=False)
Ejemplo n.º 10
0
class CompanySchema(colander.MappingSchema):
    """
        Company add/edit form schema
    """
    user_id = forms.id_node()
    name = colander.SchemaNode(colander.String(),
                               widget=deferred_edit_adminonly_widget,
                               title=u'Nom')

    goal = colander.SchemaNode(colander.String(),
                               title=u"Descriptif de l'activité")

    activities = CompanyActivitySchema(
        title=u"Domaines d'activité",
        missing=colander.drop,
    )

    email = forms.mail_node(missing=u'')

    phone = colander.SchemaNode(colander.String(),
                                title=u'Téléphone',
                                missing=u'')

    mobile = colander.SchemaNode(colander.String(),
                                 title=u'Téléphone portable',
                                 missing=u'')

    logo = files.ImageNode(
        title="Choisir un logo",
        missing=colander.drop,
    )
    header = files.ImageNode(
        widget=deferred_upload_header_widget,
        title=u'Entête des fichiers PDF',
        missing=colander.drop,
        description=u"Le fichier est idéalement au format 5/1 (par exemple \
1000px x 200 px)",
    )

    # Fields specific to the treasury
    code_compta = colander.SchemaNode(
        colander.String(),
        title=u"Compte analytique",
        description=u"Compte analytique utilisé dans le logiciel de \
comptabilité",
        missing="")

    contribution = colander.SchemaNode(
        QuantityType(),
        widget=deform.widget.TextInputWidget(input_append="%",
                                             css_class="col-md-1"),
        validator=colander.Range(
            min=0,
            max=100,
            min_err=u"Veuillez fournir un nombre supérieur à 0",
            max_err=u"Veuillez fournir un nombre inférieur à 100"),
        title=u"Contribution à la CAE",
        missing=colander.drop,
        description=u"Pourcentage que cette entreprise contribue à la CAE",
    )

    cgv = forms.textarea_node(
        title=u"Conditions générales complémentaires",
        richwidget=True,
        missing="",
    )

    RIB = colander.SchemaNode(colander.String(), title=u'RIB', missing=u'')

    IBAN = colander.SchemaNode(colander.String(), title=u'IBAN', missing=u'')

    come_from = forms.come_from_node()
Ejemplo n.º 11
0
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),
    )