src/pyams_content/component/paragraph/zmi/pictogram.py
changeset 625 abd143a83a07
parent 609 375ab52043d6
child 710 c770464c85a3
--- 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'