Exemple #1
0
class IDXTestDocumentSchema(model.Schema):

    # zope.schema fields
    test_ascii_field = schema.ASCII(required=False)
    test_asciiline_field = schema.ASCIILine(required=False)
    test_bool_field = schema.Bool(required=False)
    test_bytes_field = schema.Bytes(required=False)
    test_bytesline_field = schema.BytesLine(required=False)
    test_choice_field = schema.Choice(values=[u"foo", u"bar"], required=False)
    test_choice_field_with_vocabulary = schema.Choice(
        vocabulary=SimpleVocabulary([
            SimpleTerm(u"value1", "token1", u"title1"),
            SimpleTerm(u"value2", "token2", u"title2"),
        ]),
        required=False,
    )

    test_choice_with_non_iterable_source = schema.Choice(
        required=False, source=my_non_iterable_source)
    test_choice_with_source = schema.Choice(required=False,
                                            source=my_iterable_source)
    test_choice_with_context_source = schema.Choice(
        required=False, source=my_context_source_binder)
    test_choice_with_querysource = schema.Choice(required=False,
                                                 source=my_querysource)
    test_choice_with_context_querysource = schema.Choice(
        required=False, source=my_context_querysource_binder)

    test_date_field = schema.Date(required=False)
    test_datetime_field = schema.Datetime(required=False)
    test_datetime_tz_field = schema.Datetime(
        required=False,
        defaultFactory=lambda: timezone("Europe/Zurich").localize(
            datetime(2017, 10, 31, 10, 0)),
    )
    test_decimal_field = schema.Decimal(required=False)
    test_dict_field = schema.Dict(required=False)
    test_float_field = schema.Float(required=False)
    test_frozenset_field = schema.FrozenSet(required=False)
    test_int_field = schema.Int(required=False)
    test_list_field = schema.List(required=False)
    test_list_field_with_choice_with_vocabulary = schema.List(
        value_type=schema.Choice(vocabulary=SimpleVocabulary([
            SimpleTerm(u"value1", "token1", u"title1"),
            SimpleTerm(u"value2", "token2", u"title2"),
            SimpleTerm(u"value3", "token3", u"title3"),
        ])),
        required=False,
    )
    test_set_field = schema.Set(required=False)
    test_set_field_with_choice_with_vocabulary = schema.Set(
        value_type=schema.Choice(vocabulary=SimpleVocabulary([
            SimpleTerm(u"value1", "token1", u"title1"),
            SimpleTerm(u"value2", "token2", u"title2"),
            SimpleTerm(u"value3", "token3", u"title3"),
        ])),
        required=False,
    )
    test_text_field = schema.Text(required=False)
    test_textline_field = schema.TextLine(required=False)
    test_time_field = schema.Time(required=False)
    test_timedelta_field = schema.Timedelta(required=False)
    test_tuple_field = schema.Tuple(required=False)
    test_nested_list_field = schema.List(required=False,
                                         value_type=schema.Tuple())
    test_nested_dict_field = schema.Dict(required=False,
                                         key_type=schema.ASCIILine(),
                                         value_type=schema.Tuple())
    test_list_choice_with_context_vocabulary_field = schema.List(
        title=u"Field",
        value_type=schema.Choice(
            vocabulary="plone.restapi.testing.context_vocabulary"),
        required=False,
    )

    # plone.app.textfield
    test_richtext_field = RichText(
        required=False, allowed_mime_types=["text/html", "text/plain"])

    # plone.namedfile fields
    test_namedfile_field = namedfile.NamedFile(required=False)
    test_namedimage_field = namedfile.NamedImage(required=False)
    test_namedblobfile_field = namedfile.NamedBlobFile(required=False)
    test_namedblobimage_field = namedfile.NamedBlobImage(required=False)

    # z3c.relationfield
    test_relationchoice_field = RelationChoice(
        required=False, source=CatalogSource(id=["doc1", "doc2"]))
    test_relationlist_field = RelationList(
        required=False,
        value_type=RelationChoice(vocabulary="plone.app.vocabularies.Catalog"),
    )

    # Test fields for validation
    test_required_field = schema.TextLine(required=True)
    test_readonly_field = schema.TextLine(required=False, readonly=True)
    test_maxlength_field = schema.TextLine(required=False, max_length=10)
    test_constraint_field = schema.TextLine(required=False,
                                            constraint=lambda x: u"00" in x)
    test_datetime_min_field = schema.Datetime(required=False,
                                              min=datetime(2000, 1, 1))
    test_time_min_field = schema.Time(required=False, min=time(1))
    test_timedelta_min_field = schema.Timedelta(required=False,
                                                min=timedelta(100))
    test_list_value_type_field = schema.List(required=False,
                                             value_type=schema.Int())
    test_dict_key_type_field = schema.Dict(required=False,
                                           key_type=schema.Int())

    read_permission(test_read_permission_field="cmf.ManagePortal")
    test_read_permission_field = schema.TextLine(required=False)
    write_permission(test_write_permission_field="cmf.ManagePortal")
    test_write_permission_field = schema.TextLine(required=False)

    read_permission(test_read_permission_field="cmf.ManagePortal")
    test_read_permission_field = schema.TextLine(required=False)

    test_invariant_field1 = schema.TextLine(required=False)
    test_invariant_field2 = schema.TextLine(required=False)

    test_missing_value_field = schema.TextLine(required=False,
                                               missing_value=u"missing",
                                               default=u"default")

    test_missing_value_required_field = schema.TextLine(
        required=True, missing_value=u"missing", default=u"some value")

    @invariant
    def validate_same_value(data):
        if data.test_invariant_field1 != data.test_invariant_field2:
            raise Invalid(u"Must have same values")

    # Test fields with default values
    test_default_value_field = schema.TextLine(required=True,
                                               default=u"Default")

    @provider(IContextAwareDefaultFactory)
    def default_factory(context):
        return u"DefaultFactory"

    test_default_factory_field = schema.TextLine(
        required=True, defaultFactory=default_factory)
class IPrintable(Interface):
    """An object which contains content wich can be printed to a pdf document.
    Should it be part of tutorial????
    """

    title = schema.TextLine(title=_(u"Object title"), required=True)
class IClass(Interface):
    """An object which describes classes belonging to a specific school.
    """
    title = schema.TextLine(title=_(u"Object title"), required=True)
Exemple #4
0
class IBioSQLDatabase(IBioSQLProxy):
    """ IReadContainer  """
    id = schema.TextLine(title=_(u"biodatabase_id"), required=True)
    # authority = schema.TextLine(title=_(u"authority"))
    description = schema.Text(title=_(u"description"))
class ISponsor(Interface):
    """An object which contains contains information related to sponsors, displayed on the site.
    """

    title = schema.TextLine(title=_(u"Object title"), required=True)
