Skip to content

Commit

Permalink
Merge c148eca into 6fc4774
Browse files Browse the repository at this point in the history
  • Loading branch information
thet committed Jun 19, 2017
2 parents 6fc4774 + c148eca commit 241892c
Show file tree
Hide file tree
Showing 29 changed files with 676 additions and 722 deletions.
11 changes: 9 additions & 2 deletions CHANGES.rst
@@ -1,8 +1,15 @@
Changelog
=========

1.9.2 (unreleased)
------------------
1.10 (unreleased)
-----------------

- PEP 8.
[thet]

- Deprecate the ``at_bbb`` and ``dx_bbb`` modules.
They are merged with the ``at`` respectively ``dx`` modules.
[thet]

- Remove Plone 5 specific zcml conditions
[petschki]
Expand Down
8 changes: 2 additions & 6 deletions plone/__init__.py
@@ -1,6 +1,2 @@
# See http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
try:
__import__('pkg_resources').declare_namespace(__name__)
except ImportError:
from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)
# -*- coding: utf-8 -*-
__import__('pkg_resources').declare_namespace(__name__)
8 changes: 2 additions & 6 deletions plone/app/__init__.py
@@ -1,6 +1,2 @@
# See http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
try:
__import__('pkg_resources').declare_namespace(__name__)
except ImportError:
from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)
# -*- coding: utf-8 -*-
__import__('pkg_resources').declare_namespace(__name__)
1 change: 1 addition & 0 deletions plone/app/widgets/__init__.py
@@ -0,0 +1 @@
# -*- coding: utf-8 -*-
122 changes: 113 additions & 9 deletions plone/app/widgets/at.py
@@ -1,29 +1,39 @@
# -*- coding: utf-8 -*-
from AccessControl import ClassSecurityInfo
from archetypes.schemaextender.interfaces import IBrowserLayerAwareExtender
from archetypes.schemaextender.interfaces import ISchemaModifier
from DateTime import DateTime
from Products.Archetypes.interfaces import IBaseObject
from Products.Archetypes.Registry import registerWidget
from Products.Archetypes.Widget import TypesWidget
from Products.CMFCore.utils import getToolByName
from datetime import datetime
from plone.app.widgets.base import dict_merge
from plone.app.widgets.base import InputWidget
from plone.app.widgets.base import SelectWidget
from plone.app.widgets.base import TextareaWidget
from plone.app.widgets.base import dict_merge
from plone.app.widgets.interfaces import IFieldPermissionChecker
from plone.app.widgets.utils import NotImplemented
from plone.app.widgets.interfaces import IWidgetsLayer
from plone.app.widgets.utils import first_weekday
from plone.app.widgets.utils import get_ajaxselect_options
from plone.app.widgets.utils import get_date_options
from plone.app.widgets.utils import get_datetime_options
from plone.app.widgets.utils import get_ajaxselect_options
from plone.app.widgets.utils import get_relateditems_options
from plone.app.widgets.utils import get_querystring_options
from plone.app.widgets.utils import get_relateditems_options
from plone.app.widgets.utils import get_tinymce_options
from plone.app.widgets.utils import NotImplemented
from plone.uuid.interfaces import IUUID
from zope.interface import implements
from Products.Archetypes.interfaces import IBaseObject
from Products.Archetypes.Registry import registerWidget
from Products.Archetypes.Widget import TypesWidget
from Products.ATContentTypes.interface import IATContentType
from Products.CMFCore.utils import getToolByName
from zope.component import adapts
from zope.i18nmessageid import MessageFactory
from zope.interface import implements

import json


_plone = MessageFactory('plone')


class BaseWidget(TypesWidget):
"""Base widget for Archetypes."""

Expand Down Expand Up @@ -682,3 +692,97 @@ def validate(self, field_name, vocabulary_name=None):
return False
return field.checkPermission('w', self.context)
raise AttributeError('No such field: {}'.format(field_name))


