src/pyams_content/shared/site/manager.py
changeset 963 fff756709617
parent 714 dd257ef7fcaa
child 972 bfdb9bbc9175
equal deleted inserted replaced
962:7bff93e41787 963:fff756709617
    10 # FOR A PARTICULAR PURPOSE.
    10 # FOR A PARTICULAR PURPOSE.
    11 #
    11 #
    12 
    12 
    13 __docformat__ = 'restructuredtext'
    13 __docformat__ = 'restructuredtext'
    14 
    14 
       
    15 from pyramid.events import subscriber
       
    16 from zope.component.interfaces import ISite
       
    17 from zope.container.ordered import OrderedContainer
       
    18 from zope.interface import implementer
       
    19 from zope.lifecycleevent.interfaces import IObjectAddedEvent, IObjectRemovedEvent
       
    20 from zope.schema.fieldproperty import FieldProperty
       
    21 from zope.schema.vocabulary import SimpleTerm, SimpleVocabulary
    15 
    22 
    16 # import standard library
       
    17 
       
    18 # import interfaces
       
    19 from pyams_content.component.illustration import IIllustrationTarget, ILinkIllustrationTarget
    23 from pyams_content.component.illustration import IIllustrationTarget, ILinkIllustrationTarget
    20 from pyams_content.component.paragraph.interfaces import IParagraphFactorySettings
    24 from pyams_content.component.paragraph.interfaces import IParagraphFactorySettings
    21 from pyams_content.component.theme.interfaces import IThemesManagerTarget
    25 from pyams_content.component.theme.interfaces import IThemesManagerTarget
    22 from pyams_content.features.footer.interfaces import IFooterTarget
    26 from pyams_content.features.footer.interfaces import IFooterTarget
    23 from pyams_content.features.header.interfaces import IHeaderTarget
    27 from pyams_content.features.header.interfaces import IHeaderTarget
    24 from pyams_content.features.preview.interfaces import IPreviewTarget
    28 from pyams_content.features.preview.interfaces import IPreviewTarget
    25 from pyams_content.interfaces import MANAGE_SITE_PERMISSION
    29 from pyams_content.interfaces import MANAGE_SITE_PERMISSION
    26 from pyams_content.reference.pictograms.interfaces import IPictogramManagerTarget
    30 from pyams_content.reference.pictograms.interfaces import IPictogramManagerTarget
    27 from pyams_content.root.interfaces import ISiteRoot
    31 from pyams_content.root.interfaces import ISiteRoot
    28 from pyams_content.shared.common.interfaces import ISharedContentFactory
    32 from pyams_content.shared.common.interfaces import ISharedContentFactory
       
    33 from pyams_content.shared.common.manager import BaseSharedTool
       
    34 from pyams_content.shared.site import Topic
       
    35 from pyams_content.shared.site.container import SiteContainerMixin
       
    36 from pyams_content.shared.site.folder import SiteFolder
    29 from pyams_content.shared.site.interfaces import ISiteManager, ISiteManagerFactory, ISiteFolderFactory, ISiteContainer
    37 from pyams_content.shared.site.interfaces import ISiteManager, ISiteManagerFactory, ISiteFolderFactory, ISiteContainer
    30 from pyams_form.interfaces.form import IFormContextPermissionChecker
    38 from pyams_form.interfaces.form import IFormContextPermissionChecker
    31 from pyams_i18n.interfaces import II18n
    39 from pyams_i18n.interfaces import II18n
    32 from pyams_portal.interfaces import IPortalContext
    40 from pyams_portal.interfaces import IPortalContext
    33 from zope.component.interfaces import ISite
       
    34 from zope.lifecycleevent.interfaces import IObjectAddedEvent, IObjectRemovedEvent
       
    35 
       
    36 # import packages
       
    37 from pyams_content.shared.common.manager import BaseSharedTool
       
    38 from pyams_content.shared.site import Topic
       
    39 from pyams_content.shared.site.container import SiteContainerMixin
       
    40 from pyams_content.shared.site.folder import SiteFolder
       
    41 from pyams_skin.skin import UserSkinnableContent
    41 from pyams_skin.skin import UserSkinnableContent
    42 from pyams_utils.adapter import adapter_config, ContextAdapter
    42 from pyams_utils.adapter import adapter_config, ContextAdapter
    43 from pyams_utils.registry import get_utilities_for
    43 from pyams_utils.registry import get_utilities_for
    44 from pyams_utils.request import query_request
    44 from pyams_utils.request import query_request
    45 from pyams_utils.traversing import get_parent
    45 from pyams_utils.traversing import get_parent
    46 from pyams_utils.vocabulary import vocabulary_config
    46 from pyams_utils.vocabulary import vocabulary_config
    47 from pyramid.events import subscriber
       
    48 from zope.container.ordered import OrderedContainer
       
    49 from zope.interface import implementer
       
    50 from zope.schema.fieldproperty import FieldProperty
       
    51 from zope.schema.vocabulary import SimpleTerm, SimpleVocabulary
       
    52 
    47 
    53 from pyams_content import _
    48 from pyams_content import _
    54 
    49 
    55 
    50 
    56 @implementer(ISiteManager, IParagraphFactorySettings, IThemesManagerTarget, IPictogramManagerTarget,
    51 @implementer(ISiteManager, IParagraphFactorySettings, IThemesManagerTarget, IPictogramManagerTarget,
    57              IIllustrationTarget, ILinkIllustrationTarget, IPortalContext, IHeaderTarget,
    52              IIllustrationTarget, ILinkIllustrationTarget, IPortalContext, IHeaderTarget,
    58              IFooterTarget, IPreviewTarget)
    53              IFooterTarget, IPreviewTarget)
    59 class SiteManager(SiteContainerMixin, OrderedContainer, BaseSharedTool, UserSkinnableContent):
    54 class SiteManager(SiteContainerMixin, OrderedContainer, BaseSharedTool, UserSkinnableContent):
    60     """Site manager persistent class"""
    55     """Site manager persistent class"""
       
    56 
       
    57     description = FieldProperty(ISiteManager['description'])
       
    58     notepad = FieldProperty(ISiteManager['notepad'])
    61 
    59 
    62     allowed_paragraphs = FieldProperty(IParagraphFactorySettings['allowed_paragraphs'])
    60     allowed_paragraphs = FieldProperty(IParagraphFactorySettings['allowed_paragraphs'])
    63     auto_created_paragraphs = FieldProperty(IParagraphFactorySettings['auto_created_paragraphs'])
    61     auto_created_paragraphs = FieldProperty(IParagraphFactorySettings['auto_created_paragraphs'])
    64 
    62 
    65     sequence_name = ''  # use default sequence generator
    63     sequence_name = ''  # use default sequence generator
   136 
   134 
   137     def __init__(self, context):
   135     def __init__(self, context):
   138         request = query_request()
   136         request = query_request()
   139         super(SiteManagerVocabulary, self).__init__([SimpleTerm(v, title=II18n(t).query_attribute('title',
   137         super(SiteManagerVocabulary, self).__init__([SimpleTerm(v, title=II18n(t).query_attribute('title',
   140                                                                                                   request=request))
   138                                                                                                   request=request))
   141                                                     for v, t in get_utilities_for(self.interface)])
   139                                                      for v, t in get_utilities_for(self.interface)])