Exemple #1
0
def get_operation_list_schema():
    """
    Build a schema listing operations
    """
    schema = BaseListsSchema().clone()
    del schema['search']
    schema.insert(
        0,
        colander.SchemaNode(
            colander.Boolean(),
            name='include_associated',
            title="",
            label=u"Inclure les opérations associées à une entreprise",
            default=True,
            missing=colander.drop,
        )
    )
    schema.insert(
        0,
        colander.SchemaNode(
            colander.String(),
            name='analytical_account',
            title="",
            widget=deferred_analytical_account_widget,
            missing=colander.drop,
        )
    )
    schema.insert(
        0,
        colander.SchemaNode(
            colander.String(),
            name='general_account',
            title="",
            widget=deferred_general_account_widget,
            missing=colander.drop,
        )
    )
    schema.insert(
        0,
        colander.SchemaNode(
            colander.Integer(),
            name='company_id',
            title="",
            widget=deferred_company_id_widget,
            missing=colander.drop
        )
    )

    return schema
Exemple #2
0
class ListCommentSchema(PaginatedSchema, SearchableSchema):
    """An API schema for bodhi.server.services.comments.query_comments()."""

    updates = Updates(
        colander.Sequence(accept_scalar=True),
        location="querystring",
        missing=None,
        preparer=[util.splitter],
    )

    packages = Packages(
        colander.Sequence(accept_scalar=True),
        location="querystring",
        missing=None,
        preparer=[util.splitter],
    )

    user = Users(
        colander.Sequence(accept_scalar=True),
        location="querystring",
        missing=None,
        preparer=[util.splitter],
    )

    update_owner = Users(
        colander.Sequence(accept_scalar=True),
        location="querystring",
        missing=None,
        preparer=[util.splitter],
    )

    ignore_user = Users(
        colander.Sequence(accept_scalar=True),
        location="querystring",
        missing=None,
        preparer=[util.splitter],
    )

    anonymous = colander.SchemaNode(
        colander.Boolean(true_choices=('true', '1')),
        location="querystring",
        missing=None,
    )

    since = colander.SchemaNode(
        colander.DateTime(),
        location="querystring",
        missing=None,
    )
Exemple #3
0
class ExpenseConfig(colander.MappingSchema):
    """
        Schema for the configuration of different expense types
    """
    id = forms.id_node()
    active = colander.SchemaNode(
        colander.Boolean(),
        title=u"Actif",
        default=True,
        description=u"En décochant cette entrée, elle n'apparaîtra plus dans \
l'interface, mais restera associée aux notes de frais existantes.")

    label = colander.SchemaNode(colander.String(),
                                title=u"Libellé",
                                validator=colander.Length(max=50))

    code = colander.SchemaNode(colander.String(),
                               title=u"Compte de charge de la dépense",
                               validator=colander.Length(max=15))

    code_tva = colander.SchemaNode(colander.String(),
                                   title=u"Code TVA (si nécessaire)",
                                   missing="",
                                   validator=colander.Length(max=15))

    compte_tva = colander.SchemaNode(colander.String(),
                                     title=u"Compte de TVA déductible",
                                     missing="",
                                     validator=colander.Length(max=15))

    contribution = colander.SchemaNode(
        colander.Boolean(),
        title=u"Contribution",
        description=u"Ce type de frais est-il intégré dans la contribution \
à la CAE ?",
    )
Exemple #4
0
    def __init__(self, *args, **kw):
        super().__init__(*args, **kw)

        self.available_types: List[str] = []

        self._add_value_node("string", colander.String())
        self._add_value_node("liste", colander.String())
        self._add_value_node("boolean", colander.Boolean())
        self._add_value_node("int", colander.Int())
        self._add_value_node("float", colander.Float())
        self._add_value_node("url", colander.String(), validator=url)
        self._add_value_node("json",
                             colander.String(),
                             widget=TextAreaWidget(rows=10),
                             validator=json_validator)
Exemple #5
0
class BaseLineSchema(colander.MappingSchema):
    """
        Base Expenseline schema
    """
    date = forms.today_node(missing=forms.deferred_today)
    category = colander.SchemaNode(
        colander.String(),
        validator=colander.OneOf(('1', '2'))
        )
    description = colander.SchemaNode(colander.String(), missing=u'')
    valid = colander.SchemaNode(colander.Boolean(), missing=False)
    type_id = colander.SchemaNode(
        colander.Integer(),
        validator=deferred_type_id_validator,
        )
