class IUTTimeslot(model.Schema): directives.widget( 'startTime', DatetimeWidget, pattern_options={'date': 'false'}) startTime = schema.Timedelta( title=_('Start Time'), required=True ) directives.widget( 'endTime', DatetimeWidget, pattern_options={'date': 'false'}) endTime = schema.Timedelta( title=_(u'End Time'), required=True ) name = schema.TextLine( title=_(u'Name'), description=_(u'Optional name'), required=False ) maxCapacity = schema.Int( title=_(u'Max capacity'), description=_(u'The max number of people'), required=True, default=1 ) allowWaitingList = schema.Bool( title=_(u'Allow Waiting List'), description=_(u'Check if you want to allow signups to waiting list once max capacity is reached') # noqa: E501 )
class INightlyJobsSettings(Interface): is_feature_enabled = schema.Bool( title=u'Enable nightly jobs feature', description=u'Whether nightly job execution is enabled', default=False) start_time = schema.Timedelta( title=u'Nightly jobs window start time', description=u'Execution of nightly jobs will only be allowed after ' u'this time. Should be between 0:00 and 24:00', default=timedelta(hours=1)) end_time = schema.Timedelta( title=u'Nightly jobs window end time', description=u'Execution of nightly jobs will only be allowed before ' u'this time. Has to be larger than start_time and can be ' u'larger than 24:00', default=timedelta(hours=5))
class IDXItemSchema(Schema): bool_field = schema.Bool(title=u'Bool Field', default=False) choice_field = schema.Choice(title=u'Choice Field', vocabulary=COLORS) date_field = schema.Date(title=u'Date Field') datetime_field = schema.Datetime(title=u'Datetime Field') decimal_field = schema.Decimal(title=u'Float Field') dottedname_field = schema.URI(title=u'DottedName Field') file_field = NamedFile(title=u'File Field') float_field = schema.Float(title=u'Float Field') image_field = NamedImage(title=u'Image Field') list_field = schema.List(title=u'List Field') richtext_field = RichText(title=u'Rich Text Field') text_field = schema.Text(title=u'Text Field') time_field = schema.Time(title=u'Time Field') timedelta_field = schema.Timedelta(title=u'Timedelta Field') uri_field = schema.URI(title=u'URI Field')
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_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_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 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_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_set_field = schema.Set(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) @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 IExample(model.Schema): """Dexterity-Schema with all field-types.""" # The most used fields # textline, text, bool, richtext, email fieldset( "numberfields", label=u"Number fields", fields=("int_field", "float_field"), ) fieldset( "datetimefields", label=u"Date and time fields", fields=( "datetime_field", "date_field", "time_field", "timedelta_field", ), ) fieldset( "choicefields", label=u"Choice and Multiple Choice fields", fields=( "choice_field", "choice_field_radio", "choice_field_select", "choice_field_voc", "list_field", "list_field_checkbox", "list_field_select", "list_field_voc_unconstrained", "tuple_field", "set_field", "set_field_checkbox", ), ) fieldset( "relationfields", label=u"Relation fields", fields=( "relationchoice_field", "relationlist_field", "relationchoice_field_constrained", "relationlist_field_constrained", "relationlist_field_search_mode", "relationchoice_field_select", "relationchoice_field_radio", "relationlist_field_select", "relationlist_field_checkbox", "relationchoice_field_ajax_select", "relationlist_field_ajax_select", ), ) fieldset( "uuidrelationfields", label=u"Relation widgets with uuids", fields=( "uuid_choice_field", "uuid_list_field", "uuid_choice_field_constrained", "uuid_list_field_constrained", "uuid_list_field_search_mode", "uuid_choice_field_select", "uuid_choice_field_radio", "uuid_list_field_select", "uuid_list_field_checkbox", "uuid_choice_field_ajax_select", "uuid_list_field_ajax_select", ), ) fieldset( "filefields", label=u"File fields", fields=("file_field", "image_field"), ) fieldset( "otherfields", label=u"Other fields", fields=( "uri_field", "sourcetext_field", "ascii_field", "bytesline_field", "asciiline_field", "pythonidentifier_field", "dottedname_field", # 'dict_field', # "vocabularyterms_field", # "vocabularytermstranslation_field", # 'dict_field_with_choice', ), ) fieldset( "datagrid", label=u"Datagrid field", fields=("datagrid_field", ), ) primary("title") title = schema.TextLine( title=u"Primary Field (Textline)", description=u"zope.schema.TextLine", required=True, ) description = schema.TextLine( title=u"Description (Textline)", description=u"zope.schema.TextLine", required=False, ) text_field = schema.Text( title=u"Text Field", description=u"zope.schema.Text", required=False, missing_value=u"", ) textline_field = schema.TextLine( title=u"Textline field", description=u"A simple input field (schema.TextLine)", required=False, ) bool_field = schema.Bool( title=u"Boolean field", description=u"zope.schema.Bool", required=False, ) choice_field = schema.Choice( title=u"Choice field", description=u"zope.schema.Choice", values=[u"One", u"Two", u"Three"], required=True, ) directives.widget(choice_field_radio=RadioFieldWidget) choice_field_radio = schema.Choice( title=u"Choice field with radio boxes", description=u"zope.schema.Choice", values=[u"One", u"Two", u"Three"], required=False, ) choice_field_voc = schema.Choice( title=u"Choicefield with values from named vocabulary", description=u"zope.schema.Choice", vocabulary="plone.app.vocabularies.PortalTypes", required=False, ) directives.widget(choice_field_select=SelectFieldWidget) choice_field_select = schema.Choice( title=u"Choicefield with select2 widget", description=u"zope.schema.Choice", vocabulary="plone.app.vocabularies.PortalTypes", required=False, ) list_field = schema.List( title=u"List field", description=u"zope.schema.List", value_type=schema.Choice( values=[u"Beginner", u"Advanced", u"Professional"], ), required=False, missing_value=[], ) directives.widget(list_field_checkbox=CheckBoxFieldWidget) list_field_checkbox = schema.List( title=u"List field with checkboxes", description=u"zope.schema.List", value_type=schema.Choice( values=[u"Beginner", u"Advanced", u"Professional"], ), required=False, missing_value=[], ) directives.widget(list_field_select=SelectFieldWidget) list_field_select = schema.List( title=u"List field with select widget", description=u"zope.schema.List", value_type=schema.Choice( values=[u"Beginner", u"Advanced", u"Professional"], ), required=False, missing_value=[], ) list_field_voc_unconstrained = schema.List( title= u"List field with values from vocabulary but not constrained to them.", description=u"zope.schema.List", value_type=schema.TextLine(), required=False, missing_value=[], ) directives.widget( "list_field_voc_unconstrained", AjaxSelectFieldWidget, vocabulary="plone.app.vocabularies.PortalTypes", pattern_options={ "closeOnSelect": False, # Select2 option to leave dropdown open for multiple selection }, ) tuple_field = schema.Tuple( title=u"Tuple field", description=u"zope.schema.Tuple", value_type=schema.Choice( values=[u"Beginner", u"Advanced", u"Professional"], ), required=False, missing_value=(), ) set_field = schema.Set( title=u"Set field", description=u"zope.schema.Set", value_type=schema.Choice( values=[u"Beginner", u"Advanced", u"Professional"], ), required=False, missing_value={}, ) directives.widget(set_field_checkbox=CheckBoxFieldWidget) set_field_checkbox = schema.Set( title=u"Set field with checkboxes", description=u"zope.schema.Set", value_type=schema.Choice( values=[u"Beginner", u"Advanced", u"Professional"], ), required=False, missing_value={}, ) # File fields image_field = NamedBlobImage( title=u"Image field", description= u"A upload field for images (plone.namedfile.field.NamedBlobImage)", required=False, ) file_field = NamedBlobFile( title=u"File field", description= u"A upload field for files (plone.namedfile.field.NamedBlobFile)", required=False, ) # Date and Time fields datetime_field = schema.Datetime( title=u"Datetime field", description=u"Uses a date and time picker (zope.schema.Datetime)", required=False, ) date_field = schema.Date( title=u"Date field", description=u"Uses a date picker (zope.schema.Date)", required=False, ) time_field = schema.Time( title=u"Time field", description=u"zope.schema.Time", required=False, ) timedelta_field = schema.Timedelta( title=u"Timedelta field", description=u"zope.schema.Timedelta", required=False, ) # Relation Fields relationchoice_field = RelationChoice( title=u"Relationchoice field", description=u"z3c.relationfield.schema.RelationChoice", vocabulary="plone.app.vocabularies.Catalog", required=False, ) relationlist_field = RelationList( title=u"Relationlist Field", description=u"z3c.relationfield.schema.RelationList", default=[], value_type=RelationChoice(vocabulary="plone.app.vocabularies.Catalog"), required=False, missing_value=[], ) relationchoice_field_constrained = RelationChoice( title=u"Relationchoice field (only allows Documents)", description=u"z3c.relationfield.schema.RelationChoice", vocabulary="plone.app.vocabularies.Catalog", required=False, ) directives.widget( "relationchoice_field_constrained", RelatedItemsFieldWidget, pattern_options={"selectableTypes": ["Document"]}, ) relationlist_field_constrained = RelationList( title=u"Relationlist Field (only allows Documents and Events)", description=u"z3c.relationfield.schema.RelationList", default=[], value_type=RelationChoice(vocabulary="plone.app.vocabularies.Catalog"), required=False, missing_value=[], ) directives.widget( "relationlist_field_constrained", RelatedItemsFieldWidget, pattern_options={"selectableTypes": ["Document", "Event"]}, ) relationlist_field_search_mode = RelationList( title= u"Relationlist Field in Search Mode (constrained to published Documents and Events)", description=u"z3c.relationfield.schema.RelationList", default=[], value_type=RelationChoice(source=CatalogSource( portal_type=["Document", "Event"], review_state="published")), required=False, missing_value=[], ) directives.widget( "relationlist_field_search_mode", RelatedItemsFieldWidget, pattern_options={ "baseCriteria": [ # This is a optimization that limits the catalog-query { "i": "portal_type", "o": "plone.app.querystring.operation.selection.any", "v": ["Document", "Event"], }, { "i": "review_state", "o": "plone.app.querystring.operation.selection.any", "v": "published", }, ], "mode": "search", }, ) # From here on we use other widgets than the default RelatedItemsFieldWidget # This one also works in Volto! # All other options use the default ObjectWidget in Volto so far. relationchoice_field_select = RelationChoice( title=u"RelationChoice with Select Widget", vocabulary=StaticCatalogVocabulary({ "portal_type": ["Document", "Event"], "review_state": "published", }), required=False, ) directives.widget( "relationchoice_field_select", SelectFieldWidget, ) relationchoice_field_radio = RelationChoice( title= u"RelationChoice with Radio Widget (and customized title-template)", vocabulary=StaticCatalogVocabulary( { "portal_type": ["Document", "Event"], "review_state": "published", }, title_template="{brain.Title}", ), # Set a custom vocabulary item title required=False, ) directives.widget( "relationchoice_field_radio", RadioFieldWidget, ) relationlist_field_select = RelationList( title= u"RelationList with select widget with items from a named vocabulary", value_type=RelationChoice( vocabulary="example.vocabularies.documents", ), required=False, ) directives.widget( "relationlist_field_select", SelectFieldWidget, pattern_options={ "closeOnSelect": False, # Select2 option to leave dropdown open for multiple selection }, ) relationlist_field_checkbox = RelationList( title=u"RelationList with Checkboxes", value_type=RelationChoice( vocabulary="example.vocabularies.documents", ), required=False, ) directives.widget( "relationlist_field_checkbox", CheckBoxFieldWidget, ) relationchoice_field_ajax_select = RelationChoice( title=u"Relationchoice Field with AJAXSelect", description=u"z3c.relationfield.schema.RelationChoice", vocabulary=StaticCatalogVocabulary({ "portal_type": ["Document", "Event"], }), required=False, ) directives.widget( "relationchoice_field_ajax_select", AjaxSelectFieldWidget, vocabulary=StaticCatalogVocabulary({ "portal_type": ["Document", "Event"], }), pattern_options={ # Options for Select2 "minimumInputLength": 2, # - Don't query until at least two characters have been typed "ajax": { "quietMillis": 500 }, # - Wait 500ms after typing to make query }, ) relationlist_field_ajax_select = RelationList( title=u"Relationlist Field with AJAXSelect", description=u"z3c.relationfield.schema.RelationList", value_type=RelationChoice(vocabulary=StaticCatalogVocabulary({ "portal_type": ["Document", "Event"], "review_state": "published", })), required=False, ) directives.widget( "relationlist_field_ajax_select", AjaxSelectFieldWidget, vocabulary=StaticCatalogVocabulary( { "portal_type": ["Document", "Event", "Folder"], }, title_template="{brain.Type}: {brain.Title} at {path}", ), # Custom item rendering pattern_options={ # Options for Select2 "minimumInputLength": 2, # - Don't query until at least two characters have been typed "ajax": { "quietMillis": 500 }, # - Wait 500ms after typing to make query }, ) # These look like relationsfields (see above) but only store the uuid(s) of the selected target # as a string in a the field instead of a RelationValue. # A good way to use these is in combination with a index that allows you to query these connenctions. uuid_choice_field = schema.Choice( title=u"Choice field with RelatedItems widget storing uuids", description=u"schema.Choice", vocabulary="plone.app.vocabularies.Catalog", required=False, ) directives.widget("uuid_choice_field", RelatedItemsFieldWidget) uuid_list_field = schema.List( title=u"List Field with RelatedItems widget storing uuids", description=u"schema.List", default=[], value_type=schema.Choice(vocabulary="plone.app.vocabularies.Catalog"), required=False, missing_value=[], ) directives.widget("uuid_list_field", RelatedItemsFieldWidget) uuid_choice_field_constrained = schema.Choice( title= u"Choice field with RelatedItems widget storing uuids (only allows Documents)", description=u"schema.Choice", vocabulary="plone.app.vocabularies.Catalog", required=False, ) directives.widget( "uuid_choice_field_constrained", RelatedItemsFieldWidget, pattern_options={"selectableTypes": ["Document"]}, ) uuid_list_field_constrained = schema.List( title= u"List Field with RelatedItems widget storing uuids (only allows Documents and Events)", description=u"schema.List", default=[], value_type=schema.Choice(vocabulary="plone.app.vocabularies.Catalog"), required=False, missing_value=[], ) directives.widget( "uuid_list_field_constrained", RelatedItemsFieldWidget, pattern_options={"selectableTypes": ["Document", "Folder"]}, ) uuid_list_field_search_mode = schema.List( title= u"List Field with RelatedItems widget in Search Mode storing uuids", description=u"schema.List", default=[], value_type=schema.Choice(source=CatalogSource( portal_type=["Document", "Event"], review_state="published")), required=False, missing_value=[], ) directives.widget( "uuid_list_field_search_mode", RelatedItemsFieldWidget, pattern_options={ "selectableTypes": ["Document", "Folder"], "basePath": "", # Start the search at the portal root "mode": "search", }, ) # From here on we use other widgets than the default RelatedItemsFieldWidget uuid_choice_field_select = schema.Choice( title=u"UUID Choice with select widget storing uuids", vocabulary=StaticCatalogVocabulary({ "portal_type": ["Document", "Event"], "review_state": "published", }), required=False, ) directives.widget( "uuid_choice_field_select", SelectFieldWidget, ) uuid_choice_field_radio = schema.Choice( title=u"RelationChoice with Radio widget storing uuids", vocabulary=StaticCatalogVocabulary( { "portal_type": ["Document", "Event"], "review_state": "published", }, title_template="{brain.Title}", ), # Set a custom vocabulary item title required=False, ) directives.widget( "uuid_choice_field_radio", RadioFieldWidget, ) uuid_list_field_select = schema.List( title= u"RelationList with select widget with items from a named vocabulary storing uuids", value_type=schema.Choice( vocabulary="example.vocabularies.documents", ), required=False, ) directives.widget( "uuid_list_field_select", SelectFieldWidget, pattern_options={ "closeOnSelect": False, # Select2 option to leave dropdown open for multiple selection }, ) uuid_list_field_checkbox = schema.List( title=u"RelationList with Checkboxes storing uuids", value_type=schema.Choice( vocabulary="example.vocabularies.documents", ), required=False, ) directives.widget( "uuid_list_field_checkbox", CheckBoxFieldWidget, ) uuid_choice_field_ajax_select = schema.Choice( title=u"Relationchoice Field with AJAXSelect storing uuids", description=u"z3c.relationfield.schema.RelationChoice", vocabulary=StaticCatalogVocabulary({ "portal_type": ["Document", "Event"], }), required=False, ) directives.widget( "uuid_choice_field_ajax_select", AjaxSelectFieldWidget, vocabulary=StaticCatalogVocabulary({ "portal_type": ["Document", "Event"], }), pattern_options={ # Options for Select2 "minimumInputLength": 2, # - Don't query until at least two characters have been typed "ajax": { "quietMillis": 500 }, # - Wait 500ms after typing to make query }, ) uuid_list_field_ajax_select = schema.List( title=u"Relationlist Field with AJAXSelect storing uuids", description=u"z3c.relationfield.schema.RelationList", value_type=schema.Choice(vocabulary=StaticCatalogVocabulary({ "portal_type": ["Document", "Event"], "review_state": "published", })), required=False, ) directives.widget( "uuid_list_field_ajax_select", AjaxSelectFieldWidget, vocabulary=StaticCatalogVocabulary( { "portal_type": ["Document", "Event"], }, title_template="{brain.Type}: {brain.Title} at {path}", ), # Custom item rendering pattern_options={ # Options for Select2 "minimumInputLength": 2, # - Don't query until at least two characters have been typed "ajax": { "quietMillis": 500 }, # - Wait 500ms after typing to make query "closeOnSelect": False, # - Leave dropdown open for multiple selection }, ) # Number fields int_field = schema.Int( title=u"Integer Field (e.g. 12)", description=u"zope.schema.Int", required=False, ) float_field = schema.Float( title=u"Float field, e.g. 12.7", description=u"zope.schema.Float", required=False, ) # Text fields email_field = Email( title=u"Email field", description= u"A simple input field for a email (plone.schema.email.Email)", required=False, ) uri_field = schema.URI( title=u"URI field", description=u"A simple input field for a URLs (zope.schema.URI)", required=False, ) richtext_field = RichText( title=u"RichText field", description= u"This uses a richtext editor. (plone.app.textfield.RichText)", max_length=2000, required=False, ) sourcetext_field = schema.SourceText( title=u"SourceText field", description=u"zope.schema.SourceText", required=False, ) ascii_field = schema.ASCII( title=u"ASCII field", description=u"zope.schema.ASCII", required=False, ) bytesline_field = schema.BytesLine( title=u"BytesLine field", description=u"zope.schema.BytesLine", required=False, ) asciiline_field = schema.ASCIILine( title=u"ASCIILine field", description=u"zope.schema.ASCIILine", required=False, ) pythonidentifier_field = schema.PythonIdentifier( title=u"PythonIdentifier field", description=u"zope.schema.PythonIdentifier", required=False, ) dottedname_field = schema.DottedName( title=u"DottedName field", description=u"zope.schema.DottedName", required=False, ) # dict_field = schema.Dict( # title=u'Dict field', # description=u"zope.schema.Dict", # required=False, # key_type=schema.TextLine( # title=u'Key', # required=False, # ), # value_type=schema.TextLine( # title=u'Value', # required=False, # ), # ) # vocabularyterms_field = Dict( # we use the plone.schema field Dict not zope.schema field to use the attribute 'widget' # title=u"Vocabulary terms field", # description=u"plone.schema.Dict field with value_type schema.TextLine and frontend widget 'VocabularyTermsWidget'", # required=False, # key_type=schema.TextLine( # title=u"Key", # required=False, # ), # value_type=schema.TextLine( # title=u"Value", # required=False, # ), # widget="vocabularyterms", # we use the widget attribute to apply the frontend widget VocabularyWidget # ) # vocabularytermstranslation_field = Dict( # we use the plone.schema field Dict not zope.schema field to use the attribute 'widget' # title=u"Vocabulary terms field with translations", # description=u"plone.schema.Dict field with value_type Dict and frontend widget 'VocabularyTermsWidget'", # required=False, # key_type=schema.TextLine( # title=u"Key", # required=False, # ), # value_type=Dict( # we use the plone.schema field Dict not zope.schema field to use the attribute 'widget' # title=u"Term translation", # description=u"plone.schema.Dict field for translations of vocabulary term", # required=True, # key_type=schema.TextLine( # title=u"Key", # required=False, # ), # value_type=schema.TextLine( # title=u"Value", # required=False, # ), # ), # widget="vocabularyterms", # we use the widget attribute to apply the frontend widget VocabularyWidget # ) # dict_field_with_choice = schema.Dict( # title=u'Dict field with key and value as choice', # description=u"zope.schema.Dict", # required=False, # key_type=schema.Choice( # title=u'Key', # values=[u'One', u'Two', u'Three'], # required=False, # ), # value_type=schema.Set( # title=u'Value', # value_type=schema.Choice( # values=[u'Beginner', u'Advanced', u'Professional'], # ), # required=False, # missing_value={}, # ), # ) datagrid_field = schema.List( title=u"Datagrid field", description=u"schema.List", value_type=DictRow(title=u"Table", schema=IMyRowSchema), default=[], required=False, ) directives.widget("datagrid_field", DataGridFieldFactory)
class IPhFit(Interface): """ Physical Fitness """ title = schema.TextLine( title=_(u"Name"), required=True, ) # 開課班級(非學生班級) whichClass = schema.TextLine( title=_(u"Which Class"), required=True, ) age = schema.Int( title=_(u"Age"), required=True, ) grade = schema.Int( title=_(u"Grade"), required=True, ) gender = schema.Bool( title=_(u"Gender, checked for male"), required=True, ) personalId = schema.TextLine( title=_(u"Personal Id"), required=True, ) height = schema.Float( title=_(u"Height, cm"), required=True, ) weight = schema.Float( title=_(u"Weight, kg"), required=True, ) running800 = schema.Timedelta( title=_(u"Running, 800m"), required=True, ) forwardBend = schema.Float( title=_(u"Forward bend"), required=True, ) sitUps = schema.Int( title=_(u"Sit-Ups with 60 seconds"), required=True, ) longJump = schema.Float( title=_(u"Standing Long Jump"), required=True, ) bmi = schema.Float( title=_(u"Body mass index(BMI)"), required=True, )
class IMediaInfo(Interface): """Information about a video object """ width = schema.Int(title=_(u"Width"), required=False) height = schema.Int(title=_(u"Height"), required=False) duration = schema.Timedelta(title=_(u"Duration"), required=False)