--- a/src/pyams_content/component/paragraph/zmi/container.py Tue Oct 09 15:05:38 2018 +0200
+++ b/src/pyams_content/component/paragraph/zmi/container.py Tue Oct 09 15:06:10 2018 +0200
@@ -12,56 +12,52 @@
__docformat__ = 'restructuredtext'
-
-# import standard library
import json
-# import interfaces
-from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION
-from pyams_content.component.association.interfaces import IAssociationContainer
-from pyams_content.component.paragraph.interfaces import IParagraphContainerTarget, IParagraphContainer, \
- IBaseParagraph, IParagraphFactorySettings
-from pyams_content.component.paragraph.zmi.interfaces import IParagraphInnerEditor, IParagraphTitleToolbar, \
- IParagraphContainerTable, IParagraphContainerView
-from pyams_form.interfaces.form import IFormSecurityContext, IInnerSubForm
-from pyams_i18n.interfaces import II18n
-from pyams_skin.interfaces import IInnerPage, IPageHeader
-from pyams_skin.interfaces.container import ITableElementEditor
-from pyams_skin.layer import IPyAMSLayer
-from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION
-from pyams_zmi.interfaces.menu import IPropertiesMenu
-from pyams_zmi.layer import IAdminLayer
-from z3c.table.interfaces import IColumn, IValues
-from zope.contentprovider.interfaces import IContentProvider
-
-# import packages
-from pyams_content.component.association.zmi import AssociationsContainerView
-from pyams_content.component.paragraph import BaseParagraph
-from pyams_content.shared.common.zmi import WfModifiedContentColumnMixin
-from pyams_content.skin import pyams_content
-from pyams_form.security import ProtectedFormObjectMixin
-from pyams_pagelet.pagelet import pagelet_config
-from pyams_skin.container import switch_element_visibility, switch_element_attribute
-from pyams_skin.page import DefaultPageHeaderAdapter
-from pyams_skin.table import BaseTable, I18nColumn, TrashColumn, SorterColumn, ImageColumn, \
- VisibilitySwitcherColumn, AttributeSwitcherColumn
-from pyams_skin.viewlet.menu import MenuItem
-from pyams_template.template import template_config
-from pyams_utils.adapter import adapter_config, ContextRequestViewAdapter, NullAdapter
-from pyams_utils.fanstatic import get_resource_path
-from pyams_utils.traversing import get_parent
-from pyams_utils.url import absolute_url
-from pyams_viewlet.manager import viewletmanager_config, WeightOrderedViewletManager, TemplateBasedViewletManager
-from pyams_viewlet.viewlet import viewlet_config, Viewlet
-from pyams_zmi.form import AdminDialogDisplayForm
-from pyams_zmi.view import AdminView, ContainerAdminView
-from pyams_zmi.zmi.table import InnerTableView
from pyramid.decorator import reify
from pyramid.exceptions import NotFound
from pyramid.view import view_config
from z3c.form import field
from z3c.table.column import GetAttrColumn
-from zope.interface import implementer, Interface
+from z3c.table.interfaces import IColumn, IValues
+from zope.contentprovider.interfaces import IContentProvider
+from zope.interface import Interface, implementer
+
+from pyams_content.component.association.interfaces import IAssociationContainer
+from pyams_content.component.association.zmi import AssociationsContainerView
+from pyams_content.component.paragraph import BaseParagraph
+from pyams_content.component.paragraph.interfaces import IBaseParagraph, IParagraphContainer, IParagraphContainerTarget, \
+ IParagraphFactorySettings
+from pyams_content.component.paragraph.zmi.interfaces import IParagraphContainerTable, IParagraphContainerView, \
+ IParagraphInnerEditor, IParagraphTitleToolbar, IParagraphTitleValue
+from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION
+from pyams_content.shared.common.zmi import WfModifiedContentColumnMixin
+from pyams_content.skin import pyams_content
+from pyams_form.interfaces.form import IFormSecurityContext, IInnerSubForm
+from pyams_form.security import ProtectedFormObjectMixin
+from pyams_i18n.interfaces import II18n
+from pyams_pagelet.pagelet import pagelet_config
+from pyams_skin.container import switch_element_attribute, switch_element_visibility
+from pyams_skin.interfaces import IInnerPage, IPageHeader
+from pyams_skin.interfaces.container import ITableElementEditor
+from pyams_skin.layer import IPyAMSLayer
+from pyams_skin.page import DefaultPageHeaderAdapter
+from pyams_skin.table import AttributeSwitcherColumn, BaseTable, I18nColumn, ImageColumn, SorterColumn, TrashColumn, \
+ VisibilitySwitcherColumn
+from pyams_skin.viewlet.menu import MenuItem
+from pyams_template.template import template_config
+from pyams_utils.adapter import ContextRequestViewAdapter, NullAdapter, adapter_config
+from pyams_utils.fanstatic import get_resource_path
+from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION
+from pyams_utils.traversing import get_parent
+from pyams_utils.url import absolute_url
+from pyams_viewlet.manager import TemplateBasedViewletManager, WeightOrderedViewletManager, viewletmanager_config
+from pyams_viewlet.viewlet import Viewlet, viewlet_config
+from pyams_zmi.form import AdminDialogDisplayForm
+from pyams_zmi.interfaces.menu import IPropertiesMenu
+from pyams_zmi.layer import IAdminLayer
+from pyams_zmi.view import AdminView, ContainerAdminView
+from pyams_zmi.zmi.table import InnerTableView
from pyams_content import _
@@ -252,7 +248,7 @@
"""Paragraph title toolbar viewlet manager"""
-def getParagraphTitleHints(item, request, table):
+def get_paragraph_title_hints(item, request, table):
"""Get paragraphs column title hints"""
registry = request.registry
provider = registry.queryMultiAdapter((item, request, table), IContentProvider,
@@ -275,6 +271,9 @@
return '<span class="title">{0}</span>'.format(super(ParagraphContainerBaseTitleColumn, self).renderCell(item))
def getValue(self, obj):
+ adapter = self.request.registry.queryMultiAdapter((obj, self.request), IParagraphTitleValue)
+ if adapter is not None:
+ return adapter
return II18n(obj).query_attribute('title', request=self.request) or BaseParagraph.empty_title
@@ -292,11 +291,11 @@
' <i class="fa fa-plus-square-o switch"></i>' \
' </span> {title}' \
'</span>'.format(
- hint=self.request.localizer.translate(_("Click to open/close all paragraphs editors")),
- title=super(ParagraphContainerTitleColumn, self).renderHeadCell())
+ hint=self.request.localizer.translate(_("Click to open/close all paragraphs editors")),
+ title=super(ParagraphContainerTitleColumn, self).renderHeadCell())
def renderCell(self, item):
- provider = getParagraphTitleHints(item, self.request, self.table) or ''
+ provider = get_paragraph_title_hints(item, self.request, self.table) or ''
return '<div data-ams-stop-propagation="true" ' \
' data-ams-click-handler="PyAMS_content.paragraphs.switchEditor">{provider}' \
' <span class="small hint" title="{hint}" data-ams-hint-gravity="e">' \
@@ -304,9 +303,9 @@
' </span> <span class="title">{title}</span>' \
'</div>' \
'<div class="inner-table-form editor margin-x-10 margin-bottom-0"></div>'.format(
- provider=provider,
- hint=self.request.localizer.translate(_("Click to open/close paragraph editor")),
- title=super(ParagraphContainerTitleColumn, self).renderCell(item))
+ provider=provider,
+ hint=self.request.localizer.translate(_("Click to open/close paragraph editor")),
+ title=super(ParagraphContainerTitleColumn, self).renderCell(item))
@template_config(template='templates/paragraph-title-icon.pt', layer=IPyAMSLayer)
@@ -433,7 +432,7 @@
view = AssociationsContainerView(paragraph, self.request)
view.widget_icon_class = 'fa fa-fw {0}'.format(paragraph.icon_class)
view.title = II18n(paragraph).query_attribute('title', request=self.request) or \
- BaseParagraph.empty_title
+ BaseParagraph.empty_title
result.append(view)
return result