Exemple #6
0
    def __init__(self, *args, **kw):
        super().__init__(*args, **kw)

        self.available_types = []

        self._add_value_node('string', colander.String())
        self._add_value_node('liste', colander.String())
        self._add_value_node('boolean', colander.Boolean())
        self._add_value_node('int', colander.Int())
        self._add_value_node('float', colander.Float())
        self._add_value_node('url', colander.String(), validator=url)
        self._add_value_node('json',
                             colander.String(),
                             widget=TextAreaWidget(rows=10),
                             validator=json_validator)
class BannerSchema(CSRFSchema):
    title = colander.SchemaNode(colander.String())
    image = colander.SchemaNode(
            deform.FileData(),
            widget=deform.widget.FileUploadWidget(tmpstore),
            validator=image_validator,
            missing=None
            )

    url = colander.SchemaNode(colander.String(), validator=url_validator)
    visible = colander.SchemaNode(
            colander.Boolean(),
            widget=deform.widget.CheckboxWidget(),
            default=True
            )
Exemple #8
0
class SchemaValidator(colander.MappingSchema):
    project = colander.SchemaNode(ProjectRef())
    name = colander.SchemaNode(colander.String(), validator=database_name)
    label = colander.SchemaNode(colander.String(),
                                validator=colander.Length(min=3))
    label_in = colander.SchemaNode(colander.String(),
                                   missing=None,
                                   validator=colander.Length(min=3))
    label_out = colander.SchemaNode(colander.String(),
                                    missing=None,
                                    validator=colander.Length(min=3))
    hidden = colander.SchemaNode(colander.Boolean(), missing=False)
    obj = colander.SchemaNode(colander.String(),
                              validator=colander.OneOf(['entity', 'relation']))
    attributes = Attributes()
Exemple #9
0
class ContactFormSchema(ContentSchema):

    recipient = colander.SchemaNode(colander.String())
    body = colander.SchemaNode(
        colander.String(),
        widget=RichTextWidget(theme='advanced', width=790, height=500),
        missing=u"",
    )
    show_attachment = colander.SchemaNode(
        colander.Boolean(),
        title=_(u"Show attachment"),
        description=_(u"If activated, the user can upload an attachment."),
        default=True,
        missing=True,
    )
Exemple #10
0
 def setUp(self):
     super(PatchTest, self).setUp()
     self.stored = self.model.create_record({})
     self.resource.record_id = self.stored['id']
     self.resource.request.json = {'data': {'position': 10}}
     schema = ResourceSchema()
     schema.add(
         colander.SchemaNode(colander.Boolean(),
                             name='unread',
                             missing=colander.drop))
     schema.add(
         colander.SchemaNode(colander.Int(),
                             name='position',
                             missing=colander.drop))
     self.resource.mapping = schema
     self.result = self.resource.patch()['data']
Exemple #11
0
class AuthSchema(BaseAuthSchema):
    """
        Schema for authentication form
    """
    nextpage = colander.SchemaNode(
        colander.String(),
        widget=deform.widget.HiddenWidget(),
        missing=colander.drop,
    )
    remember_me = colander.SchemaNode(
        colander.Boolean(),
        widget=deform.widget.CheckboxWidget(),
        label=u"Rester connecté",
        title="",
        missing=False,
    )
Exemple #12
0
class ListSchema(colander.Schema):
    tahun_fltr = colander.SchemaNode(
        colander.Integer(),
        title="Tahun",
        oid="tahun_fltr",
    )
    tanggal_fltr = colander.SchemaNode(
        colander.Date(),
        missing=colander.drop,
        oid="tanggal_fltr",
    )
    tanggal_to_fltr = colander.SchemaNode(
        colander.Date(),
        oid="tanggal_to_fltr",
    )
    posted_fltr = colander.SchemaNode(colander.Boolean(), oid='posted_fltr')
