class IUser(IFolder, IPrincipal): username = schema.TextLine(title=_("Username"), required=False) index_field("email", index_name="user_email", type="keyword") email = schema.TextLine(title=_("Email"), required=False) index_field("name", index_name="user_name", type="textkeyword") name = schema.TextLine(title=_("Name"), required=False) read_permission(password="******") password = schema.TextLine(title=_("Password"), required=False) write_permission(user_groups="guillotina.ManageUsers") user_groups = schema.List(title=_("Groups"), value_type=schema.TextLine(), required=False) write_permission(user_roles="guillotina.ManageUsers") index_field("user_roles", type="textkeyword") user_roles = schema.List(title=_("Roles"), value_type=schema.TextLine(), required=False) write_permission(user_permissions="guillotina.ManageUsers") user_permissions = schema.List(title=_("Permissions"), value_type=schema.TextLine(), required=False, default=[]) write_permission(disabled="guillotina.ManageUsers") index_field("disabled", type="boolean") disabled = schema.Bool(title=_("Disabled"), default=False) properties = schema.Dict(required=False, default={})
class IUser(IFolder): username = schema.TextLine(title=_('Username'), required=False) email = schema.TextLine(title=_('Email'), required=False) name = schema.TextLine(title=_('Name'), required=False) password = schema.TextLine(title=_('Password'), required=False) user_groups = schema.List(title=_('Groups'), value_type=schema.TextLine(), required=False) user_roles = schema.List(title=_('Roles'), value_type=schema.TextLine(), required=False) user_permissions = schema.List(title=_('Permissions'), value_type=schema.TextLine(), required=False, default=[]) disabled = schema.Bool(title=_('Disabled'), default=False) properties = schema.Dict(required=False, default={})
class IGroup(IFolder): name = schema.TextLine(title=_("Group name"), required=False) description = schema.TextLine(title=_("Group Description"), required=False) user_roles = schema.List(title=_("Roles"), value_type=schema.TextLine(), required=False) users = schema.List(title=_("Users"), value_type=schema.TextLine(), required=False, default=[])
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 ISyndicationSettings(Interface): max_items = schema.Int( title="Maximum items", description="Maximum number of items that will be syndicated.", default=15, ) sort_on = schema.Choice( title="Sort on", default="creation_date", source=AppSettingSource( "syndication.sort_on", missing=[ ["creation_date", "Publication Date"], ["effective_date", "Publication Date"], ["modification_date", "Modification Date"], ], ), ) sort_reverse = schema.Bool(title="Reverse sort", description="Order items in reverse order", default=True) categories = schema.List( title="Categories", description="(not used with all feed types)", value_type=schema.TextLine(), default=[], required=False, missing_value=[], )
class ICMSBehavior(Interface): index_field('hidden_navigation', type='boolean') fieldset('hidden_navigation', 'settings') hidden_navigation = schema.Bool(title='Should be hidden on navigation', required=False, default=False) index_field('language', type='keyword') fieldset('language', 'categorization') language = schema.Choice(title='Language', required=False, source='languages') index_field('content_layout', type='keyword') fieldset('content_layout', 'settings') content_layout = schema.Choice(title='Content Layout', required=False, source='content_layouts', default='default') index_field('position_in_parent', type='int') position = schema.Int(title='Position in parent', required=False) index_field('review_state', type='keyword') review_state = schema.Choice(readonly=True, title='Workflow review state', required=False, source='worklow_states') history = schema.List(title='History list', readonly=True, required=False, value_type=schema.JSONField(title='History element', schema=HISTORY_SCHEMA))
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 IGroup(IFolder): name = schema.TextLine(title=_('Group name'), required=False) user_roles = schema.List(title=_('Roles'), value_type=schema.TextLine(), 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 ISyndicationSettings(Interface): max_items = schema.Int( title='Maximum items', description='Maximum number of items that will be syndicated.', default=15) sort_on = schema.Choice( title='Sort on', default='creation_date', source=AppSettingSource( 'syndication.sort_on', missing=[ ['creation_date', 'Publication Date'], ['effective_date', 'Publication Date'], ['modification_date', 'Modification Date'] ] ) ) sort_reverse = schema.Bool( title='Reverse sort', description='Order items in reverse order', default=True) categories = schema.List( title='Categories', description='(not used with all feed types)', value_type=schema.TextLine(), default=[], required=False, missing_value=[] )
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 IGutenberg(Interface): fieldset_field("gutenberg", "default") gutenberg = schema.List( title="Gutenberg list object", required=False, default=[], value_type=schema.JSONField(title="Element Gutenberg", schema=GUTENBERG_SCHEMA), )
class IGroup(IFolder): index_field("name", index_name="group_name", type="textkeyword") name = schema.TextLine(title=_("Group name"), required=False) description = schema.TextLine(title=_("Group Description"), required=False) index_field("user_roles", index_name="group_user_roles", type="textkeyword") user_roles = schema.List(title=_("Roles"), value_type=schema.TextLine(), required=False) index_field("users", index_name="group_users", type="textkeyword") users = schema.List(title=_("Users"), value_type=schema.TextLine(), required=False, default=[])
class ICMSBehavior(Interface): index_field("is_folderish", store=True, type="boolean") is_folderish = schema.Bool(title="Is a folderish object", readonly=True) index_field("hidden_navigation", store=True, type="boolean") fieldset("hidden_navigation", "settings") hidden_navigation = schema.Bool(title="Should be hidden on navigation", required=False, default=False) index_field("language", store=True, type="keyword") fieldset("language", "categorization") language = schema.Choice(title="Language", required=False, source="languages") index_field("content_layout", store=True, type="keyword") fieldset("content_layout", "settings") content_layout = schema.Choice(title="Content Layout", required=False, source="content_layouts", default="default") fieldset("allow_discussion", "settings") allow_discussion = schema.Bool(title="Allow discussion", required=False, default=False) # not absolute positioning, just a relative positioning # based on ordered numbers. It won't be numbers like 1,2,3,4,5,etc index_field("position_in_parent", type="int") position_in_parent = schema.Int(title="Position in parent", default=-1, required=False) index_field("review_state", store=True, type="keyword") review_state = schema.Choice(readonly=True, title="Workflow review state", required=False, source="worklow_states") history = schema.List( title="History list", readonly=True, required=False, value_type=schema.JSONField(title="History element", schema=HISTORY_SCHEMA), ) comments = schema.Dict( title="Comments list field", required=False, key_type=schema.TextLine(title="CommentID"), value_type=schema.JSONField(title="Comment", schema=DISCUSSION_SCHEMA), )
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 IFollowing(Interface): index_field("favorites", type="keyword", store=True) read_permission(favorites="guillotina.") write_permission(favorites="guillotina.NoBody") favorites = schema.List(title=u"favorites", default=[], value_type=schema.TextLine(title="follower")) favorite = schema.Bool(title=u"Current user has it favorited", default=False)
class IFollowing(Interface): index_field('favorites', type='keyword', store=True) read_permission(favorites='guillotina.') write_permission(favorites='guillotina.NoBody') favorites = schema.List(title=u'favorites', default=[], value_type=schema.TextLine(title='follower')) favorite = schema.Bool(title=u'Current user has it favorited', default=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.UnionField(schema.List(required=False, value_type=schema.Text()), schema.Text(required=False), required=False)
class ITestSchema(Interface): text = schema.TextLine() integer = schema.Int() floating = schema.Float() list_of_text = schema.List(value_type=schema.TextLine()) tuple_of_text = schema.Tuple(value_type=schema.TextLine()) set_of_text = schema.Set(value_type=schema.TextLine()) frozenset_of_text = schema.FrozenSet(value_type=schema.TextLine()) dict_value = schema.Dict(key_type=schema.TextLine(), value_type=schema.TextLine()) datetime = schema.Datetime() date = schema.Date() time = schema.Time()
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 IWorkflowBehavior(Interface): index_field("review_state", store=True, type="keyword") review_state = schema.Choice( readonly=True, title="Workflow review state", required=False, defaultFactory=DefaultReviewState(), source="worklow_states", ) history = schema.List( title="History list", readonly=True, required=False, defaultFactory=list, value_type=schema.JSONField(title="History element", schema=HISTORY_SCHEMA), )
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 IConversation(IFolder): index_field("users", type="keyword") users = schema.List(value_type=schema.TextLine(), default=list())
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 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 IConversation(Interface): users = schema.List(value_type=schema.TextLine())
class IRule(Interface): conditions = schema.List() actions = schema.List()
class INestFieldSchema(Interface): foo = schema.Text(required=False) bar = schema.Int(required=False) foobar_list = schema.List(required=False, value_type=schema.Text())