Index: lams_learning/src/java/org/lamsfoundation/lams/learning/export/ActivityPortfolio.java =================================================================== diff -u -r08950e1090443c3423a3d1c587416a2fccd8bbdf -ra47f62d9ef96db1cddec04678d6d828f37c23d81 --- lams_learning/src/java/org/lamsfoundation/lams/learning/export/ActivityPortfolio.java (.../ActivityPortfolio.java) (revision 08950e1090443c3423a3d1c587416a2fccd8bbdf) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/export/ActivityPortfolio.java (.../ActivityPortfolio.java) (revision a47f62d9ef96db1cddec04678d6d828f37c23d81) @@ -40,6 +40,7 @@ private List childPortfolios; /* The link to the tool page from the main export page */ private String toolLink; + private boolean headingNoPage; /** * @return Returns the toolLink. @@ -62,6 +63,7 @@ this.exportUrl = null; this.toolLink = null; this.childPortfolios = null; + this.headingNoPage = false; } @@ -124,6 +126,17 @@ public void setChildPortfolios(List childPortfolios) { this.childPortfolios = childPortfolios; } + /** Generate just a heading for this portfolio, don't try to link to a page. This is + * used for Parallel and Sequence activities in both learner and teacher modes, + * and for Branching in learner mode. + * @return + */ + public boolean isHeadingNoPage() { + return headingNoPage; + } + public void setHeadingNoPage(boolean headingNoPage) { + this.headingNoPage = headingNoPage; + } } Index: lams_learning/src/java/org/lamsfoundation/lams/learning/export/service/ExportPortfolioService.java =================================================================== diff -u -rccf0c98665da622cc43ff39393de652596752cdf -ra47f62d9ef96db1cddec04678d6d828f37c23d81 --- lams_learning/src/java/org/lamsfoundation/lams/learning/export/service/ExportPortfolioService.java (.../ExportPortfolioService.java) (revision ccf0c98665da622cc43ff39393de652596752cdf) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/export/service/ExportPortfolioService.java (.../ExportPortfolioService.java) (revision a47f62d9ef96db1cddec04678d6d828f37c23d81) @@ -338,7 +338,7 @@ String relativePath = activitySubDirectory.substring(FileUtil.TEMP_DIR.length()+1, activitySubDirectory.length()); // Some activities (parallel, optional, sequence) don't have export urls. - if ( activityPortfolio.getExportUrl() != null ) { + if ( ! activityPortfolio.isHeadingNoPage() ) { activityPortfolio.setExportUrl( ExportPortfolioConstants.HOST + activityPortfolio.getExportUrl() ); activityPortfolio.setExportUrl( WebUtil.appendParameterToURL(activityPortfolio.getExportUrl(), AttributeNames.PARAM_DIRECTORY_NAME, relativePath) ); Index: lams_learning/src/java/org/lamsfoundation/lams/learning/export/service/PortfolioBuilder.java =================================================================== diff -u -rccf0c98665da622cc43ff39393de652596752cdf -ra47f62d9ef96db1cddec04678d6d828f37c23d81 --- lams_learning/src/java/org/lamsfoundation/lams/learning/export/service/PortfolioBuilder.java (.../PortfolioBuilder.java) (revision ccf0c98665da622cc43ff39393de652596752cdf) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/export/service/PortfolioBuilder.java (.../PortfolioBuilder.java) (revision a47f62d9ef96db1cddec04678d6d828f37c23d81) @@ -127,6 +127,11 @@ String exportURL = getExportURLForSystemTool(activity); complexPortfolio = complexPortfolio == null ? createActivityPortfolio(activity) : complexPortfolio; complexPortfolio.setExportUrl(exportURL); + // if there isn't a url, we assume we just want a heading + complexPortfolio.setHeadingNoPage(exportURL == null); + } else { + // sequence, parallel, etc + complexPortfolio.setHeadingNoPage(true); } currentPortfolioList = (ArrayList) activityListStack.pop(); @@ -147,12 +152,12 @@ return; } - ActivityPortfolio p = createActivityPortfolio(activity); String exportUrlForTool = null; if ( activity.isToolActivity() ) { - /* if the tool does not have an export url, use the url that points to the servlet that generates a page saying that the export is not supported */ + // if the tool does not have an export url, then the processor will include an "not supported" error page + ToolActivity toolActivity = (ToolActivity) activity; Tool tool = toolActivity.getTool(); if (accessMode == ToolAccessMode.LEARNER) @@ -179,15 +184,22 @@ exportUrlForTool = WebUtil.appendParameterToURL(exportUrlForTool, AttributeNames.PARAM_TOOL_CONTENT_ID, toolActivity.getToolContentId().toString()); } } + + ActivityPortfolio p = createActivityPortfolio(activity); + p.setExportUrl(exportUrlForTool); + currentPortfolioList.add(p); } else if ( activity.isSystemToolActivity() ) { + exportUrlForTool = getExportURLForSystemTool(activity); + if ( exportUrlForTool != null ) { + ActivityPortfolio p = createActivityPortfolio(activity); + p.setExportUrl(exportUrlForTool); + currentPortfolioList.add(p); + } } + - p.setExportUrl(exportUrlForTool); - - currentPortfolioList.add(p); - } /**