Exemple #6
0
class IMammoth(interface.Interface):
    name = schema.TextLine(title=u"Name")
    size = schema.TextLine(title=u"Size")
Exemple #7
0
class ICountrySelectTile(IPersistentCoverTile):

    title = schema.TextLine(
        title=_(u'Title'),
        required=False,
    )
Exemple #8
0
class IContentMetadata(model.Schema):
    """ FISE specific content metadata
    """
    # directives.fieldset('fise-metadata', label="Forests Metadata", fields=[
    #     'nuts_level',
    # ])

    resource_type = schema.Choice(
        title=u'Resource type',
        # description=u"Type of result; for NFI the values are taken from the"
        #             u"'Result format' field",
        vocabulary="collective.taxonomy.resource_type",
        required=False,
    )

    nuts_level = schema.Tuple(
        title=u"NUTS Levels",
        description=u"Nomenclature of territorial units for statistics level",
        value_type=schema.Choice(vocabulary="collective.taxonomy.nuts_levels"),
        required=False,
        missing_value=(),
        default=(),
    )

    dataset = schema.Choice(title=u"Dataset",
                            description=u"The provenance dataset",
                            vocabulary="collective.taxonomy.datasets",
                            required=False)

    data_source = schema.Choice(
        title=u"Data Source",
        description=u"The source for the data (not its publisher!)",
        vocabulary="collective.taxonomy.data_sources",
        required=False,
    )
    # form.widget(
    #     'data_source',
    #     OptgroupFieldWidget,
    #     vocabulary='collective.taxonomy.data_sources'
    # )

    collection_years = JSONField(
        title=u"Collection years",
        description=u"Start year - end year",  # noqa
        schema=COLLECTION_YEARS_SCHEMA,
        default={},
        required=False,
    )

    publisher = schema.Tuple(
        title=u"Publisher",
        description=u"Owner/Responsible Organisation",
        value_type=schema.TextLine(),
        required=False,
        missing_value=(),
        default=(),
    )
    form.widget(  # text with autocomplete
        'publisher',
        AjaxSelectFieldWidget,
        vocabulary='collective.taxonomy.publishers')

    publishing_year = schema.Int(
        title=u"Publishing year",
        required=False,
    )

    external_url = schema.TextLine(title=u"Link to resource", required=False)

    info_level = schema.Choice(
        title=u"Info level",
        vocabulary='collective.taxonomy.info_levels',
        required=False,
    )

    accessibility_level = schema.Choice(
        title=u'Accesibility levels',
        description=u"Level of access, from 'public' to restricted'",
        vocabulary='collective.taxonomy.accessibility_levels',
        required=False,
    )

    geo_coverage = schema.Tuple(
        title=u"Geographical coverage",
        description=u"Geographic areas covered by this resource",
        value_type=schema.Choice(
            vocabulary="collective.taxonomy.geographical_coverage"),
        required=False,
        missing_value=(),
        default=(),
    )