Exemple #13
0
class CommentSchema(VisualisableElementSchema):
    """Schema for comment"""

    name = NameSchemaNode(editing=context_is_a_comment, )

    intention = colander.SchemaNode(colander.String(),
                                    widget=intention_choice,
                                    title=_('Intention'),
                                    description=_('Choose your intention'),
                                    default=_('Remark'))

    associated_contents = colander.SchemaNode(
        colander.Set(),
        widget=relatedcontents_choice,
        title=_('Associated contents'),
        description=_('Choose contents to associate'),
        missing=[],
        default=[],
    )

    files = colander.SchemaNode(
        colander.Sequence(),
        colander.SchemaNode(ObjectData(File),
                            name=_("File"),
                            widget=get_file_widget()),
        widget=FilesWidget(
            add_subitem_text_template='',
            item_css_class="files-block comment-form-group comment-files"),
        missing=[],
        description=_('Add files to your comment'),
        title=_('Attached files'),
    )

    comment = colander.SchemaNode(colander.String(),
                                  validator=colander.Length(max=2000),
                                  widget=comment_textarea,
                                  title=_("Message"))

    anonymous = colander.SchemaNode(
        colander.Boolean(),
        widget=deform.widget.CheckboxWidget(
            item_css_class="comment-form-group comment-anonymous-form"),
        label=_('Remain anonymous'),
        description=_('Check this box if you want to remain anonymous.'),
        title='',
        missing=False,
        default=False)
Exemple #14
0
class AdvertisingSchema(VisualisableElementSchema, SearchableEntitySchema):
    """Schema for advertising"""

    visibility_dates = colander.SchemaNode(
        colander.String(),
        validator=dates_validator,
        widget=DateIcalWidget(),
        title=_('Dates'),
        )

    request_quotation = colander.SchemaNode(
        colander.Boolean(),
        widget=deform.widget.CheckboxWidget(),
        label=_('Request for quotation'),
        title='',
        missing=False
        )
Exemple #15
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,
    )
Exemple #16
0
class NewsletterRecConf(Schema):
    """Schema for newsletter conf"""

    recurrence = colander.SchemaNode(
        colander.Boolean(),
        widget=deform.widget.CheckboxWidget(),
        label=_('Recurring automatic sending'),
        description=_('Activate the automatic sending'),
        title='',
        missing=False)

    sending_date = colander.SchemaNode(colander.Date(),
                                       title=_('Next sending date'))

    recurrence_nb = colander.SchemaNode(colander.Int(),
                                        title=_('Frequency/days'),
                                        default=7)
Exemple #17
0
class NotificationConfigurationSchema(Schema):
    """Schema for site configuration."""

    activate_push_notification = colander.SchemaNode(
        colander.Boolean(),
        widget=deform.widget.CheckboxWidget(),
        label=_('Activate the push notifications on the browser'),
        title='',
        missing=False)

    app_id = colander.SchemaNode(colander.String(),
                                 title=_('Application id'),
                                 missing="")

    app_key = colander.SchemaNode(colander.String(),
                                  title=_('REST API Key'),
                                  missing="")
Exemple #18
0
class CreateAuthClientSchema(CSRFSchema):
    name = colander.SchemaNode(
        colander.String(),
        title=_("Name"),
        hint=_("This will be displayed to users in the " "authorization prompt"),
    )

    authority = colander.SchemaNode(
        colander.String(),
        title=_("Authority"),
        hint=_("Set of users whose data this client " "can interact with"),
    )

    grant_type = colander.SchemaNode(
        GrantTypeSchemaType(),
        missing=None,
        title=_("Grant type"),
        hint=_(
            '"authorization_code" for most applications, '
            '"jwt_bearer" for keys for JWT grants used by publishers, '
            '"client_credentials" for allowing access to the user creation API'
        ),
    )

    trusted = colander.SchemaNode(
        colander.Boolean(),
        missing=False,
        widget=deform.widget.CheckboxWidget(
            omit_label=False, css_class="form-checkbox--inline"
        ),
        title=_("Trusted ⚠️"),
        hint=_(
            "Trusted clients do not require user approval. "
            "⚠️ Only enable this for official Hypothesis clients."
        ),
    )

    redirect_url = colander.SchemaNode(
        colander.String(),
        missing=None,
        title=_("Redirect URL"),
        hint=_(
            "The browser will redirect to this URL after "
            'authorization. Required if grant type is "authorization_code"'
        ),
    )
