--- a/src/pyams_content/shared/common/manager.py Fri Nov 10 12:07:43 2017 +0100
+++ b/src/pyams_content/shared/common/manager.py Tue Nov 14 14:05:30 2017 +0100
@@ -16,7 +16,8 @@
# import standard library
# import interfaces
-from pyams_content.shared.common.interfaces import ISharedToolContainer, ISharedTool, ISharedToolRoles
+from pyams_content.interfaces import WEBMASTER_ROLE, PILOT_ROLE, MANAGER_ROLE, CONTRIBUTOR_ROLE
+from pyams_content.shared.common.interfaces import ISharedToolContainer, IBaseSharedTool, ISharedTool, ISharedToolRoles
from pyams_security.interfaces import IDefaultProtectionPolicy
from pyams_workflow.interfaces import IWorkflow
from zope.annotation.interfaces import IAttributeAnnotatable
@@ -40,11 +41,11 @@
short_name = FieldProperty(ISharedToolContainer['short_name'])
-@implementer(IDefaultProtectionPolicy, ISharedTool, ISharedToolRoles, IAttributeAnnotatable)
-class SharedTool(ProtectedObject, Folder, I18nManagerMixin):
- """Shared tool"""
+@implementer(IDefaultProtectionPolicy, IBaseSharedTool, ISharedToolRoles, IAttributeAnnotatable)
+class BaseSharedTool(ProtectedObject, I18nManagerMixin):
+ """Base shared tool class"""
- __roles__ = ('pyams.Webmaster', 'pyams.Pilot', 'pyams.Manager', 'pyams.Contributor')
+ __roles__ = (WEBMASTER_ROLE, PILOT_ROLE, MANAGER_ROLE, CONTRIBUTOR_ROLE)
roles_interface = ISharedToolRoles
@@ -53,15 +54,21 @@
managers = RolePrincipalsFieldProperty(ISharedToolRoles['managers'])
contributors = RolePrincipalsFieldProperty(ISharedToolRoles['contributors'])
- title = FieldProperty(ISharedTool['title'])
- short_name = FieldProperty(ISharedTool['short_name'])
+ title = FieldProperty(IBaseSharedTool['title'])
+ short_name = FieldProperty(IBaseSharedTool['short_name'])
+
+ shared_content_workflow = FieldProperty(IBaseSharedTool['shared_content_workflow'])
+
+
+@implementer(ISharedTool)
+class SharedTool(Folder, BaseSharedTool):
+ """Shared tool class"""
shared_content_type = None
shared_content_factory = None
- shared_content_workflow = FieldProperty(ISharedTool['shared_content_workflow'])
-@adapter_config(context=ISharedTool, provides=IWorkflow)
+@adapter_config(context=IBaseSharedTool, provides=IWorkflow)
def SharedToolWorkflowAdapter(context):
"""Shared tool workflow adapter"""
return query_utility(IWorkflow, name=context.shared_content_workflow)