Exemple #9
0
class ITUpSmallProject(model.Schema):
    directives.mode(information="display")
    information = schema.Text(
        title=_(safe_unicode("Information")),
        description=_(safe_unicode(
            "The Dialog to create a new project consists of different "
            "register. Please go through this register and fill in the "
            "appropriate data for your project or choose one of the "
            "options that are provided. You could upload one or more files "
            "to your project on the register 'File Upload' and "
            "'Optional Further File Upload'."))
    )

    dexteritytextindexer.searchable('title')
    title = schema.TextLine(
        title=_(safe_unicode("Title")),
        description=_(safe_unicode(
            'Project Title - minimum 5 and maximum 50 characters')),
        min_length=5,
        max_length=50
    )

    dexteritytextindexer.searchable('description')
    description = schema.Text(
        title=_(safe_unicode("Project Summary")),
    )

    dexteritytextindexer.searchable('details')
    primary('details')
    details = RichText(
        title=_(safe_unicode("Full Project Description")),
        required=False
    )
    model.fieldset('category_compatibility',
                   label=safe_unicode("Categories / Compatibility"),
                   fields=['category_choice', 'compatibility_choice']
                   )

    model.fieldset('legal',
                   label=safe_unicode("Legal"),
                   fields=['licenses_choice', 'title_declaration_legal',
                           'declaration_legal',
                           'accept_legal_declaration']
                   )

    directives.widget(licenses_choice=CheckBoxFieldWidget)
    licenses_choice = schema.List(
        title=_(safe_unicode('License of the uploaded file')),
        description=_(safe_unicode(
            "Please mark one or more licenses you publish your release.")),
        value_type=schema.Choice(source=vocabAvailLicenses),
        required=True,
    )

    directives.mode(title_declaration_legal='display')
    title_declaration_legal = schema.TextLine(
        title=_(safe_unicode("")),
        required=False,
        defaultFactory=legal_declaration_title
    )

    directives.mode(declaration_legal='display')
    declaration_legal = schema.Text(
        title=_(safe_unicode("")),
        required=False,
        defaultFactory=legal_declaration_text
    )

    accept_legal_declaration = schema.Bool(
        title=_(safe_unicode("Accept the above legal disclaimer")),
        description=_(safe_unicode(
            "Please declare that you accept the above legal disclaimer.")),
        required=True
    )

    dexteritytextindexer.searchable('category_choice')
    directives.widget(category_choice=CheckBoxFieldWidget)
    category_choice = schema.List(
        title=_(safe_unicode("Choose your categories")),
        description=_(safe_unicode(
            "Please select the appropriate categories (one or more) for "
            "your project.")),
        value_type=schema.Choice(source=vocabCategories),
        constraint=isNotEmptyCategory,
        required=True
    )

    contactAddress = schema.TextLine(
        title=_(safe_unicode("Contact email-address")),
        description=_(safe_unicode("Contact email-address for the project.")),
        constraint=validateEmail
    )

    directives.mode(tucimageextension='display')
    tucimageextension = schema.TextLine(
        title=_(safe_unicode(
            'The following file extensions are allowed for screenshot '
            'files (upper case and lower case and mix of both):')),
        defaultFactory=allowedimagefileextensions,
    )

    screenshot = NamedBlobImage(
        title=_(safe_unicode("Screenshot of the Tempate")),
        description=_(safe_unicode(
            "Add a screenshot by clicking the 'Browse' button. You could "
            "provide an image of the file format 'png', 'gif' or 'jpg'.")),
        required=True,
        constraint=validateimagefileextension
    )

    releasenumber = schema.TextLine(
        title=_(safe_unicode("Versions Number")),
        description=_(safe_unicode(
            "Version Number of the Template File (up to twelf chars) "
            "which you upload in this project.")),
        default=_(safe_unicode("1.0")),
        max_length=12,
    )

    directives.widget(compatibility_choice=CheckBoxFieldWidget)
    compatibility_choice = schema.List(
        title=_(safe_unicode("Compatible with versions of LibreOffice")),
        description=_(safe_unicode(
            "Please mark one or more program versions with which this "
            "release is compatible with.")),
        value_type=schema.Choice(source=vocabAvailVersions),
        required=True,
        default=[]
    )

    directives.mode(tucfileextension='display')
    tucfileextension = schema.TextLine(
        title=_(safe_unicode(
            'The following file extensions are allowed for template '
            'files (upper case and lower case and mix of both):')),
        defaultFactory=allowedtemplatefileextensions,
    )

    file = NamedBlobFile(
        title=_(safe_unicode("The first file you want to upload.")),
        description=_(safe_unicode("Please upload your file.")),
        required=True,
        constraint=validatetemplatefileextension,
    )

    directives.widget(platform_choice=CheckBoxFieldWidget)
    platform_choice = schema.List(
        title=_(safe_unicode(
            "First uploaded file is compatible with the Platform(s)")),
        description=_(safe_unicode(
            "Please mark one or more platforms with which the uploaded file "
            "is compatible.")),
        value_type=schema.Choice(source=vocabAvailPlatforms),
        required=True,
    )

    model.fieldset('fileset1',
                   label=safe_unicode("File Upload"),
                   fields=['filetitlefield', 'platform_choice',
                           'tucfileextension', 'file', ]
                   )

    directives.mode(filetitlefield='display')
    filetitlefield = schema.TextLine(
        title=_(safe_unicode("The First File You Want To Upload")),
        description=_(safe_unicode(
            "You need only to upload one file to your project. There are "
            "options for further two file uploads if you want to provide "
            "files for different platforms.")),
    )

    model.fieldset('fileset2',
                   label=safe_unicode("Optional Further File Upload"),
                   fields=['filetitlefield1', 'platform_choice1',
                           'tucfileextension1', 'file1',
                           'filetitlefield2', 'platform_choice2',
                           'tucfileextension2', 'file2']
                   )

    directives.mode(filetitlefield1='display')
    filetitlefield1 = schema.TextLine(
        title=_(safe_unicode("Second Release File")),
        description=_(safe_unicode(
            "Here you could add an optional second file to your project, if "
            "the files support different platforms."))
    )

    directives.widget(platform_choice1=CheckBoxFieldWidget)
    platform_choice1 = schema.List(
        title=_(safe_unicode(
            "Second uploaded file is compatible with the Platform(s)")),
        description=_(safe_unicode(
            "Please mark one or more platforms with which the uploaded file "
            "is compatible.")),
        value_type=schema.Choice(source=vocabAvailPlatforms),
        required=False,
    )

    directives.mode(tucfileextension1='display')
    tucfileextension1 = schema.TextLine(
        title=_(safe_unicode(
            'The following file extensions are allowed for template '
            'files (upper case and lower case and mix of both):')),
        defaultFactory=allowedtemplatefileextensions,
    )

    file1 = NamedBlobFile(
        title=_(safe_unicode(
            "The second file you want to upload (this is optional)")),
        description=_(safe_unicode("Please upload your file.")),
        required=False,
        constraint=validatetemplatefileextension,
    )

    directives.mode(filetitlefield2='display')
    filetitlefield2 = schema.TextLine(
        title=_(safe_unicode("Third Release File")),
        description=_(safe_unicode(
            "Here you could add an optional third file to your project, if "
            "the files support different platforms.")),
    )

    directives.widget(platform_choice2=CheckBoxFieldWidget)
    platform_choice2 = schema.List(
        title=_(safe_unicode(
            "Third uploaded file is compatible with the Platform(s))")),
        description=_(safe_unicode(
            "Please mark one or more platforms with which the uploaded file "
            "is compatible.")),
        value_type=schema.Choice(source=vocabAvailPlatforms),
        required=False,
    )

    directives.mode(tucfileextension2='display')
    tucfileextension2 = schema.TextLine(
        title=_(safe_unicode(
            'The following file extensions are allowed for template '
            'files (upper case and lower case and mix of both):')),
        defaultFactory=allowedtemplatefileextensions,
    )

    file2 = NamedBlobFile(
        title=_(safe_unicode(
            "The third file you want to upload (this is optional)")),
        description=_(safe_unicode("Please upload your file.")),
        required=False,
        constraint=validatetemplatefileextension,
    )

    @invariant
    def licensenotchoosen(value):
        if not value.licenses_choice:
            raise Invalid(_(safe_unicode(
                "Please choose a license for your release.")))

    @invariant
    def compatibilitynotchoosen(data):
        if not data.compatibility_choice:
            raise Invalid(_(safe_unicode(
                "Please choose one or more compatible product versions for "
                "your release.")))

    @invariant
    def legaldeclarationaccepted(data):
        if data.accept_legal_declaration is not True:
            raise AcceptLegalDeclaration(
                _(safe_unicode(
                    "Please accept the Legal Declaration about your Release "
                    "and your Uploaded File")))

    @invariant
    def noOSChosen(data):
        if data.file is not None and data.platform_choice == []:
            raise Invalid(_(safe_unicode(
                "Please choose a compatible platform for the uploaded file.")))
