src/pyams_content/shared/site/zmi/__init__.py
changeset 1384 cdf63a1c7dc9
parent 1144 725409a83baf
child 1429 9b93fdd5ba30
equal deleted inserted replaced
1383:2cfeb340dacf 1384:cdf63a1c7dc9
     8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
     9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
    10 # FOR A PARTICULAR PURPOSE.
    10 # FOR A PARTICULAR PURPOSE.
    11 #
    11 #
    12 
    12 
    13 __docformat__ = 'restructuredtext'
       
    14 
       
    15 
       
    16 from uuid import uuid4
    13 from uuid import uuid4
    17 
    14 
    18 from pyramid.decorator import reify
    15 from pyramid.decorator import reify
    19 from pyramid.path import DottedNameResolver
    16 from pyramid.path import DottedNameResolver
    20 from z3c.form import field
    17 from z3c.form import field
    21 from zope.interface import Interface
    18 from zope.interface import Interface
    22 from zope.intid.interfaces import IIntIds
    19 from zope.intid.interfaces import IIntIds
    23 from zope.lifecycleevent import ObjectCreatedEvent
    20 from zope.lifecycleevent import ObjectCreatedEvent
    24 from zope.schema import Int
    21 from zope.schema import Int
    25 
    22 
    26 from pyams_content import _
       
    27 from pyams_content.interfaces import CREATE_CONTENT_PERMISSION
    23 from pyams_content.interfaces import CREATE_CONTENT_PERMISSION
    28 from pyams_content.shared.common.interfaces import IWfSharedContent
    24 from pyams_content.shared.common.zmi import SharedContentAJAXAddForm
    29 from pyams_content.shared.common.zmi import SharedContentAJAXAddForm, SharedContentAddForm
    25 from pyams_content.shared.common.zmi.types import TypedSharedContentAddForm
       
    26 from pyams_content.shared.site import IWfSiteTopic
    30 from pyams_content.shared.site.interfaces import ISiteContainer, ISiteManager
    27 from pyams_content.shared.site.interfaces import ISiteContainer, ISiteManager
    31 from pyams_content.shared.site.zmi.widget import SiteManagerFoldersSelectorFieldWidget
    28 from pyams_content.shared.site.zmi.widget import SiteManagerFoldersSelectorFieldWidget
    32 from pyams_form.form import ajax_config
    29 from pyams_form.form import ajax_config
    33 from pyams_i18n.interfaces import II18nManager, INegotiator
    30 from pyams_i18n.interfaces import II18nManager, INegotiator
    34 from pyams_pagelet.pagelet import pagelet_config
    31 from pyams_pagelet.pagelet import pagelet_config
    41 from pyams_viewlet.viewlet import viewlet_config
    38 from pyams_viewlet.viewlet import viewlet_config
    42 from pyams_workflow.interfaces import IWorkflowInfo, IWorkflowVersions
    39 from pyams_workflow.interfaces import IWorkflowInfo, IWorkflowVersions
    43 from pyams_zmi.layer import IAdminLayer
    40 from pyams_zmi.layer import IAdminLayer
    44 
    41 
    45 
    42 
       
    43 __docformat__ = 'restructuredtext'
       
    44 
       
    45 from pyams_content import _
       
    46 
       
    47 
    46 @viewlet_config(name='add-topic.menu', context=ISiteContainer, layer=IAdminLayer, view=Interface,
    48 @viewlet_config(name='add-topic.menu', context=ISiteContainer, layer=IAdminLayer, view=Interface,
    47                 manager=IToolbarAddingMenu, permission=CREATE_CONTENT_PERMISSION, weight=20)
    49                 manager=IToolbarAddingMenu, permission=CREATE_CONTENT_PERMISSION, weight=20)
    48 class TopicAddMenu(ToolbarMenuItem):
    50 class TopicAddMenu(ToolbarMenuItem):
    49     """Topic add menu"""
    51     """Topic add menu"""
    50 
    52 
    52     label_css_class = 'fa fa-fw fa-file-o'
    54     label_css_class = 'fa fa-fw fa-file-o'
    53     url = 'add-topic.html'
    55     url = 'add-topic.html'
    54     modal_target = True
    56     modal_target = True
    55 
    57 
    56 
    58 
    57 class ITopicAddFormFields(IWfSharedContent):
    59 class ITopicAddFormFields(IWfSiteTopic):
    58     """Topic add form fields interface"""
    60     """Topic add form fields interface"""
    59 
    61 
    60     parent = Int(title=_("Parent"),
    62     parent = Int(title=_("Parent"),
    61                  description=_("Topic's parent"),
    63                  description=_("Topic's parent"),
    62                  required=True)
    64                  required=True)
    66                 permission=CREATE_CONTENT_PERMISSION)
    68                 permission=CREATE_CONTENT_PERMISSION)
    67 @pagelet_config(name='add-shared-content.html', context=ISiteContainer, layer=IPyAMSLayer,
    69 @pagelet_config(name='add-shared-content.html', context=ISiteContainer, layer=IPyAMSLayer,
    68                 permission=CREATE_CONTENT_PERMISSION)
    70                 permission=CREATE_CONTENT_PERMISSION)
    69 @ajax_config(name='add-topic.json', context=ISiteContainer, layer=IPyAMSLayer,
    71 @ajax_config(name='add-topic.json', context=ISiteContainer, layer=IPyAMSLayer,
    70              base=SharedContentAJAXAddForm)
    72              base=SharedContentAJAXAddForm)
    71 class TopicAddForm(SharedContentAddForm):
    73 class TopicAddForm(TypedSharedContentAddForm):
    72     """Topic add form"""
    74     """Topic add form"""
    73 
    75 
    74     legend = _("Add topic")
    76     legend = _("Add topic")
    75 
    77 
    76     fields = field.Fields(ITopicAddFormFields).select('title', 'parent', 'notepad')
    78     fields = field.Fields(ITopicAddFormFields).select('title', 'data_type', 'parent', 'notepad')
    77     fields['parent'].widgetFactory = SiteManagerFoldersSelectorFieldWidget
    79     fields['parent'].widgetFactory = SiteManagerFoldersSelectorFieldWidget
    78 
    80 
    79     edit_permission = CREATE_CONTENT_PERMISSION
    81     edit_permission = CREATE_CONTENT_PERMISSION
    80 
    82 
    81     __target = None
    83     __target = None