src/pyams_content/shared/site/zmi/link.py
changeset 1097 a0473ba5f96f
parent 1075 1102a2738e47
child 1113 5f026f7b6ada
equal deleted inserted replaced
1096:a9a423fe6d02 1097:a0473ba5f96f
    10 # FOR A PARTICULAR PURPOSE.
    10 # FOR A PARTICULAR PURPOSE.
    11 #
    11 #
    12 
    12 
    13 __docformat__ = 'restructuredtext'
    13 __docformat__ = 'restructuredtext'
    14 
    14 
    15 
       
    16 # import standard library
       
    17 from uuid import uuid4
    15 from uuid import uuid4
    18 
    16 
    19 # import interfaces
    17 from z3c.form import field
       
    18 from zope.interface import Interface
       
    19 from zope.intid.interfaces import IIntIds
       
    20 from zope.schema import Int
       
    21 
    20 from pyams_content.interfaces import CREATE_CONTENT_PERMISSION, MANAGE_CONTENT_PERMISSION
    22 from pyams_content.interfaces import CREATE_CONTENT_PERMISSION, MANAGE_CONTENT_PERMISSION
    21 from pyams_content.shared.site.interfaces import ISiteContainer, IContentLink
    23 from pyams_content.shared.site.interfaces import IContentLink, ISiteContainer
       
    24 from pyams_content.shared.site.link import ContentLink
       
    25 from pyams_content.shared.site.zmi.container import SiteContainerTreeTable
       
    26 from pyams_content.shared.site.zmi.widget import SiteManagerFoldersSelectorFieldWidget
    22 from pyams_content.zmi.interfaces import ISiteTreeTable
    27 from pyams_content.zmi.interfaces import ISiteTreeTable
       
    28 from pyams_form.form import AJAXAddForm, ajax_config
    23 from pyams_i18n.interfaces import II18n
    29 from pyams_i18n.interfaces import II18n
       
    30 from pyams_pagelet.pagelet import pagelet_config
    24 from pyams_skin.interfaces.container import ITableElementName
    31 from pyams_skin.interfaces.container import ITableElementName
    25 from pyams_skin.interfaces.viewlet import IToolbarAddingMenu
    32 from pyams_skin.interfaces.viewlet import IToolbarAddingMenu
    26 from pyams_skin.layer import IPyAMSLayer
    33 from pyams_skin.layer import IPyAMSLayer
    27 from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION
       
    28 from pyams_zmi.layer import IAdminLayer
       
    29 from zope.intid.interfaces import IIntIds
       
    30 
       
    31 # import packages
       
    32 from pyams_content.shared.site.link import ContentLink
       
    33 from pyams_content.shared.site.zmi.container import SiteContainerTreeTable
       
    34 from pyams_content.shared.site.zmi.widget import SiteManagerFoldersSelectorFieldWidget
       
    35 from pyams_form.form import AJAXAddForm, ajax_config
       
    36 from pyams_pagelet.pagelet import pagelet_config
       
    37 from pyams_skin.table import get_object_name
    34 from pyams_skin.table import get_object_name
    38 from pyams_skin.viewlet.toolbar import ToolbarMenuItem
    35 from pyams_skin.viewlet.toolbar import ToolbarMenuItem
    39 from pyams_utils.adapter import adapter_config, ContextRequestViewAdapter
    36 from pyams_utils.adapter import ContextRequestViewAdapter, adapter_config
       
    37 from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION
    40 from pyams_utils.registry import get_utility
    38 from pyams_utils.registry import get_utility
    41 from pyams_utils.url import absolute_url
    39 from pyams_utils.url import absolute_url
    42 from pyams_viewlet.viewlet import viewlet_config
    40 from pyams_viewlet.viewlet import viewlet_config
    43 from pyams_zmi.form import AdminDialogAddForm, AdminDialogEditForm
    41 from pyams_zmi.form import AdminDialogAddForm, AdminDialogEditForm
    44 from z3c.form import field
    42 from pyams_zmi.layer import IAdminLayer
    45 from zope.interface import Interface
       
    46 from zope.schema import Int
       
    47 
    43 
    48 from pyams_content import _
    44 from pyams_content import _
    49 
    45 
    50 
    46 
    51 @viewlet_config(name='add-content-link.menu', context=ISiteContainer, layer=IAdminLayer, view=Interface,
    47 @viewlet_config(name='add-content-link.menu', context=ISiteContainer, layer=IAdminLayer, view=Interface,
    73 class ContentLinkAddForm(AdminDialogAddForm):
    69 class ContentLinkAddForm(AdminDialogAddForm):
    74     """Content link add form"""
    70     """Content link add form"""
    75 
    71 
    76     legend = _("Rent existing content")
    72     legend = _("Rent existing content")
    77 
    73 
    78     fields = field.Fields(IContentLinkAddFormFields).select('reference', 'navigation_title', 'parent')
    74     fields = field.Fields(IContentLinkAddFormFields).select('reference', 'navigation_title',
       
    75                                                             'navigation_header', 'parent')
    79     fields['parent'].widgetFactory = SiteManagerFoldersSelectorFieldWidget
    76     fields['parent'].widgetFactory = SiteManagerFoldersSelectorFieldWidget
    80 
    77 
    81     edit_permission = CREATE_CONTENT_PERMISSION
    78     edit_permission = CREATE_CONTENT_PERMISSION
    82 
    79 
    83     __target = None
    80     __target = None
    92 
    89 
    93     def update_content(self, content, data):
    90     def update_content(self, content, data):
    94         data = data.get(self, data)
    91         data = data.get(self, data)
    95         content.reference = data.get('reference')
    92         content.reference = data.get('reference')
    96         content.navigation_title = data['navigation_title']
    93         content.navigation_title = data['navigation_title']
       
    94         content.navigation_header = data['navigation_header']
    97         intids = get_utility(IIntIds)
    95         intids = get_utility(IIntIds)
    98         parent = intids.queryObject(data.get('parent'))
    96         parent = intids.queryObject(data.get('parent'))
    99         if parent is not None:
    97         if parent is not None:
   100             uuid = str(uuid4())
    98             uuid = str(uuid4())
   101             parent[uuid] = content
    99             parent[uuid] = content