diff --git a/adapters/selfhosted/xwiki.py b/adapters/selfhosted/xwiki.py index d60119e..afc81a8 100644 --- a/adapters/selfhosted/xwiki.py +++ b/adapters/selfhosted/xwiki.py @@ -158,33 +158,23 @@ def create_or_update_page( self._put(self._page_url(page_name, parent), payload) def deploy(self, rendered_pages: dict[str, tuple[str, str]]) -> None: - """Deploy all rendered pages under the parent page hierarchy. + """Deploy all rendered pages flat in the QMS space. Structure created: - QMS/ ← space root (index page) - QMS/QM Manual/ ← parent page - QMS/QM Manual/ ← all document pages + QMS/WebHome ← space index page + QMS/ ← all document pages (flat, no intermediate parent) Args: rendered_pages: page_name -> (title, rendered_markdown) """ - # Space index page (the QMS space WebHome equivalent) + # Space index page index_entry = rendered_pages.pop("qms_index", None) if index_entry: title, content = index_entry self.create_or_update_page("WebHome", title, content) print(" XWiki: upserted space index 'WebHome'") - # Parent page: "QM Manual" at space root level - parent_name = self._parent_page.replace(" ", "_") - self.create_or_update_page( - parent_name, - self._parent_page, - f"= {self._parent_page} =\n\nAll QMS documents are listed below.", - ) - print(f" XWiki: upserted parent page '{self._parent_page}'") - - # All document pages nested under the parent + # All document pages flat in the space (no intermediate parent page) for page_name, (title, content) in rendered_pages.items(): - self.create_or_update_page(page_name, title, content, parent=parent_name) - print(f" XWiki: upserted page '{page_name}' under '{self._parent_page}'") + self.create_or_update_page(page_name, title, content) + print(f" XWiki: upserted page '{page_name}'") diff --git a/tests/test_adapters.py b/tests/test_adapters.py index 84e1e88..3a47de1 100644 --- a/tests/test_adapters.py +++ b/tests/test_adapters.py @@ -101,8 +101,8 @@ def test_deploy_upserts_all_pages(self) -> None: mock_resp.raise_for_status.return_value = None with patch("adapters.selfhosted.xwiki.requests.put", return_value=mock_resp) as mock_put: adapter.deploy(pages) - # 1 parent page + 2 document pages = 3 PUT calls - assert mock_put.call_count == 3 + # 2 document pages flat in the space (no intermediate parent page) + assert mock_put.call_count == 2 def test_base_url_trailing_slash_stripped(self) -> None: adapter = XWikiAdapter(_make_config(xwiki_url="http://xwiki.test/"))