Skip to content

Commit

Permalink
Remove Plone 5 specific conditions
Browse files Browse the repository at this point in the history
and add RichTextWidget convenience
  • Loading branch information
petschki committed Jun 8, 2017
1 parent e36c391 commit e0e1c1b
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 122 deletions.
7 changes: 7 additions & 0 deletions CHANGES.rst
Expand Up @@ -4,6 +4,13 @@ Changelog
1.9.2 (unreleased)
------------------

- Remove Plone 5 specific zcml conditions
[petschki]

- Refactor IRichText FieldWidget adapter. Use interface from
plone.app.textfield to auto-enable RichTextWidget.
[petschki]

- Fix `get_tinymce_options` for non-contentish contexts. See #161.
[petschki]

Expand Down
110 changes: 24 additions & 86 deletions plone/app/widgets/configure.zcml
Expand Up @@ -216,93 +216,41 @@
<adapter factory=".dx.RelatedItemsDataConverter" />
</configure>

<!-- plone<5 configuration -->
<configure zcml:condition="not-have plone-5">

<configure zcml:condition="installed Products.ATContentTypes">
<adapter
name="plone.app.widgets"
factory=".at_bbb.MetadataExtender"
for="Products.ATContentTypes.interface.IATContentType"
provides="archetypes.schemaextender.interfaces.ISchemaModifier"
/>
</configure>

<configure zcml:condition="installed plone.app.dexterity">
<adapter factory=".dx_bbb.SubjectsFieldWidget" />
<adapter factory=".dx_bbb.LanguageFieldWidget" />
<adapter factory=".dx_bbb.EffectiveDateFieldWidget" />
<adapter factory=".dx_bbb.ExpirationDateFieldWidget" />
<adapter factory=".dx_bbb.ContributorsFieldWidget" />
<adapter factory=".dx_bbb.CreatorsFieldWidget" />
<configure zcml:condition="installed Products.ATContentTypes">
<adapter
name="plone.app.widgets"
factory=".at_bbb.MetadataExtender"
for="Products.ATContentTypes.interface.IATContentType"
provides="archetypes.schemaextender.interfaces.ISchemaModifier"
/>
</configure>

<configure zcml:condition="installed plone.app.relationfield">
<adapter factory=".dx_bbb.RelatedItemsFieldWidget" />
</configure>
<configure zcml:condition="installed plone.app.dexterity">

<!-- override p.a.contenttypes specific widgets -->
<configure zcml:condition="installed plone.app.contenttypes">
<adapter factory=".dx_bbb.QueryStringFieldWidget" />
<adapter factory=".dx_bbb.RichTextFieldWidget" />
</configure>
<adapter factory=".dx_bbb.SubjectsFieldWidget" />
<adapter factory=".dx_bbb.LanguageFieldWidget" />
<adapter factory=".dx_bbb.EffectiveDateFieldWidget" />
<adapter factory=".dx_bbb.ExpirationDateFieldWidget" />
<adapter factory=".dx_bbb.ContributorsFieldWidget" />
<adapter factory=".dx_bbb.CreatorsFieldWidget" />

<!-- rich text widget for non-p.a.contenttypes Plone 4 -->
<adapter factory=".dx.RichTextFieldWidget" />
<configure zcml:condition="installed plone.app.relationfield">
<adapter factory=".dx_bbb.RelatedItemsFieldWidget" />
</configure>

<!-- override p.a.contenttypes specific widgets -->
<configure zcml:condition="installed plone.app.contenttypes">
<adapter factory=".dx_bbb.QueryStringFieldWidget" />
</configure>

</configure>

<!-- plone 5 configuration -->
<configure zcml:condition="have plone-5">

<class class=".dx.DateWidget">
<require permission="zope.Public"
interface=".dx.IDateWidget" />
</class>
<class class="zope.schema._field.Date">
<implements interface=".dx.IDateField"/>
</class>
<adapter
factory=".dx.DateFieldWidget"
for=".dx.IDateField
z3c.form.interfaces.IFormLayer" />

<class class=".dx.DatetimeWidget">
<require permission="zope.Public"
interface=".dx.IDatetimeWidget" />
</class>
<class class="zope.schema._field.Datetime">
<implements interface=".dx.IDatetimeField"/>
</class>
<adapter
factory=".dx.DatetimeFieldWidget"
for=".dx.IDatetimeField
z3c.form.interfaces.IFormLayer" />

<adapter factory=".dx.RelatedItemsFieldWidget"
for="z3c.relationfield.interfaces.IRelationChoice
z3c.form.interfaces.IFormLayer"
/>

<adapter factory=".dx.RelatedItemsFieldWidget"
for="z3c.relationfield.interfaces.IRelationList
z3c.form.interfaces.IFormLayer"
/>

<adapter
factory=".dx.RelatedItemsFieldWidget"
for="zope.schema.interfaces.IChoice
plone.app.vocabularies.catalog.CatalogSource
z3c.form.interfaces.IFormLayer" />

<adapter factory=".dx.QueryStringFieldWidget" />
<adapter factory=".dx.RichTextFieldWidget" />

<configure zcml:condition="installed plone.app.textfield">
<!-- rich text widget for plone.app.textfield -->
<adapter factory=".dx_bbb.RichTextFieldWidget" />
</configure>

<genericsetup:registerProfile
zcml:condition="not-have plone-5"
name="default"
title="Plone Widgets"
directory="profiles/default"
Expand All @@ -311,16 +259,6 @@
for="Products.CMFPlone.interfaces.IPloneSiteRoot"
/>