Exemple #10
0
class IOrder(Interface):
    """ 訂單 """
    title = schema.TextLine(
        title=_(u"Order Title"),
        description=_(u"Mapping to allPay's MerchantTradeNo"),
        required=True,
    )

    description = schema.Text(
        title=_(u"Description"),
        description=_(u"Mapping to allPay's ItemName"),
        required=False,
    )

    receiver = schema.TextLine(
        title=_(u"Receiver"),
        description=_(u"Receiver name."),
        required=False,
    )

    phone = schema.TextLine(
        title=_(u"Phone"),
        description=_(u"Phone Number."),
        required=False,
    )

    cellPhone = schema.TextLine(
        title=_(u"Cell Phone"),
        description=_(u"Cell Phone number."),
        required=False,
    )

    email = schema.TextLine(
        title=_(u"Email"),
        description=_(u"Email."),
        required=False,
    )


    addr_city = schema.TextLine(
        title=_(u"City"),
        description=_(u"City name."),
        required=False,
    )

    addr_district = schema.TextLine(
        title=_(u"District"),
        description=_(u"District"),
        required=False,
    )

    addr_zip = schema.TextLine(
        title=_(u"ZIP Code"),
        description=_(u"ZIP code"),
        required=False,
    )

    addr_address = schema.TextLine(
        title=_(u"Address"),
        description=_(u"Address"),
        required=False,
    )

    taxId = schema.TextLine(
        title=_(u"Tax ID"),
        description=_(u"Tax ID"),
        required=False,
    )

    companyTitle = schema.TextLine(
        title=_(u"Company Title"),
        description=_(u"Company Title"),
        required=False,
    )

    form.write_permission(productUIDs='cmf.ManagePortal')
    productUIDs = schema.Dict(
        title=_(u"Product UID(s)"),
        description=_(u"Product UID(s) at shopping cart, include qty."),
        key_type=schema.TextLine(title=u"Key"),
        value_type=schema.Int(title=u"Value"),
        required=False,
    )

    form.write_permission(amount='cmf.ManagePortal')
    amount = schema.Int(
        title=_(u"Amount"),
        description=_(u"Amount"),
        required=True,
    )

    form.write_permission(orderState='cmf.ManagePortal')
    orderState = schema.Choice(
        title=_(u"Order State"),
        description=_(u"Order state."),
        vocabulary=ORDER_STATE,
        default=u'ordered',
        required=True,
    )

    result = schema.Dict(
        title=_(u"Trading Results"),
        description=_(u"Trading Results, feedback from allPay."),
        key_type=schema.TextLine(title=u"Key"),
        value_type=schema.TextLine(title=u"Value"),
        required=False,
    )

    logisticsMapResult = schema.Dict(
        title=_(u"Logistics Map Results"),
        description=_(u"Logistics map results, feedback from allPay."),
        key_type=schema.TextLine(title=u"Key"),
        value_type=schema.TextLine(title=u"Value"),
        required=False,
    )

    logisticsExpressResult = schema.Dict(
        title=_(u"Logistics Express Create Results"),
        description=_(u"Logistics express create results, feedback from allPay."),
        key_type=schema.TextLine(title=u"Key"),
        value_type=schema.TextLine(title=u"Value"),
        required=False,
    )
Exemple #11
0
class IProduct(Interface):
    """ 產品 """
    dexteritytextindexer.searchable('title')
    title = schema.TextLine(
        title=_(u"Product Name"),
        required=True,
    )

    productId = schema.TextLine(
        title=_(u"Product Id"),
        required=True,
    )

    description = schema.Text(
        title=_(u"Description"),
        required=False,
    )

    productUrl = schema.URI(
        title=_(u"Pruduct URL"),
        description=_(u"Product introduction web page include http:// or https://"),
        required=False,
    )

    inStock = schema.Bool(
        title=_(u"In Stock?"),
        description=_(u"If In Stock, Please check it."),
        default=True,
        required=False,
    )

    brand = schema.TextLine(
        title=_(u"Brand"),
        description=_(u"Brand name."),
        required=False,
    )

    """
    categoryTag = schema.TextLine(
        title=_(u"Category Tag"),
        description=_(u"Category tag for product, Provider define. Separated by commas."),
        required=False,
    )
    """

    listPrice = schema.Int(
        title=_(u"List Price"),
        description=_(u"The list price of the product."),
        required=True,
    )

    salePrice = schema.Int(
        title=_(u"Sale price"),
        description=_(u"Sale price for the product if different from the list price, must be <= listPrice."),
        required=True,
    )

    image_1 = NamedBlobImage(
        title=_(u"Product Image."),
        description=_(u"Product image for header."),
        required=True,
    )

    image_2 = NamedBlobImage(
        title=_(u"Product Image."),
        description=_(u"Product image."),
        required=False,
    )

    image_3 = NamedBlobImage(
        title=_(u"Product Image."),
        description=_(u"Product image."),
        required=False,
    )

    image_4 = NamedBlobImage(
        title=_(u"Product Image."),
        description=_(u"Product image."),
        required=False,
    )

    image_5 = NamedBlobImage(
        title=_(u"Product Image."),
        description=_(u"Product image."),
        required=False,
    )

 
    """    special = schema.TextLine(
        title=_(u"Special"),
        description=_(u"Used to denote a special offer. Can be used by a publisher to identify unique products, Will be YES, NO or empty."),
        required=False,
    ) """

    # 紅利點數發放比率,以小數點表示百分比
    bonusPoint = schema.Float(
        title=_(u"Bonus Point"),
        description=_(u"Bonus point setting, please filling decimal point. maximum is 0.05 (5%)"),
        default=DEFAULT_BONUS_RATE,
        min=MIN_BONUS_RATE,
        max=MAX_BONUS_RATE,
        required=True,
    )

    # 今日折扣,使用紅利點數可折抵折扣率,以小數點表示百分比
    maxUsedBonus = schema.Float(
        title=_(u"Maximum Used Bonus Points"),
        description=_(u"You can use a maximum bonus points."),
        default=DEFAULT_USED_BONUS_RATE,
        min=MIN_USED_BONUS_RATE,
        max=MAX_USED_BONUS_RATE,
        required=True,
    )

    dexteritytextindexer.searchable('promotionalText')
    promotionalText = RichText(
        title=_(u"Promotional Text"),
        description=_(u"Promotional Text, support html format richtext."),
        required=False,
    )

    # 產品要放在首頁推廣,則本欄必填, 該用 ReviewPortalContent? or ManagePortal? 再考量
    form.write_permission(heroText='cmf.ReviewPortalContent')
    heroText = schema.Text(
        title=_(u"Hero Text"),
        description=_(u"Promotional Text for Hero page"),
        required=False,
    )

    # 運費,以單品計算, 若一張訂單有多樣商品,須依規則另計
    standardShippingCost = schema.Int(
        title=_(u"Standard shipping cost"),
        description=_(u"Usually is the cost for the typical standard, lowest cost shipping method. This is provided for informational purposes and the actual shipping cost could vary depending on the visitor."),
        required=False,
    )

    lastUpdated = schema.Datetime(
        title=_(u"Last Updated"),
        description=_(u"Date of the most recent update to the product."),
        default=datetime.now(),
        required=True,
    )

    sharingText = schema.Text(
        title=_(u"Sharing Text"),
        required=False,
    )
