-
-
Notifications
You must be signed in to change notification settings - Fork 76
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[fc] Repository: plone.app.versioningbehavior
Branch: refs/heads/master Date: 2018-10-17T10:11:22+02:00 Author: Gil Forcada (gforcada) <gil.gnome@gmail.com> Commit: plone/plone.app.versioningbehavior@1277e50 Drop zope.app.intid dependency Files changed: M CHANGES.rst M plone/app/versioningbehavior/tests/test_modifiers.py M setup.py Repository: plone.app.versioningbehavior Branch: refs/heads/master Date: 2018-10-17T10:32:49+02:00 Author: Markus Hilbert (iham) <markus.hilbert@iham.at> Commit: plone/plone.app.versioningbehavior@3639dd5 Made writing Blob less aggressive. (issue #42) Files changed: M CHANGES.rst M plone/app/versioningbehavior/modifiers.py Repository: plone.app.versioningbehavior Branch: refs/heads/master Date: 2018-10-17T10:33:29+02:00 Author: Jens W. Klein (jensens) <jk@kleinundpartner.at> Commit: plone/plone.app.versioningbehavior@9ee6780 Merge branch 'master' into issue_42 Files changed: Repository: plone.app.versioningbehavior Branch: refs/heads/master Date: 2018-10-23T10:31:56+02:00 Author: Jens W. Klein (jensens) <jk@kleinundpartner.at> Commit: plone/plone.app.versioningbehavior@d71b8a6 Merge pull request #43 from plone/issue_42 Made writing Blob less aggressive. (issue #42) Files changed: M CHANGES.rst M plone/app/versioningbehavior/modifiers.py
- Loading branch information
Showing
1 changed file
with
34 additions
and
35 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,67 +1,66 @@ | ||
Repository: plone.app.layout | ||
Repository: plone.app.versioningbehavior | ||
|
||
|
||
Branch: refs/heads/2.5.x | ||
Date: 2018-10-13T08:47:57-03:00 | ||
Author: Johannes Raggam (thet) <thetetet@gmail.com> | ||
Commit: https://github.com/plone/plone.app.layout/commit/e08fae8f33c1fb2853db54056840c943ce0a3d57 | ||
Branch: refs/heads/master | ||
Date: 2018-10-17T10:11:22+02:00 | ||
Author: Gil Forcada (gforcada) <gil.gnome@gmail.com> | ||
Commit: https://github.com/plone/plone.app.versioningbehavior/commit/1277e50edad33a2703091ab02f6cadbe9ee91ab4 | ||
|
||
Allow addition of extra body classes via multiple ``IBodyClassAdapter`` adapter registrations without the need to overload the ILayoutPolicy view. | ||
Drop zope.app.intid dependency | ||
|
||
Files changed: | ||
M CHANGES.rst | ||
M plone/app/layout/globals/interfaces.py | ||
M plone/app/layout/globals/layout.py | ||
M plone/app/versioningbehavior/tests/test_modifiers.py | ||
M setup.py | ||
|
||
b'diff --git a/CHANGES.rst b/CHANGES.rst\nindex c8ec450..13ba161 100644\n--- a/CHANGES.rst\n+++ b/CHANGES.rst\n@@ -10,7 +10,8 @@ Breaking changes:\n \n New features:\n \n-- *add item here*\n+- Allow addition of extra body classes via multiple IBodyClassAdapter adapter registrations without the need to overload the ILayoutPolicy view.\n+ [thet, jensens, agitator]\n \n Bug fixes:\n \ndiff --git a/plone/app/layout/globals/interfaces.py b/plone/app/layout/globals/interfaces.py\nindex ed8f4c4..212264c 100644\n--- a/plone/app/layout/globals/interfaces.py\n+++ b/plone/app/layout/globals/interfaces.py\n@@ -275,6 +275,11 @@ class IViewView(Interface):\n """\n \n \n+class IBodyClassAdapter(Interface):\n+ """Adapter interface for retrieving extra body classes.\n+ """\n+\n+\n class IPatternsSettingsRenderer(Interface):\n """ Interface for the adapter that renders the settings for patterns\n """\ndiff --git a/plone/app/layout/globals/layout.py b/plone/app/layout/globals/layout.py\nindex 9847879..8b821c1 100644\n--- a/plone/app/layout/globals/layout.py\n+++ b/plone/app/layout/globals/layout.py\n@@ -5,6 +5,7 @@\n from Products.CMFPlone.interfaces.controlpanel import ISiteSchema\n from Products.Five.browser.metaconfigure import ViewMixinForTemplates\n from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile\n+from plone.app.layout.globals.interfaces import IBodyClassAdapter\n from plone.app.layout.globals.interfaces import ILayoutPolicy\n from plone.app.layout.globals.interfaces import IViewView\n from plone.app.layout.icons.interfaces import IContentIcon\n@@ -16,12 +17,15 @@\n from zope.browserpage.viewpagetemplatefile import (\n ViewPageTemplateFile as ZopeViewPageTemplateFile\n )\n+from zope.component import adapter\n+from zope.component import getAdapters\n from zope.component import getMultiAdapter\n from zope.component import getUtility\n from zope.component import queryMultiAdapter\n from zope.component import queryUtility\n from zope.interface import alsoProvides\n from zope.interface import implements\n+from zope.interface import Interface\n from zope.publisher.browser import BrowserView\n \n \n@@ -268,4 +272,30 @@ def bodyClass(self, template, view):\n if msl or elonw:\n body_classes.append(\'pat-markspeciallinks\')\n \n+ # Add externally defined extra body classes\n+ body_class_adapters = getAdapters(\n+ (self.context, self.request),\n+ IBodyClassAdapter\n+ )\n+ for name, body_class_adapter in body_class_adapters:\n+ extra_classes = body_class_adapter.get_classes() or []\n+ if isinstance(extra_classes, basestring):\n+ extra_classes = extra_classes.split(\' \')\n+ body_classes.extend(extra_classes)\n+\n return \' \'.join(body_classes)\n+\n+\n+@adapter(Interface)\n+class DefaultBodyClasses(object):\n+\n+ implements(IBodyClassAdapter)\n+\n+ def __init__(self, context, request):\n+ self.context = context\n+ self.request = request\n+\n+ def get_classes(self):\n+ """Default body classes adapter.\n+ """\n+ return []\n' | ||
b"diff --git a/CHANGES.rst b/CHANGES.rst\nindex 24d2105..a81df80 100644\n--- a/CHANGES.rst\n+++ b/CHANGES.rst\n@@ -14,8 +14,8 @@ New features:\n \n Bug fixes:\n \n-- *add item here*\n-\n+- Remove (testing) dependency on zope.app.intid.\n+ [gforcada]\n \n 1.3.4 (2018-09-25)\n ------------------\ndiff --git a/plone/app/versioningbehavior/tests/test_modifiers.py b/plone/app/versioningbehavior/tests/test_modifiers.py\nindex 1a3c38e..56c27dd 100644\n--- a/plone/app/versioningbehavior/tests/test_modifiers.py\n+++ b/plone/app/versioningbehavior/tests/test_modifiers.py\n@@ -18,11 +18,11 @@\n from z3c.relationfield.schema import RelationChoice\n from z3c.relationfield.schema import RelationList\n from ZODB.interfaces import IBlob\n-from zope.app.intid.interfaces import IIntIds\n from zope.component import getUtility\n from zope.configuration import xmlconfig\n from zope.interface import alsoProvides\n from zope.interface import Interface\n+from zope.intid.interfaces import IIntIds\n \n import unittest\n \n@@ -210,10 +210,6 @@ def testRelations(self):\n )\n self.portal.portal_types._setObject('RelationsType', rel_fti)\n \n- # Setup IIntIds utility which is required for relations to work\n- from five.intid import site\n- from zope.app.intid.interfaces import IIntIds\n- site.add_intids(self.portal)\n intids = getUtility(IIntIds)\n \n source = createContentInContainer(self.portal, 'RelationsType')\n@@ -284,9 +280,6 @@ def register_RelationsType(self):\n )\n self.portal.portal_types._setObject('RelationsType', rel_fti)\n \n- # Setup IIntIds utility which is required for relations to work\n- site.add_intids(self.portal)\n-\n def testRelationsInBehaviors(self):\n self.register_RelationsType()\n intids = getUtility(IIntIds)\ndiff --git a/setup.py b/setup.py\nindex 1aa4ec7..d659f80 100644\n--- a/setup.py\n+++ b/setup.py\n@@ -15,7 +15,6 @@\n 'plone.app.dexterity',\n 'plone.app.testing',\n 'plone.namedfile[blobs]',\n- 'zope.app.intid',\n ]\n \n setup(\n" | ||
|
||
Repository: plone.app.layout | ||
Repository: plone.app.versioningbehavior | ||
|
||
|
||
Branch: refs/heads/2.5.x | ||
Date: 2018-10-13T08:51:52-03:00 | ||
Author: Rodrigo Ferreira de Souza (rodfersou) <rodfersou@gmail.com> | ||
Commit: https://github.com/plone/plone.app.layout/commit/6d25294aff52f2be261756beef6ebb9837033aab | ||
Branch: refs/heads/master | ||
Date: 2018-10-17T10:32:49+02:00 | ||
Author: Markus Hilbert (iham) <markus.hilbert@iham.at> | ||
Commit: https://github.com/plone/plone.app.versioningbehavior/commit/3639dd596f3d00f5edc1c347c0fb60b6df8cbafd | ||
|
||
Add template and view arguments support to IBodyClassAdapters | ||
Made writing Blob less aggressive. (issue #42) | ||
|
||
Files changed: | ||
M CHANGES.rst | ||
M plone/app/layout/globals/layout.py | ||
M plone/app/versioningbehavior/modifiers.py | ||
|
||
b"diff --git a/CHANGES.rst b/CHANGES.rst\nindex 13ba161..0c1821a 100644\n--- a/CHANGES.rst\n+++ b/CHANGES.rst\n@@ -15,7 +15,8 @@ New features:\n \n Bug fixes:\n \n-- *add item here*\n+- Add template and view arguments support to IBodyClassAdapters (fixes `#158 <https://github.com/plone/plone.app.layout/issues/158>`_).\n+ [rodfersou]\n \n \n 2.5.23 (2017-01-17)\ndiff --git a/plone/app/layout/globals/layout.py b/plone/app/layout/globals/layout.py\nindex 8b821c1..aef7aa3 100644\n--- a/plone/app/layout/globals/layout.py\n+++ b/plone/app/layout/globals/layout.py\n@@ -278,7 +278,10 @@ def bodyClass(self, template, view):\n IBodyClassAdapter\n )\n for name, body_class_adapter in body_class_adapters:\n- extra_classes = body_class_adapter.get_classes() or []\n+ try:\n+ extra_classes = body_class_adapter.get_classes(template, view) or []\n+ except TypeError: # This adapter is implemented without arguments\n+ extra_classes = body_class_adapter.get_classes() or []\n if isinstance(extra_classes, basestring):\n extra_classes = extra_classes.split(' ')\n body_classes.extend(extra_classes)\n" | ||
b'diff --git a/CHANGES.rst b/CHANGES.rst\nindex a81df80..bc48890 100644\n--- a/CHANGES.rst\n+++ b/CHANGES.rst\n@@ -14,6 +14,9 @@ New features:\n \n Bug fixes:\n \n+- Made writing Blob less aggressive.(issue #42)\n+ [iham]\n+\n - Remove (testing) dependency on zope.app.intid.\n [gforcada]\n \ndiff --git a/plone/app/versioningbehavior/modifiers.py b/plone/app/versioningbehavior/modifiers.py\nindex 5e53e2f..1be71f4 100644\n--- a/plone/app/versioningbehavior/modifiers.py\n+++ b/plone/app/versioningbehavior/modifiers.py\n@@ -171,7 +171,9 @@ def reattachReferencedAttributes(self, obj, attrs_dict):\n fname = name.split(\'.\')[-1]\n field = iface.get(fname)\n if field is not None: # Field may have been removed from schema\n- field.get(iface(obj))._blob = blob\n+ adapted_field = field.get(iface(obj))\n+ if adapted_field:\n+ adapted_field._blob = blob\n \n def getOnCloneModifiers(self, obj):\n """Removes references to blobs.\n' | ||
|
||
Repository: plone.app.layout | ||
Repository: plone.app.versioningbehavior | ||
|
||
|
||
Branch: refs/heads/2.5.x | ||
Date: 2018-10-13T08:56:20-03:00 | ||
Author: Rodrigo Ferreira de Souza (rodfersou) <rodfersou@gmail.com> | ||
Commit: https://github.com/plone/plone.app.layout/commit/fbff1e6a7fa1490dea246688f59a269004451d4b | ||
Branch: refs/heads/master | ||
Date: 2018-10-17T10:33:29+02:00 | ||
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at> | ||
Commit: https://github.com/plone/plone.app.versioningbehavior/commit/9ee67806844d294eb7fdd73b396a36b8b9cb95df | ||
|
||
Code review | ||
Merge branch 'master' into issue_42 | ||
|
||
Files changed: | ||
M plone/app/layout/globals/layout.py | ||
|
||
b'diff --git a/plone/app/layout/globals/layout.py b/plone/app/layout/globals/layout.py\nindex aef7aa3..2483649 100644\n--- a/plone/app/layout/globals/layout.py\n+++ b/plone/app/layout/globals/layout.py\n@@ -298,7 +298,7 @@ def __init__(self, context, request):\n self.context = context\n self.request = request\n \n- def get_classes(self):\n+ def get_classes(self, template, view):\n """Default body classes adapter.\n """\n return []\n' | ||
|
||
Repository: plone.app.layout | ||
b'' | ||
|
||
Repository: plone.app.versioningbehavior | ||
|
||
Branch: refs/heads/2.5.x | ||
Date: 2018-10-18T22:57:08+02:00 | ||
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org> | ||
Commit: https://github.com/plone/plone.app.layout/commit/022a709f38ca0d6a885c2ab5dc8fef98e0b05df2 | ||
|
||
Merge pull request #168 from plone/rodfersou/158-250 | ||
Branch: refs/heads/master | ||
Date: 2018-10-23T10:31:56+02:00 | ||
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at> | ||
Commit: https://github.com/plone/plone.app.versioningbehavior/commit/d71b8a6094c827d99e97ab875c9f6c373322215e | ||
|
||
5.0.x - Add template and view arguments support to IBodyClassAdapters | ||
Merge pull request #43 from plone/issue_42 | ||
|
||
Made writing Blob less aggressive. (issue #42) | ||
|
||
Files changed: | ||
M CHANGES.rst | ||
M plone/app/layout/globals/interfaces.py | ||
M plone/app/layout/globals/layout.py | ||
M plone/app/versioningbehavior/modifiers.py | ||
|
||
b'diff --git a/CHANGES.rst b/CHANGES.rst\nindex c8ec450..0c1821a 100644\n--- a/CHANGES.rst\n+++ b/CHANGES.rst\n@@ -10,11 +10,13 @@ Breaking changes:\n \n New features:\n \n-- *add item here*\n+- Allow addition of extra body classes via multiple IBodyClassAdapter adapter registrations without the need to overload the ILayoutPolicy view.\n+ [thet, jensens, agitator]\n \n Bug fixes:\n \n-- *add item here*\n+- Add template and view arguments support to IBodyClassAdapters (fixes `#158 <https://github.com/plone/plone.app.layout/issues/158>`_).\n+ [rodfersou]\n \n \n 2.5.23 (2017-01-17)\ndiff --git a/plone/app/layout/globals/interfaces.py b/plone/app/layout/globals/interfaces.py\nindex ed8f4c4..212264c 100644\n--- a/plone/app/layout/globals/interfaces.py\n+++ b/plone/app/layout/globals/interfaces.py\n@@ -275,6 +275,11 @@ class IViewView(Interface):\n """\n \n \n+class IBodyClassAdapter(Interface):\n+ """Adapter interface for retrieving extra body classes.\n+ """\n+\n+\n class IPatternsSettingsRenderer(Interface):\n """ Interface for the adapter that renders the settings for patterns\n """\ndiff --git a/plone/app/layout/globals/layout.py b/plone/app/layout/globals/layout.py\nindex 9847879..2483649 100644\n--- a/plone/app/layout/globals/layout.py\n+++ b/plone/app/layout/globals/layout.py\n@@ -5,6 +5,7 @@\n from Products.CMFPlone.interfaces.controlpanel import ISiteSchema\n from Products.Five.browser.metaconfigure import ViewMixinForTemplates\n from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile\n+from plone.app.layout.globals.interfaces import IBodyClassAdapter\n from plone.app.layout.globals.interfaces import ILayoutPolicy\n from plone.app.layout.globals.interfaces import IViewView\n from plone.app.layout.icons.interfaces import IContentIcon\n@@ -16,12 +17,15 @@\n from zope.browserpage.viewpagetemplatefile import (\n ViewPageTemplateFile as ZopeViewPageTemplateFile\n )\n+from zope.component import adapter\n+from zope.component import getAdapters\n from zope.component import getMultiAdapter\n from zope.component import getUtility\n from zope.component import queryMultiAdapter\n from zope.component import queryUtility\n from zope.interface import alsoProvides\n from zope.interface import implements\n+from zope.interface import Interface\n from zope.publisher.browser import BrowserView\n \n \n@@ -268,4 +272,33 @@ def bodyClass(self, template, view):\n if msl or elonw:\n body_classes.append(\'pat-markspeciallinks\')\n \n+ # Add externally defined extra body classes\n+ body_class_adapters = getAdapters(\n+ (self.context, self.request),\n+ IBodyClassAdapter\n+ )\n+ for name, body_class_adapter in body_class_adapters:\n+ try:\n+ extra_classes = body_class_adapter.get_classes(template, view) or []\n+ except TypeError: # This adapter is implemented without arguments\n+ extra_classes = body_class_adapter.get_classes() or []\n+ if isinstance(extra_classes, basestring):\n+ extra_classes = extra_classes.split(\' \')\n+ body_classes.extend(extra_classes)\n+\n return \' \'.join(body_classes)\n+\n+\n+@adapter(Interface)\n+class DefaultBodyClasses(object):\n+\n+ implements(IBodyClassAdapter)\n+\n+ def __init__(self, context, request):\n+ self.context = context\n+ self.request = request\n+\n+ def get_classes(self, template, view):\n+ """Default body classes adapter.\n+ """\n+ return []\n' | ||
b'diff --git a/CHANGES.rst b/CHANGES.rst\nindex a81df80..bc48890 100644\n--- a/CHANGES.rst\n+++ b/CHANGES.rst\n@@ -14,6 +14,9 @@ New features:\n \n Bug fixes:\n \n+- Made writing Blob less aggressive.(issue #42)\n+ [iham]\n+\n - Remove (testing) dependency on zope.app.intid.\n [gforcada]\n \ndiff --git a/plone/app/versioningbehavior/modifiers.py b/plone/app/versioningbehavior/modifiers.py\nindex 5e53e2f..1be71f4 100644\n--- a/plone/app/versioningbehavior/modifiers.py\n+++ b/plone/app/versioningbehavior/modifiers.py\n@@ -171,7 +171,9 @@ def reattachReferencedAttributes(self, obj, attrs_dict):\n fname = name.split(\'.\')[-1]\n field = iface.get(fname)\n if field is not None: # Field may have been removed from schema\n- field.get(iface(obj))._blob = blob\n+ adapted_field = field.get(iface(obj))\n+ if adapted_field:\n+ adapted_field._blob = blob\n \n def getOnCloneModifiers(self, obj):\n """Removes references to blobs.\n' | ||
|