From 6335281358cf134c7eef82cfc164c6713f0977ed Mon Sep 17 00:00:00 2001 From: kunaljaykam Date: Wed, 22 Jan 2025 17:35:07 +0530 Subject: [PATCH 1/2] SAK-50802 Lessons: multiple imports create duplicate Lessons links on navigation --- .../service/LessonBuilderEntityProducer.java | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/lessonbuilder/tool/src/java/org/sakaiproject/lessonbuildertool/service/LessonBuilderEntityProducer.java b/lessonbuilder/tool/src/java/org/sakaiproject/lessonbuildertool/service/LessonBuilderEntityProducer.java index 161fe34e907f..593e0d7735a7 100644 --- a/lessonbuilder/tool/src/java/org/sakaiproject/lessonbuildertool/service/LessonBuilderEntityProducer.java +++ b/lessonbuilder/tool/src/java/org/sakaiproject/lessonbuildertool/service/LessonBuilderEntityProducer.java @@ -1272,7 +1272,27 @@ public String merge(String siteId, Element root, String archivePath, String from String pagePosition = element.getAttribute("pagePosition"); String pageVisibility = element.getAttribute("pageVisibility"); - if(toolTitle != null) { + NodeList lessonBuilderTools = root.getElementsByTagName("lessonbuilder"); + boolean lessonHasContent = false; + + for (int toolIndex = 0; toolIndex < lessonBuilderTools.getLength() && !hasContent; toolIndex++) { + Node lessonBuilderNode = lessonBuilderTools.item(toolIndex); + if (lessonBuilderNode.getNodeType() == Node.ELEMENT_NODE) { + Element lessonBuilderElement = (Element) lessonBuilderNode; + NodeList lessonPages = lessonBuilderElement.getElementsByTagName("page"); + + for (int pageIndex = 0; pageIndex < lessonPages.getLength() && !hasContent; pageIndex++) { + Element currentPage = (Element) lessonPages.item(pageIndex); + NodeList pageItems = currentPage.getElementsByTagName("item"); + + if (pageItems != null && pageItems.getLength() > 0) { + lessonHasContent = true; + } + } + } + } + + if(toolTitle != null && lessonHasContent) { Tool tr = toolManager.getTool(LessonBuilderConstants.TOOL_ID); SitePage page = null; ToolConfiguration tool = null; From 945ba929ab2be9005ec440ebc5266df5d5d9ba31 Mon Sep 17 00:00:00 2001 From: kunaljaykam Date: Wed, 22 Jan 2025 17:43:34 +0530 Subject: [PATCH 2/2] SAK-50802 Lessons: multiple imports create duplicate Lessons links on navigation --- .../service/LessonBuilderEntityProducer.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lessonbuilder/tool/src/java/org/sakaiproject/lessonbuildertool/service/LessonBuilderEntityProducer.java b/lessonbuilder/tool/src/java/org/sakaiproject/lessonbuildertool/service/LessonBuilderEntityProducer.java index 593e0d7735a7..b5ea2396c9f2 100644 --- a/lessonbuilder/tool/src/java/org/sakaiproject/lessonbuildertool/service/LessonBuilderEntityProducer.java +++ b/lessonbuilder/tool/src/java/org/sakaiproject/lessonbuildertool/service/LessonBuilderEntityProducer.java @@ -1275,13 +1275,13 @@ public String merge(String siteId, Element root, String archivePath, String from NodeList lessonBuilderTools = root.getElementsByTagName("lessonbuilder"); boolean lessonHasContent = false; - for (int toolIndex = 0; toolIndex < lessonBuilderTools.getLength() && !hasContent; toolIndex++) { + for (int toolIndex = 0; toolIndex < lessonBuilderTools.getLength() && !lessonHasContent; toolIndex++) { Node lessonBuilderNode = lessonBuilderTools.item(toolIndex); if (lessonBuilderNode.getNodeType() == Node.ELEMENT_NODE) { Element lessonBuilderElement = (Element) lessonBuilderNode; NodeList lessonPages = lessonBuilderElement.getElementsByTagName("page"); - for (int pageIndex = 0; pageIndex < lessonPages.getLength() && !hasContent; pageIndex++) { + for (int pageIndex = 0; pageIndex < lessonPages.getLength() && !lessonHasContent; pageIndex++) { Element currentPage = (Element) lessonPages.item(pageIndex); NodeList pageItems = currentPage.getElementsByTagName("item");