Exemple #12
0
class IProfile(Interface):
    """ 個人頁面,含專家檔案 """
    title = schema.TextLine(
        title=_(u"Profile Name"),
        required=True,
    )

    description = schema.Text(
        title=_(u"Description"),
        required=False,
    )

    isExpert = schema.Bool(
        title=_(u"Is Expert"),
        default=False,
        required=True,
    )

    image = NamedBlobImage(
        title=_(u"Expert Image."),
        description=_(u"Expert image."),
        required=False,
    )

    phone = schema.TextLine(
        title=_(u"Phone"),
        description=_(u"Phone Number."),
        required=False,
    )

    cellPhone = schema.TextLine(
        title=_(u"Cell Phone"),
        description=_(u"Cell Phone number."),
        required=False,
    )

    email = schema.TextLine(
        title=_(u"Email"),
        description=_(u"Email."),
        required=False,
    )

    addr_city = schema.TextLine(
        title=_(u"City"),
        description=_(u"City name."),
        required=False,
    )

    addr_district = schema.TextLine(
        title=_(u"District"),
        description=_(u"District"),
        required=False,
    )

    addr_zip = schema.TextLine(
        title=_(u"ZIP Code"),
        description=_(u"ZIP code"),
        required=False,
    )

    addr_address = schema.TextLine(
        title=_(u"Address"),
        description=_(u"Address"),
        required=False,
    )

    addr2_city = schema.TextLine(
        title=_(u"City"),
        description=_(u"City name."),
        required=False,
    )

    addr2_district = schema.TextLine(
        title=_(u"District"),
        description=_(u"District"),
        required=False,
    )

    addr2_zip = schema.TextLine(
        title=_(u"ZIP Code"),
        description=_(u"ZIP code"),
        required=False,
    )

    addr2_address = schema.TextLine(
        title=_(u"Address"),
        description=_(u"Address"),
        required=False,
    )

    bonus = schema.Int(
        title=_(u"Bonus"),
        description=_(u"Bonus"),
        default=0,
        min=0,
        required=False,
    )
Exemple #13
0
class ITestAnnotationsBehavior(model.Schema):

    test_annotations_behavior_field = schema.TextLine(required=False)
Exemple #14
0
class ITestBehavior(model.Schema):

    test_behavior_field = schema.TextLine(required=False)
Exemple #15
0
class IPerson(IMember, IAtlasContact, ILeadImageBase, IAtlasSocialMediaBase):

    __doc__ = "Person Information"

    # Fieldsets

    model.fieldset(
        'contact',
        label=_(u'Contact Information'),
        fields=contact_fields,
    )

    model.fieldset(
        'professional',
        label=_(u'Professional Information'),
        fields=professional_fields,
    )

    model.fieldset(
        'social-media',
        label=_(u'Social Media'),
        fields=social_media_fields,
    )

    form.omitted(
        'homepage',
        'map_link',
        'leadimage_full_width',
        'leadimage_caption',
        'hr_job_title',
        'hr_admin_area',
        'hr_department',
        'all_emails',
        'sso_principal_name',
        'project_program_team_percent',
        'home_budget',
        'delete_project_program_team_percent',
        'home_cost_center',
        'project_percent',
    )

    form.mode(leadimage_show='hidden')
    form.order_after(leadimage='suffix')

    # Only allow Directory Editors to write to these fields
    form.write_permission(leadimage=ATLAS_DIRECTORY)
    form.write_permission(username=ATLAS_DIRECTORY)
    form.write_permission(classifications=ATLAS_DIRECTORY)
    form.write_permission(primary_profile_url=ATLAS_DIRECTORY)
    form.write_permission(latitude=ATLAS_DIRECTORY)
    form.write_permission(longitude=ATLAS_DIRECTORY)

    # Project / Program Team / Percent
    form.widget(project_program_team_percent=DataGridFieldFactory)
    form.widget(project_percent=DataGridFieldFactory)
    form.write_permission(
        project_program_team_percent=ATLAS_SUPERUSER,
        home_budget=ATLAS_SUPERUSER,
        home_cost_center=ATLAS_SUPERUSER,
        project_percent=ATLAS_SUPERUSER,
    )

    # Internal Fields
    model.fieldset(
        'internal',
        label=_(u'Internal'),
        fields=['project_program_team_percent', 'home_budget'],
    )

    # Fields

    username = schema.TextLine(
        title=_(u"Penn State Username"),
        description=_(u"Of format 'xyz123'"),
        required=True,
    )

    first_name = schema.TextLine(
        title=_(u"First Name"),
        required=True,
    )

    middle_name = schema.TextLine(
        title=_(u"Middle Name"),
        required=False,
    )

    last_name = schema.TextLine(
        title=_(u"Last Name"),
        required=True,
    )

    suffix = schema.TextLine(
        title=_(u"Suffix"),
        required=False,
    )

    classifications = schema.List(
        title=_(u"Classifications"),
        required=True,
        value_type=schema.Choice(vocabulary="agsci.person.classifications"),
    )

    job_titles = schema.List(
        title=_(u"Job Titles"),
        value_type=schema.TextLine(required=True),
        required=True,
    )

    hr_job_title = schema.TextLine(
        title=_(u"HR Job Title"),
        required=False,
    )

    hr_admin_area = schema.TextLine(
        title=_(u"HR Admin Area"),
        required=False,
    )

    hr_department = schema.TextLine(
        title=_(u"HR Department"),
        required=False,
    )

    all_emails = schema.Tuple(
        title=_(u"All Penn State Email Addresses"),
        value_type=schema.TextLine(required=True),
        required=False,
    )

    sso_principal_name = schema.TextLine(
        title=_(u"SSO Principal Name"),
        required=False,
    )

    education = schema.List(
        title=_(u"Education"),
        value_type=schema.TextLine(required=True),
        required=False,
    )

    areas_expertise = schema.List(
        title=_(u"Areas of Expertise"),
        value_type=schema.TextLine(required=True),
        required=False,
    )

    primary_profile_url = schema.TextLine(
        title=_(u"Primary Profile URL"),
        description=_(u"URL of primary profile (if not Extension site)"),
        required=False,
    )

    pronouns = schema.TextLine(title=_(u"Pronouns"),
                               description=_(u"He/Him, She/Her, They/Them"),
                               required=False,
                               max_length=20)

    summary_report_frequency = schema.Choice(
        title=_(u"Summary Report Frequency"),
        description=_(u"Frequency that reports will be emailed."),
        values=[u'No Emails', u'Weekly', u'Daily'],
        default=u'Daily',
        required=True,
    )

    summary_report_blank = schema.Bool(
        title=_(u"Send empty Summary Report Email?"),
        description=
        _(u"If this box is checked, emails will be sent even though no products require action."
          ),
        required=False,
        default=False,
    )

    county = schema.List(
        title=_(u"County/Location"),
        description=_(u""),
        value_type=schema.Choice(vocabulary="agsci.atlas.PersonCounty"),
        required=False)

    home_budget = schema.TextLine(
        title=_(u"Home Budget"),
        required=False,
    )

    home_cost_center = schema.TextLine(
        title=_(u"Home Cost Center"),
        required=False,
    )

    project_program_team_percent = schema.List(
        title=_(u"Project/Program Team and Percent"),
        description=_(u""),
        value_type=DictRow(title=u"Program Team/Percent",
                           schema=IProjectProgramTeamRowSchema),
        required=False)

    project_percent = schema.List(title=_(u"Project Percent"),
                                  description=_(u""),
                                  value_type=DictRow(
                                      title=u"Project Percent",
                                      schema=IProjectPercentRowSchema),
                                  required=False)

    delete_project_program_team_percent = schema.Bool(
        title=_(u"Delete Project/Program Team info"),
        description=_(u""),
        required=False,
        default=False,
    )
