diff --git a/backend/src/plone/edu/behaviors/__init__.py b/backend/src/plone/edu/behaviors/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/src/plone/edu/behaviors/configure.zcml b/backend/src/plone/edu/behaviors/configure.zcml new file mode 100644 index 0000000..4ea6b2c --- /dev/null +++ b/backend/src/plone/edu/behaviors/configure.zcml @@ -0,0 +1,21 @@ + + + + + + + \ No newline at end of file diff --git a/backend/src/plone/edu/behaviors/eduperson.py b/backend/src/plone/edu/behaviors/eduperson.py new file mode 100644 index 0000000..79452ec --- /dev/null +++ b/backend/src/plone/edu/behaviors/eduperson.py @@ -0,0 +1,43 @@ +from plone.autoform.interfaces import IFormFieldProvider +from plone.edu import _ +from plone.namedfile.field import NamedBlobImage +from plone.schema import Email +from plone.schema import JSONField +from plone.supermodel import model +from zope.interface import provider +from zope.schema import TextLine + + +import json + +AFFILIATION_SCHEMA = json.dumps( + { + 'type': 'object', + 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'properties': {}}}}, + } +) + +@provider(IFormFieldProvider) +class IEduPersonData(model.Schema): + """A Person in context of educational institutions.""" + + academic_title = TextLine( + title=_("label_academic_title", default="Academic title"), + description=_("help_academic_title", default="The academic titles of the person."), + required=False, + ) + + image = NamedBlobImage( + title=_("label_image", default="Person image"), + description=_("help_image", default="A picture of the person."), + required=False, + ) + + affiliation = JSONField( + title='Mixedfield: datagrid field for Plone', + required=False, + schema=AFFILIATION_SCHEMA, + widget='affiliation_widget', + default={'items': []}, + missing_value={'items': []}, + ) diff --git a/backend/src/plone/edu/configure.zcml b/backend/src/plone/edu/configure.zcml index 1cfb261..1a009df 100644 --- a/backend/src/plone/edu/configure.zcml +++ b/backend/src/plone/edu/configure.zcml @@ -16,4 +16,6 @@ + +