Exemple #19
0
class InvitationSchema(PersonSchema):
    """Schema for invitation"""

    roles = colander.SchemaNode(
        colander.Set(),
        widget=roles_choice,
        validator=colander.All(roles_validator),
        title=_('Roles'),
        missing=DEFAULT_ROLES,
        default=DEFAULT_ROLES,
    )

    ismanager = colander.SchemaNode(colander.Boolean(),
                                    widget=deform.widget.CheckboxWidget(),
                                    label=_('Is the manager'),
                                    title='',
                                    missing=False)
Exemple #20
0
class LineItemSchema(colander.MappingSchema):
    item_id = colander.SchemaNode(colander.String(),
                                  validator=colander.Length(max=31),
                                  missing=colander.drop)
    name = colander.SchemaNode(colander.String(),
                               validator=colander.Length(max=31),
                               missing=colander.drop)
    description = colander.SchemaNode(colander.String(),
                                      validator=colander.Length(max=255),
                                      missing=colander.drop)
    quantity = colander.SchemaNode(colander.Integer(),
                                   validator=colander.Range(min=0, max=99),
                                   missing=colander.drop)
    unit_price = colander.SchemaNode(colander.Decimal('0.01'),
                                     validator=colander.Range(min=0),
                                     missing=colander.drop)
    taxable = colander.SchemaNode(colander.Boolean(), missing=colander.drop)
Exemple #21
0
def get_list_schema(company=False):
    """
    Return a schema for filtering workshop list
    """
    schema = lists.BaseListsSchema().clone()

    schema.insert(
        0,
        forms.today_node(
            name='date',
            default=colander.null,
            missing=colander.drop,
            description=u"Date de l'atelier",
            widget_options={'css_class': 'input-medium search-query'},
        ))

    if not company:
        schema.insert(0,
                      participant_filter_node_factory(name='participant_id'))
        notfilled_node = colander.SchemaNode(
            colander.Boolean(),
            name='notfilled',
            title="",
            description=u"N'afficher que les ateliers non renseignés",
            missing=colander.drop,
        )
        schema.insert(1, notfilled_node)

    year = forms.year_select_node(
        name='year',
        query_func=get_invoice_years,
        widget_options={'default_val': (-1, u"Toutes les années")},
        missing=colander.null,
        description=u"Année")
    schema.insert(0, year)

    info_id_1 = colander.SchemaNode(
        colander.Integer(),
        name='info_1_id',
        missing=colander.drop,
        widget=deferred_filter_info1,
    )
    schema.insert(0, info_id_1)

    schema['search'].description = u"Intitulé de l'atelier"
    return schema
Exemple #22
0
class ListReleaseSchema(PaginatedSchema):
    """
    An API schema for listing releases.

    This schema is used by bodhi.server.services.releases.query_releases_html() and
    bodhi.server.services.releases.query_releases_json().
    """

    ids = ReleaseIds(
        colander.Sequence(accept_scalar=True),
        location="querystring",
        missing=None,
        preparer=[util.splitter],
    )

    name = colander.SchemaNode(
        colander.String(),
        location="querystring",
        missing=None,
    )

    updates = Updates(
        colander.Sequence(accept_scalar=True),
        location="querystring",
        missing=None,
        preparer=[util.splitter],
    )

    packages = Packages(
        colander.Sequence(accept_scalar=True),
        location="querystring",
        missing=None,
        preparer=[util.splitter],
    )

    state = colander.SchemaNode(
        colander.String(),
        validator=colander.OneOf(list(ReleaseState.values())),
        missing=None,
    )

    exclude_archived = colander.SchemaNode(
        colander.Boolean(true_choices=('true', '1')),
        location="querystring",
        missing=None,
    )
Exemple #23
0
class Account(colander.MappingSchema):
    """
    {
        "name": "UniqueNameNoSpaces",
        "full_name": "Account name with spaces",
        "active": True,
        "website": "http://www.example.com",
        "email": "*****@*****.**"
        "vat": 21
    }
    """
    name = colander.SchemaNode(colander.String())
    full_name = colander.SchemaNode(colander.String())
    email = colander.SchemaNode(colander.Email())
    active = colander.SchemaNode(colander.Boolean())
    website = colander.SchemaNode(colander.String())
    vat = colander.SchemaNode(colander.Int())