class IContactsheetDisplaySettings(IBaseSettings):
    contactsheet_columns = schema.Int(
        title=_(u"label_contactsheet_columns",
            default=u"Number of images before a forced new row (use a high "
                    u"number if you dont want this)"),
        default=3,
        min=1)
    contactsheet_imagewidth = schema.Int(
        title=_(u"label_contactsheet_imagewidth",
            default=u"Width of (each) image (when mouse hovers)"),
        default=400,
        min=50)
    contactsheet_imageheight = schema.Int(
        title=_(u"label_contactsheet_imageheight",
            default=u"Height of (each) image"),
        default=260,
        min=50)
    contactsheet_use_icons = schema.Bool(
        title=_(u"label_contactsheet_use_icons",
            default=u"Use Thumbnail size instead of Size"),
        default=False)
    contactsheet_zoom = schema.Int(
        title=_(u"label_contactsheet_zoom",
            default=u"How many pixels to zoom when mouse over"),
        default=-10)
    contactsheet_overlay_opacity = schema.Choice(
        title=_(u"label_contactsheet_overlay_opacity",
                default=u"Opacity on mouse over"),
        default=0.3,
        vocabulary=SimpleVocabulary([
            SimpleTerm(0, 0,
                _(u"label_contactsheet_overlay_opacity0",
                    default=u"0 Off")),
            SimpleTerm(0.1, 0.1,
                _(u"label_contactsheet_overlay_opacity1",
                    default=u"0.1 Light")),
            SimpleTerm(0.2, 0.2,
                _(u"label_contactsheet_overlay_opacity2", default=u"0.2")),
            SimpleTerm(0.3, 0.3,
                _(u"label_contactsheet_overlay_opacity3", default=u"0.3")),
            SimpleTerm(0.4, 0.4,
                _(u"label_contactsheet_overlay_opacity4",
                    default=u"0.4 Medium")),
            SimpleTerm(0.5, 0.5,
                _(u"label_contactsheet_overlay_opacity5", default=u"0.5")),
            SimpleTerm(0.6, 0.6,
                _(u"label_contactsheet_overlay_opacity6",
                    default=u"0.6")),
            SimpleTerm(0.7, 0.7,
                _(u"label_contactsheet_overlay_opacity7",
                    default=u"0.7 Dark")),
            SimpleTerm(0.8, 0.8,
                _(u"label_contactsheet_overlay_opacity8",
                    default=u"0.8 Very Dark")),
            SimpleTerm(0.9, 0.9,
                _(u"label_contactsheet_overlay_opacity9",
                    default=u"0.9 Almost Black")),
            SimpleTerm(1, 1,
                _(u"label_contactsheet_overlay_opacity10",
                    default=u"1 Pitch Dark")
            )
        ]))

    contactsheet_style = schema.Choice(
        title=_(u"label_contactsheet_style",
                default=u"What stylesheet (css file) to use"),
        default="style.css",
        vocabulary=SimpleVocabulary([
            SimpleTerm("style.css", "style.css",
                _(u"label_contactsheet_style_default",
                    default=u"Default")),
            SimpleTerm("icon_style.css", "icon_style.css",
                _(u"label_contactsheet_style_icon",
                    default=u"Icon style (for small images)")),
            SimpleTerm("icon_style_ii.css", "icon_style_ii.css",
                _(u"label_contactsheet_style_icon_ii",
                    default=u"Icon style no 2")),
            SimpleTerm("icon_style_iii.css", "icon_style_iii.css",
                _(u"label_contactsheet_style_icon_iii",
                    default=u"Icon style no 3")),
            SimpleTerm("no_style.css", "no_style.css",
                _(u"label_contactsheet_style_no",
                    default=u"No style / css file")),
            SimpleTerm("custom_style", "custom_style",
                _(u"label_contactsheet_style_custom",
                    default=u"Custom css file")
            )
        ]))

    contactsheet_custom_style = schema.TextLine(
        title=_(u"label_custom_style",
            default=u"Name of Custom css file if you chose that above"),
        default=u"mycustomstyle.css")
Exemple #17
0
    def test_collection(self):
        field = schema.List(
            title=u'My field',
            description=u'My great field',
            min_length=1,
            value_type=schema.TextLine(title=u'Text',
                                       description=u'Text field',
                                       default=u'Default text'),
            default=['foobar'],
        )
        adapter = getMultiAdapter((field, self.portal, self.request),
                                  IJsonSchemaProvider)

        self.assertEqual(
            {
                'type': 'array',
                'title': u'My field',
                'description': u'My great field',
                'default': ['foobar'],
                'minItems': 1,
                'uniqueItems': False,
                'additionalItems': True,
                'items': {
                    'type': 'string',
                    'title': u'Text',
                    'description': u'Text field',
                    'default': u'Default text',
                }
            }, adapter.get_schema())

        # Test Tuple
        field = schema.Tuple(
            title=u'My field',
            value_type=schema.Int(),
            default=(1, 2),
        )
        adapter = getMultiAdapter((field, self.portal, self.request),
                                  IJsonSchemaProvider)

        self.assertEqual(
            {
                'type': 'array',
                'title': u'My field',
                'description': u'',
                'uniqueItems': True,
                'additionalItems': True,
                'items': {
                    'title': u'',
                    'description': u'',
                    'type': 'integer',
                },
                'default': (1, 2),
            }, adapter.get_schema())

        # Test Set
        field = schema.Set(
            title=u'My field',
            value_type=schema.TextLine(),
        )
        adapter = getMultiAdapter((field, self.portal, self.request),
                                  IJsonSchemaProvider)

        self.assertEqual(
            {
                'type': 'array',
                'title': u'My field',
                'description': u'',
                'uniqueItems': True,
                'additionalItems': True,
                'items': {
                    'title': u'',
                    'description': u'',
                    'type': 'string',
                }
            }, adapter.get_schema())

        # List of choices
        field = schema.List(
            title=u'My field',
            value_type=schema.Choice(vocabulary=self.dummy_vocabulary, ),
        )
        adapter = getMultiAdapter((field, self.portal, self.request),
                                  IJsonSchemaProvider)

        self.assertEqual(
            {
                'type': 'array',
                'title': u'My field',
                'description': u'',
                'uniqueItems': True,
                'additionalItems': True,
                'items': {
                    'title': u'',
                    'description': u'',
                    'type': 'string',
                    'enum': ['foo', 'bar'],
                    'enumNames': ['Foo', 'Bar'],
                    'choices': [('foo', 'Foo'), ('bar', 'Bar')],
                }
            }, adapter.get_schema())
