diff --git a/src/pfwbged/folder/folder.py b/src/pfwbged/folder/folder.py index 6d2ee84..a5cfb26 100644 --- a/src/pfwbged/folder/folder.py +++ b/src/pfwbged/folder/folder.py @@ -2,6 +2,7 @@ from AccessControl import getSecurityManager from zope.interface import implements from five import grok from zope import component +from zope import schema from zc.relation.interfaces import ICatalog from zope.app.intid.interfaces import IIntIds @@ -16,12 +17,37 @@ import plone.app.contenttypes.interfaces from plone.dexterity.interfaces import IDexterityContainer from plone.app.contentlisting.interfaces import IContentListingObject +from collective.z3cform.rolefield.field import LocalRolesToPrincipals +from collective.dms.basecontent.widget import AjaxChosenMultiFieldWidget +from plone.autoform import directives as form + from pfwbged.collection.searchview import ResultsTable +from collective.dms.thesaurus.keywordsfield import ThesaurusKeywords + from .link import ILink +from . import _ + class IFolder(model.Schema): """ """ + treating_groups = LocalRolesToPrincipals( + title=_(u"Treating groups"), + required=False, + roles_to_assign=('Editor',), + value_type=schema.Choice(vocabulary=u'collective.dms.basecontent.treating_groups',) + ) + form.widget(treating_groups=AjaxChosenMultiFieldWidget) + + recipient_groups = LocalRolesToPrincipals( + title=_(u"Recipient groups"), + required=False, + roles_to_assign=('Reader',), + value_type=schema.Choice(vocabulary=u'collective.dms.basecontent.recipient_groups') + ) + form.widget(recipient_groups=AjaxChosenMultiFieldWidget) + + keywords = ThesaurusKeywords(title=_(u'Keywords'), required=False) class Folder(Container): diff --git a/src/pfwbged/folder/link.py b/src/pfwbged/folder/link.py index 45432b4..91342b4 100644 --- a/src/pfwbged/folder/link.py +++ b/src/pfwbged/folder/link.py @@ -28,7 +28,8 @@ def ContentTreeFieldWidget(field, request): class ILink(model.Schema): """ """ folder = RelationChoice(title=_(u'Folder'), required=True, - source=ObjPathSourceBinder(navigation_tree_query={'portal_type': ('Folder',)})) + source=ObjPathSourceBinder( + navigation_tree_query={'portal_type': ('Folder', 'pfwbgedfolder',)})) form.widget(folder=ContentTreeFieldWidget) diff --git a/src/pfwbged/folder/profiles/default/types.xml b/src/pfwbged/folder/profiles/default/types.xml index 9df84c7..34abd4c 100644 --- a/src/pfwbged/folder/profiles/default/types.xml +++ b/src/pfwbged/folder/profiles/default/types.xml @@ -2,4 +2,5 @@ Controls the available content types in your portal + diff --git a/src/pfwbged/folder/profiles/default/types/pfwbgedfolder.xml b/src/pfwbged/folder/profiles/default/types/pfwbgedfolder.xml new file mode 100644 index 0000000..149f7bb --- /dev/null +++ b/src/pfwbged/folder/profiles/default/types/pfwbgedfolder.xml @@ -0,0 +1,48 @@ + + + Classifying Folder + string:${portal_url}/++resource++pfwbgedfolder_icon.png + pfwbgedfolder + string:${folder_url}/++add++pfwbgedfolder + + view + True + True + False + view + + + + False + cmf.AddPortalContent + pfwbged.folder.Folder + + + + + + + True + + + + + + + pfwbged.folder.IFolder + + + + + + + + + + +