diff -r 107406cb705c -r cbb65b4b8742 src/pyams_content/component/paragraph/zmi/container.py --- 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 '{0}'.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 @@ ' ' \ '    {title}' \ ''.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 '
{provider}' \ ' ' \ @@ -304,9 +303,9 @@ '    {title}' \ '
' \ '
'.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