<genericsetup:registerProfile
zcml:condition="have plone-5"
name="default"
title="Plone Widgets"
directory="profiles/p5"
description="Better widgets for Plone"
provides="Products.GenericSetup.interfaces.EXTENSION"
for="Products.CMFPlone.interfaces.IPloneSiteRoot"
/>

<genericsetup:importStep
name="plone.app.widgets-default"
title="plone.app.widgets: Deprecate resource"
Expand Down
29 changes: 0 additions & 29 deletions plone/app/widgets/dx.py
Expand Up @@ -5,7 +5,6 @@
from datetime import date
from datetime import datetime
from lxml import etree
from plone.app.textfield.interfaces import IRichText
from plone.app.textfield.value import RichTextValue
from plone.app.textfield.widget import IRichTextWidget as patextfield_IRichTextWidget # noqa
from plone.app.textfield.widget import RichTextWidget as patextfield_RichTextWidget # noqa
Expand Down Expand Up @@ -39,14 +38,11 @@
from z3c.form.converter import SequenceDataConverter
from z3c.form.interfaces import IAddForm
from z3c.form.interfaces import IFieldWidget
from z3c.form.interfaces import IFormLayer
from z3c.form.interfaces import ISelectWidget
from z3c.form.interfaces import ITextWidget
from z3c.form.interfaces import NO_VALUE
from z3c.form.util import getSpecification
from z3c.form.widget import FieldWidget
from z3c.form.widget import Widget
from zope.component import adapter
from zope.component import adapts
from zope.component import getUtility
from zope.component import queryMultiAdapter
Expand All @@ -69,13 +65,6 @@
import pytz
import json

try:
from plone.app.contenttypes.behaviors.collection import ICollection as IDXCollection # noqa
from plone.app.contenttypes.behaviors import richtext # noqa
HAS_PAC = True
except ImportError:
HAS_PAC = False

try:
from z3c.relationfield.interfaces import IRelationChoice
from z3c.relationfield.interfaces import IRelationList
Expand Down Expand Up @@ -973,24 +962,6 @@ def RelatedItemsFieldWidget(field, request, extra=None):
return FieldWidget(field, RelatedItemsWidget(request))


if HAS_PAC:
@adapter(getSpecification(IDXCollection['query']), IFormLayer)
@implementer(IFieldWidget)
def QueryStringFieldWidget(field, request):
return FieldWidget(field, QueryStringWidget(request))

@adapter(getSpecification(richtext.IRichText['text']), IFormLayer)
@implementer(IFieldWidget)
def RichTextFieldWidget(field, request):
return FieldWidget(field, RichTextWidget(request))
else:
# expose RichTextFieldWidget factory for non-PAC plone 4 sites:
@adapter(IRichText, IWidgetsLayer)
@implementer(IFieldWidget)
def RichTextFieldWidget(field, request):
return FieldWidget(field, RichTextWidget(request))


class MockRequest(TestRequest):
implements(IWidgetsLayer)

Expand Down
14 changes: 8 additions & 6 deletions plone/app/widgets/dx_bbb.py
Expand Up @@ -2,6 +2,7 @@
from plone.app.dexterity.behaviors.metadata import ICategorization
from plone.app.dexterity.behaviors.metadata import IOwnership
from plone.app.dexterity.behaviors.metadata import IPublication
from plone.app.textfield.interfaces import IRichText
from plone.app.widgets.dx import AjaxSelectWidget
from plone.app.widgets.dx import DatetimeWidget
from plone.app.widgets.dx import QueryStringWidget
Expand All @@ -24,12 +25,17 @@

try:
from plone.app.contenttypes.behaviors.collection import ICollection
from plone.app.contenttypes.behaviors.richtext import IRichText
HAS_PAC = True
except ImportError:
HAS_PAC = False


@adapter(IRichText, IWidgetsLayer)
@implementer(IFieldWidget)
def RichTextFieldWidget(field, request):
return FieldWidget(field, RichTextWidget(request))


@adapter(getSpecification(ICategorization['subjects']), IWidgetsLayer)
@implementer(IFieldWidget)
def SubjectsFieldWidget(field, request):
Expand Down Expand Up @@ -88,13 +94,9 @@ def RelatedItemsFieldWidget(field, request):
widget.vocabulary_override = True
return widget


if HAS_PAC:
@adapter(getSpecification(ICollection['query']), IWidgetsLayer)
@implementer(IFieldWidget)
def QueryStringFieldWidget(field, request):
return FieldWidget(field, QueryStringWidget(request))

@adapter(getSpecification(IRichText['text']), IWidgetsLayer)
@implementer(IFieldWidget)
def RichTextFieldWidget(field, request):
return FieldWidget(field, RichTextWidget(request))
2 changes: 1 addition & 1 deletion plone/app/widgets/profiles/default/jsregistry.xml
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<object name="portal_javascripts">

<javascript bundle="deprecated" id="++resource++plone.app.jquery.js" />
<javascript bundle="deprecated" id="++resource++plone.app.jquery.js" insert-before="*" />
<javascript bundle="deprecated" id="++resource++plone.app.jquerytools.dateinput.js" />
<javascript bundle="deprecated" id="++resource++plone.formwidget.autocomplete/formwidget-autocomplete.js" />
<javascript bundle="deprecated" id="++resource++plone.formwidget.autocomplete/jquery.autocomplete.min.js" />
Expand Down

0 comments on commit e0e1c1b

Please sign in to comment.