src/pyams_content/component/paragraph/zmi/container.py
changeset 1429 9b93fdd5ba30
parent 1127 a76066afc55b
equal deleted inserted replaced
1428:48c1ee485dc0 1429:9b93fdd5ba30
     7 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
     7 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
     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 
       
    13 __docformat__ = 'restructuredtext'
       
    14 
    12 
    15 import json
    13 import json
    16 
    14 
    17 from pyramid.decorator import reify
    15 from pyramid.decorator import reify
    18 from pyramid.exceptions import NotFound
    16 from pyramid.exceptions import NotFound
    24 from zope.interface import Interface, implementer
    22 from zope.interface import Interface, implementer
    25 
    23 
    26 from pyams_content.component.association.interfaces import IAssociationContainer
    24 from pyams_content.component.association.interfaces import IAssociationContainer
    27 from pyams_content.component.association.zmi import AssociationsContainerView
    25 from pyams_content.component.association.zmi import AssociationsContainerView
    28 from pyams_content.component.paragraph import BaseParagraph, IParagraphTitle
    26 from pyams_content.component.paragraph import BaseParagraph, IParagraphTitle
    29 from pyams_content.component.paragraph.interfaces import IBaseParagraph, IParagraphContainer, IParagraphContainerTarget, \
    27 from pyams_content.component.paragraph.interfaces import IBaseParagraph, IParagraphContainer, \
    30     IParagraphFactorySettings
    28     IParagraphContainerTarget, IParagraphFactorySettings
    31 from pyams_content.component.paragraph.zmi.interfaces import IParagraphContainerTable, IParagraphContainerView, \
    29 from pyams_content.component.paragraph.zmi.interfaces import IParagraphContainerTable, \
    32     IParagraphInnerEditor, IParagraphTitleToolbar
    30     IParagraphContainerView, IParagraphInnerEditor, IParagraphTitleToolbar
    33 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION
    31 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION
    34 from pyams_content.shared.common.zmi import WfModifiedContentColumnMixin
    32 from pyams_content.shared.common.zmi import WfModifiedContentColumnMixin
    35 from pyams_content.zmi import pyams_content
    33 from pyams_content.zmi import pyams_content
    36 from pyams_form.interfaces.form import IFormSecurityContext, IInnerSubForm
    34 from pyams_form.interfaces.form import IFormSecurityContext, IInnerSubForm
    37 from pyams_form.security import ProtectedFormObjectMixin
    35 from pyams_form.security import ProtectedFormObjectMixin
    40 from pyams_skin.container import switch_element_attribute, switch_element_visibility
    38 from pyams_skin.container import switch_element_attribute, switch_element_visibility
    41 from pyams_skin.interfaces import IInnerPage, IPageHeader
    39 from pyams_skin.interfaces import IInnerPage, IPageHeader
    42 from pyams_skin.interfaces.container import ITableElementEditor
    40 from pyams_skin.interfaces.container import ITableElementEditor
    43 from pyams_skin.layer import IPyAMSLayer
    41 from pyams_skin.layer import IPyAMSLayer
    44 from pyams_skin.page import DefaultPageHeaderAdapter
    42 from pyams_skin.page import DefaultPageHeaderAdapter
    45 from pyams_skin.table import AttributeSwitcherColumn, BaseTable, I18nColumn, ImageColumn, SorterColumn, TrashColumn, \
    43 from pyams_skin.table import AttributeSwitcherColumn, BaseTable, I18nColumn, ImageColumn, \
    46     VisibilitySwitcherColumn
    44     SorterColumn, TrashColumn, VisibilitySwitcherColumn
    47 from pyams_skin.viewlet.menu import MenuItem
    45 from pyams_skin.viewlet.menu import MenuItem
    48 from pyams_template.template import template_config
    46 from pyams_template.template import template_config
    49 from pyams_utils.adapter import ContextRequestViewAdapter, NullAdapter, adapter_config
    47 from pyams_utils.adapter import ContextRequestViewAdapter, NullAdapter, adapter_config
    50 from pyams_utils.fanstatic import get_resource_path
    48 from pyams_utils.fanstatic import get_resource_path
    51 from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION
    49 from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION
    52 from pyams_utils.traversing import get_parent
    50 from pyams_utils.traversing import get_parent
    53 from pyams_utils.url import absolute_url
    51 from pyams_utils.url import absolute_url
    54 from pyams_viewlet.manager import TemplateBasedViewletManager, WeightOrderedViewletManager, viewletmanager_config
    52 from pyams_viewlet.manager import TemplateBasedViewletManager, WeightOrderedViewletManager, \
       
    53     viewletmanager_config
    55 from pyams_viewlet.viewlet import Viewlet, viewlet_config
    54 from pyams_viewlet.viewlet import Viewlet, viewlet_config
    56 from pyams_zmi.form import AdminDialogDisplayForm
    55 from pyams_zmi.form import AdminDialogDisplayForm
    57 from pyams_zmi.interfaces.menu import IPropertiesMenu
    56 from pyams_zmi.interfaces.menu import IPropertiesMenu
    58 from pyams_zmi.layer import IAdminLayer
    57 from pyams_zmi.layer import IAdminLayer
    59 from pyams_zmi.view import AdminView, ContainerAdminView
    58 from pyams_zmi.view import AdminView, ContainerAdminView
    60 from pyams_zmi.zmi.table import InnerTableView
    59 from pyams_zmi.zmi.table import InnerTableView
    61 
    60 
       
    61 
       
    62 __docformat__ = 'restructuredtext'
       
    63 
    62 from pyams_content import _
    64 from pyams_content import _
    63 
    65 
    64 
    66 
    65 @viewlet_config(name='paragraphs.menu', context=IParagraphContainerTarget, layer=IAdminLayer,
    67 @viewlet_config(name='paragraphs.menu', context=IParagraphContainerTarget, layer=IAdminLayer,
    66                 manager=IPropertiesMenu, permission=VIEW_SYSTEM_PERMISSION, weight=50)
    68                 manager=IPropertiesMenu, permission=VIEW_SYSTEM_PERMISSION, weight=100)
    67 class ParagraphsContainerMenu(MenuItem):
    69 class ParagraphsContainerMenu(MenuItem):
    68     """Paragraphs container menu"""
    70     """Paragraphs container menu"""
    69 
    71 
    70     label = _("Contents...")
    72     label = _("Contents...")
    71     icon_class = 'fa-paragraph'
    73     icon_class = 'fa-paragraph'
   403 #
   405 #
   404 # Paragraphs associations view
   406 # Paragraphs associations view
   405 #
   407 #
   406 
   408 
   407 @viewlet_config(name='paragraphs-associations.menu', context=IParagraphContainerTarget, layer=IAdminLayer,
   409 @viewlet_config(name='paragraphs-associations.menu', context=IParagraphContainerTarget, layer=IAdminLayer,
   408                 manager=IPropertiesMenu, permission=VIEW_SYSTEM_PERMISSION, weight=60)
   410                 manager=IPropertiesMenu, permission=VIEW_SYSTEM_PERMISSION, weight=110)
   409 class ParagraphsAssociationsMenu(MenuItem):
   411 class ParagraphsAssociationsMenu(MenuItem):
   410     """Paragraphs associations container menu"""
   412     """Paragraphs associations container menu"""
   411 
   413 
   412     label = _("Links and attachments...")
   414     label = _("Links and attachments...")
   413     icon_class = 'fa-link'
   415     icon_class = 'fa-link'