class IExample(IResource): metadata('categories') index_field('boolean_field', type='boolean') boolean_field = schema.Bool(required=False) index_field('categories', field_mapping=CATEGORIES_MAPPING) categories = schema.List(title='categories', default=[], value_type=schema.JSONField(title='term', schema=TERM_SCHEMA)) textline_field = schema.TextLine(title='kk', widget='testing', required=False) text_field = schema.Text(required=False) dict_value = schema.Dict(key_type=schema.TextLine(), value_type=schema.TextLine(), required=False) datetime = schema.Datetime(required=False) write_permission(write_protected='example.MyPermission') write_protected = schema.TextLine( title='Write protected field', required=False, ) default_factory_test = schema.Text(defaultFactory=lambda: 'foobar') context_default_factory_test = schema.Text( defaultFactory=ContextDefaultFactory())
class IExample(IResource): metadata("categories") index_field("boolean_field", type="boolean") boolean_field = schema.Bool(required=False) index_field("categories", field_mapping=CATEGORIES_MAPPING) categories = schema.List(title="categories", default=[], value_type=schema.JSONField(title="term", schema=TERM_SCHEMA)) textline_field = schema.TextLine(title="kk", widget="testing", required=False) text_field = schema.Text(required=False) dict_value = schema.Dict(key_type=schema.TextLine(), value_type=schema.TextLine(), required=False) datetime = schema.Datetime(required=False) jsonfield_value = schema.JSONField(schema={"type": "array"}, required=False) write_permission(write_protected="example.MyPermission") write_protected = schema.TextLine(title="Write protected field", required=False) default_factory_test = schema.Text(defaultFactory=lambda: "foobar") context_default_factory_test = schema.Text( defaultFactory=ContextDefaultFactory())
class IDublinCore(Interface): index_field('creators', type='keyword') index_field('tags', type='keyword') index_field('contributors', type='keyword') title = schema.TextLine( title=u'Title', description=u"The first unqualified Dublin Core 'Title' element value.", required=False) description = schema.Text( title=u'Description', description=u"The first unqualified Dublin Core 'Description' element value.", required=False) creation_date = schema.Datetime( title=u'Creation Date', description=u"The date and time that an object is created. " u"\nThis is normally set automatically.", required=False) modification_date = schema.Datetime( title=u'Modification Date', description=u"The date and time that the object was last modified in a\n" u"meaningful way.", required=False) effective_date = schema.Datetime( title=u'Effective Date', description=u"The date and time that an object should be published. ", required=False) expiration_date = schema.Datetime( title=u'Expiration Date', description=u"The date and time that the object should become unpublished.", required=False) creators = schema.Tuple( title=u'Creators', description=u"The unqualified Dublin Core 'Creator' element values", value_type=schema.TextLine(), required=False) tags = schema.Tuple( title=u'Tags', description=u"The unqualified Dublin Core 'Tags' element values", value_type=schema.TextLine(), required=False) publisher = schema.Text( title=u'Publisher', description=u"The first unqualified Dublin Core 'Publisher' element value.", required=False) contributors = schema.Tuple( title=u'Contributors', description=u"The unqualified Dublin Core 'Contributor' element values", value_type=schema.TextLine(), required=False)
class IDynamicType(Interface): ''' Used to dynamicly bind data to validate new values against ''' date = schema.Datetime(required=False) text = schema.Text(required=False) integer = schema.Int(required=False) float = schema.Float(required=False) boolean = schema.Bool(required=False) keyword = schema.Text(required=False)
class IPatientIndex(interfaces.IItem): text = schema.Text() first_name = schema.Text() last_name = schema.Text() middle_names = schema.List(value_type=schema.Text()) date_of_birth = schema.Date() addresses = schema.List(value_type=schema.Dict(key_type=schema.Text(), value_type=schema.Text())) activities = schema.List(value_type=schema.Dict( key_type=schema.Text(), value_type=schema.Text()), ) id_data = schema.List(value_type=schema.Dict(key_type=schema.Text(), value_type=schema.Text()))
class ITestBehavior(Interface): foobar = schema.TextLine(required=False) foobar_context = schema.TextLine(required=False, default="default-foobar") bucket_dict = fields.BucketDictField(bucket_len=10, required=False, default=None, key_type=schema.Text(), value_type=schema.Text()) read_permission(no_read_field="example.MyPermission") no_read_field = schema.TextLine(required=False, default="")
class IFieldType(Interface): title = schema.Text() description = schema.Text() type = schema.Choice( values=["date", "integer", "text", "float", "keyword", "boolean"], required=True) required = schema.Bool(default=False) meta = schema.JSONField(title="Additional information on field", required=False, schema={ "type": "object", "properties": {} })
class IDynamicType(Interface): """ Used to dynamicly bind data to validate new values against """ date = schema.Datetime(required=False) text = schema.Text(required=False) integer = schema.Int(required=False) float = schema.Float(required=False) boolean = schema.Bool(required=False) keyword = schema.UnionField( schema.List(required=False, value_type=schema.Text()), schema.Text(required=False), required=False )
def test_all(dummy_request): mapping = [ (schema.Object(schema=IResource), serialize_schema_field.DefaultSchemaFieldSerializer), (schema.Text(), serialize_schema_field.DefaultTextSchemaFieldSerializer), (schema.TextLine(), serialize_schema_field.DefaultTextLineSchemaFieldSerializer), (schema.Float(), serialize_schema_field.DefaultFloatSchemaFieldSerializer), (schema.Int(), serialize_schema_field.DefaultIntSchemaFieldSerializer), (schema.Bool(), serialize_schema_field.DefaultBoolSchemaFieldSerializer), (schema.List(), serialize_schema_field.DefaultCollectionSchemaFieldSerializer), (schema.Choice(values=('one', 'two')), serialize_schema_field.DefaultChoiceSchemaFieldSerializer), (schema.Object(schema=IResource), serialize_schema_field.DefaultObjectSchemaFieldSerializer), (RichText(), serialize_schema_field.DefaultRichTextSchemaFieldSerializer), (schema.Date(), serialize_schema_field.DefaultDateSchemaFieldSerializer), (schema.Time(), serialize_schema_field.DefaultTimeSchemaFieldSerializer), (schema.Dict(), serialize_schema_field.DefaultDictSchemaFieldSerializer), (schema.Datetime(), serialize_schema_field.DefaultDateTimeSchemaFieldSerializer), ] container = Container() for field, klass in mapping: adapter = getMultiAdapter((field, container, dummy_request), interface=ISchemaFieldSerializeToJson) assert isinstance(adapter, klass)
class ITileType(Interface): """A utility that describes a type of tile """ __name__ = schema.DottedName(title='Tile name (same as utility name)') title = schema.TextLine(title=u'Title') description = schema.Text(title=u'Description', required=False) icon = schema.Text(title=u'Icon', required=False) add_permission = schema.Id(title=u'Zope 3 IPermission utility name') schema = schema.Object( title=u'Tile schema', description='Describes configurable data for this tile and allows a ' 'form to be rendered to edit it. Set to None if the tile ' 'has no configurable schema', schema=Interface, required=False, )
class IBehavior(Interface): """A description of a behavior. These should be registered as named utilities. There should also be an adapter factory registered, probably using IBehaviorAdapterFactory. """ title = schema.TextLine(title=u'Short title of the behavior', required=True) description = schema.Text(title=u'Longer description of the behavior', required=False) name = schema.TextLine( title=u'Readable short name to be used for behavior lookup', description=u'E.g. plone.somebehavior. If not given the full dotted ' u'name of the interfaces is used for lookup instead.' u'Recommended, but due to BBB not required.', required=False) interface = schema.Object(title=u'Interface describing this behavior', required=True, schema=IInterface) marker = schema.Object( title=u'Marker interface for objects sporting this behavior', description=u'Markers are persisted in the database. ' u'Required when a factory is given, because the factory ' u'is an adapter adapting the the marker and providing the ' u'"interface" of this behavior.', required=False, schema=IInterface) factory = schema.Object(title=u'An adapter factory for the behavior', required=True, schema=Interface)
class IDynamicFields(Interface): fields = fields.PatchField(schema.Dict( key_type=schema.Text(), value_type=schema.Object( schema=IFieldType ) ))
class IDynamicFields(Interface): fields = fields.PatchField( schema.Dict( key_type=schema.Text(), value_type=schema.Object(schema=IFieldType), required=True, max_length=1000, ))
class INotification(Interface): #the type of the notification: EMAIL or SIMPLE not_type = schema.TextLine() recipientId = schema.Text() email_recipient = schema.TextLine() #title subject = schema.Text() message = schema.Text() #the name of the application that call the send.py application_name = schema.Text() #the status of the notification: NOTIFIED or NOT_NOTIFIED status = schema.Text()
class IBlockType(Interface): """A utility that describes a type of block """ __name__ = schema.DottedName(title="Block name (same as utility name)") title = schema.TextLine(title=u"Title") description = schema.Text(title=u"Description", required=False) icon = schema.Text(title=u"Icon", required=False) add_permission = schema.Id(title=u"Zope 3 IPermission utility name") schema = schema.Object( title=u"Block schema", description="Describes configurable data for this block and allows a " "form to be rendered to edit it. Set to None if the block " "has no configurable schema", schema=Interface, required=False, )
class IFieldType(Interface): title = schema.Text(required=False) description = schema.Text(required=False) type = schema.Choice( values=['date', 'integer', 'text', 'float', 'keyword', 'boolean'] ) required = schema.Bool( default=False, required=False ) meta = schema.JSONField( title="Additional information on field", required=False, schema=json.dumps({ 'type': 'object', 'properties': {} }) )
class IMenu(Interface): definition = schema.JSONField(title="Menu definition", required=False, schema=MENU_LAYOUT, defaultFactory=list) logo = schema.Text(title="Logo", required=False, defaultFactory=get_default_logo)
class IRichTextValue(Interface): """The value actually stored in a RichText field. This stores the following values on the parent object - A separate persistent object with the original value - A cache of the value transformed to the default output type The object is immutable. """ raw = schema.Text( title=_(u"Raw value in the original MIME type"), readonly=True, ) mimeType = schema.ASCIILine( title=_(u"MIME type"), readonly=True, ) outputMimeType = schema.ASCIILine( title=_(u"Default output MIME type"), readonly=True, ) encoding = schema.ASCIILine( title=_(u"Default encoding for the value"), description=_(u"Mainly used internally"), readonly=True, ) raw_encoded = schema.ASCII( title=_(u"Get the raw value as an encoded string"), description=_(u"Mainly used internally"), readonly=True, ) output = schema.Text( title=_(u"Transformed value in the target MIME type"), description=_(u"May be None if the transform cannot be completed"), readonly=True, required=False, missing_value=None, )
class ITestValidation(Interface): foo = schema.Text(required=False) bar = schema.Text(required=False) constrained = schema.Text(required=False, constraint=lambda val: val != "foobar") validated_text = schema.Text(required=False) @zope.interface.invariant # type: ignore def text_should_not_be_foobar(ob): if getattr(ob, "foo", None) == "foo" and getattr(ob, "bar", None) == "bar": raise Invalid(ob) @validated_text.validator def validate_not_foo(field, value): if getattr(field.context, "foo", None) == "foo" and value == "foo": raise Invalid("Must not be foo")
class IValidationSettings(Interface): site_url = schema.Text( title="Public frontend site url", description="Full url without tailing /", default="http://*****:*****@@validation") site_mails_from = schema.Text(title="Site mails from", description="Orig email to send mails", default="*****@*****.**")
class IExample(IResource): metadata('categories') index('categories', type='nested') categories = schema.List(title='categories', default=[], value_type=schema.JSONField(title='term', schema=TERM_SCHEMA)) textline_field = schema.TextLine() text_field = schema.Text() dict_value = schema.Dict(key_type=schema.TextLine(), value_type=schema.TextLine()) datetime = schema.Datetime()
class IExample(IResource): metadata('categories') index_field('categories', type='nested') categories = schema.List(title='categories', default=[], value_type=schema.JSONField(title='term', schema=TERM_SCHEMA)) textline_field = schema.TextLine(title='kk', widget='testing', required=False) text_field = schema.Text(required=False) dict_value = schema.Dict(key_type=schema.TextLine(), value_type=schema.TextLine(), required=False) datetime = schema.Datetime(required=False)
class ITestSchema(Interface): text = schema.TextLine(required=False) integer = schema.Int(required=False) floating = schema.Float(required=False) list_of_text = schema.List(value_type=schema.TextLine(), required=False) tuple_of_text = schema.Tuple(value_type=schema.TextLine(), required=False) set_of_text = schema.Set(value_type=schema.TextLine(), required=False) frozenset_of_text = schema.FrozenSet(value_type=schema.TextLine(), required=False) dict_value = schema.Dict(key_type=schema.TextLine(), value_type=schema.TextLine(), required=False) datetime = schema.Datetime(required=False) date = schema.Date(required=False) time = schema.Time(required=False) patch_list = fields.PatchField( schema.List(value_type=schema.Dict(key_type=schema.Text(), value_type=schema.Text()), required=False)) patch_dict = fields.PatchField(schema.Dict(key_type=schema.Text(), value_type=schema.Text()), required=False) bucket_list = fields.BucketListField(bucket_len=10, required=False, value_type=schema.Dict( key_type=schema.Text(), value_type=schema.Text())) datetime_bucket_list = fields.BucketListField(bucket_len=10, required=False, value_type=schema.Datetime()) nested_patch = fields.PatchField( schema.Dict(required=False, key_type=schema.Text(), value_type=fields.PatchField( schema.List(value_type=schema.Object( schema=INestFieldSchema)))))
class ITestSchema(Interface): text = schema.TextLine(required=False) integer = schema.Int(required=False) floating = schema.Float(required=False) list_of_text = schema.List(value_type=schema.TextLine(), required=False) tuple_of_text = schema.Tuple(value_type=schema.TextLine(), required=False) set_of_text = schema.Set(value_type=schema.TextLine(), required=False) frozenset_of_text = schema.FrozenSet(value_type=schema.TextLine(), required=False) dict_value = schema.Dict(key_type=schema.TextLine(), value_type=schema.TextLine(), required=False) datetime = schema.Datetime(required=False) date = schema.Date(required=False) time = schema.Time(required=False) patch_list = fields.PatchField( schema.List(value_type=schema.Dict(key_type=schema.Text(), value_type=schema.Text()), required=False)) patch_list_int = fields.PatchField( schema.List(value_type=schema.Int(), required=False)) patch_dict = fields.PatchField(schema.Dict(key_type=schema.Text(), value_type=schema.Text()), required=False) patch_int = fields.PatchField(schema.Int(default=22), required=False) patch_int_no_default = fields.PatchField(schema.Int(), required=False) bucket_list = fields.BucketListField( bucket_len=10, required=False, value_type=schema.Dict(key_type=schema.Text(), value_type=schema.Text()), ) datetime_bucket_list = fields.BucketListField(bucket_len=10, required=False, value_type=schema.Datetime()) union_field = schema.UnionField(schema.Datetime(), schema.Int(), required=False) union_field_obj = schema.UnionField(schema.Object(IObjectA), schema.Object(schema=IObjectB), required=False) nested_patch = fields.PatchField( schema.Dict( required=False, key_type=schema.Text(), value_type=fields.PatchField( schema.List(value_type=schema.Object( schema=INestFieldSchema))), )) dict_of_obj = schema.Dict( required=False, key_type=schema.Text(), value_type=schema.Object(schema=INestFieldSchema)) patch_dict_of_obj = fields.PatchField( schema.Dict(required=False, key_type=schema.Text(), value_type=schema.Object(schema=INestFieldSchema))) patch_tuple = fields.PatchField( schema.Tuple(required=False, value_type=schema.Text(schema=INestFieldSchema))) bucket_dict = fields.BucketDictField(bucket_len=10, required=False, key_type=schema.Text(), value_type=schema.Text())
class IRichTextFieldSchema(Interface): """Rich text field schema""" content_type = schema.ASCII(title="Content type") data = schema.Text(title="Real data") encoding = schema.ASCII(title="Get the real encoding")
class INestFieldSchema(Interface): foo = schema.Text(required=False) bar = schema.Int(required=False) foobar_list = schema.List(required=False, value_type=schema.Text()) nested_int = fields.PatchField(schema.Int(required=False))
class IObjectB(Interface): bar = schema.Text(required=False)
class IObjectA(Interface): foo = schema.Text(required=False)
class IMyBehavior2(Interface): foobar = schema.Text()
class IDublinCore(Interface): index_field("creators", type="keyword") index_field("tags", type="keyword") index_field("contributors", type="keyword") title = schema.TextLine( title="Title", description="The first unqualified Dublin Core 'Title' element value." ) description = schema.Text( title="Description", description="The first unqualified Dublin Core 'Description' element value." ) creation_date = schema.Datetime( title="Creation Date", description="The date and time that an object is created. " "\nThis is normally set automatically.", ) modification_date = schema.Datetime( title="Modification Date", description="The date and time that the object was last modified in a\n" "meaningful way.", ) effective_date = schema.Datetime( title="Effective Date", description="The date and time that an object should be published. " ) expiration_date = schema.Datetime( title="Expiration Date", description="The date and time that the object should become unpublished." ) creators = schema.Tuple( title="Creators", description="The unqualified Dublin Core 'Creator' element values", value_type=schema.TextLine(), required=False, naive=True, max_length=1000, ) tags = PatchField( schema.Tuple( title="Tags", description="The unqualified Dublin Core 'Tags' element values", value_type=schema.TextLine(), required=False, naive=True, max_length=10000, ) ) publisher = schema.Text( title="Publisher", description="The first unqualified Dublin Core 'Publisher' element value." ) contributors = schema.Tuple( title="Contributors", description="The unqualified Dublin Core 'Contributor' element values", value_type=schema.TextLine(), required=False, naive=True, max_length=10000, )