src/pyams_content/component/paragraph/zmi/verbatim.py
changeset 1015 ac47f95d7bd6
parent 1006 cbb65b4b8742
child 1081 a7a2eeb833b7
equal deleted inserted replaced
1014:6cdae82405f7 1015:ac47f95d7bd6
     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 from pyams_content.component.paragraph import IBaseParagraph
       
    13 
       
    14 
    12 
    15 __docformat__ = 'restructuredtext'
    13 __docformat__ = 'restructuredtext'
    16 
    14 
    17 from z3c.form import button, field
    15 from z3c.form import button, field
    18 from z3c.form.interfaces import INPUT_MODE
    16 from z3c.form.interfaces import INPUT_MODE
    19 from zope.interface import implementer
    17 from zope.interface import implementer
    20 
    18 
    21 from pyams_content.component.association.zmi.interfaces import IAssociationsParentForm
    19 from pyams_content.component.association.zmi.interfaces import IAssociationsParentForm
       
    20 from pyams_content.component.paragraph import IBaseParagraph
    22 from pyams_content.component.paragraph.interfaces import IParagraphContainer, IParagraphContainerTarget, \
    21 from pyams_content.component.paragraph.interfaces import IParagraphContainer, IParagraphContainerTarget, \
    23     PARAGRAPH_HIDDEN_FIELDS
    22     PARAGRAPH_HIDDEN_FIELDS
    24 from pyams_content.component.paragraph.interfaces.verbatim import IVerbatimParagraph, VERBATIM_PARAGRAPH_TYPE
    23 from pyams_content.component.paragraph.interfaces.verbatim import IVerbatimParagraph, VERBATIM_PARAGRAPH_TYPE
    25 from pyams_content.component.paragraph.verbatim import VerbatimParagraph
    24 from pyams_content.component.paragraph.verbatim import VerbatimParagraph
    26 from pyams_content.component.paragraph.zmi import BaseParagraphAJAXAddForm, BaseParagraphAJAXEditForm, \
    25 from pyams_content.component.paragraph.zmi import BaseParagraphAJAXAddForm, BaseParagraphAJAXEditForm, \
    31 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION
    30 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION
    32 from pyams_form.form import ajax_config
    31 from pyams_form.form import ajax_config
    33 from pyams_form.interfaces.form import IInnerForm
    32 from pyams_form.interfaces.form import IInnerForm
    34 from pyams_i18n.interfaces import II18n
    33 from pyams_i18n.interfaces import II18n
    35 from pyams_pagelet.pagelet import pagelet_config
    34 from pyams_pagelet.pagelet import pagelet_config
    36 from pyams_skin.event import get_json_widget_refresh_event
       
    37 from pyams_skin.interfaces.viewlet import IToolbarAddingMenu
    35 from pyams_skin.interfaces.viewlet import IToolbarAddingMenu
    38 from pyams_skin.layer import IPyAMSLayer
    36 from pyams_skin.layer import IPyAMSLayer
    39 from pyams_utils.adapter import adapter_config
    37 from pyams_utils.adapter import adapter_config
    40 from pyams_utils.text import get_text_start
    38 from pyams_utils.text import get_text_start
    41 from pyams_viewlet.viewlet import viewlet_config
    39 from pyams_viewlet.viewlet import viewlet_config
    71     icon_css_class = 'fa fa-fw fa-quote-right'
    69     icon_css_class = 'fa fa-fw fa-quote-right'
    72 
    70 
    73     fields = field.Fields(IVerbatimParagraph).omit(*PARAGRAPH_HIDDEN_FIELDS)
    71     fields = field.Fields(IVerbatimParagraph).omit(*PARAGRAPH_HIDDEN_FIELDS)
    74     edit_permission = MANAGE_CONTENT_PERMISSION
    72     edit_permission = MANAGE_CONTENT_PERMISSION
    75 
    73 
       
    74     def updateWidgets(self, prefix=None):
       
    75         super(VerbatimParagraphAddForm, self).updateWidgets(prefix)
       
    76         if 'quote' in self.widgets:
       
    77             self.widgets['quote'].widget_css_class = 'input height-100'
       
    78 
    76     def create(self, data):
    79     def create(self, data):
    77         return VerbatimParagraph()
    80         return VerbatimParagraph()
    78 
    81 
    79     def add(self, object):
    82     def add(self, object):
    80         IParagraphContainer(self.context).append(object)
    83         IParagraphContainer(self.context).append(object)
   107     fields = field.Fields(IVerbatimParagraph).omit(*PARAGRAPH_HIDDEN_FIELDS)
   110     fields = field.Fields(IVerbatimParagraph).omit(*PARAGRAPH_HIDDEN_FIELDS)
   108     fields['renderer'].widgetFactory = RendererFieldWidget
   111     fields['renderer'].widgetFactory = RendererFieldWidget
   109 
   112 
   110     edit_permission = MANAGE_CONTENT_PERMISSION
   113     edit_permission = MANAGE_CONTENT_PERMISSION
   111 
   114 
       
   115     def updateWidgets(self, prefix=None):
       
   116         super(VerbatimParagraphPropertiesEditForm, self).updateWidgets(prefix)
       
   117         if 'quote' in self.widgets:
       
   118             self.widgets['quote'].widget_css_class = 'input height-100'
       
   119 
   112     def get_ajax_output(self, changes):
   120     def get_ajax_output(self, changes):
   113         output = super(self.__class__, self).get_ajax_output(changes)
   121         output = super(self.__class__, self).get_ajax_output(changes)
   114         if 'quote' in changes.get(IVerbatimParagraph, ()):
   122         if 'quote' in changes.get(IVerbatimParagraph, ()):
   115             if 'title' not in changes.get(IBaseParagraph, ()):
   123             if 'title' not in changes.get(IBaseParagraph, ()):
   116                 output.setdefault('events', []).append(
   124                 output.setdefault('events', []).append(