Index: lams_tool_larsrc/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -rc5a3c3fc24b2d033042c5053298aa7435a0e6057 -r4b2e336f60a9cbbf57ee350705eb6dc254830de9 --- lams_tool_larsrc/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision c5a3c3fc24b2d033042c5053298aa7435a0e6057) +++ lams_tool_larsrc/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 4b2e336f60a9cbbf57ee350705eb6dc254830de9) @@ -165,6 +165,6 @@ monitoring.label.attachments =Attachments message.warnLockOnFinish =Note: After you click on "Next Activity" and you come back to this Share Resources, you won't be able to share/view resources message.activityLocked =The instructor has set this activity not to allow you to view or share any more resources after you have finished it. +label.export.reflection = Notebook Entries - #======= End labels: Exported 159 labels for en AU ===== Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dto/Summary.java =================================================================== diff -u -rf8ab6c53122ad8a79807dbbb92c8ea9da96ad3eb -r4b2e336f60a9cbbf57ee350705eb6dc254830de9 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dto/Summary.java (.../Summary.java) (revision f8ab6c53122ad8a79807dbbb92c8ea9da96ad3eb) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dto/Summary.java (.../Summary.java) (revision 4b2e336f60a9cbbf57ee350705eb6dc254830de9) @@ -98,7 +98,8 @@ * @param item * @param isInitGroup */ - public Summary(String sessionName, ResourceItem item,boolean isInitGroup){ + public Summary(Long sessionId, String sessionName, ResourceItem item,boolean isInitGroup){ + this.sessionId = sessionId; this.sessionName = sessionName; if(item != null){ this.itemUid = item.getUid(); Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/IResourceService.java =================================================================== diff -u -rd07409f014674f056d1bd67d865ba77f0f8298e9 -r4b2e336f60a9cbbf57ee350705eb6dc254830de9 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/IResourceService.java (.../IResourceService.java) (revision d07409f014674f056d1bd67d865ba77f0f8298e9) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/IResourceService.java (.../IResourceService.java) (revision 4b2e336f60a9cbbf57ee350705eb6dc254830de9) @@ -239,7 +239,7 @@ * @param contentId * @return */ - Map> getReflectList(Long contentId); + Map> getReflectList(Long contentId, boolean setEntry); /** * Get user by UID Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java =================================================================== diff -u -rfce4f423dc6717bf489962ddbd692e3ed2d737dc -r4b2e336f60a9cbbf57ee350705eb6dc254830de9 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java (.../ResourceServiceImpl.java) (revision fce4f423dc6717bf489962ddbd692e3ed2d737dc) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java (.../ResourceServiceImpl.java) (revision 4b2e336f60a9cbbf57ee350705eb6dc254830de9) @@ -29,7 +29,6 @@ import java.io.InputStream; import java.sql.Timestamp; import java.util.ArrayList; -import java.util.Comparator; import java.util.Date; import java.util.HashMap; import java.util.HashSet; @@ -64,6 +63,7 @@ import org.lamsfoundation.lams.learningdesign.service.IExportToolContentService; import org.lamsfoundation.lams.learningdesign.service.ImportToolContentException; import org.lamsfoundation.lams.notebook.model.NotebookEntry; +import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants; import org.lamsfoundation.lams.notebook.service.ICoreNotebookService; import org.lamsfoundation.lams.tool.ToolContentImport102Manager; import org.lamsfoundation.lams.tool.ToolContentManager; @@ -94,6 +94,7 @@ import org.lamsfoundation.lams.tool.rsrc.model.ResourceItemVisitLog; import org.lamsfoundation.lams.tool.rsrc.model.ResourceSession; import org.lamsfoundation.lams.tool.rsrc.model.ResourceUser; +import org.lamsfoundation.lams.tool.rsrc.util.ReflectDTOComparator; import org.lamsfoundation.lams.tool.rsrc.util.ResourceToolContentHandler; import org.lamsfoundation.lams.tool.service.ILamsToolService; import org.lamsfoundation.lams.usermanagement.User; @@ -135,17 +136,6 @@ private IExportToolContentService exportContentService; private ICoreNotebookService coreNotebookService; - - private class ReflectDTOComparator implements Comparator{ - public int compare(ReflectDTO o1, ReflectDTO o2) { - if(o1 != null && o2 != null){ - return o1.getFullName().compareTo(o2.getFullName()); - }else if(o1 != null) - return 1; - else - return -1; - } - } public IVersionedNode getFileNode(Long itemUid, String relPathString) throws ResourceApplicationException { ResourceItem item = (ResourceItem) resourceItemDao.getObject(ResourceItem.class,itemUid); if ( item == null ) @@ -355,7 +345,7 @@ continue; //if item is create by author if(item.isCreateByAuthor()){ - Summary sum = new Summary(session.getSessionName(),item,false); + Summary sum = new Summary(session.getSessionId(), session.getSessionName(),item,false); itemList.add(sum); } } @@ -368,7 +358,7 @@ //to skip all item create by author if(!item.isCreateByAuthor()){ - Summary sum = new Summary(session.getSessionName(),item,false); + Summary sum = new Summary(session.getSessionId(), session.getSessionName(),item,false); itemList.add(sum); } } @@ -385,7 +375,7 @@ Set resList = resource.getResourceItems(); for(ResourceItem item:resList){ if(item.isCreateByAuthor()){ - Summary sum = new Summary(null,item,true); + Summary sum = new Summary(null, null,item,true); initList.add(sum); } } @@ -399,12 +389,12 @@ for(ResourceItem item:sessList){ //to skip all item create by author if(!item.isCreateByAuthor()){ - Summary sum = new Summary(session.getSessionName(),item,false); + Summary sum = new Summary(session.getSessionId(), session.getSessionName(),item,false); group.add(sum); } } if(group.size() == 0){ - group.add(new Summary(session.getSessionName(),null,false)); + group.add(new Summary(session.getSessionId(), session.getSessionName(),null,false)); } groupList.add(group); } @@ -555,18 +545,27 @@ return groupList; } - public Map> getReflectList(Long contentId){ + public Map> getReflectList(Long contentId, boolean setEntry){ Map> map = new HashMap>(); List sessionList = resourceSessionDao.getByContentId(contentId); for(ResourceSession session:sessionList){ Long sessionId = session.getSessionId(); boolean hasRefection = session.getResource().isReflectOnActivity(); - Set list = new TreeSet(this.new ReflectDTOComparator()); + Set list = new TreeSet(new ReflectDTOComparator()); //get all users in this session List users = resourceUserDao.getBySessionID(sessionId); for(ResourceUser user : users){ ReflectDTO ref = new ReflectDTO(user); + + if (setEntry) { + NotebookEntry entry = getEntry(sessionId, CoreNotebookConstants.NOTEBOOK_TOOL, + ResourceConstants.TOOL_SIGNATURE, user.getUserId().intValue()); + if (entry != null) { + ref.setReflect(entry.getEntry()); + } + } + ref.setHasRefection(hasRefection); list.add(ref); } Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/util/ReflectDTOComparator.java =================================================================== diff -u --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/util/ReflectDTOComparator.java (revision 0) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/util/ReflectDTOComparator.java (revision 4b2e336f60a9cbbf57ee350705eb6dc254830de9) @@ -0,0 +1,38 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +package org.lamsfoundation.lams.tool.rsrc.util; + +import java.util.Comparator; + +import org.lamsfoundation.lams.tool.rsrc.dto.ReflectDTO; + +public class ReflectDTOComparator implements Comparator { + public int compare(ReflectDTO o1, ReflectDTO o2) { + if (o1 != null && o2 != null) { + return o1.getFullName().compareTo(o2.getFullName()); + } else if (o1 != null) + return 1; + else + return -1; + } +} \ No newline at end of file Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/MonitoringAction.java =================================================================== diff -u -ra2dbb31368b99c8473e68c7c611afa44b6c56b67 -r4b2e336f60a9cbbf57ee350705eb6dc254830de9 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision a2dbb31368b99c8473e68c7c611afa44b6c56b67) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision 4b2e336f60a9cbbf57ee350705eb6dc254830de9) @@ -154,7 +154,7 @@ Resource resource = service.getResourceByContentId(contentId); resource.toDTO(); - Map >relectList = service.getReflectList(contentId); + Map >relectList = service.getReflectList(contentId, false); //cache into sessionMap sessionMap.put(ResourceConstants.ATTR_SUMMARY_LIST, groupList); Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/servlet/ExportServlet.java =================================================================== diff -u -re7046600ee8bfa53d053e0aee33a16b52ad0e8e2 -r4b2e336f60a9cbbf57ee350705eb6dc254830de9 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/servlet/ExportServlet.java (.../ExportServlet.java) (revision e7046600ee8bfa53d053e0aee33a16b52ad0e8e2) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/servlet/ExportServlet.java (.../ExportServlet.java) (revision 4b2e336f60a9cbbf57ee350705eb6dc254830de9) @@ -29,22 +29,30 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeSet; +import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; +import org.lamsfoundation.lams.notebook.model.NotebookEntry; +import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants; import org.lamsfoundation.lams.tool.ToolAccessMode; import org.lamsfoundation.lams.tool.rsrc.ResourceConstants; +import org.lamsfoundation.lams.tool.rsrc.dto.ReflectDTO; import org.lamsfoundation.lams.tool.rsrc.dto.Summary; import org.lamsfoundation.lams.tool.rsrc.model.Resource; import org.lamsfoundation.lams.tool.rsrc.model.ResourceSession; import org.lamsfoundation.lams.tool.rsrc.model.ResourceUser; import org.lamsfoundation.lams.tool.rsrc.service.IResourceService; import org.lamsfoundation.lams.tool.rsrc.service.ResourceApplicationException; import org.lamsfoundation.lams.tool.rsrc.service.ResourceServiceProxy; +import org.lamsfoundation.lams.tool.rsrc.util.ReflectDTOComparator; import org.lamsfoundation.lams.tool.rsrc.util.ResourceToolContentHandler; import org.lamsfoundation.lams.util.FileUtil; import org.lamsfoundation.lams.web.servlet.AbstractExportPortfolioServlet; @@ -69,7 +77,15 @@ private final String FILENAME = "shared_resources_main.html"; private ResourceToolContentHandler handler; - + + private IResourceService service; + + @Override + public void init() throws ServletException { + service = ResourceServiceProxy.getResourceService(getServletContext()); + super.init(); + } + public String doExport(HttpServletRequest request, HttpServletResponse response, String directoryName, Cookie[] cookies) { // initial sessionMap @@ -100,7 +116,7 @@ if (toolContentID == null && toolSessionID == null) { logger.error("Tool content Id or and session Id are null. Unable to activity title"); } else { - IResourceService service = ResourceServiceProxy.getResourceService(getServletContext()); + Resource content = null; if ( toolContentID != null ) { content = service.getResourceByContentId(toolContentID); @@ -121,8 +137,6 @@ public void learner(HttpServletRequest request, HttpServletResponse response, String directoryName, Cookie[] cookies, HashMap sessionMap) throws ResourceApplicationException { - IResourceService service = ResourceServiceProxy.getResourceService(getServletContext()); - if (userID == null || toolSessionID == null) { String error = "Tool session Id or user Id is null. Unable to continue"; logger.error(error); @@ -152,13 +166,29 @@ List groupList = new ArrayList(); if(group.size() > 0) groupList.add(group); + + // Add flag to indicate whether to render user notebook entries + sessionMap.put(ResourceConstants.ATTR_REFLECTION_ON, content.isReflectOnActivity()); + + // Create reflectList if reflection is enabled. + if (content.isReflectOnActivity()) { + // Create reflectList, need to follow same structure used in teacher + // see service.getReflectList(); + Map> map = new HashMap>(); + Set reflectDTOSet = new TreeSet(new ReflectDTOComparator()); + reflectDTOSet.add(getReflectionEntry(learner)); + map.put(toolSessionID, reflectDTOSet); + + // Add reflectList to sessionMap + sessionMap.put(ResourceConstants.ATTR_REFLECT_LIST, map); + } + sessionMap.put(ResourceConstants.ATTR_TITLE, content.getTitle()); sessionMap.put(ResourceConstants.ATTR_SUMMARY_LIST, groupList); } public void teacher(HttpServletRequest request, HttpServletResponse response, String directoryName, Cookie[] cookies, HashMap sessionMap) throws ResourceApplicationException { - IResourceService service = ResourceServiceProxy.getResourceService(getServletContext()); // check if toolContentId exists in db or not if (toolContentID == null) { @@ -175,10 +205,22 @@ throw new ResourceApplicationException(error); } List> groupList = service.exportByContentId(toolContentID); - if(groupList != null) + if(groupList != null) { for (List list : groupList) { saveFileToLocal(list, directoryName); } + } + + // Add flag to indicate whether to render user notebook entries + sessionMap.put(ResourceConstants.ATTR_REFLECTION_ON, content.isReflectOnActivity()); + + // Create reflectList if reflection is enabled. + if (content.isReflectOnActivity()) { + Map> reflectList = service.getReflectList(content.getContentId(), true); + // Add reflectList to sessionMap + sessionMap.put(ResourceConstants.ATTR_REFLECT_LIST, reflectList); + } + // put it into HTTPSession sessionMap.put(ResourceConstants.ATTR_TITLE, content.getTitle()); sessionMap.put(ResourceConstants.ATTR_SUMMARY_LIST, groupList); @@ -220,4 +262,17 @@ } return handler; } + + private ReflectDTO getReflectionEntry(ResourceUser resourceUser) { + ReflectDTO reflectDTO = new ReflectDTO(resourceUser); + NotebookEntry notebookEntry = service.getEntry(resourceUser.getSession().getSessionId(), CoreNotebookConstants.NOTEBOOK_TOOL, + ResourceConstants.TOOL_SIGNATURE, resourceUser.getUserId().intValue()); + + // check notebookEntry is not null + if (notebookEntry != null) { + reflectDTO.setReflect(notebookEntry.getEntry()); + logger.debug("Could not find notebookEntry for ResourceUser: " + resourceUser.getUid()); + } + return reflectDTO; + } } Index: lams_tool_larsrc/web/pages/export/exportportfolio.jsp =================================================================== diff -u -r18e5e690d2e1a7c3d918759f7a2827c8205feaac -r4b2e336f60a9cbbf57ee350705eb6dc254830de9 --- lams_tool_larsrc/web/pages/export/exportportfolio.jsp (.../exportportfolio.jsp) (revision 18e5e690d2e1a7c3d918759f7a2827c8205feaac) +++ lams_tool_larsrc/web/pages/export/exportportfolio.jsp (.../exportportfolio.jsp) (revision 4b2e336f60a9cbbf57ee350705eb6dc254830de9) @@ -1,15 +1,16 @@ <%@ include file="/common/taglibs.jsp"%> - - - - - + + + + + - <fmt:message key="export.title" /> + <fmt:message key="export.title" /> + @@ -23,128 +24,155 @@ wd.window.focus(); } - + -
-

${title}

+

+ ${title} +

- - - + + +

+ + + + + + + ${group[0].sessionName} + + +

+ +
+ + + + + + + + + + + - <%-- display group name on first row--%> - + + + + + + + + - - + + + + + + + + + - -
+ + + + + + + + + +
+
+ +
+
- - + + - - ${item.sessionName} - + + + + + + + + +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -
-
- -
-
- - - - - - - - - - - - - - - - ${item.itemTitle} - - ${item.username} - - - - - - - - - - - - - - - - - - - -
+ ${item.itemTitle}
+ ${item.username} + + + + + + + + + + + + + + + + + + + +
+ -
+ <%-- Display reflection entries --%> + + + <%-- End all answers for this question --%> +

+ +

+ + +

+ ${reflectDTO.fullName} +

+

+ +

+
+
- +
+ + + + + + + +