diff --git a/product/CMFCategory/CategoryTool.py b/product/CMFCategory/CategoryTool.py index 5e6b974000f7765a9f8a0096220cb486fd0b4677..cd705edf35fd29c47184775a18bf20a555269c83 100644 --- a/product/CMFCategory/CategoryTool.py +++ b/product/CMFCategory/CategoryTool.py @@ -1748,17 +1748,11 @@ class CategoryTool( UniqueObject, Folder, Base ): path): """Specific Handling to remove duplicated base_categories in path values like in following example: 'region/region/europe/west'. - - If duplicated id is a real subobject of base_category, - then the path its keept as it is """ splitted_path = path.split('/', 2) if len(splitted_path) >= 2 and base_category_id == splitted_path[1]: - # It needs to be checked. - base_category_value = self._getOb(base_category_id) - if base_category_value._getOb(splitted_path[1], None) is None: - # Duplicate found, strip len(base_category_id + '/') in path - path = path[len(base_category_id)+1:] + # Duplicate found, strip len(base_category_id + '/') in path + path = path[len(base_category_id)+1:] return path diff --git a/product/CMFCategory/tests/testCMFCategory.py b/product/CMFCategory/tests/testCMFCategory.py index ce0159d0624ad0f73fc10b630644d15d00c4cc40..05a7de0ce25e5eab495c8875069d698743181263 100644 --- a/product/CMFCategory/tests/testCMFCategory.py +++ b/product/CMFCategory/tests/testCMFCategory.py @@ -1024,8 +1024,8 @@ class TestCMFCategory(ERP5TypeTestCase): are cleaned up by Getters to avoid accessing base_category through implicit Acquisition. - If region is a sub Category of Base Category region, - Relative Url must not be stripped + Even if region is a sub Category of Base Category region, + Relative Url must be stripped. """ portal_categories = self.getCategoriesTool() organisation = self.getOrganisationModule().newContent( @@ -1049,13 +1049,13 @@ class TestCMFCategory(ERP5TypeTestCase): new_region = new_region.newContent(portal_type='Category', id='europe') new_region = new_region.newContent(portal_type='Category', id='west') - self.assertEquals(organisation.getRegion(), 'region/europe/west') - self.assertEquals(organisation.getRegionList(), ['region/europe/west']) + self.assertEquals(organisation.getRegion(), 'europe/west') + self.assertEquals(organisation.getRegionList(), ['europe/west']) self.assertEquals(organisation.getRegionValue().getPortalType(), 'Category') - self.assertNotEquals(organisation.getRegionValue(), old_west_region) + self.assertEquals(organisation.getRegionValue(), old_west_region) - self.assertEquals(person.getRegion(), 'region/europe/west') - self.assertEquals(person.getRegionList(), ['region/europe/west']) + self.assertEquals(person.getRegion(), 'europe/west') + self.assertEquals(person.getRegionList(), ['europe/west']) # Let's continue with resource because its ID conflict with # "traversing namespaces" names