plone.app.multilingual/master: Rename ``media``folder to a more generic name ``assets``
Peter Holzer <jenkins-z4DKO/[email protected]>
| Newsgroups | gmane.comp.web.zope.plone.cvs |
|---|---|
| Message-ID | <[email protected]> |
Repository: plone.app.multilingual Branch: refs/heads/master Date: 2017-07-05T16:23:18+03:00 Author: Peter Holzer (agitator) <peter.holzer-2KzcThb1VtpWk0Htik3J/[email protected]> Commit: https://github.com/plone/plone.app.multilingual/commit/bc76ed80fc678f3fdae530094815ac93677bcf03 Rename ``media``folder to a more generic name ``assets`` Files changed: M CHANGES.rst M README.rst M src/plone/app/multilingual/browser/menu.py M src/plone/app/multilingual/browser/setup.py M src/plone/app/multilingual/tests/test_catalog.py M src/plone/app/multilingual/tests/test_lrf.py M src/plone/app/multilingual/tests/test_sitemap.py M src/plone/app/multilingual/tests/test_subscribers.py diff --git a/CHANGES.rst b/CHANGES.rst index cb02ef9..6a40e79 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -10,7 +10,8 @@ Breaking changes: New features: -- *add item here* +- Rename ``media``folder to a more generic name ``assets`` + [agitator] Bug fixes: diff --git a/README.rst b/README.rst index cb0c68a..5f0942d 100644 --- a/README.rst +++ b/README.rst @@ -139,7 +139,7 @@ language does not exist (yet): translations for the current content. -The "Media" folder - a shared "Language Independent Folder" +The "Assets" folder - a shared "Language Independent Folder" ----------------------------------------------------------- The root language folders are used to house the content tree for the @@ -147,7 +147,7 @@ corresponding language. However, there are some use cases where we need content that does not belong to any language. For example, for assets or side resources like images, videos and documents. For this reason PAM supplies a special Language Independent Folder to house these kind of objects. -After PAM setup, there is a special folder called "Media", which can be +After PAM setup, there is a special folder called "Assets", which can be accessed through the "Go to shared folder" item of the "Translate" menu. All items placed in this folder will have neutral as their default language and will be visible from the other root language folders as if they were placed diff --git a/src/plone/app/multilingual/browser/menu.py b/src/plone/app/multilingual/browser/menu.py index dbc5be6..0874a4a 100644 --- a/src/plone/app/multilingual/browser/menu.py +++ b/src/plone/app/multilingual/browser/menu.py @@ -231,7 +231,7 @@ def getMenuItems(self, context, request): menu.append({ "title": _( u"shared_folder", - default=u"Go to Media folder" + default=u"Go to Assets folder" ), "description": _( u"description_shared_folder", diff --git a/src/plone/app/multilingual/browser/setup.py b/src/plone/app/multilingual/browser/setup.py index 3698b96..ca529d6 100644 --- a/src/plone/app/multilingual/browser/setup.py +++ b/src/plone/app/multilingual/browser/setup.py @@ -38,7 +38,7 @@ class SetupMultilingualSite(object): # portal_type that is added as root language folder folder_type = 'LRF' - # portal_type that is added as language independent media folder + # portal_type that is added as language independent asset folder folder_type_language_independent = 'LIF' def __init__(self, context=None): @@ -137,15 +137,15 @@ def setUpLanguage(self, code, name): if folder is None: _createObjectByType(self.folder_type, self.context, folderId) _createObjectByType(self.folder_type_language_independent, - self.context[folderId], 'media') + self.context[folderId], 'assets') folder = self.context[folderId] ILanguage(folder).set_language(code) folder.setTitle(name) - ILanguage(folder['media']).set_language(code) - folder['media'].setTitle(u'Media') + ILanguage(folder['assets']).set_language(code) + folder['assets'].setTitle(u'Assets') # This assumes a direct 'publish' transition from the initial state # We are going to check if its private and has publish action for @@ -156,24 +156,24 @@ def setUpLanguage(self, code, name): if state != 'published' and 'publish' in available_transitions: wftool.doActionFor(folder, 'publish') - state = wftool.getInfoFor(folder['media'], 'review_state', None) + state = wftool.getInfoFor(folder['assets'], 'review_state', None) available_transitions = [t['id'] for t in - wftool.getTransitionsFor(folder['media'])] + wftool.getTransitionsFor(folder['assets'])] if state != 'published' and 'publish' in available_transitions: - wftool.doActionFor(folder['media'], 'publish') + wftool.doActionFor(folder['assets'], 'publish') # Exclude folder from navigation (if applicable) adapter = IExcludeFromNavigation(folder, None) if adapter is not None: adapter.exclude_from_nav = True - adapter = IExcludeFromNavigation(folder['media'], None) + adapter = IExcludeFromNavigation(folder['assets'], None) if adapter is not None: adapter.exclude_from_nav = True # We've modified the object; reindex. notify(modified(folder)) - notify(modified(folder['media'])) + notify(modified(folder['assets'])) doneSomething = True logger.info(u"Added '%s' folder: %s" % (code, folderId)) diff --git a/src/plone/app/multilingual/tests/test_catalog.py b/src/plone/app/multilingual/tests/test_catalog.py index f50b9cb..7eb11af 100644 --- a/src/plone/app/multilingual/tests/test_catalog.py +++ b/src/plone/app/multilingual/tests/test_catalog.py @@ -16,7 +16,7 @@ def setUp(self): self.request = self.layer['request'] alsoProvides(self.layer['request'], IPloneAppMultilingualInstalled) createContentInContainer( - self.portal['en']['media'], 'Document', title=u"Test document") + self.portal['en']['assets'], 'Document', title=u"Test document") # ^ This will be shadowed to all language independent folders createContentInContainer( diff --git a/src/plone/app/multilingual/tests/test_lrf.py b/src/plone/app/multilingual/tests/test_lrf.py index 8d22bbd..af58962 100644 --- a/src/plone/app/multilingual/tests/test_lrf.py +++ b/src/plone/app/multilingual/tests/test_lrf.py @@ -24,34 +24,34 @@ def setUp(self): def test_shared_content(self): # Create shared document createContentInContainer( - self.portal.en.media, 'Document', title=u"Test document") + self.portal.en.assets, 'Document', title=u"Test document") # Check shared document is there - self.assertEqual(self.portal.en.media['test-document'], - self.portal.ca.media['test-document']) - self.assertEqual(self.portal.en.media['test-document'], - self.portal.es.media['test-document']) + self.assertEqual(self.portal.en.assets['test-document'], + self.portal.ca.assets['test-document']) + self.assertEqual(self.portal.en.assets['test-document'], + self.portal.es.assets['test-document']) # Delete shared document - notify(ObjectWillBeRemovedEvent(self.portal.en.media['test-document'])) - self.portal.en.media.manage_delObjects('test-document') + notify(ObjectWillBeRemovedEvent(self.portal.en.assets['test-document'])) + self.portal.en.assets.manage_delObjects('test-document') # Check that it is not available in LRFs - self.assertNotIn('test-document', self.portal.ca.media.objectIds()) - self.assertNotIn('test-document', self.portal.es.media.objectIds()) + self.assertNotIn('test-document', self.portal.ca.assets.objectIds()) + self.assertNotIn('test-document', self.portal.es.assets.objectIds()) def test_shared_content_indexing(self): # Create shared document createContentInContainer( - self.portal.en.media, 'Document', title=u"Test document") + self.portal.en.assets, 'Document', title=u"Test document") # Check that shared document is indexed in all LRFs elements = self.portal.portal_catalog.searchResults(id='test-document') self.assertEqual(len(elements), 3) # Remove shared document - notify(ObjectWillBeRemovedEvent(self.portal.en.media['test-document'])) - self.portal.en.media.manage_delObjects('test-document') + notify(ObjectWillBeRemovedEvent(self.portal.en.assets['test-document'])) + self.portal.en.assets.manage_delObjects('test-document') # Check that shared document is unindexed elements = self.portal.portal_catalog.searchResults(id='test-document') @@ -60,45 +60,45 @@ def test_shared_content_indexing(self): def test_shared_content_uuid(self): # Create shared document createContentInContainer( - self.portal, 'LIF', title=u"Media", checkConstraints=False) + self.portal, 'LIF', title=u"Assets", checkConstraints=False) createContentInContainer( - self.portal.media, 'Document', title=u"Test document") + self.portal.assets, 'Document', title=u"Test document") - root_uuid = IUUID(self.portal.media['test-document']) - shared_uuid = IUUID(self.portal.ca.media['test-document']) + root_uuid = IUUID(self.portal.assets['test-document']) + shared_uuid = IUUID(self.portal.ca.assets['test-document']) self.assertEqual('{0:s}-ca'.format(root_uuid), shared_uuid) def test_moving_shared_content_to_lrf(self): # Create shared document createContentInContainer( - self.portal, 'LIF', title=u"Media", checkConstraints=False) + self.portal, 'LIF', title=u"Assets", checkConstraints=False) createContentInContainer( - self.portal.media, 'Document', title=u"Test document") - uuid = IUUID(self.portal.media['test-document']) + self.portal.assets, 'Document', title=u"Test document") + uuid = IUUID(self.portal.assets['test-document']) # Check that ghost is ghost self.assertTrue( - is_language_independent(self.portal.ca.media['test-document'])) + is_language_independent(self.portal.ca.assets['test-document'])) # Check is in the catalog brains = self.portal.portal_catalog.searchResults(UID=uuid) self.assertEqual(len(brains), 1) - self.assertEqual(brains[0].getPath(), '/plone/media/test-document') + self.assertEqual(brains[0].getPath(), '/plone/assets/test-document') brains = self.portal.portal_catalog.searchResults( UID='{0:s}-ca'.format(uuid)) self.assertEqual(len(brains), 1) - self.assertEqual(brains[0].getPath(), '/plone/ca/media/test-document') + self.assertEqual(brains[0].getPath(), '/plone/ca/assets/test-document') brains = self.portal.portal_catalog.searchResults( UID='{0:s}-es'.format(uuid)) self.assertEqual(len(brains), 1) - self.assertEqual(brains[0].getPath(), '/plone/es/media/test-document') + self.assertEqual(brains[0].getPath(), '/plone/es/assets/test-document') # MOVE! moved = multilingualMoveObject( - self.portal.ca.media['test-document'], 'ca') + self.portal.ca.assets['test-document'], 'ca') # Check that the old and the new uuid are the same moved_uuid = IUUID(self.portal.ca['test-document']) diff --git a/src/plone/app/multilingual/tests/test_sitemap.py b/src/plone/app/multilingual/tests/test_sitemap.py index f46a2d7..d1867bc 100644 --- a/src/plone/app/multilingual/tests/test_sitemap.py +++ b/src/plone/app/multilingual/tests/test_sitemap.py @@ -30,7 +30,7 @@ def setUp(self): name='sitemap.xml.gz') createContentInContainer( - self.portal['en']['media'], 'Document', title=u"Test document") + self.portal['en']['assets'], 'Document', title=u"Test document") # ^ This will be shadowed to all language independent folders createContentInContainer( @@ -59,9 +59,16 @@ def test_portalroot_sitemap(self): self.assertIn('<loc>http://nohost/plone/en/test-document</loc>', xml) self.assertIn('<loc>http://nohost/plone/es/test-document</loc>', xml) +<<<<<<< Updated upstream self.assertIn('<loc>http://nohost/plone/ca/media/test-document</loc>', xml) # noqa self.assertIn('<loc>http://nohost/plone/en/media/test-document</loc>', xml) # noqa self.assertIn('<loc>http://nohost/plone/es/media/test-document</loc>', xml) # noqa +======= + self.assertIn('<loc>http://nohost/plone/ca/assets/test-document</loc>', xml) + self.assertIn('<loc>http://nohost/plone/en/assets/test-document</loc>', xml) + self.assertIn('<loc>http://nohost/plone/es/assets/test-document</loc>', xml) + +>>>>>>> Stashed changes def test_navroot_sitemap(self): ''' @@ -74,6 +81,12 @@ def test_navroot_sitemap(self): self.assertNotIn('<loc>http://nohost/plone/en/test-document</loc>', xml) # noqa self.assertIn('<loc>http://nohost/plone/es/test-document</loc>', xml) +<<<<<<< Updated upstream self.assertNotIn('<loc>http://nohost/plone/ca/media/test-document</loc>', xml) # noqa self.assertNotIn('<loc>http://nohost/plone/en/media/test-document</loc>', xml) # noqa self.assertIn('<loc>http://nohost/plone/es/media/test-document</loc>', xml) # noqa +======= + self.assertNotIn('<loc>http://nohost/plone/ca/assets/test-document</loc>', xml) + self.assertNotIn('<loc>http://nohost/plone/en/assets/test-document</loc>', xml) + self.assertIn('<loc>http://nohost/plone/es/assets/test-document</loc>', xml) +>>>>>>> Stashed changes diff --git a/src/plone/app/multilingual/tests/test_subscribers.py b/src/plone/app/multilingual/tests/test_subscribers.py index 3a78465..08002c4 100644 --- a/src/plone/app/multilingual/tests/test_subscribers.py +++ b/src/plone/app/multilingual/tests/test_subscribers.py @@ -65,87 +65,117 @@ def test_copied_event(self): a_ca_copied = self.portal['en'][a_ca.id] self.assertEqual(ILanguage(a_ca_copied).get_language(), 'en') +<<<<<<< Updated upstream def test_moved_to_media_folder(self): """When an object is moved from within one Language Root Folder into the Language Independent Folder (named 'Media') it becomes language independent, and it should be visible from the media folder accessed +======= + + def test_moved_to_assets_folder(self): + """When an object is moved from within one Language Root Folder into + the Language Independent Folder (named 'Assets') it becomes language + independent, and it should be visible from the assets folder accessed +>>>>>>> Stashed changes from within other Language Root Folders """ a_ca = createContentInContainer( self.portal['ca'], 'Document', title=u"Test document") # Test a paste into a subfolder to be ultra cautious - ca_media_subfolder = createContentInContainer( - self.portal['ca']['media'], 'Folder', title=u"A Folder") + ca_assets_subfolder = createContentInContainer( + self.portal['ca']['assets'], 'Folder', title=u"A Folder") - subfolder_name = ca_media_subfolder.id + subfolder_name = ca_assets_subfolder.id id_ = self.portal['ca'].manage_cutObjects(a_ca.id) - ca_media_subfolder.manage_pasteObjects(id_) + ca_assets_subfolder.manage_pasteObjects(id_) + + # Get both assets folders afresh + ca_assets_subfolder = self.portal['ca']['assets'][subfolder_name] + en_assets_subfolder = self.portal['en']['assets'][subfolder_name] +<<<<<<< Updated upstream # Get both media folders afresh ca_media_subfolder = self.portal['ca']['media'][subfolder_name] en_media_subfolder = self.portal['en']['media'][subfolder_name] +======= +>>>>>>> Stashed changes # Check it is in both folder listings - self.assertTrue(a_ca.id in ca_media_subfolder) - self.assertTrue(a_ca.id in en_media_subfolder) + self.assertTrue(a_ca.id in ca_assets_subfolder) + self.assertTrue(a_ca.id in en_assets_subfolder) # Check it is language independent - copy_in_en = en_media_subfolder[a_ca.id] + copy_in_en = en_assets_subfolder[a_ca.id] self.assertEqual(ILanguage(copy_in_en).get_language(), '') - copy_in_ca = ca_media_subfolder[a_ca.id] + copy_in_ca = ca_assets_subfolder[a_ca.id] self.assertEqual(ILanguage(copy_in_ca).get_language(), '') # Check it is returned in catalog search catalog = getToolByName(self.portal, 'portal_catalog') - ca_subfolder_path = '/'.join(ca_media_subfolder.getPhysicalPath()) + ca_subfolder_path = '/'.join(ca_assets_subfolder.getPhysicalPath()) ca_folder_contents = [r.id for r in catalog(path=ca_subfolder_path)] self.assertTrue(a_ca.id in ca_folder_contents) - en_subfolder_path = '/'.join(en_media_subfolder.getPhysicalPath()) + en_subfolder_path = '/'.join(en_assets_subfolder.getPhysicalPath()) en_folder_contents = [r.id for r in catalog(path=en_subfolder_path)] self.assertTrue(a_ca.id in en_folder_contents) +<<<<<<< Updated upstream def test_copied_to_media_folder(self): """When an object is copied from within one Language Root Folder into the Language Independent Folder (named 'Media') it becomes language independent, and it should be visible from the media folder accessed +======= + + def test_copied_to_assets_folder(self): + """When an object is copied from within one Language Root Folder into + the Language Independent Folder (named 'Assets') it becomes language + independent, and it should be visible from the assets folder accessed +>>>>>>> Stashed changes from within other Language Root Folders """ a_ca = createContentInContainer( self.portal['ca'], 'Document', title=u"Test document") # Test a paste into a subfolder to be ultra cautious - ca_media_subfolder = createContentInContainer( - self.portal['ca']['media'], 'Folder', title=u"A Folder") + ca_assets_subfolder = createContentInContainer( + self.portal['ca']['assets'], 'Folder', title=u"A Folder") - subfolder_name = ca_media_subfolder.id + subfolder_name = ca_assets_subfolder.id id_ = self.portal['ca'].manage_copyObjects(a_ca.id) - ca_media_subfolder.manage_pasteObjects(id_) + ca_assets_subfolder.manage_pasteObjects(id_) + + # Get both assets folders afresh + ca_assets_subfolder = self.portal['ca']['assets'][subfolder_name] + en_assets_subfolder = self.portal['en']['assets'][subfolder_name] +<<<<<<< Updated upstream # Get both media folders afresh ca_media_subfolder = self.portal['ca']['media'][subfolder_name] en_media_subfolder = self.portal['en']['media'][subfolder_name] +======= +>>>>>>> Stashed changes # Check it is in both folder listings - self.assertTrue(a_ca.id in ca_media_subfolder) - self.assertTrue(a_ca.id in en_media_subfolder) + self.assertTrue(a_ca.id in ca_assets_subfolder) + self.assertTrue(a_ca.id in en_assets_subfolder) # Check it is language independent - copy_in_en = en_media_subfolder[a_ca.id] + copy_in_en = en_assets_subfolder[a_ca.id] self.assertEqual(ILanguage(copy_in_en).get_language(), '') - copy_in_ca = ca_media_subfolder[a_ca.id] + copy_in_ca = ca_assets_subfolder[a_ca.id] self.assertEqual(ILanguage(copy_in_ca).get_language(), '') # Check it is returned in catalog search catalog = getToolByName(self.portal, 'portal_catalog') - ca_subfolder_path = '/'.join(ca_media_subfolder.getPhysicalPath()) + ca_subfolder_path = '/'.join(ca_assets_subfolder.getPhysicalPath()) ca_folder_contents = [r.id for r in catalog(path=ca_subfolder_path)] self.assertTrue(a_ca.id in ca_folder_contents) - en_subfolder_path = '/'.join(en_media_subfolder.getPhysicalPath()) + en_subfolder_path = '/'.join(en_assets_subfolder.getPhysicalPath()) en_folder_contents = [r.id for r in catalog(path=en_subfolder_path)] self.assertTrue(a_ca.id in en_folder_contents) ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot