From 39b72eba010a6d852b760974273aac4318634246 Mon Sep 17 00:00:00 2001 From: Peter Mathis Date: Wed, 21 Aug 2024 11:03:19 +0200 Subject: [PATCH 1/2] Fix `select_default_page` in VHM environments and add test --- plone/app/content/browser/selection.py | 2 +- .../content/tests/test_selectdefaultpage.py | 27 +++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/plone/app/content/browser/selection.py b/plone/app/content/browser/selection.py index 480010d2..ea794770 100644 --- a/plone/app/content/browser/selection.py +++ b/plone/app/content/browser/selection.py @@ -104,7 +104,7 @@ def get_selectable_items(self): results = [] for brain in portal_catalog( - path={"query": context.absolute_url_path(), "depth": 1}, + path={"query": "/".join(context.getPhysicalPath()), "depth": 1}, sort_on="getObjPositionInParent", ): portal_type = brain.portal_type diff --git a/plone/app/content/tests/test_selectdefaultpage.py b/plone/app/content/tests/test_selectdefaultpage.py index ff3a2857..0ac0f678 100644 --- a/plone/app/content/tests/test_selectdefaultpage.py +++ b/plone/app/content/tests/test_selectdefaultpage.py @@ -31,6 +31,7 @@ class SelectDefaultPageDXTestCase(unittest.TestCase): layer = PLONE_APP_CONTENT_DX_FUNCTIONAL_TESTING def setUp(self): + self.app = self.layer["app"] self.portal = self.layer["portal"] self.portal.acl_users.userFolderAddUser( "editor", TEST_USER_PASSWORD, ["Editor"], [] @@ -93,6 +94,32 @@ def test_select_default_page_view(self): self.assertTrue("Select default page" in self.browser.contents) self.assertTrue('id="testdoc"' in self.browser.contents) + def test_select_default_page_vhm_hosted(self): + # Install a Virtual Host Monster + if "virtual_hosting" not in self.app.objectIds(): + # If ZopeLite was imported, we have no default virtual + # host monster + from Products.SiteAccess.VirtualHostMonster import ( + manage_addVirtualHostMonster, + ) + + manage_addVirtualHostMonster(self.app, "virtual_hosting") + transaction.commit() + + folder = self.portal.testfolder + folder_vhm_url = ( + "{}/VirtualHostBase/http/plone.org/{}/VirtualHostRoot/{}".format( + self.app.absolute_url(), + self.portal.id, + folder.id, + ) + ) + + self.browser.open(f"{folder_vhm_url}/@@select_default_page") + + self.assertTrue("Select default page" in self.browser.contents) + self.assertTrue('id="testdoc"' in self.browser.contents) + def test_select_default_page_view_with_folderish_type(self): """Check if folderish types are available.""" folder = self.portal.testfolder From a931ec9f32a1c8a3ac99f9899ed29187258717db Mon Sep 17 00:00:00 2001 From: Peter Mathis Date: Wed, 21 Aug 2024 11:05:49 +0200 Subject: [PATCH 2/2] changenote --- news/292.bugfix | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 news/292.bugfix diff --git a/news/292.bugfix b/news/292.bugfix new file mode 100644 index 00000000..fa4b4ec7 --- /dev/null +++ b/news/292.bugfix @@ -0,0 +1,2 @@ +Fix `select_default_page` in VHM hosted sites +[petschki]