src/pyams_content/shared/common/manager.py
changeset 43 2136e95fb9a5
parent 0 7c0001cacf8e
child 277 9649f8ce3b1c
equal deleted inserted replaced
42:bcb01961928e 43:2136e95fb9a5
    15 
    15 
    16 # import standard library
    16 # import standard library
    17 
    17 
    18 # import interfaces
    18 # import interfaces
    19 from pyams_content.shared.common.interfaces import ISharedToolContainer, ISharedTool, ISharedToolRoles
    19 from pyams_content.shared.common.interfaces import ISharedToolContainer, ISharedTool, ISharedToolRoles
    20 from pyams_i18n.interfaces import II18nManager
       
    21 from pyams_security.interfaces import IDefaultProtectionPolicy
    20 from pyams_security.interfaces import IDefaultProtectionPolicy
    22 from pyams_workflow.interfaces import IWorkflow
    21 from pyams_workflow.interfaces import IWorkflow
    23 from zope.annotation.interfaces import IAttributeAnnotatable
    22 from zope.annotation.interfaces import IAttributeAnnotatable
    24 
    23 
    25 # import packages
    24 # import packages
       
    25 from pyams_i18n.content import I18nManagerMixin
    26 from pyams_security.property import RolePrincipalsFieldProperty
    26 from pyams_security.property import RolePrincipalsFieldProperty
    27 from pyams_security.security import ProtectedObject
    27 from pyams_security.security import ProtectedObject
    28 from pyams_utils.adapter import adapter_config
    28 from pyams_utils.adapter import adapter_config
    29 from pyams_utils.registry import query_utility
    29 from pyams_utils.registry import query_utility
    30 from zope.container.folder import Folder
    30 from zope.container.folder import Folder
    38 
    38 
    39     title = FieldProperty(ISharedToolContainer['title'])
    39     title = FieldProperty(ISharedToolContainer['title'])
    40     short_name = FieldProperty(ISharedToolContainer['short_name'])
    40     short_name = FieldProperty(ISharedToolContainer['short_name'])
    41 
    41 
    42 
    42 
    43 @implementer(IDefaultProtectionPolicy, ISharedTool, ISharedToolRoles, IAttributeAnnotatable, II18nManager)
    43 @implementer(IDefaultProtectionPolicy, ISharedTool, ISharedToolRoles, IAttributeAnnotatable)
    44 class SharedTool(ProtectedObject, Folder):
    44 class SharedTool(ProtectedObject, Folder, I18nManagerMixin):
    45     """Shared tool"""
    45     """Shared tool"""
    46 
    46 
    47     __roles__ = ('pyams.Webmaster', 'pyams.Pilot', 'pyams.Manager', 'pyams.Contributor')
    47     __roles__ = ('pyams.Webmaster', 'pyams.Pilot', 'pyams.Manager', 'pyams.Contributor')
    48 
    48 
    49     roles_interface = ISharedToolRoles
    49     roles_interface = ISharedToolRoles
    58 
    58 
    59     shared_content_type = None
    59     shared_content_type = None
    60     shared_content_factory = None
    60     shared_content_factory = None
    61     shared_content_workflow = FieldProperty(ISharedTool['shared_content_workflow'])
    61     shared_content_workflow = FieldProperty(ISharedTool['shared_content_workflow'])
    62 
    62 
    63     languages = FieldProperty(II18nManager['languages'])
       
    64 
       
    65 
    63 
    66 @adapter_config(context=ISharedTool, provides=IWorkflow)
    64 @adapter_config(context=ISharedTool, provides=IWorkflow)
    67 def SharedToolWorkflowAdapter(context):
    65 def SharedToolWorkflowAdapter(context):
    68     """Shared tool workflow adapter"""
    66     """Shared tool workflow adapter"""
    69     return query_utility(IWorkflow, name=context.shared_content_workflow)
    67     return query_utility(IWorkflow, name=context.shared_content_workflow)