Exemple #24
0
class _EmployeeSchema(ResourceSchema):
    photo = colander.SchemaNode(File(),
                                missing=None,
                                validator=photo_validator)
    delete_photo = colander.SchemaNode(
        colander.Boolean(),
        missing=False,
    )
    first_name = colander.SchemaNode(colander.String(), )
    last_name = colander.SchemaNode(colander.String(), )
    second_name = colander.SchemaNode(colander.String(), missing=None)
    itn = colander.SchemaNode(colander.String(),
                              missing=None,
                              validator=colander.Length(min=2, max=32))
    dismissal_date = colander.SchemaNode(Date(), missing=None)
    contact_id = colander.SchemaNode(colander.Set(), missing=[])
    passport_id = colander.SchemaNode(colander.Set(), missing=[])
    address_id = colander.SchemaNode(colander.Set(), missing=[])
    upload_id = colander.SchemaNode(colander.Set(), missing=[])

    def deserialize(self, cstruct):
        if ('contact_id' in cstruct
                and not isinstance(cstruct.get('contact_id'), list)):
            val = cstruct['contact_id']
            cstruct['contact_id'] = list()
            cstruct['contact_id'].append(val)

        if ('passport_id' in cstruct
                and not isinstance(cstruct.get('passport_id'), list)):
            val = cstruct['passport_id']
            cstruct['passport_id'] = list()
            cstruct['passport_id'].append(val)

        if ('address_id' in cstruct
                and not isinstance(cstruct.get('address_id'), list)):
            val = cstruct['address_id']
            cstruct['address_id'] = list()
            cstruct['address_id'].append(val)

        if ('upload_id' in cstruct
                and not isinstance(cstruct.get('upload_id'), list)):
            val = cstruct['upload_id']
            cstruct['upload_id'] = list()
            cstruct['upload_id'].append(val)

        return super(_EmployeeSchema, self).deserialize(cstruct)
Exemple #25
0
class Webhook(Base):
    __tablename__ = 'webhooks'
    id = Column(Integer,
                primary_key=True,
                info={'colanderalchemy': {
                    'typ': colander.Integer(),
                }})
    owner_id = Column(Integer,
                      ForeignKey('users.id'),
                      info={'colanderalchemy': {
                          'typ': colander.Integer(),
                      }})
    carrier_id = Column(
        Integer,
        ForeignKey('carriers.id'),
        info={'colanderalchemy': {
            'typ': colander.Integer(),
        }})
    hook_url = Column(Text,
                      info={
                          'colanderalchemy': {
                              'typ': colander.String(),
                              'title': 'Webhook URL'
                          }
                      })
    hook_type = Column(Text,
                       info={
                           'colanderalchemy': {
                               'typ': colander.String(),
                               'title': 'Webhook type'
                           }
                       })
    enabled = Column(Boolean,
                     default=True,
                     info={
                         'colanderalchemy': {
                             'typ': colander.Boolean(),
                             'title': 'Boolean'
                         }
                     })
    jumpEvents = Column(Boolean, default=True)
    marketEvents = Column(Boolean, default=True)
    calendarEvents = Column(Boolean, default=True)
    isGlobal = Column(Boolean, default=False)
    description = Column(Text)
Exemple #26
0
def validate(obj_type, obj, project, schema, properties):
    """ Compile a validator for the given set of properties, based on
    the available schemata. """

    validator = colander.SchemaNode(colander.Mapping(), name='properties')
    for attr in schema.attributes:
        attrib = colander.SchemaNode(colander.Mapping(),
                                     name=attr.name,
                                     missing=colander.null)

        if attr.name == 'name' and obj_type == 'entity':
            attrib.add(
                colander.SchemaNode(colander.String(),
                                    missing=colander.required,
                                    name='value',
                                    validator=validate_name(project, obj)))
        else:
            T = DATATYPE_TYPES.get(attr.datatype)
            attrib.add(colander.SchemaNode(T, missing=None, name='value'))
            # add precision field to datetime attribute validator
            if attr.datatype == 'datetime':
                attrib.add(
                    colander.SchemaNode(
                        colander.String(),
                        missing=None,
                        name='value_precision',
                        validator=colander.OneOf(DATETIME_PRECISION)))

        attrib.add(
            colander.SchemaNode(colander.Boolean(),
                                default=True,
                                missing=True,
                                name='active'))
        attrib.add(
            colander.SchemaNode(colander.String(),
                                missing=None,
                                name='source_url'))
        validator.add(attrib)

    properties = validator.deserialize(properties)
    out = {}
    for k, v in properties.items():
        if v != colander.null:
            out[k] = v
    return out
