Index: lams_tool_survey/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -r8749316b7e0c9b77395a69962852be25e120285e -r6803809d4d0e2a5d4b4d1dc11ad5152e5cb6bb0b --- lams_tool_survey/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 8749316b7e0c9b77395a69962852be25e120285e) +++ lams_tool_survey/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 6803809d4d0e2a5d4b4d1dc11ad5152e5cb6bb0b) @@ -154,6 +154,6 @@ label.monitoring.instructions.attachments =Attachments message.warnLockOnFinish =Note: After you click on "Next Activity" and you come back to this Survey, you won't be able to change your answers. message.activityLocked == The instructor has set this activity not to allow you to retake the survey after you have finished it. As you are returning to this activity, you are able to see your answers but not allowed to change them. +label.export.reflection = Notebook Entries - #======= End labels: Exported 148 labels for en AU ===== Index: lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/service/ISurveyService.java =================================================================== diff -u -rf6eef1941b893473fdde7afe26d06911a4bb83ec -r6803809d4d0e2a5d4b4d1dc11ad5152e5cb6bb0b --- lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/service/ISurveyService.java (.../ISurveyService.java) (revision f6eef1941b893473fdde7afe26d06911a4bb83ec) +++ lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/service/ISurveyService.java (.../ISurveyService.java) (revision 6803809d4d0e2a5d4b4d1dc11ad5152e5cb6bb0b) @@ -254,7 +254,7 @@ * @param contentId * @return */ - Map> getReflectList(Long contentId); + Map> getReflectList(Long contentId, boolean setEntry); } Index: lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/service/SurveyServiceImpl.java =================================================================== diff -u -rf6eef1941b893473fdde7afe26d06911a4bb83ec -r6803809d4d0e2a5d4b4d1dc11ad5152e5cb6bb0b --- lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/service/SurveyServiceImpl.java (.../SurveyServiceImpl.java) (revision f6eef1941b893473fdde7afe26d06911a4bb83ec) +++ lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/service/SurveyServiceImpl.java (.../SurveyServiceImpl.java) (revision 6803809d4d0e2a5d4b4d1dc11ad5152e5cb6bb0b) @@ -26,7 +26,6 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; -import java.util.Comparator; import java.util.Date; import java.util.HashMap; import java.util.HashSet; @@ -58,6 +57,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; @@ -86,6 +86,7 @@ import org.lamsfoundation.lams.tool.survey.model.SurveySession; import org.lamsfoundation.lams.tool.survey.model.SurveyUser; import org.lamsfoundation.lams.tool.survey.util.QuestionsComparator; +import org.lamsfoundation.lams.tool.survey.util.ReflectDTOComparator; import org.lamsfoundation.lams.tool.survey.util.SurveySessionComparator; import org.lamsfoundation.lams.tool.survey.util.SurveyToolContentHandler; import org.lamsfoundation.lams.tool.survey.util.SurveyWebUtils; @@ -129,18 +130,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; - } - } - //******************************************************************************* // Service method //******************************************************************************* @@ -264,18 +253,27 @@ return nextUrl; } - public Map> getReflectList(Long contentId){ + public Map> getReflectList(Long contentId, boolean setEntry){ Map> map = new HashMap>(); List sessionList = surveySessionDao.getByContentId(contentId); for(SurveySession session:sessionList){ Long sessionId = session.getSessionId(); boolean hasRefection = session.getSurvey().isReflectOnActivity(); - Set list = new TreeSet(this.new ReflectDTOComparator()); + Set list = new TreeSet(new ReflectDTOComparator()); //get all users in this session List users = surveyUserDao.getBySessionID(sessionId); for(SurveyUser user : users){ ReflectDTO ref = new ReflectDTO(user); + + if (setEntry) { + NotebookEntry entry = getEntry(sessionId, CoreNotebookConstants.NOTEBOOK_TOOL, + SurveyConstants.TOOL_SIGNATURE, user.getUserId().intValue()); + if (entry != null) { + ref.setReflect(entry.getEntry()); + } + } + ref.setHasRefection(hasRefection); list.add(ref); } Index: lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/util/ReflectDTOComparator.java =================================================================== diff -u --- lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/util/ReflectDTOComparator.java (revision 0) +++ lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/util/ReflectDTOComparator.java (revision 6803809d4d0e2a5d4b4d1dc11ad5152e5cb6bb0b) @@ -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.survey.util; + +import java.util.Comparator; + +import org.lamsfoundation.lams.tool.survey.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_survey/src/java/org/lamsfoundation/lams/tool/survey/web/action/MonitoringAction.java =================================================================== diff -u -r09bc4efe6c5d5c52810539cc7ab93d391b8e94bb -r6803809d4d0e2a5d4b4d1dc11ad5152e5cb6bb0b --- lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision 09bc4efe6c5d5c52810539cc7ab93d391b8e94bb) +++ lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision 6803809d4d0e2a5d4b4d1dc11ad5152e5cb6bb0b) @@ -146,7 +146,7 @@ SortedMap statis = service.getStatistic(contentId); //get refection list - Map >relectList = service.getReflectList(contentId); + Map >relectList = service.getReflectList(contentId, false); //cache into sessionMap sessionMap.put(SurveyConstants.ATTR_SUMMARY_LIST, summary); Index: lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/servlet/ExportServlet.java =================================================================== diff -u -re7046600ee8bfa53d053e0aee33a16b52ad0e8e2 -r6803809d4d0e2a5d4b4d1dc11ad5152e5cb6bb0b --- lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/servlet/ExportServlet.java (.../ExportServlet.java) (revision e7046600ee8bfa53d053e0aee33a16b52ad0e8e2) +++ lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/servlet/ExportServlet.java (.../ExportServlet.java) (revision 6803809d4d0e2a5d4b4d1dc11ad5152e5cb6bb0b) @@ -25,27 +25,34 @@ package org.lamsfoundation.lams.tool.survey.web.servlet; -import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.SortedMap; +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.survey.SurveyConstants; import org.lamsfoundation.lams.tool.survey.dto.AnswerDTO; +import org.lamsfoundation.lams.tool.survey.dto.ReflectDTO; import org.lamsfoundation.lams.tool.survey.model.Survey; import org.lamsfoundation.lams.tool.survey.model.SurveyQuestion; import org.lamsfoundation.lams.tool.survey.model.SurveySession; import org.lamsfoundation.lams.tool.survey.model.SurveyUser; import org.lamsfoundation.lams.tool.survey.service.ISurveyService; import org.lamsfoundation.lams.tool.survey.service.SurveyApplicationException; import org.lamsfoundation.lams.tool.survey.service.SurveyServiceProxy; +import org.lamsfoundation.lams.tool.survey.util.ReflectDTOComparator; import org.lamsfoundation.lams.web.servlet.AbstractExportPortfolioServlet; import org.lamsfoundation.lams.web.util.AttributeNames; import org.lamsfoundation.lams.web.util.SessionMap; @@ -64,7 +71,15 @@ private static Logger logger = Logger.getLogger(ExportServlet.class); private final String FILENAME = "survey_main.html"; - + + private ISurveyService service; + + @Override + public void init() throws ServletException { + service = SurveyServiceProxy.getSurveyService(getServletContext()); + super.init(); + } + public String doExport(HttpServletRequest request, HttpServletResponse response, String directoryName, Cookie[] cookies) { // initial sessionMap @@ -95,8 +110,7 @@ if (toolContentID == null && toolSessionID == null) { logger.error("Tool content Id or and session Id are null. Unable to activity title"); } else { - ISurveyService service = SurveyServiceProxy.getSurveyService(getServletContext()); - + Survey content = null; if ( toolContentID != null ) { content = service.getSurveyByContentId(toolContentID); @@ -115,8 +129,6 @@ public void learner(HttpServletRequest request, HttpServletResponse response, String directoryName, Cookie[] cookies, HashMap sessionMap) throws SurveyApplicationException { - ISurveyService service = SurveyServiceProxy.getSurveyService(getServletContext()); - if (userID == null || toolSessionID == null) { String error = "Tool session Id or user Id is null. Unable to continue"; logger.error(error); @@ -138,16 +150,30 @@ logger.error(error); throw new SurveyApplicationException(error); } + + // Add flag to indicate whether to render user notebook entries + sessionMap.put(SurveyConstants.ATTR_REFLECTION_ON, content.isReflectOnActivity()); - - SortedMap>> groupList = service.exportByLeaner(learner); + // Create reflectList if reflection is enabled. + if (content.isReflectOnActivity()) { + // Create reflectList, need to follow same structure used in teacher + // see surveyService.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(SurveyConstants.ATTR_REFLECT_LIST, map); + } + + SortedMap>> groupList = service.exportByLearner(learner); sessionMap.put(SurveyConstants.ATTR_TITLE, content.getTitle()); sessionMap.put(SurveyConstants.ATTR_SUMMARY_LIST, groupList); } public void teacher(HttpServletRequest request, HttpServletResponse response, String directoryName, Cookie[] cookies, HashMap sessionMap) throws SurveyApplicationException { - ISurveyService service = SurveyServiceProxy.getSurveyService(getServletContext()); // check if toolContentId exists in db or not if (toolContentID == null) { @@ -163,11 +189,34 @@ logger.error(error); throw new SurveyApplicationException(error); } - SortedMap>> groupList = service.exportByContentId(toolContentID); + SortedMap>> groupList = service.exportByContentId(toolContentID); + + // Add flag to indicate whether to render user notebook entries + sessionMap.put(SurveyConstants.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(SurveyConstants.ATTR_REFLECT_LIST, reflectList); + } + // put it into HTTPSession sessionMap.put(SurveyConstants.ATTR_TITLE, content.getTitle()); sessionMap.put(SurveyConstants.ATTR_SUMMARY_LIST, groupList); } + + private ReflectDTO getReflectionEntry(SurveyUser surveyUser) { + ReflectDTO reflectDTO = new ReflectDTO(surveyUser); + NotebookEntry notebookEntry = service.getEntry(surveyUser.getSession().getSessionId(), CoreNotebookConstants.NOTEBOOK_TOOL, + SurveyConstants.TOOL_SIGNATURE, surveyUser.getUserId().intValue()); + + // check notebookEntry is not null + if (notebookEntry != null) { + reflectDTO.setReflect(notebookEntry.getEntry()); + logger.debug("Could not find notebookEntry for SurveyUser: " + surveyUser.getUid()); + } + return reflectDTO; + } } Index: lams_tool_survey/web/pages/export/exportportfolio.jsp =================================================================== diff -u -r18e5e690d2e1a7c3d918759f7a2827c8205feaac -r6803809d4d0e2a5d4b4d1dc11ad5152e5cb6bb0b --- lams_tool_survey/web/pages/export/exportportfolio.jsp (.../exportportfolio.jsp) (revision 18e5e690d2e1a7c3d918759f7a2827c8205feaac) +++ lams_tool_survey/web/pages/export/exportportfolio.jsp (.../exportportfolio.jsp) (revision 6803809d4d0e2a5d4b4d1dc11ad5152e5cb6bb0b) @@ -104,8 +104,21 @@ <%-- End all answers for this question --%> - <%-- End question table --%> + <%-- End question table --%> + + + <%-- End all answers for this question --%> +

+ + +

${reflectDTO.fullName}

+

+ +

+
+
+ <%-- End session table --%>