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.multilingual
Branch: refs/heads/master Date: 2018-03-26T10:29:26+02:00 Author: Mikel Larreategi (erral) <mlarreategi@codesyntax.com> Commit: plone/plone.app.multilingual@ce6d4b1 remove language-switcher after uninstall Files changed: M src/plone/app/multilingual/setuphandlers.py Repository: plone.app.multilingual Branch: refs/heads/master Date: 2018-03-26T10:55:10+02:00 Author: Mikel Larreategi (erral) <mlarreategi@codesyntax.com> Commit: plone/plone.app.multilingual@6a0a5ae add a uninstall test Files changed: A src/plone/app/multilingual/tests/test_uninstall.py Repository: plone.app.multilingual Branch: refs/heads/master Date: 2018-03-26T10:57:34+02:00 Author: Mikel Larreategi (erral) <mlarreategi@codesyntax.com> Commit: plone/plone.app.multilingual@9bda243 changelog Files changed: M CHANGES.rst Repository: plone.app.multilingual Branch: refs/heads/master Date: 2018-03-26T13:58:06+02:00 Author: Jens W. Klein (jensens) <jk@kleinundpartner.at> Commit: plone/plone.app.multilingual@f99b2d6 Merge pull request #309 from plone/improve-uninstall Improve uninstall Files changed: A src/plone/app/multilingual/tests/test_uninstall.py M CHANGES.rst M src/plone/app/multilingual/setuphandlers.py
- Loading branch information
Showing
1 changed file
with
212 additions
and
96 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,152 +1,268 @@ | ||
Repository: plone.app.linkintegrity | ||
Repository: plone.app.multilingual | ||
|
||
|
||
Branch: refs/heads/master | ||
Date: 2018-03-22T08:34:53+01:00 | ||
Date: 2018-03-26T10:29:26+02:00 | ||
Author: Mikel Larreategi (erral) <mlarreategi@codesyntax.com> | ||
Commit: https://github.com/plone/plone.app.linkintegrity/commit/cc3f02de95f8124ebbe5d2a009de6bd4e921d1f2 | ||
Commit: https://github.com/plone/plone.app.multilingual/commit/ce6d4b17a96924836a727d6b9050cc02b0175b75 | ||
|
||
make strings translatable | ||
remove language-switcher after uninstall | ||
|
||
Files changed: | ||
M plone/app/linkintegrity/browser/delete_confirmation_info.pt | ||
M plone/app/linkintegrity/browser/info.py | ||
|
||
diff --git a/plone/app/linkintegrity/browser/delete_confirmation_info.pt b/plone/app/linkintegrity/browser/delete_confirmation_info.pt | ||
index 1dac952..04420ac 100644 | ||
--- a/plone/app/linkintegrity/browser/delete_confirmation_info.pt | ||
+++ b/plone/app/linkintegrity/browser/delete_confirmation_info.pt | ||
@@ -64,7 +64,7 @@ | ||
<strong><span tal:replace="content" i18n:name="content" /></strong> will also be deleted: | ||
</span><br/> | ||
<ul> | ||
- <li tal:define="objects python:['Objects in all', 'Folders', 'Published objects'] " | ||
+ <li tal:define="objects view/objects" | ||
tal:repeat="item python:range(3) " | ||
i18n:translate=""> | ||
<span tal:replace="python: breach_count[content][item]" /> | ||
diff --git a/plone/app/linkintegrity/browser/info.py b/plone/app/linkintegrity/browser/info.py | ||
index f678957..2921efa 100644 | ||
--- a/plone/app/linkintegrity/browser/info.py | ||
+++ b/plone/app/linkintegrity/browser/info.py | ||
@@ -7,11 +7,11 @@ | ||
from Products.CMFCore.permissions import AccessContentsInformation | ||
from Products.CMFCore.utils import _checkPermission | ||
from Products.CMFCore.utils import getToolByName | ||
+from Products.CMFPlone import PloneMessageFactory as _ | ||
from Products.CMFPlone.interfaces.siteroot import IPloneSiteRoot | ||
from Products.Five import BrowserView | ||
from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile | ||
from zope.i18n import translate | ||
- | ||
import logging | ||
M src/plone/app/multilingual/setuphandlers.py | ||
|
||
diff --git a/src/plone/app/multilingual/setuphandlers.py b/src/plone/app/multilingual/setuphandlers.py | ||
index 8f56cf18..56406645 100644 | ||
--- a/src/plone/app/multilingual/setuphandlers.py | ||
+++ b/src/plone/app/multilingual/setuphandlers.py | ||
@@ -1,6 +1,8 @@ | ||
# -*- coding: utf-8 -*- | ||
+from logging import getLogger | ||
from plone.app.multilingual.browser.setup import SetupMultilingualSite | ||
from Products.CMFPlone.interfaces import INonInstallable | ||
+from Products.CMFPlone.utils import getToolByName | ||
from zope.component.hooks import getSite | ||
from zope.interface import implementer | ||
|
||
@@ -63,6 +65,7 @@ def step_uninstall_various(context): | ||
return | ||
portal = context.getSite() | ||
disable_translatable_behavior(portal) | ||
+ disable_language_switcher(portal) | ||
|
||
@@ -191,3 +191,6 @@ def get_portal_type_title(self, obj): | ||
|
||
def is_accessible(self, obj): | ||
return _checkPermission(AccessContentsInformation, obj) | ||
def disable_translatable_behavior(portal): | ||
@@ -81,3 +84,16 @@ def disable_translatable_behavior(portal): | ||
'plone.app.multilingual.dx.interfaces.IDexterityTranslatable' | ||
] | ||
fti._updateProperty('behaviors', behaviors) | ||
+ | ||
+ | ||
+def disable_language_switcher(portal): | ||
+ """Remove the use of language-switcher as default view for Plone Site""" | ||
+ tt = getToolByName(portal, 'portal_types') | ||
+ site = tt['Plone Site'] | ||
+ methods = site.view_methods | ||
+ site.view_methods = [m for m in methods if m != 'language-switcher'] | ||
+ if site.default_view == 'language-switcher': | ||
+ site.default_view = 'listing_view' | ||
+ | ||
+ log = getLogger('setuphandlers.disable_language_switcher') | ||
+ log.info('Language switcher disabled') | ||
|
||
|
||
Repository: plone.app.multilingual | ||
|
||
|
||
Branch: refs/heads/master | ||
Date: 2018-03-26T10:55:10+02:00 | ||
Author: Mikel Larreategi (erral) <mlarreategi@codesyntax.com> | ||
Commit: https://github.com/plone/plone.app.multilingual/commit/6a0a5ae1622a16b33bcdcf0d5babb34cf6fd319c | ||
|
||
add a uninstall test | ||
|
||
Files changed: | ||
A src/plone/app/multilingual/tests/test_uninstall.py | ||
|
||
diff --git a/src/plone/app/multilingual/tests/test_uninstall.py b/src/plone/app/multilingual/tests/test_uninstall.py | ||
new file mode 100644 | ||
index 00000000..5a3aed5a | ||
--- /dev/null | ||
+++ b/src/plone/app/multilingual/tests/test_uninstall.py | ||
@@ -0,0 +1,44 @@ | ||
+from plone import api | ||
+from plone.app.testing import setRoles | ||
+from plone.app.testing import TEST_USER_ID | ||
+from plone.app.multilingual.testing import PLONE_APP_MULTILINGUAL_INTEGRATION_TESTING # noqa | ||
+ | ||
+import unittest | ||
+ | ||
+class TestUninstall(unittest.TestCase): | ||
+ | ||
+ layer = PLONE_APP_MULTILINGUAL_INTEGRATION_TESTING | ||
+ | ||
+ def setUp(self): | ||
+ self.portal = self.layer['portal'] | ||
+ self.installer = api.portal.get_tool('portal_quickinstaller') | ||
+ roles_before = api.user.get_roles(TEST_USER_ID) | ||
+ setRoles(self.portal, TEST_USER_ID, ['Manager']) | ||
+ self.installer.uninstallProducts(['plone.app.multilingual']) | ||
+ setRoles(self.portal, TEST_USER_ID, roles_before) | ||
+ | ||
+ def objects(self): | ||
+ return [_('Objects in all'), _('Folders'), _('Published objects')] | ||
+ def test_product_uninstalled(self): | ||
+ """Test if plone.app.multilingual is cleanly uninstalled.""" | ||
+ self.assertFalse(self.installer.isProductInstalled( | ||
+ 'plone.app.multilingual')) | ||
+ | ||
+ def test_browserlayer_removed(self): | ||
+ """Test that IPloneAppMultilingualInstalled is removed.""" | ||
+ from plone.app.multilingual.interfaces import \ | ||
+ IPloneAppMultilingualInstalled | ||
+ from plone.browserlayer import utils | ||
+ self.assertNotIn( | ||
+ IPloneAppMultilingualInstalled, | ||
+ utils.registered_layers()) | ||
+ | ||
+ def test_language_switcher_not_in_available_view_methods(self): | ||
+ self.assertNotIn( | ||
+ 'language-switcher', | ||
+ self.portal.portal_types['Plone Site'].view_methods | ||
+ ) | ||
+ | ||
+ def test_language_switcher_not_default_view_method(self): | ||
+ self.assertNotEqual( | ||
+ 'language-switcher', | ||
+ self.portal.portal_types['Plone Site'].default_view | ||
+ ) | ||
|
||
|
||
Repository: plone.app.linkintegrity | ||
Repository: plone.app.multilingual | ||
|
||
|
||
Branch: refs/heads/master | ||
Date: 2018-03-22T08:37:03+01:00 | ||
Date: 2018-03-26T10:57:34+02:00 | ||
Author: Mikel Larreategi (erral) <mlarreategi@codesyntax.com> | ||
Commit: https://github.com/plone/plone.app.linkintegrity/commit/1c01c8687e69650e67e50fbd3f6eb72f31eda20a | ||
Commit: https://github.com/plone/plone.app.multilingual/commit/9bda24355bba95791c1bba1938d51fd2c8685b34 | ||
|
||
changelog | ||
|
||
Files changed: | ||
M CHANGES.rst | ||
|
||
diff --git a/CHANGES.rst b/CHANGES.rst | ||
index 4d29289..ae782c8 100644 | ||
index 336f5101..076ab4f5 100644 | ||
--- a/CHANGES.rst | ||
+++ b/CHANGES.rst | ||
@@ -14,7 +14,8 @@ New features: | ||
@@ -15,6 +15,9 @@ New features: | ||
|
||
Bug fixes: | ||
|
||
-- *add item here* | ||
+- Mark strings in delete confirmation screen translatable | ||
+- Remove `language-switcher` from available view methods when uninstalling | ||
+ [erral] | ||
+ | ||
- Fix i18n markup in multilingual map to avoid ${DYNAMIC_CONTENT} strings in po files | ||
[erral] | ||
|
||
|
||
3.3.4 (2018-02-04) | ||
|
||
|
||
Repository: plone.app.linkintegrity | ||
Repository: plone.app.multilingual | ||
|
||
|
||
Branch: refs/heads/master | ||
Date: 2018-03-23T12:45:54+01:00 | ||
Author: Mikel Larreategi (erral) <mlarreategi@codesyntax.com> | ||
Commit: https://github.com/plone/plone.app.linkintegrity/commit/92e92984e36501d265d53cb8b2b3372fc8ab1676 | ||
Date: 2018-03-26T13:58:06+02:00 | ||
Author: Jens W. Klein (jensens) <jk@kleinundpartner.at> | ||
Commit: https://github.com/plone/plone.app.multilingual/commit/f99b2d6e671d8b5f6cd06e7416d8adee6ab3fca5 | ||
|
||
Merge pull request #64 from plone/fix-dynamic-content | ||
Merge pull request #309 from plone/improve-uninstall | ||
|
||
Fix ${DYNAMIC_CONTENT} in translation files | ||
Improve uninstall | ||
|
||
Files changed: | ||
A src/plone/app/multilingual/tests/test_uninstall.py | ||
M CHANGES.rst | ||
M plone/app/linkintegrity/browser/delete_confirmation_info.pt | ||
M plone/app/linkintegrity/browser/info.py | ||
M src/plone/app/multilingual/setuphandlers.py | ||
|
||
diff --git a/CHANGES.rst b/CHANGES.rst | ||
index 4d29289..ae782c8 100644 | ||
index 336f5101..076ab4f5 100644 | ||
--- a/CHANGES.rst | ||
+++ b/CHANGES.rst | ||
@@ -14,7 +14,8 @@ New features: | ||
@@ -15,6 +15,9 @@ New features: | ||
|
||
Bug fixes: | ||
|
||
-- *add item here* | ||
+- Mark strings in delete confirmation screen translatable | ||
+- Remove `language-switcher` from available view methods when uninstalling | ||
+ [erral] | ||
+ | ||
- Fix i18n markup in multilingual map to avoid ${DYNAMIC_CONTENT} strings in po files | ||
[erral] | ||
|
||
diff --git a/src/plone/app/multilingual/setuphandlers.py b/src/plone/app/multilingual/setuphandlers.py | ||
index 8f56cf18..56406645 100644 | ||
--- a/src/plone/app/multilingual/setuphandlers.py | ||
+++ b/src/plone/app/multilingual/setuphandlers.py | ||
@@ -1,6 +1,8 @@ | ||
# -*- coding: utf-8 -*- | ||
+from logging import getLogger | ||
from plone.app.multilingual.browser.setup import SetupMultilingualSite | ||
from Products.CMFPlone.interfaces import INonInstallable | ||
+from Products.CMFPlone.utils import getToolByName | ||
from zope.component.hooks import getSite | ||
from zope.interface import implementer | ||
|
||
3.3.4 (2018-02-04) | ||
diff --git a/plone/app/linkintegrity/browser/delete_confirmation_info.pt b/plone/app/linkintegrity/browser/delete_confirmation_info.pt | ||
index 1dac952..04420ac 100644 | ||
--- a/plone/app/linkintegrity/browser/delete_confirmation_info.pt | ||
+++ b/plone/app/linkintegrity/browser/delete_confirmation_info.pt | ||
@@ -64,7 +64,7 @@ | ||
<strong><span tal:replace="content" i18n:name="content" /></strong> will also be deleted: | ||
</span><br/> | ||
<ul> | ||
- <li tal:define="objects python:['Objects in all', 'Folders', 'Published objects'] " | ||
+ <li tal:define="objects view/objects" | ||
tal:repeat="item python:range(3) " | ||
i18n:translate=""> | ||
<span tal:replace="python: breach_count[content][item]" /> | ||
diff --git a/plone/app/linkintegrity/browser/info.py b/plone/app/linkintegrity/browser/info.py | ||
index f678957..2921efa 100644 | ||
--- a/plone/app/linkintegrity/browser/info.py | ||
+++ b/plone/app/linkintegrity/browser/info.py | ||
@@ -7,11 +7,11 @@ | ||
from Products.CMFCore.permissions import AccessContentsInformation | ||
from Products.CMFCore.utils import _checkPermission | ||
from Products.CMFCore.utils import getToolByName | ||
+from Products.CMFPlone import PloneMessageFactory as _ | ||
from Products.CMFPlone.interfaces.siteroot import IPloneSiteRoot | ||
from Products.Five import BrowserView | ||
from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile | ||
from zope.i18n import translate | ||
- | ||
import logging | ||
|
||
@@ -63,6 +65,7 @@ def step_uninstall_various(context): | ||
return | ||
portal = context.getSite() | ||
disable_translatable_behavior(portal) | ||
+ disable_language_switcher(portal) | ||
|
||
@@ -191,3 +191,6 @@ def get_portal_type_title(self, obj): | ||
|
||
def is_accessible(self, obj): | ||
return _checkPermission(AccessContentsInformation, obj) | ||
def disable_translatable_behavior(portal): | ||
@@ -81,3 +84,16 @@ def disable_translatable_behavior(portal): | ||
'plone.app.multilingual.dx.interfaces.IDexterityTranslatable' | ||
] | ||
fti._updateProperty('behaviors', behaviors) | ||
+ | ||
+ | ||
+def disable_language_switcher(portal): | ||
+ """Remove the use of language-switcher as default view for Plone Site""" | ||
+ tt = getToolByName(portal, 'portal_types') | ||
+ site = tt['Plone Site'] | ||
+ methods = site.view_methods | ||
+ site.view_methods = [m for m in methods if m != 'language-switcher'] | ||
+ if site.default_view == 'language-switcher': | ||
+ site.default_view = 'listing_view' | ||
+ | ||
+ log = getLogger('setuphandlers.disable_language_switcher') | ||
+ log.info('Language switcher disabled') | ||
diff --git a/src/plone/app/multilingual/tests/test_uninstall.py b/src/plone/app/multilingual/tests/test_uninstall.py | ||
new file mode 100644 | ||
index 00000000..5a3aed5a | ||
--- /dev/null | ||
+++ b/src/plone/app/multilingual/tests/test_uninstall.py | ||
@@ -0,0 +1,44 @@ | ||
+from plone import api | ||
+from plone.app.testing import setRoles | ||
+from plone.app.testing import TEST_USER_ID | ||
+from plone.app.multilingual.testing import PLONE_APP_MULTILINGUAL_INTEGRATION_TESTING # noqa | ||
+ | ||
+import unittest | ||
+ | ||
+class TestUninstall(unittest.TestCase): | ||
+ | ||
+ layer = PLONE_APP_MULTILINGUAL_INTEGRATION_TESTING | ||
+ | ||
+ def setUp(self): | ||
+ self.portal = self.layer['portal'] | ||
+ self.installer = api.portal.get_tool('portal_quickinstaller') | ||
+ roles_before = api.user.get_roles(TEST_USER_ID) | ||
+ setRoles(self.portal, TEST_USER_ID, ['Manager']) | ||
+ self.installer.uninstallProducts(['plone.app.multilingual']) | ||
+ setRoles(self.portal, TEST_USER_ID, roles_before) | ||
+ | ||
+ def test_product_uninstalled(self): | ||
+ """Test if plone.app.multilingual is cleanly uninstalled.""" | ||
+ self.assertFalse(self.installer.isProductInstalled( | ||
+ 'plone.app.multilingual')) | ||
+ | ||
+ def test_browserlayer_removed(self): | ||
+ """Test that IPloneAppMultilingualInstalled is removed.""" | ||
+ from plone.app.multilingual.interfaces import \ | ||
+ IPloneAppMultilingualInstalled | ||
+ from plone.browserlayer import utils | ||
+ self.assertNotIn( | ||
+ IPloneAppMultilingualInstalled, | ||
+ utils.registered_layers()) | ||
+ | ||
+ def test_language_switcher_not_in_available_view_methods(self): | ||
+ self.assertNotIn( | ||
+ 'language-switcher', | ||
+ self.portal.portal_types['Plone Site'].view_methods | ||
+ ) | ||
+ | ||
+ def objects(self): | ||
+ return [_('Objects in all'), _('Folders'), _('Published objects')] | ||
+ def test_language_switcher_not_default_view_method(self): | ||
+ self.assertNotEqual( | ||
+ 'language-switcher', | ||
+ self.portal.portal_types['Plone Site'].default_view | ||
+ ) | ||
|
||
|