Index: lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/dto/AnswerDTO.java =================================================================== diff -u --- lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/dto/AnswerDTO.java (revision 0) +++ lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/dto/AnswerDTO.java (revision de91e6d736e56d514d840e128bd06c9238b5871b) @@ -0,0 +1,85 @@ +package org.lamsfoundation.lams.tool.survey.dto; + +import java.util.Set; +import java.util.SortedSet; +import java.util.TreeSet; + +import org.apache.commons.beanutils.PropertyUtils; +import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; +import org.lamsfoundation.lams.tool.survey.model.SurveyAnswer; +import org.lamsfoundation.lams.tool.survey.model.SurveyOption; +import org.lamsfoundation.lams.tool.survey.model.SurveyQuestion; +import org.lamsfoundation.lams.tool.survey.util.SurveyOptionComparator; +import org.lamsfoundation.lams.tool.survey.util.SurveyWebUtils; + + + +public class AnswerDTO extends SurveyQuestion{ + + private static final int SHORT_TITLE_LENGTH = 60; + + //*********************************************** + //DTO fields: + //this is DTO field. For answer, which is user and session level. For question, which is content level. + private SurveyAnswer answer; + //Open text entry response percentage if this question has open text entry. + private double openResponse; + private String openResponseFormatStr; + private int openResponseCount; + + static Logger logger = Logger.getLogger(AnswerDTO.class.getName()); + public AnswerDTO(SurveyQuestion question){ + try { + PropertyUtils.copyProperties(this, question); + } catch (Exception e) { + logger.error("Error occurs during creating AnswerDTO"); + } + + //clone options + Set optList = question.getOptions(); + if(optList != null){ + SortedSet newOptions = new TreeSet(new SurveyOptionComparator()); + for (SurveyOption option : optList) { + SurveyOption newOption = (SurveyOption) option.clone(); + //clone does not copy the UID, here copy it back + newOption.setUid(option.getUid()); + newOptions.add(newOption); + } + this.setOptions(newOptions); + } + + String desc = this.getDescription(); + desc = desc.replaceAll("<(.|\n)*?>", ""); + this.setShortTitle(StringUtils.abbreviate(desc,SHORT_TITLE_LENGTH)); + + } + //**************************************************************** + // DTO fields + //**************************************************************** + public SurveyAnswer getAnswer() { + return answer; + } + public void setAnswer(SurveyAnswer answer) { + this.answer = answer; + } + public double getOpenResponse() { + return openResponse; + } + public void setOpenResponse(double openResponse) { + this.openResponse = openResponse; + } + public int getOpenResponseCount() { + return openResponseCount; + } + public void setOpenResponseCount(int openResponseCount) { + this.openResponseCount = openResponseCount; + } + public String getOpenResponseFormatStr() { + return openResponseFormatStr; + } + public void setOpenResponseFormatStr(String openResponseFormatStr) { + this.openResponseFormatStr = openResponseFormatStr; + } + +} Index: lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/model/SurveyQuestion.java =================================================================== diff -u -rf0c3f41d54ef4f390ef3f93f28c0679c46b6730c -rde91e6d736e56d514d840e128bd06c9238b5871b --- lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/model/SurveyQuestion.java (.../SurveyQuestion.java) (revision f0c3f41d54ef4f390ef3f93f28c0679c46b6730c) +++ lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/model/SurveyQuestion.java (.../SurveyQuestion.java) (revision de91e6d736e56d514d840e128bd06c9238b5871b) @@ -59,15 +59,9 @@ private Date createDate; private SurveyUser createBy; - //*********************************************** +// *********************************************** //DTO fields: private String shortTitle; - //this is DTO field. For answer, which is user and session level. For question, which is content level. - private SurveyAnswer answer; - //Open text entry response percentage if this question has open text entry. - private double openResponse; - private String openResponseFormatStr; - private int openResponseCount; public Object clone(){ SurveyQuestion obj = null; @@ -215,42 +209,15 @@ public void setSequenceId(int sequenceId) { this.sequenceId = sequenceId; } - - - - //**************************************************************** - // DTO fields - //**************************************************************** public String getShortTitle() { return shortTitle; } public void setShortTitle(String shortTitle) { this.shortTitle = shortTitle; } - public SurveyAnswer getAnswer() { - return answer; - } - public void setAnswer(SurveyAnswer answer) { - this.answer = answer; - } - public double getOpenResponse() { - return openResponse; - } - public void setOpenResponse(double openResponse) { - this.openResponse = openResponse; - } - public int getOpenResponseCount() { - return openResponseCount; - } - public void setOpenResponseCount(int openResponseCount) { - this.openResponseCount = openResponseCount; - } - public String getOpenResponseFormatStr() { - return openResponseFormatStr; - } - public void setOpenResponseFormatStr(String openResponseFormatStr) { - this.openResponseFormatStr = openResponseFormatStr; - } + + + } Index: lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/service/ISurveyService.java =================================================================== diff -u -r6a5d35ec57dde95eae93fb628d669af257d36949 -rde91e6d736e56d514d840e128bd06c9238b5871b --- lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/service/ISurveyService.java (.../ISurveyService.java) (revision 6a5d35ec57dde95eae93fb628d669af257d36949) +++ lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/service/ISurveyService.java (.../ISurveyService.java) (revision de91e6d736e56d514d840e128bd06c9238b5871b) @@ -30,6 +30,7 @@ import org.apache.struts.upload.FormFile; import org.lamsfoundation.lams.notebook.model.NotebookEntry; +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.SurveyAnswer; @@ -112,14 +113,14 @@ * @param userUid * @return */ - List getQuestionAnswer(Long sessionId, Long userUid); + List getQuestionAnswers(Long sessionId, Long userUid); /** * Get question's answer with response percentage infromation. * @param sessionId * @param questionUid * @return */ - SurveyQuestion getQuestionResponse(Long sessionId, Long questionUid); + AnswerDTO getQuestionResponse(Long sessionId, Long questionUid); /** * Commit answers for a group of question together. Index: lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/service/SurveyServiceImpl.java =================================================================== diff -u -r6a5d35ec57dde95eae93fb628d669af257d36949 -rde91e6d736e56d514d840e128bd06c9238b5871b --- lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/service/SurveyServiceImpl.java (.../SurveyServiceImpl.java) (revision 6a5d35ec57dde95eae93fb628d669af257d36949) +++ lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/service/SurveyServiceImpl.java (.../SurveyServiceImpl.java) (revision de91e6d736e56d514d840e128bd06c9238b5871b) @@ -74,6 +74,7 @@ import org.lamsfoundation.lams.tool.survey.dao.SurveyQuestionDAO; import org.lamsfoundation.lams.tool.survey.dao.SurveySessionDAO; import org.lamsfoundation.lams.tool.survey.dao.SurveyUserDAO; +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.SurveyAnswer; @@ -305,8 +306,8 @@ } - public List getQuestionAnswer(Long sessionId,Long userUid) { - List questions = null; + public List getQuestionAnswers(Long sessionId,Long userUid) { + List questions = new ArrayList(); SurveySession session = surveySessionDao.getSessionBySessionId(sessionId); if(session != null){ Survey survey = session.getSurvey(); @@ -315,13 +316,16 @@ } //set answer for this question acoording + List answers = new ArrayList(); for(SurveyQuestion question:questions){ + AnswerDTO answerDTO = new AnswerDTO(question); SurveyAnswer answer = surveyAnswerDao.getAnswer(question.getUid(),userUid); if(answer != null) answer.setChoices(SurveyWebUtils.getChoiceList(answer.getAnswerChoices())); - question.setAnswer(answer); + answerDTO.setAnswer(answer); + answers.add(answerDTO); } - return questions; + return answers; } public void updateAnswerList(List answerList) { @@ -330,17 +334,16 @@ } } - public SurveyQuestion getQuestionResponse(Long sessionId, Long questionUid){ + public AnswerDTO getQuestionResponse(Long sessionId, Long questionUid){ SurveyQuestion question = surveyQuestionDao.getByUid(questionUid); + AnswerDTO answerDto = new AnswerDTO(question); - SurveyWebUtils.createShortTitle(question); - //get question all answer from this session List answsers = surveyAnswerDao.getSessionAnswer(sessionId, questionUid); //create a map to hold Option UID and sequenceID(start from 0); Map optMap = new HashMap(); - Set options = question.getOptions(); + Set options = answerDto.getOptions(); int idx=0; for (SurveyOption option : options) { optMap.put(option.getUid().toString(),idx); @@ -349,7 +352,8 @@ //initial a array to hold how many time chose has been done for a option or open text. int optSize = options.size(); - if(question.isAppendText() || question.getType() == SurveyConstants.QUESTION_TYPE_TEXT_ENTRY) + //for appendText and open Text Entry will be the last one of choose[] array. + if(answerDto.isAppendText() || answerDto.getType() == SurveyConstants.QUESTION_TYPE_TEXT_ENTRY) optSize++; int[] choose = new int[optSize]; @@ -361,15 +365,19 @@ for (SurveyAnswer answer : answsers) { String[] choseOpt = SurveyWebUtils.getChoiceList(answer.getAnswerChoices()); for (String optUid : choseOpt) { - if(optMap.containsKey(optUid)) + //if option has been chosen, the relative index of choose[] array will increase. + if(optMap.containsKey(optUid)){ choose[optMap.get(optUid)]++; + answerSum ++; + } } - if((question.isAppendText() - || question.getType() == SurveyConstants.QUESTION_TYPE_TEXT_ENTRY) - && !StringUtils.isBlank(answer.getAnswerText())) + //handle appendText or Open Text Entry + if((answerDto.isAppendText() + || answerDto.getType() == SurveyConstants.QUESTION_TYPE_TEXT_ENTRY) + && !StringUtils.isBlank(answer.getAnswerText())){ choose[optSize-1]++; - - answerSum ++; + answerSum ++; + } } } //caculate the percentage of answer response @@ -379,17 +387,17 @@ } for (SurveyOption option : options) { option.setResponse((double)choose[idx]/(double)answerSum * 100d); - option.setResponseFormatStr(new Integer((int) option.getResponse()).toString()); + option.setResponseFormatStr(new Long(Math.round(option.getResponse())).toString()); option.setResponseCount(choose[idx]); idx++; } - if(question.isAppendText() || question.getType() == SurveyConstants.QUESTION_TYPE_TEXT_ENTRY){ - question.setOpenResponse((double)choose[idx]/(double)answerSum * 100d); - question.setOpenResponseFormatStr(new Integer((int) question.getOpenResponse()).toString()); - question.setOpenResponseCount(choose[idx]); + if(answerDto.isAppendText() || answerDto.getType() == SurveyConstants.QUESTION_TYPE_TEXT_ENTRY){ + answerDto.setOpenResponse((double)choose[idx]/(double)answerSum * 100d); + answerDto.setOpenResponseFormatStr(new Long(Math.round(answerDto.getOpenResponse())).toString()); + answerDto.setOpenResponseCount(choose[idx]); } - return question; + return answerDto; } Index: lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/util/SurveyOptionComparator.java =================================================================== diff -u --- lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/util/SurveyOptionComparator.java (revision 0) +++ lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/util/SurveyOptionComparator.java (revision de91e6d736e56d514d840e128bd06c9238b5871b) @@ -0,0 +1,17 @@ +package org.lamsfoundation.lams.tool.survey.util; + +import java.util.Comparator; + +import org.lamsfoundation.lams.tool.survey.model.SurveyOption; + +public class SurveyOptionComparator implements Comparator { + + public int compare(SurveyOption o1, SurveyOption o2) { + if(o1 != null && o2 != null){ + return o1.getSequenceId() - o2.getSequenceId(); + }else if(o1 != null) + return 1; + else + return -1; + } +} Index: lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/util/SurveyWebUtils.java =================================================================== diff -u -r6a5d35ec57dde95eae93fb628d669af257d36949 -rde91e6d736e56d514d840e128bd06c9238b5871b --- lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/util/SurveyWebUtils.java (.../SurveyWebUtils.java) (revision 6a5d35ec57dde95eae93fb628d669af257d36949) +++ lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/util/SurveyWebUtils.java (.../SurveyWebUtils.java) (revision de91e6d736e56d514d840e128bd06c9238b5871b) @@ -39,8 +39,6 @@ */ public class SurveyWebUtils { - private static final int SHORT_TITLE_LENGTH = 60; - public static boolean isSurveyEditable(Survey survey) { if ( (survey.isDefineLater() == true) && (survey.isContentInUse()==true) ) { @@ -72,9 +70,4 @@ return choiceList.split("&"); } - public static void createShortTitle(SurveyQuestion question) { - String desc = question.getDescription(); - desc = desc.replaceAll("<(.|\n)*?>", ""); - question.setShortTitle(StringUtils.abbreviate(desc,SHORT_TITLE_LENGTH)); - } } Index: lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/action/ChartAction.java =================================================================== diff -u -r6a5d35ec57dde95eae93fb628d669af257d36949 -rde91e6d736e56d514d840e128bd06c9238b5871b --- lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/action/ChartAction.java (.../ChartAction.java) (revision 6a5d35ec57dde95eae93fb628d669af257d36949) +++ lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/action/ChartAction.java (.../ChartAction.java) (revision de91e6d736e56d514d840e128bd06c9238b5871b) @@ -55,6 +55,7 @@ import org.jfree.chart.plot.PlotOrientation; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.data.general.DefaultPieDataset; +import org.lamsfoundation.lams.tool.survey.dto.AnswerDTO; import org.lamsfoundation.lams.tool.survey.model.SurveyOption; import org.lamsfoundation.lams.tool.survey.model.SurveyQuestion; import org.lamsfoundation.lams.tool.survey.service.ISurveyService; @@ -86,8 +87,8 @@ ISurveyService service = getSurveyService(); - SurveyQuestion question =service.getQuestionResponse(sessionId,questionUid); - if(question.getType() == QUESTION_TYPE_TEXT_ENTRY){ + AnswerDTO answer =service.getQuestionResponse(sessionId,questionUid); + if(answer.getType() == QUESTION_TYPE_TEXT_ENTRY){ logger.error("Error question type : Text entry can not generate chart."); response.getWriter().print(resource.getMessage(ERROR_MSG_CHART_ERROR)); return null; @@ -96,9 +97,9 @@ //Try to create chart JFreeChart chart=null; if (type.equals("pie")){ - chart = createPieChart (question); + chart = createPieChart (answer); }else if (type.equals("bar")){ - chart = createBarChart (question); + chart = createBarChart (answer); } //send chart to response output stream @@ -114,45 +115,45 @@ } - public JFreeChart createPieChart(SurveyQuestion question){ + public JFreeChart createPieChart(AnswerDTO answer){ DefaultPieDataset data= new DefaultPieDataset(); - Set options = question.getOptions(); + Set options = answer.getOptions(); int optIdx = 1; for (SurveyOption option : options) { data.setValue(OPTION_SHORT_HEADER + optIdx, (Number) option.getResponse()); optIdx++; } - if(question.isAppendText()) - data.setValue(resource.getMessage(MSG_OPEN_RESPONSE), (Number)question.getOpenResponse()); + if(answer.isAppendText()) + data.setValue(resource.getMessage(MSG_OPEN_RESPONSE), (Number)answer.getOpenResponse()); JFreeChart chart=null; - chart=ChartFactory.createPieChart3D(resource.getMessage(MSG_PIECHART_TITLE,question.getSequenceId()) , data, true, true, false); + chart=ChartFactory.createPieChart3D(resource.getMessage(MSG_PIECHART_TITLE,answer.getSequenceId()) , data, true, true, false); return chart; } - public JFreeChart createBarChart(SurveyQuestion question){ + public JFreeChart createBarChart(AnswerDTO answer){ DefaultCategoryDataset data= new DefaultCategoryDataset(); - Set options = question.getOptions(); + Set options = answer.getOptions(); int optIdx = 1; for (SurveyOption option : options) { data.setValue((Number)option.getResponse(), OPTION_SHORT_HEADER + optIdx, OPTION_SHORT_HEADER + optIdx); optIdx++; } - if(question.isAppendText()) - data.setValue((Number)question.getOpenResponse(), resource.getMessage(MSG_OPEN_RESPONSE), resource.getMessage(MSG_OPEN_RESPONSE)); + if(answer.isAppendText()) + data.setValue((Number)answer.getOpenResponse(), resource.getMessage(MSG_OPEN_RESPONSE), resource.getMessage(MSG_OPEN_RESPONSE)); JFreeChart chart=null; - chart=ChartFactory.createBarChart3D(resource.getMessage(MSG_BARCHART_TITLE,question.getSequenceId()), + chart=ChartFactory.createBarChart3D(resource.getMessage(MSG_BARCHART_TITLE,answer.getSequenceId()), resource.getMessage(MSG_BARCHART_CATEGORY_AXIS_LABEL), resource.getMessage(MSG_BARCHART_VALUE_AXIS_LABEL), data, PlotOrientation.VERTICAL, true, true, false); Index: lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/action/LearningAction.java =================================================================== diff -u -rf0c3f41d54ef4f390ef3f93f28c0679c46b6730c -rde91e6d736e56d514d840e128bd06c9238b5871b --- lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/action/LearningAction.java (.../LearningAction.java) (revision f0c3f41d54ef4f390ef3f93f28c0679c46b6730c) +++ lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/action/LearningAction.java (.../LearningAction.java) (revision de91e6d736e56d514d840e128bd06c9238b5871b) @@ -50,9 +50,9 @@ 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.model.Survey; import org.lamsfoundation.lams.tool.survey.model.SurveyAnswer; -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; @@ -143,9 +143,8 @@ ISurveyService service = getSurveyService(); SurveyUser surveyUser = getCurrentUser(service,sessionId); - List questions = null; Survey survey; - questions = service.getQuestionAnswer(sessionId,surveyUser.getUid()); + List questions = service.getQuestionAnswers(sessionId,surveyUser.getUid()); survey = service.getSurveyBySessionId(sessionId); //check whehter finish lock is on/off @@ -181,11 +180,10 @@ sessionMap.put(SurveyConstants.PARAM_RUN_OFFLINE, false); //init survey item list - SortedMap surveyItemList = getQuestionList(sessionMap); + SortedMap surveyItemList = getQuestionList(sessionMap); surveyItemList.clear(); if(questions != null){ - //remove hidden items. - for(SurveyQuestion question : questions){ + for(AnswerDTO question : questions){ surveyItemList.put(question.getSequenceId(),question); } } @@ -217,7 +215,7 @@ String sessionMapID = answerForm.getSessionMapID(); SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); - SortedMap surveyItemMap = getQuestionList(sessionMap); + SortedMap surveyItemMap = getQuestionList(sessionMap); ActionErrors errors = getAnswer(request, surveyItemMap.get(questionSeqID)); @@ -227,7 +225,7 @@ //go to next question boolean next = false; - for(Map.Entry entry: surveyItemMap.entrySet()){ + for(Map.Entry entry: surveyItemMap.entrySet()){ if(entry.getKey().equals(questionSeqID)){ next = true; //failure tolerance: if arrive last one @@ -258,14 +256,14 @@ String sessionMapID = answerForm.getSessionMapID(); SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); - SortedMap surveyItemMap = getQuestionList(sessionMap); + SortedMap surveyItemMap = getQuestionList(sessionMap); ActionErrors errors = getAnswer(request, surveyItemMap.get(questionSeqID)); if(!errors.isEmpty()){ return mapping.getInputForward(); } - SortedMap subMap = surveyItemMap.headMap(questionSeqID); + SortedMap subMap = surveyItemMap.headMap(questionSeqID); if(subMap.isEmpty()) questionSeqID = surveyItemMap.firstKey(); else @@ -292,7 +290,7 @@ String sessionMapID = answerForm.getSessionMapID(); SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); - SortedMap surveyItemMap = getQuestionList(sessionMap); + SortedMap surveyItemMap = getQuestionList(sessionMap); //get current question index of total questions int currIdx = new ArrayList(surveyItemMap.keySet()).indexOf(questionSeqID) + 1; answerForm.setCurrentIdx(currIdx); @@ -307,8 +305,8 @@ SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); //validate - SortedMap surveyItemMap = getQuestionList(sessionMap); - Collection surveyItemList = surveyItemMap.values(); + SortedMap surveyItemMap = getQuestionList(sessionMap); + Collection surveyItemList = surveyItemMap.values(); ActionErrors errors; if(questionSeqID == null || questionSeqID.equals(0)) @@ -320,7 +318,7 @@ } List answerList = new ArrayList(); - for(SurveyQuestion question : surveyItemList){ + for(AnswerDTO question : surveyItemList){ if(question.getAnswer() != null) answerList.add(question.getAnswer()); } @@ -427,7 +425,7 @@ /** * Get answer by special question. */ - private ActionErrors getAnswer(HttpServletRequest request,SurveyQuestion question) { + private ActionErrors getAnswer(HttpServletRequest request,AnswerDTO question) { ActionErrors errors = new ActionErrors(); //get sessionMap String sessionMapID = request.getParameter(SurveyConstants.ATTR_SESSION_MAP_ID); @@ -455,9 +453,9 @@ String sessionMapID = request.getParameter(SurveyConstants.ATTR_SESSION_MAP_ID); SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); Long sessionID = (Long) sessionMap.get(AttributeNames.PARAM_TOOL_SESSION_ID); - Collection questionList = getQuestionList(sessionMap).values(); + Collection questionList = getQuestionList(sessionMap).values(); - for(SurveyQuestion question :questionList){ + for(AnswerDTO question :questionList){ SurveyAnswer answer = getAnswerFromPage(request,question, sessionID); question.setAnswer(answer); //for mandatory questions, answer can not be null. @@ -471,7 +469,7 @@ } - private SurveyAnswer getAnswerFromPage(HttpServletRequest request, SurveyQuestion question, Long sessionID) { + private SurveyAnswer getAnswerFromPage(HttpServletRequest request, AnswerDTO question, Long sessionID) { String[] choiceList = request.getParameterValues(SurveyConstants.PREFIX_QUESTION_CHOICE+question.getUid()); String textEntry = request.getParameter(SurveyConstants.PREFIX_QUESTION_TEXT+question.getUid()); @@ -494,10 +492,6 @@ return answer; } - - - - private ISurveyService getSurveyService() { WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(getServlet().getServletContext()); return (ISurveyService) wac.getBean(SurveyConstants.SURVEY_SERVICE); @@ -507,10 +501,10 @@ * @param request * @return */ - private SortedMap getQuestionList(SessionMap sessionMap) { - SortedMap list = (SortedMap) sessionMap.get(SurveyConstants.ATTR_QUESTION_LIST); + private SortedMap getQuestionList(SessionMap sessionMap) { + SortedMap list = (SortedMap) sessionMap.get(SurveyConstants.ATTR_QUESTION_LIST); if(list == null){ - list = new TreeMap(new IntegerComparator()); + list = new TreeMap(new IntegerComparator()); sessionMap.put(SurveyConstants.ATTR_QUESTION_LIST,list); } return list; Index: lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/action/MonitoringAction.java =================================================================== diff -u -r6a5d35ec57dde95eae93fb628d669af257d36949 -rde91e6d736e56d514d840e128bd06c9238b5871b --- lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision 6a5d35ec57dde95eae93fb628d669af257d36949) +++ lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision de91e6d736e56d514d840e128bd06c9238b5871b) @@ -47,6 +47,7 @@ import org.lamsfoundation.lams.notebook.model.NotebookEntry; import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants; 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; @@ -160,8 +161,8 @@ // get all users with their answers whatever they answer or not List users = service.getSessionUsers(sessionId); for (SurveyUser user : users) { - List questionAnswers = service.getQuestionAnswer(sessionId, user.getUid()); - for (SurveyQuestion questionAnswer : questionAnswers) { + List questionAnswers = service.getQuestionAnswers(sessionId, user.getUid()); + for (AnswerDTO questionAnswer : questionAnswers) { if(questionUid.equals(questionAnswer.getUid())){ userAnswerMap.put(user,questionAnswer); break; Index: lams_tool_survey/web/pages/monitoring/chartreport.jsp =================================================================== diff -u -r6a5d35ec57dde95eae93fb628d669af257d36949 -rde91e6d736e56d514d840e128bd06c9238b5871b --- lams_tool_survey/web/pages/monitoring/chartreport.jsp (.../chartreport.jsp) (revision 6a5d35ec57dde95eae93fb628d669af257d36949) +++ lams_tool_survey/web/pages/monitoring/chartreport.jsp (.../chartreport.jsp) (revision de91e6d736e56d514d840e128bd06c9238b5871b) @@ -16,17 +16,19 @@
- +
- - + <%-- --%> + + <%-- + --%> - - - - - -
+ <%= SurveyConstants.OPTION_SHORT_HEADER %>${status.count} @@ -36,19 +38,16 @@
+
- ${toolSessionID}&questionUid=${question.uid}" - title=""> -
+
+ ${toolSessionID}&questionUid=${question.uid}" + title=""> +
Index: lams_tool_survey/web/pages/monitoring/summary.jsp =================================================================== diff -u -r6a5d35ec57dde95eae93fb628d669af257d36949 -rde91e6d736e56d514d840e128bd06c9238b5871b --- lams_tool_survey/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision 6a5d35ec57dde95eae93fb628d669af257d36949) +++ lams_tool_survey/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision de91e6d736e56d514d840e128bd06c9238b5871b) @@ -34,12 +34,11 @@ <%-- End group title display --%> - + toolSessionID=${surveySession.sessionId}&questionUid=${question.uid}')"> ${question.shortTitle} - - +
<%-- Only show pie/bar chart when question is single/multiple choics type --%> toolSessionID=${surveySession.sessionId}&questionUid=${question.uid}')"> @@ -49,12 +48,15 @@ +
+ <%-- + --%>