--- a/src/pyams_content/component/paragraph/zmi/pictogram.py Mon Jun 11 17:32:24 2018 +0200
+++ b/src/pyams_content/component/paragraph/zmi/pictogram.py Tue Jun 12 10:50:18 2018 +0200
@@ -9,7 +9,6 @@
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
-from pyams_content.reference.pictograms.zmi import get_pictogram_header
__docformat__ = 'restructuredtext'
@@ -24,13 +23,11 @@
from pyams_content.component.paragraph.zmi import IParagraphContainerView, IParagraphEditFormButtons
from pyams_content.component.paragraph.zmi.interfaces import IParagraphInnerEditor
from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION
-from pyams_content.reference.pictograms.interfaces import IPictogramTable
from pyams_content.shared.common import IWfSharedContent
from pyams_form.interfaces.form import IInnerForm, IInnerSubForm
from pyams_i18n.interfaces import II18n
from pyams_skin.interfaces.viewlet import IToolbarAddingMenu, IWidgetTitleViewletManager
from pyams_skin.layer import IPyAMSLayer
-from pyams_utils.interfaces.data import IObjectData
from pyams_zmi.interfaces import IPropertiesEditForm
from z3c.form.interfaces import INPUT_MODE, IDataExtractedEvent
from z3c.table.interfaces import IValues, IColumn
@@ -41,6 +38,7 @@
from pyams_content.component.paragraph.zmi import BaseParagraphAddMenu, BaseParagraphAJAXAddForm, \
BaseParagraphPropertiesEditForm, BaseParagraphAJAXEditForm
from pyams_content.features.renderer.zmi.widget import RendererFieldWidget
+from pyams_content.reference.pictograms.zmi.widget import PictogramSelectFieldWidget
from pyams_form.form import AJAXAddForm, ajax_config
from pyams_form.security import ProtectedFormObjectMixin
from pyams_i18n.column import I18nAttrColumn
@@ -51,7 +49,6 @@
from pyams_skin.table import BaseTable, SorterColumn, I18nColumn, TrashColumn, VisibilitySwitcherColumn
from pyams_skin.viewlet.toolbar import ToolbarAction
from pyams_utils.adapter import adapter_config, ContextRequestViewAdapter
-from pyams_utils.registry import query_utility
from pyams_utils.text import get_text_start
from pyams_utils.traversing import get_parent
from pyams_utils.url import absolute_url
@@ -320,26 +317,12 @@
icon_css_class = 'fa fa-fw fa-arrow-h'
fields = field.Fields(IPictogramItem).omit('__parent__', '__name__', 'visible')
+ fields['pictogram_name'].widgetFactory = PictogramSelectFieldWidget
+
edit_permission = MANAGE_CONTENT_PERMISSION
def updateWidgets(self, prefix=None):
super(PictogramAddForm, self).updateWidgets(prefix)
- if 'pictogram_name' in self.widgets:
- pictograms = query_utility(IPictogramTable)
- if pictograms is not None:
- label_id = '{0}_pictogram_label'.format(self.id)
- widget = self.widgets['pictogram_name']
- widget.after_widget_notice = '<span id="{0}" class="text-info">{1}</span>'.format(
- label_id,
- self.request.localizer.translate(_("Default header: --")))
- widget.object_data = {
- 'ams-change-handler': 'MyAMS.helpers.select2ChangeHelper',
- 'ams-stop-propagation': 'true',
- 'ams-select2-helper-type': 'html',
- 'ams-select2-helper-url': absolute_url(pictograms, self.request, 'get-pictogram-header.html'),
- 'ams-select2-helper-target': '#{0}'.format(label_id)
- }
- alsoProvides(widget, IObjectData)
if 'body' in self.widgets:
self.widgets['body'].widget_css_class = 'textarea height-100'
@@ -376,31 +359,12 @@
icon_css_class = 'fa fa-fw fa-linode'
fields = field.Fields(IPictogramItem).omit('__parent__', '__name__', 'visible')
+ fields['pictogram_name'].widgetFactory = PictogramSelectFieldWidget
+
edit_permission = MANAGE_CONTENT_PERMISSION
def updateWidgets(self, prefix=None):
super(PictogramPropertiesEditForm, self).updateWidgets(prefix)
- if 'pictogram_name' in self.widgets:
- pictograms = query_utility(IPictogramTable)
- if pictograms is not None:
- pictogram = pictograms.get(self.context.pictogram_name)
- label_id = '{0}_pictogram_label'.format(self.id)
- widget = self.widgets['pictogram_name']
- widget.required = True
- if pictogram is None:
- widget.after_widget_notice = '<span id="{0}" class="text-info">--</span>'.format(label_id)
- else:
- widget.after_widget_notice = '<span id="{0}" class="text-info">{1}</span>'.format(
- label_id,
- get_pictogram_header(pictogram, self.request))
- widget.object_data = {
- 'ams-change-handler': 'MyAMS.helpers.select2ChangeHelper',
- 'ams-stop-propagation': 'true',
- 'ams-select2-helper-type': 'html',
- 'ams-select2-helper-url': absolute_url(pictograms, self.request, 'get-pictogram-header.html'),
- 'ams-select2-helper-target': '#{0}'.format(label_id)
- }
- alsoProvides(widget, IObjectData)
if 'body' in self.widgets:
self.widgets['body'].widget_css_class = 'textarea height-100'