class MetadataExtender(object):
"""
"""

implements(ISchemaModifier, IBrowserLayerAwareExtender)
adapts(IATContentType)
layer = IWidgetsLayer

def __init__(self, context):
self.context = context

def fiddle(self, schema):
for field in schema.fields():
old = field.widget

if field.__name__ in ['startDate']:
field.widget = DatetimeWidget(
label=old.label,
description=old.description,
pattern_options={'date': {'firstDay': first_weekday()}},
)

if field.__name__ in ['endDate']:
field.widget = DatetimeWidget(
label=old.label,
description=old.description,
pattern_options={'date': {'firstDay': first_weekday()}},
)

if field.__name__ in ['subject']:
field.widget = KeywordsWidget(
label=old.label,
description=old.description,
)

if field.__name__ in ['language']:
field.widget = SelectWidget(
label=old.label,
description=old.description,
)

if field.__name__ in ['effectiveDate', 'expirationDate']:
field.widget = DatetimeWidget(
label=old.label,
description=old.description,
pattern_options={'date': {'firstDay': first_weekday()}},
)

if field.__name__ in ['contributors']:
field.widget = AjaxSelectWidget(
label=old.label,
description=_plone(u"The names of people that have "
u"contributed to this item."),
vocabulary="plone.app.vocabularies.Users",
)

if field.__name__ in ['creators']:
field.widget = AjaxSelectWidget(
label=old.label,
description=_plone(u"The names of people that are "
u"creators to this item."),
vocabulary="plone.app.vocabularies.Users",
)

if field.__name__ in ['text']:
field.widget = TinyMCEWidget(
label=old.label,
description=old.description,
)

if field.__name__ == 'query':
field.widget = QueryStringWidget(
label=old.label,
description=old.description
)

if field.__name__ == 'relatedItems':
field.widget = RelatedItemsWidget(
label=old.label,
description=old.description
)

# if 'customViewFields' in schema:
# field = schema['customViewFields']
# widget = field.widget
# field.widget = ChosenWidget(
# label=widget.label,
# description=widget.description,
# js_options={
# 'allow_sortable': True
# }
# )
108 changes: 3 additions & 105 deletions plone/app/widgets/at_bbb.py
@@ -1,105 +1,3 @@
from Products.ATContentTypes.interface import IATContentType
from archetypes.schemaextender.interfaces import IBrowserLayerAwareExtender
from archetypes.schemaextender.interfaces import ISchemaModifier
from plone.app.widgets import at
from plone.app.widgets.interfaces import IWidgetsLayer
from plone.app.widgets.utils import first_weekday
from zope.component import adapts
from zope.i18nmessageid import MessageFactory
from zope.interface import implements

_plone = MessageFactory('plone')


class MetadataExtender(object):
"""
"""

implements(ISchemaModifier, IBrowserLayerAwareExtender)
adapts(IATContentType)
layer = IWidgetsLayer

def __init__(self, context):
self.context = context

def fiddle(self, schema):
for field in schema.fields():
old = field.widget

if field.__name__ in ['startDate']:
field.widget = at.DatetimeWidget(
label=old.label,
description=old.description,
pattern_options={'date': {'firstDay': first_weekday()}},
)

if field.__name__ in ['endDate']:
field.widget = at.DatetimeWidget(
label=old.label,
description=old.description,
pattern_options={'date': {'firstDay': first_weekday()}},
)

if field.__name__ in ['subject']:
field.widget = at.KeywordsWidget(
label=old.label,
description=old.description,
)

if field.__name__ in ['language']:
field.widget = at.SelectWidget(
label=old.label,
description=old.description,
)

if field.__name__ in ['effectiveDate', 'expirationDate']:
field.widget = at.DatetimeWidget(
label=old.label,
description=old.description,
pattern_options={'date': {'firstDay': first_weekday()}},
)