Exemple #27
0
class SaveReleaseSchema(CSRFProtectedSchema, colander.MappingSchema):
    """An API schema for bodhi.server.services.releases.save_release()."""

    name = colander.SchemaNode(colander.String(), )
    long_name = colander.SchemaNode(colander.String(), )
    version = colander.SchemaNode(
        colander.String(),
        missing=None,
    )
    branch = colander.SchemaNode(colander.String(), )
    id_prefix = colander.SchemaNode(colander.String(), )
    dist_tag = colander.SchemaNode(colander.String(), )
    stable_tag = colander.SchemaNode(colander.String(), )
    testing_tag = colander.SchemaNode(colander.String(), )
    candidate_tag = colander.SchemaNode(colander.String(), )
    pending_signing_tag = colander.SchemaNode(
        colander.String(),
        missing="",
    )
    pending_testing_tag = colander.SchemaNode(
        colander.String(),
        missing="",
    )
    pending_stable_tag = colander.SchemaNode(
        colander.String(),
        missing="",
    )
    override_tag = colander.SchemaNode(colander.String(), )
    state = colander.SchemaNode(
        colander.String(),
        validator=colander.OneOf(list(ReleaseState.values())),
        missing="disabled",
    )
    edited = colander.SchemaNode(
        colander.String(),
        missing=None,
    )
    mail_template = colander.SchemaNode(
        colander.String(),
        missing="fedora_errata_template",
        validator=colander.OneOf(MAIL_TEMPLATES))
    composed_by_bodhi = colander.SchemaNode(
        colander.Boolean(true_choices=('true', '1')),
        missing=True,
    )
Exemple #28
0
class NewsletterSchema(VisualisableElementSchema):
    """Schema for newsletter"""

    name = NameSchemaNode(editing=context_is_a_newsletter, )

    subject = colander.SchemaNode(
        colander.String(),
        title=_('Subject'),
        default=default_subject,
        description=_('The subject of the newsletter.'))

    description = colander.SchemaNode(colander.String(),
                                      widget=deform.widget.TextAreaWidget(
                                          rows=4, cols=60),
                                      title=_("Description"))

    content_template = colander.SchemaNode(
        ObjectData(File),
        widget=get_file_widget(file_extensions=['html']),
        title=_('Content template'),
        missing=None,
        description=_("Only HTML files are supported."),
    )

    content = colander.SchemaNode(
        colander.String(),
        widget=RichTextWidget(),
        default=default_content,
        missing='',
        title=_("Content"),
        description=_("The content to send."),
    )

    recurrence = colander.SchemaNode(colander.Boolean(),
                                     widget=deform.widget.CheckboxWidget(),
                                     label=_('Sends automatic'),
                                     title='',
                                     missing=False)

    sending_date = colander.SchemaNode(colander.Date(),
                                       title=_('Sending date'))

    recurrence_nb = colander.SchemaNode(colander.Int(),
                                        title=_('Frequency/days'),
                                        default=7)
Exemple #29
0
class TrueFalseQuestion(colander.Schema):
    description = colander.SchemaNode(
        colander.String(),
        name=models.TrueFalseQuestion.description.name,
        widget=deform.widget.RichTextWidget(delayed_load=True),
        description='Enter the question description',
    )
    correct_answer = colander.SchemaNode(
        colander.Boolean(true_choices=TRUE_CHOICES,
                         false_choices=FALSE_CHOICES,
                         false_val=0,
                         true_val=1),
        name=models.TrueFalseQuestion.correct_answer.name,
        validator=colander.OneOf([x[0] for x in BOOLEAN_RADIO_CHOICES]),
        widget=deform.widget.RadioChoiceWidget(values=BOOLEAN_RADIO_CHOICES,
                                               inline=True),
        title='Choose the correct answer',
    )
Exemple #30
0
class AddSchema(colander.Schema):
    kode = colander.SchemaNode(
                    colander.String(),
                    oid = "kode",
                    title = "Kode")
                    
    nama = colander.SchemaNode(
                    colander.String(),
                    oid = "nama",
                    title = "Nama")
                    
    path = colander.SchemaNode(
                    colander.String(),
                    oid = "path",
                    title = "Path")
                    
    disabled = colander.SchemaNode(
                    colander.Boolean())