class IDocumento(model.Schema, IDesignPloneContentType):
    """Marker interface for content type Documento"""

    identificativo = schema.TextLine(
        title=_(
            "identificativo_documento_label",
            default="Identificativo del documento.",
        ),
        description=_(
            "identificativo_documento_help",
            default="Un numero identificativo del documento.",
        ),
        required=False,
    )

    tipologia_documento = schema.Choice(
        title=_("tipologia_documento_label",
                default="Tipologia del documento"),
        description=_(
            "tipologia_documento_help",
            default="Seleziona la tipologia del documento.",
        ),
        required=True,
        vocabulary="design.plone.vocabularies.tipologie_documento",
    )

    ufficio_responsabile = RelationList(
        title=_(
            "ufficio_responsabile_documento_label",
            default="Ufficio responsabile del documento",
        ),
        description=_(
            "ufficio_responsabile_documento_help",
            default="Seleziona l'ufficio responsabile di questo documento.",
        ),
        required=False,
        default=[],
        value_type=RelationChoice(
            title=_("Ufficio responsabile"),
            vocabulary="plone.app.vocabularies.Catalog",
        ),
    )

    area_responsabile = RelationList(
        title=_(
            "area_responsabile_label",
            default="Area responsabile del documento",
        ),
        description=_(
            "area_responsabile_help",
            default="Seleziona l'area amministrativa responsabile del "
            "documento.",
        ),
        required=False,
        default=[],
        value_type=RelationChoice(title=_("Area"),
                                  vocabulary="plone.app.vocabularies.Catalog"),
    )

    autori = RelationList(
        title=_(
            "autori_label",
            default="Autore/i",
        ),
        description=_(
            "autori_help",
            default="Seleziona una lista di autori che hanno pubblicato "
            "il documento. Possono essere Persone o Unità Organizzative.",
        ),
        value_type=RelationChoice(vocabulary="plone.app.vocabularies.Catalog"),
        required=False,
        default=[],
    )

    licenza_distribuzione = schema.TextLine(
        title=_("licenza_distribuzione_label",
                default="Licenza di distribuzione"),
        description=_(
            "licenza_distribuzione_help",
            default=
            "La licenza con il quale viene distribuito questo documento.",
        ),
        required=False,
    )

    riferimenti_normativi = BlocksField(
        title=_(
            "riferimenti_normativi_documento_label",
            default="Riferimenti normativi",
        ),
        description=_(
            "riferimenti_normativi_documento_help",
            default="Inserisici del testo di dettaglio per eventuali "
            "riferimenti normativi utili a questo documento.",
        ),
        required=False,
    )

    documenti_allegati = RelationList(
        title=_(
            "documenti_allegati_label",
            default="Documenti allegati",
        ),
        description=_(
            "documenti_allegati_help",
            default="Seleziona una serie di altri contenuti di tipo Documento "
            "che vanno allegati a questo.",
        ),
        default=[],
        required=False,
        value_type=RelationChoice(vocabulary="plone.app.vocabularies.Catalog"),
    )

    # custom widgets
    form.widget(
        "ufficio_responsabile",
        RelatedItemsFieldWidget,
        vocabulary="plone.app.vocabularies.Catalog",
        pattern_options={
            "maximumSelectionSize": 1,
            "selectableTypes": ["UnitaOrganizzativa"],
        },
    )

    form.widget(
        "autori",
        RelatedItemsFieldWidget,
        vocabulary="plone.app.vocabularies.Catalog",
        pattern_options={
            "maximumSelectionSize": 10,
            "selectableTypes": ["Persona", "UnitaOrganizzativa"],
        },
    )
    form.widget(
        "area_responsabile",
        RelatedItemsFieldWidget,
        vocabulary="plone.app.vocabularies.Catalog",
        pattern_options={
            "maximumSelectionSize": 1,
            "selectableTypes": ["UnitaOrganizzativa"],
        },
    )
    form.widget(
        "documenti_allegati",
        RelatedItemsFieldWidget,
        vocabulary="plone.app.vocabularies.Catalog",
        pattern_options={
            "maximumSelectionSize": 10,
            "selectableTypes": ["Documento"]
        },
    )

    #  custom fieldsets
    model.fieldset(
        "descrizione",
        label=_("descrizione_label", default="Descrizione"),
        fields=[
            "ufficio_responsabile",
            "area_responsabile",
            "autori",
            "licenza_distribuzione",
        ],
    )

    model.fieldset(
        "informazioni",
        label=_("informazioni_label", default="Ulteriori informazioni"),
        fields=["riferimenti_normativi", "documenti_allegati"],
    )

    # custom order
    form.order_after(
        ufficio_responsabile="IDescrizioneEstesaDocumento.descrizione_estesa")
    form.order_after(area_responsabile="ufficio_responsabile")
    form.order_after(autori="area_responsabile")
    form.order_after(licenza_distribuzione="autori")
    form.order_after(
        riferimenti_normativi="IAdditionalHelpInfos.ulteriori_informazioni")
    form.order_after(documenti_allegati="riferimenti_normativi")
Exemple #19
0
class IEestecPortalUserDataSchema(IUserDataSchema):
    """Use all the fields from the default user data schema, and add
    various extra fields."""

    lc = schema.Choice(
        title=u"LC",
        vocabulary="lc_list",
        required=True,
        description=u"Select the Local Committee you belong to. If you \
        don't know what this is just leave it at \
        'Observer Candidates'.")

    mobile = schema.TextLine(
        title=u'Mobile',
        description=u"Enter the mobile number on which you are \
        available for the organizers.",
        required=True,
    )

    study_field = schema.Choice(
        title=u'Study Field',
        constraint=Validate.study_fields,
        description=u"Select your study field.",
        values=STUDY_FIELDS,
    )

    birthdate = schema.Date(
        title=u'Birthdate',
        description=u"Select your birthdate.",
        max=date.today(),
        min=date(1964, 1, 1),
        required=True,
    )

    sex = schema.Choice(
        title=u'Sex',
        constraint=Validate.sex,
        description=u"Select your sex.",
        values=SEXES,
    )

    nationality = schema.Choice(title=u'Nationality',
                                constraint=Validate.country,
                                description=u"Passport Details",
                                values=COUNTRIES)

    address = schema.TextLine(
        title=u'Address',
        description=u"Passport Details",
        required=True,
    )

    passport_id = schema.TextLine(
        title=u'Passport ID',
        description=u"Passport Details",
        required=True,
    )

    passport_date_of_issue = schema.Date(
        title=u'Passport date of issue',
        description=u"Passport Details",
        min=date.today().replace(year=date.today().year - 10),
        max=date.today(),
    )

    passport_valid_until = schema.Date(
        title=u'Passport valid until',
        description=u"Passport Details",
        max=date.today().replace(year=date.today().year + 10),
        min=date.today(),
    )

    tshirt_size = schema.Choice(
        title=u'T-Shirt size',
        constraint=Validate.sizes,
        description=u"Select your T-Shirt size.",
        values=TSHIRT_SIZES,
    )

    needs = schema.Text(
        title=u'Special needs',
        description=u"Any special needs? Food allergies? Medical \
        issues? Anything the organizers need to be \
        aware of?",
    )