if field.__name__ in ['contributors']:
field.widget = at.AjaxSelectWidget(
label=old.label,
description=_plone(u"The names of people that have "
u"contributed to this item."),
vocabulary="plone.app.vocabularies.Users",
)

if field.__name__ in ['creators']:
field.widget = at.AjaxSelectWidget(
label=old.label,
description=_plone(u"The names of people that are "
u"creators to this item."),
vocabulary="plone.app.vocabularies.Users",
)

if field.__name__ in ['text']:
field.widget = at.TinyMCEWidget(
label=old.label,
description=old.description,
)

if field.__name__ == 'query':
field.widget = at.QueryStringWidget(
label=old.label,
description=old.description
)

if field.__name__ == 'relatedItems':
field.widget = at.RelatedItemsWidget(
label=old.label,
description=old.description
)

# if 'customViewFields' in schema:
# field = schema['customViewFields']
# widget = field.widget
# field.widget = ChosenWidget(
# label=widget.label,
# description=widget.description,
# js_options={
# 'allow_sortable': True
# }
# )
# -*- coding: utf-8 -*-
from zope.deprecation import moved
moved('plone.app.widgets.at', 'Version 1.10')
1 change: 1 addition & 0 deletions plone/app/widgets/base.py
@@ -1,6 +1,7 @@
# -*- coding: utf-8 -*-
from copy import deepcopy
from lxml import etree

import json


Expand Down
1 change: 1 addition & 0 deletions plone/app/widgets/browser/__init__.py
@@ -0,0 +1 @@
# -*- coding: utf-8 -*-
1 change: 1 addition & 0 deletions plone/app/widgets/browser/at_widget.py
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
from Products.Five import BrowserView


Expand Down
64 changes: 32 additions & 32 deletions plone/app/widgets/browser/configure.zcml
Expand Up @@ -7,47 +7,47 @@
i18n_domain="plone.app.widgets">

<browser:page
name="getVocabulary"
for="*"
class=".vocabulary.VocabularyView"
permission="zope2.View"
/>
name="getVocabulary"
for="*"
class=".vocabulary.VocabularyView"
permission="zope2.View"
/>

<browser:page
name="getSource"
for="z3c.form.interfaces.IWidget"
class=".vocabulary.SourceView"
permission="zope.Public"
/>
name="getSource"
for="z3c.form.interfaces.IWidget"
class=".vocabulary.SourceView"
permission="zope.Public"
/>

<browser:page
name="fileUpload"
for="Products.CMFCore.interfaces._content.IFolderish"
class=".file.FileUploadView"
permission="cmf.AddPortalContent"
/>
name="fileUpload"
for="Products.CMFCore.interfaces._content.IFolderish"
class=".file.FileUploadView"
permission="cmf.AddPortalContent"
/>

<browser:page
name="qsOptions"
for="plone.app.layout.navigation.interfaces.INavigationRoot"
class=".query.QueryStringIndexOptions"
permission="zope2.View"
/>
name="qsOptions"
for="plone.app.layout.navigation.interfaces.INavigationRoot"
class=".query.QueryStringIndexOptions"
permission="zope2.View"
/>

<browser:page
zcml:condition="installed Products.Archetypes"
name="patterns_widget"
for="Products.Archetypes.interfaces.IBaseObject"
class=".at_widget.PatternsWidgetMacros"
template="patterns_widget.pt"
permission="zope.Public"
/>
zcml:condition="installed Products.Archetypes"
name="patterns_widget"
for="Products.Archetypes.interfaces.IBaseObject"
class=".at_widget.PatternsWidgetMacros"
template="patterns_widget.pt"
permission="zope.Public"
/>

<browser:view
for="*"
name="plonejsi18n"
class=".i18n.i18njs"
permission="zope2.View"
/>
for="*"
name="plonejsi18n"
class=".i18n.i18njs"
permission="zope2.View"
/>

</configure>

0 comments on commit 241892c

Please sign in to comment.