--- a/src/pyams_content/shared/site/manager.py Sun Nov 26 09:57:42 2017 +0100
+++ b/src/pyams_content/shared/site/manager.py Sun Nov 26 09:58:07 2017 +0100
@@ -18,7 +18,9 @@
# import interfaces
from pyams_content.component.paragraph.interfaces import IParagraphFactorySettings
from pyams_content.component.theme.interfaces import IThemesManagerTarget
-from pyams_content.shared.site.interfaces import ISiteManager
+from pyams_content.interfaces import MANAGE_SITE_PERMISSION
+from pyams_content.shared.site.interfaces import ISiteManager, TOPIC_CONTENT_TYPE
+from pyams_form.interfaces.form import IFormContextPermissionChecker
from pyams_i18n.interfaces import II18n
from pyams_portal.interfaces import IPortalContext
from zope.annotation.interfaces import IAttributeAnnotatable
@@ -27,7 +29,11 @@
# import packages
from pyams_content.shared.common.manager import BaseSharedTool
+from pyams_content.shared.site import Topic
+from pyams_content.shared.site.container import SiteContainerMixin
+from pyams_content.shared.site.folder import SiteFolder
from pyams_skin.skin import UserSkinnableContent
+from pyams_utils.adapter import adapter_config, ContextAdapter
from pyams_utils.registry import get_utilities_for
from pyams_utils.request import query_request
from pyams_utils.traversing import get_parent
@@ -39,13 +45,22 @@
from zope.schema.vocabulary import SimpleTerm, SimpleVocabulary
-@implementer(ISiteManager, IParagraphFactorySettings, IThemesManagerTarget, IAttributeAnnotatable, IPortalContext)
-class SiteManager(OrderedContainer, BaseSharedTool, UserSkinnableContent):
+@implementer(ISiteManager, IParagraphFactorySettings, IThemesManagerTarget,
+ IPortalContext, IAttributeAnnotatable)
+class SiteManager(SiteContainerMixin, OrderedContainer, BaseSharedTool, UserSkinnableContent):
"""Site manager persistent class"""
+ folder_factory = SiteFolder
+
+ topic_content_type = TOPIC_CONTENT_TYPE
+ topic_content_factory = Topic
+
allowed_paragraphs = FieldProperty(IParagraphFactorySettings['allowed_paragraphs'])
auto_created_paragraphs = FieldProperty(IParagraphFactorySettings['auto_created_paragraphs'])
+ sequence_name = '' # use default sequence generator
+ sequence_prefix = ''
+
@subscriber(IObjectAddedEvent, context_selector=ISiteManager)
def handle_added_site_manager(event):
@@ -65,6 +80,13 @@
registry.unregisterUtility(event.object, ISiteManager, name=event.object.__name__)
+@adapter_config(context=ISiteManager, provides=IFormContextPermissionChecker)
+class SiteManagerPermissionChecker(ContextAdapter):
+ """Site manager edit permission checker"""
+
+ edit_permission = MANAGE_SITE_PERMISSION
+
+
@vocabulary_config(name='PyAMS site managers')
class SiteManagerVocabulary(SimpleVocabulary):
"""Site manager vocabulary"""