Exemple #20
0
class IResetPasswordForm(interface.Interface):
    password = schema.Password(title=_(u"Password"))
    confirm_password = schema.Password(title=_(u"Confirm Password"))
    key = schema.TextLine(required=False)
Exemple #21
0
class IMeeting(Interface):
    """ Meeting """
    text = RichText(
        title=_(u"Body text"),
        required=True,
    )

    meeting_type = schema.Choice(
        title=_(u"Meeting type"),
        vocabulary=meeting_types,
        required=True,
    )

    meeting_level = schema.Choice(
        title=_(u"Meeting level"),
        vocabulary=meeting_levels,
        required=True,
    )

    allow_register = schema.Bool(
        title=_(u"Allow users to register to the meeting"),
        required=True,
    )

    allow_register_start = schema.Datetime(
        title=_(u"From"),
        description=_(u"Allow registration starting with this datetime."),
        required=False,
    )

    allow_register_end = schema.Datetime(
        title=_(u"To"),
        description=_(u"Allow registration until this datetime."),
        required=False,
    )

    restrict_content_access = schema.Bool(title=_(
        u"Hide the content of Additional materials table for not "
        "registered users"),
                                          required=True)

    auto_approve = schema.Bool(
        title=_(u"Automatically approve registrations"),
        required=True,
    )

    max_participants = schema.Int(
        title=_(u"Maximum number of participants"),
        required=True,
    )

    hosting_organisation = schema.TextLine(
        title=_(u"Hosting organisation"),
        required=True,
        default=None,
    )

    contact_name = schema.TextLine(
        title=_(u"Contact person"),
        required=True,
    )

    contact_email = schema.TextLine(title=_(u"Contact email"),
                                    required=True,
                                    constraint=validate_email)

    location = schema.TextLine(title=_(u'label_event_location',
                                       default=u'Event location'),
                               description=_(
                                   u'help_event_location',
                                   default=u'Location of the event.'),
                               required=False,
                               default=None)

    @invariant
    def validate_location_required(data):
        if data.meeting_type != 'webinar' and data.location is None:
            raise Invalid(
                _(u"Event location input is missing." +
                  " This field is not required only in " +
                  "'Meeting type: webinar' case."))
Exemple #22
0
class ILoginForm(interface.Interface):
    login = schema.TextLine(title=_("label_login_form_username",
        default=u"Username"))
    password = schema.Password(title=_("label_login_form_password", 
        default=u"Password"))
    camefrom = schema.TextLine(required=False)
class IBaseQuestionSelectionParameters(Interface):
    """An object which contains information conerning how questions are selected in a quiz.
    """

    title = schema.TextLine(title=_(u"Object title"), required=True)
Exemple #24
0
class IRestoreLoginForm(interface.Interface):
    email = schema.TextLine(
        title=_("label_restore_login_email", default=u"Email"))        
class IStudentList(Interface):
    """An object which contains informatio concerning a student taking a test.
    """
    title = schema.TextLine(title=_(u"Object title"), required=True)
Exemple #26
0
class IVideoTileSchema(model.Schema):

    form.widget(video=VideoRelatedItemsFieldWidget)
    video = schema.List(
        title=u"Video file",
        description=u"Reference video file on the site.",
        required=False,
        default=[],
        value_type=schema.Choice(
            vocabulary='plone.app.vocabularies.Catalog'
        )
    )

    youtube_url = schema.TextLine(
        title=u'YouTube url',
        description=u'Or provide a YouTube or Vimeo url',
        required=False)

    @invariant
    def validate_video(data):
        if data.video and len(data.video) != 1:
            raise Invalid("Must select 1 video")
        if data.video and data.youtube_url:
            raise Invalid("You can not select both a video and a youtube url")
        if not data.video and not data.youtube_url:
            raise Invalid("Must select a video or a youtube url")
        if data.video:
            utils = getMultiAdapter((getSite(), getRequest()),
                                    name="castle-utils")
            obj = utils.get_object(data.video[0])
            if obj.portal_type != 'Video':
                raise Invalid('Must provide video file')

    form.widget('display_fields', CheckBoxFieldWidget)
    display_fields = schema.Tuple(
        title=u'Display fields',
        description=u'Fields that should show from the content',
        default=(),
        value_type=schema.Choice(
            vocabulary=SimpleVocabulary([
                SimpleTerm('title', 'title', u'Title'),
                SimpleTerm('description', 'description', u'Overview/Summary'),
                SimpleTerm('date', 'date', u'Date'),
                SimpleTerm('transcript', 'transcript', u'Transcript'),
            ])
        )
    )

    display_type = schema.Choice(
        title=u'Display type',
        required=True,
        default=defaults.get('video_tile_displaytype', u'landscape'),
        vocabulary=SimpleVocabulary([
            SimpleTerm('landscape', 'landscape', u'Landscape'),
            SimpleTerm('square', 'square', u'Square'),
            SimpleTerm('fullwidth', 'fullwidth', u'Full width'),
        ])
    )

    show_controls = schema.Bool(
        title=u'Show controls',
        default=True
    )

    autoplay = schema.Bool(
        title=u'Autoplay',
        default=defaults.get('video_tile_autoplay', False, 'bool')
    )

    loop = schema.Bool(
        title=u'Loop',
        default=defaults.get('video_tile_loop', False, 'bool')
    )
class IOrderedTutorWebContent(Interface):
    """TutorWeb ordered content and by default is published, or available for viewing to anonymous or logged on users
    """

    title = schema.TextLine(title=_(u"Object title"), required=True)
Exemple #28
0
class IAde25WidgetImagePoster(Interface):
    """ Content widget image poster """

    image = named_file.NamedBlobImage(title=_(u"Poster Image"), required=True)
    image_caption = schema.TextLine(
        title=_(u"Poster Image Copyright Information"), required=False)
class ISlide(Interface):
    """An folder objects which contains object belong to a tutorial such as lectures and sponsors.
    """

    title = schema.TextLine(title=_(u"Object title"), required=True)
Exemple #30
0
class IPasswordReset(model.Schema):
    login = schema.TextLine(title=_("label_login", default="Login"),
                            required=True)

    password = schema.Password(title=_("label_password", default="Password"),
                               required=True)