Index: lams_tool_laqa/build.properties =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/build.properties,v diff -u -r1.30.8.1 -r1.30.8.2 --- lams_tool_laqa/build.properties 1 Nov 2010 10:27:38 -0000 1.30.8.1 +++ lams_tool_laqa/build.properties 24 Feb 2011 14:22:41 -0000 1.30.8.2 @@ -4,7 +4,7 @@ signature=laqa11 #version of this project -tool.version=20101022 +tool.version=20110217 # hide tool option hideTool=false Index: lams_tool_laqa/build.xml =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/build.xml,v diff -u -r1.48 -r1.48.6.1 --- lams_tool_laqa/build.xml 6 Apr 2009 17:08:15 -0000 1.48 +++ lams_tool_laqa/build.xml 24 Feb 2011 14:22:41 -0000 1.48.6.1 @@ -212,9 +212,8 @@ - - - + + Index: lams_tool_laqa/conf/hibernate/mappings/org/lamsfoundation/lams/tool/qa/QaContent.hbm.xml =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/conf/hibernate/mappings/org/lamsfoundation/lams/tool/qa/QaContent.hbm.xml,v diff -u -r1.10.6.1.4.1 -r1.10.6.1.4.2 --- lams_tool_laqa/conf/hibernate/mappings/org/lamsfoundation/lams/tool/qa/QaContent.hbm.xml 1 Nov 2010 10:26:12 -0000 1.10.6.1.4.1 +++ lams_tool_laqa/conf/hibernate/mappings/org/lamsfoundation/lams/tool/qa/QaContent.hbm.xml 24 Feb 2011 14:22:41 -0000 1.10.6.1.4.2 @@ -110,6 +110,15 @@ column="username_visible" length="1" /> + + + conditions, boolean allowRichEditor) { + boolean allowRateAnswers, boolean synchInMonitor, boolean lockWhenFinished, boolean contentLocked, + boolean showOtherAnswers, boolean reflect, String reflectionSubject, Date creationDate, Date updateDate, + Set qaQueContents, Set qaSessions, Set qaUploadedFiles, Set conditions, boolean allowRichEditor) { this.qaContentId = qaContentId; this.content = content; this.title = title; @@ -154,6 +157,7 @@ this.runOffline = runOffline; this.questionsSequenced = questionsSequenced; this.usernameVisible = usernameVisible; + this.allowRateAnswers = allowRateAnswers; this.synchInMonitor = synchInMonitor; this.lockWhenFinished = lockWhenFinished; this.contentLocked = contentLocked; @@ -183,13 +187,13 @@ */ public static QaContent newInstance(IToolContentHandler toolContentHandler, QaContent qa, Long newContentId) throws ItemNotFoundException, RepositoryCheckedException { - QaContent newContent = new QaContent(newContentId, qa.getContent(), qa.getTitle(), qa.getInstructions(), qa - .getReportTitle(), qa.getMonitoringReportTitle(), qa.getOfflineInstructions(), qa - .getOnlineInstructions(), qa.getCreatedBy(), qa.isDefineLater(), qa.isRunOffline(), qa - .isQuestionsSequenced(), qa.isUsernameVisible(), qa.isSynchInMonitor(), qa.isLockWhenFinished(), qa - .isContentLocked(), qa.isShowOtherAnswers(), qa.isReflect(), qa.getReflectionSubject(), qa - .getCreationDate(), qa.getUpdateDate(), new TreeSet(), new TreeSet(), new TreeSet(), - new TreeSet(new TextSearchConditionComparator()), qa.isAllowRichEditor()); + QaContent newContent = new QaContent(newContentId, qa.getContent(), qa.getTitle(), qa.getInstructions(), + qa.getReportTitle(), qa.getMonitoringReportTitle(), qa.getOfflineInstructions(), + qa.getOnlineInstructions(), qa.getCreatedBy(), qa.isDefineLater(), qa.isRunOffline(), + qa.isQuestionsSequenced(), qa.isUsernameVisible(), qa.isAllowRateAnswers(), qa.isSynchInMonitor(), + qa.isLockWhenFinished(), qa.isContentLocked(), qa.isShowOtherAnswers(), qa.isReflect(), + qa.getReflectionSubject(), qa.getCreationDate(), qa.getUpdateDate(), new TreeSet(), new TreeSet(), + new TreeSet(), new TreeSet(new TextSearchConditionComparator()), qa.isAllowRichEditor()); newContent.setQaQueContents(qa.deepCopyQaQueContent(newContent)); @@ -293,7 +297,8 @@ public String toString() { return new ToStringBuilder(this).append("qaContentId:", getQaContentId()).append("qa title:", getTitle()) .append("qa instructions:", getInstructions()).append("creator user id", getCreatedBy()).append( - "username_visible:", isUsernameVisible()).append("defineLater", isDefineLater()).append( + "username_visible:", isUsernameVisible()).append( + "allow to rate answers:", isAllowRateAnswers()).append("defineLater", isDefineLater()).append( "offline_instructions:", getOfflineInstructions()).append("online_instructions:", getOnlineInstructions()).append("report_title: ", getReportTitle()).append( "reflection subject: ", getReflectionSubject()) @@ -448,8 +453,23 @@ public void setUsernameVisible(boolean usernameVisible) { this.usernameVisible = usernameVisible; } + + /** + * @return Returns the allowRateAnswers. + */ + public boolean isAllowRateAnswers() { + return allowRateAnswers; + } /** + * @param allowRateAnswers + * The allowRateAnswers to set. + */ + public void setAllowRateAnswers(boolean allowRateAnswers) { + this.allowRateAnswers = allowRateAnswers; + } + + /** * @return Returns the questionsSequenced. */ public boolean isQuestionsSequenced() { Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/QaGeneralAuthoringDTO.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/Attic/QaGeneralAuthoringDTO.java,v diff -u -r1.6.4.1.4.1 -r1.6.4.1.4.2 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/QaGeneralAuthoringDTO.java 1 Nov 2010 10:30:36 -0000 1.6.4.1.4.1 +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/QaGeneralAuthoringDTO.java 24 Feb 2011 14:22:40 -0000 1.6.4.1.4.2 @@ -52,6 +52,7 @@ protected String onlineInstructions; protected String offlineInstructions; protected String usernameVisible; + protected String allowRateAnswers; protected String showOtherAnswers; protected String reflect; protected String synchInMonitor; @@ -78,23 +79,25 @@ protected String editableQuestionFeedback; public String toString() { - return new ToStringBuilder(this).append("toolContentID: ", toolContentID).append("contentFolderID: ", - contentFolderID).append("httpSessionID: ", httpSessionID).append("currentTab: ", currentTab).append( - "activeModule: ", activeModule).append("defineLaterInEditMode: ", defineLaterInEditMode).append( - "showAuthoringTabs: ", showAuthoringTabs).append("monitoringOriginatedDefineLater: ", - monitoringOriginatedDefineLater).append("targetMode: ", targetMode).append("defaultQuestionContent: ", - defaultQuestionContent).append("defaultContentIdStr: ", defaultContentIdStr).append("activityTitle: ", - activityTitle).append("activityInstructions: ", activityInstructions).append("reflect: ", reflect) + return new ToStringBuilder(this).append("toolContentID: ", toolContentID) + .append("contentFolderID: ", contentFolderID).append("httpSessionID: ", httpSessionID) + .append("currentTab: ", currentTab).append("activeModule: ", activeModule) + .append("defineLaterInEditMode: ", defineLaterInEditMode) + .append("showAuthoringTabs: ", showAuthoringTabs) + .append("monitoringOriginatedDefineLater: ", monitoringOriginatedDefineLater) + .append("targetMode: ", targetMode).append("defaultQuestionContent: ", defaultQuestionContent) + .append("defaultContentIdStr: ", defaultContentIdStr).append("activityTitle: ", activityTitle) + .append("activityInstructions: ", activityInstructions).append("reflect: ", reflect) .append("onlineInstructions: ", onlineInstructions) .append("offlineInstructions: ", offlineInstructions).append("usernameVisible: ", usernameVisible) - .append("showOtherAnswers: ", showOtherAnswers).append("synchInMonitor: ", synchInMonitor).append( - "questionsSequenced: ", questionsSequenced).append("lockWhenFinished: ", lockWhenFinished) - .append("editActivityEditMode: ", editActivityEditMode) - .append("reflectionSubject: ", reflectionSubject).append("requestedModule: ", requestedModule).append( - "isDefineLater: ", isDefineLater).append("monitoredContentInUse: ", monitoredContentInUse) - .append("attachmentList: ", attachmentList).append( - "deletedAttachmentList: ", deletedAttachmentList).append("sbmtSuccess: ", sbmtSuccess).append( - "userExceptionQuestionsDuplicate: ", userExceptionQuestionsDuplicate).toString(); + .append("allowRateAnswers: ", allowRateAnswers).append("showOtherAnswers: ", showOtherAnswers) + .append("synchInMonitor: ", synchInMonitor).append("questionsSequenced: ", questionsSequenced) + .append("lockWhenFinished: ", lockWhenFinished).append("editActivityEditMode: ", editActivityEditMode) + .append("reflectionSubject: ", reflectionSubject).append("requestedModule: ", requestedModule) + .append("isDefineLater: ", isDefineLater).append("monitoredContentInUse: ", monitoredContentInUse) + .append("attachmentList: ", attachmentList).append("deletedAttachmentList: ", deletedAttachmentList) + .append("sbmtSuccess: ", sbmtSuccess) + .append("userExceptionQuestionsDuplicate: ", userExceptionQuestionsDuplicate).toString(); } /** @@ -450,8 +453,23 @@ public void setUsernameVisible(String usernameVisible) { this.usernameVisible = usernameVisible; } + + /** + * @return Returns the allowRateAnswers. + */ + public String getAllowRateAnswers() { + return allowRateAnswers; + } /** + * @param allowRateAnswers + * The allowRateAnswers to set. + */ + public void setAllowRateAnswers(String allowRateAnswers) { + this.allowRateAnswers = allowRateAnswers; + } + + /** * @return Returns the currentTab. */ public String getCurrentTab() { Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/QaMonitoredUserDTO.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/Attic/QaMonitoredUserDTO.java,v diff -u -r1.9 -r1.9.8.1 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/QaMonitoredUserDTO.java 19 Feb 2009 04:25:01 -0000 1.9 +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/QaMonitoredUserDTO.java 24 Feb 2011 14:22:40 -0000 1.9.8.1 @@ -59,6 +59,10 @@ private String questionUid; private String visible; + + private String averageRating; + + private String numberOfVotes; private Map usersAttempts; @@ -226,8 +230,38 @@ public void setVisible(String visible) { this.visible = visible; } + + /** + * @return Returns the averageRating. + */ + public String getAverageRating() { + return averageRating; + } /** + * @param averageRating + * The averageRating to set. + */ + public void setAverageRating(String averageRating) { + this.averageRating = averageRating; + } + + /** + * @return Returns the numberOfVotes. + */ + public String getNumberOfVotes() { + return numberOfVotes; + } + + /** + * @param numberOfVotes + * The numberOfVotes to set. + */ + public void setNumberOfVotes(String numberOfVotes) { + this.numberOfVotes = numberOfVotes; + } + + /** * @return Returns the attemptTime. */ public Date getAttemptTime() { Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/QaUtils.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/Attic/QaUtils.java,v diff -u -r1.59.8.1 -r1.59.8.2 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/QaUtils.java 1 Nov 2010 10:28:56 -0000 1.59.8.1 +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/QaUtils.java 24 Feb 2011 14:22:40 -0000 1.59.8.2 @@ -105,6 +105,10 @@ String usernameVisible = request.getParameter(USERNAME_VISIBLE); qaAuthoringForm.setUsernameVisible(usernameVisible); qaGeneralAuthoringDTO.setUsernameVisible(usernameVisible); + + String allowRateAnswers = request.getParameter(ALLOW_RATE_ANSWERS); + qaAuthoringForm.setAllowRateAnswers(allowRateAnswers); + qaGeneralAuthoringDTO.setAllowRateAnswers(allowRateAnswers); String showOtherAnswers = request.getParameter("showOtherAnswers"); qaAuthoringForm.setShowOtherAnswers(showOtherAnswers); Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/ResponseRating.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/qaApplicationContext.xml =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/qaApplicationContext.xml,v diff -u -r1.24 -r1.24.6.1 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/qaApplicationContext.xml 26 Mar 2009 10:00:38 -0000 1.24 +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/qaApplicationContext.xml 24 Feb 2011 14:22:40 -0000 1.24.6.1 @@ -48,6 +48,10 @@ + + + + @@ -77,7 +81,8 @@ - + + Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/dao/IResponseRatingDAO.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/dao/hibernate/ResponseRatingDAO.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/dbupdates/patch20110217_updateTo236.sql'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/dto/AverageRatingDTO.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/IQaService.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/IQaService.java,v diff -u -r1.54 -r1.54.8.1 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/IQaService.java 19 Feb 2009 04:25:02 -0000 1.54 +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/IQaService.java 24 Feb 2011 14:22:41 -0000 1.54.8.1 @@ -43,6 +43,7 @@ import org.lamsfoundation.lams.tool.qa.QaUploadedFile; import org.lamsfoundation.lams.tool.qa.QaUsrResp; import org.lamsfoundation.lams.tool.qa.QaWizardCategory; +import org.lamsfoundation.lams.tool.qa.dto.AverageRatingDTO; import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.util.audit.IAuditService; @@ -356,4 +357,8 @@ public void deleteAllWizardCategories(); public void removeQuestionsFromCache(QaContent qaContent); + + AverageRatingDTO rateResponse(Long responseId, Long userId, Long toolSessionID, float rating); + + AverageRatingDTO getAverageRatingDTOByResponse(Long responseId); } Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/QaServicePOJO.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/QaServicePOJO.java,v diff -u -r1.88 -r1.88.8.1 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/QaServicePOJO.java 16 Mar 2009 05:56:00 -0000 1.88 +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/QaServicePOJO.java 24 Feb 2011 14:22:41 -0000 1.88.8.1 @@ -78,6 +78,7 @@ import org.lamsfoundation.lams.tool.qa.QaUploadedFile; import org.lamsfoundation.lams.tool.qa.QaUsrResp; import org.lamsfoundation.lams.tool.qa.QaWizardCategory; +import org.lamsfoundation.lams.tool.qa.ResponseRating; import org.lamsfoundation.lams.tool.qa.dao.IQaConfigItemDAO; import org.lamsfoundation.lams.tool.qa.dao.IQaContentDAO; import org.lamsfoundation.lams.tool.qa.dao.IQaQueContentDAO; @@ -86,6 +87,8 @@ import org.lamsfoundation.lams.tool.qa.dao.IQaUploadedFileDAO; import org.lamsfoundation.lams.tool.qa.dao.IQaUsrRespDAO; import org.lamsfoundation.lams.tool.qa.dao.IQaWizardDAO; +import org.lamsfoundation.lams.tool.qa.dao.IResponseRatingDAO; +import org.lamsfoundation.lams.tool.qa.dto.AverageRatingDTO; import org.lamsfoundation.lams.tool.service.ILamsToolService; import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; @@ -94,6 +97,8 @@ import org.lamsfoundation.lams.util.audit.IAuditService; import org.lamsfoundation.lams.util.wddx.WDDXProcessor; import org.lamsfoundation.lams.util.wddx.WDDXProcessorConversionException; +import org.lamsfoundation.lams.web.session.SessionManager; +import org.lamsfoundation.lams.web.util.AttributeNames; import org.springframework.dao.DataAccessException; /** @@ -133,6 +138,7 @@ private IQaSessionDAO qaSessionDAO; private IQaQueUsrDAO qaQueUsrDAO; private IQaUsrRespDAO qaUsrRespDAO; + private IResponseRatingDAO qaResponseRatingDAO; private IQaUploadedFileDAO qaUploadedFileDAO; private IToolContentHandler qaToolContentHandler = null; @@ -1012,7 +1018,29 @@ throw new ToolException("toolContentID is missing"); } } + + public AverageRatingDTO rateResponse(Long responseId, Long userId, Long toolSessionID, float rating) { + QaQueUsr imageGalleryUser = this.getQaUserBySession(userId, toolSessionID); + ResponseRating responseRating = qaResponseRatingDAO.getRatingByResponseAndUser(responseId, userId); + QaUsrResp response = qaUsrRespDAO.getAttemptByUID(responseId); + //persist ResponseRating changes in DB + if (responseRating == null) { // add + responseRating = new ResponseRating(); + responseRating.setUser(imageGalleryUser); + responseRating.setResponse(response); + } + responseRating.setRating(rating); + qaResponseRatingDAO.saveObject(responseRating); + + //to make available new changes be visible in jsp page + return qaResponseRatingDAO.getAverageRatingDTOByResponse(responseId); + } + + public AverageRatingDTO getAverageRatingDTOByResponse(Long responseId) { + return qaResponseRatingDAO.getAverageRatingDTOByResponse(responseId); + } + /** * Export the XML fragment for the tool's content, along with any files * needed for the content. @@ -1568,6 +1596,10 @@ public void setQaUsrRespDAO(IQaUsrRespDAO qaUsrRespDAO) { this.qaUsrRespDAO = qaUsrRespDAO; + } + + public void setQaResponseRatingDAO(IResponseRatingDAO responseRatingDAO) { + this.qaResponseRatingDAO = responseRatingDAO; } /** @@ -1590,6 +1622,13 @@ public IQaUsrRespDAO getQaUsrRespDAO() { return qaUsrRespDAO; } + + /** + * @return Returns the IResponseRatingDAO. + */ + public IResponseRatingDAO getQaResponseRatingDAO() { + return qaResponseRatingDAO; + } /** * @return Returns the repositoryService. @@ -1677,6 +1716,7 @@ // in LAMS 2.0 toolContentObj.setLockWhenFinished(true); toolContentObj.setShowOtherAnswers(true); + toolContentObj.setAllowRateAnswers(false); Boolean bool; try { Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/AuthoringUtil.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/AuthoringUtil.java,v diff -u -r1.49.4.1.4.4 -r1.49.4.1.4.5 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/AuthoringUtil.java 2 Nov 2010 15:36:19 -0000 1.49.4.1.4.4 +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/AuthoringUtil.java 24 Feb 2011 14:22:40 -0000 1.49.4.1.4.5 @@ -316,6 +316,8 @@ String synchInMonitor = request.getParameter(QaAppConstants.SYNC_IN_MONITOR); String usernameVisible = request.getParameter(QaAppConstants.USERNAME_VISIBLE); + + String allowRateQuestions = request.getParameter(QaAppConstants.ALLOW_RATE_ANSWERS); String showOtherAnswers = request.getParameter("showOtherAnswers"); @@ -344,6 +346,7 @@ boolean synchInMonitorBoolean = false; boolean lockWhenFinishedBoolean = false; boolean usernameVisibleBoolean = false; + boolean allowRateQuestionsBoolean = false; boolean showOtherAnswersBoolean = false; boolean reflectBoolean = false; boolean allowRichEditorBoolean = false; @@ -363,6 +366,10 @@ if (usernameVisible != null && usernameVisible.equalsIgnoreCase("1")) { usernameVisibleBoolean = true; } + + if (allowRateQuestions != null && allowRateQuestions.equalsIgnoreCase("1")) { + allowRateQuestionsBoolean = true; + } if (showOtherAnswers != null && showOtherAnswers.equalsIgnoreCase("1")) { showOtherAnswersBoolean = true; @@ -406,6 +413,7 @@ qaContent.setOnlineInstructions(richTextOnlineInstructions); qaContent.setOfflineInstructions(richTextOfflineInstructions); qaContent.setUsernameVisible(usernameVisibleBoolean); + qaContent.setAllowRateAnswers(allowRateQuestionsBoolean); qaContent.setShowOtherAnswers(showOtherAnswersBoolean); qaContent.setQuestionsSequenced(questionsSequencedBoolean); qaContent.setLockWhenFinished(lockWhenFinishedBoolean); Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/LearningUtil.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/LearningUtil.java,v diff -u -r1.41.8.1 -r1.41.8.2 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/LearningUtil.java 1 Nov 2010 10:39:18 -0000 1.41.8.1 +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/LearningUtil.java 24 Feb 2011 14:22:39 -0000 1.41.8.2 @@ -92,6 +92,7 @@ generalLearnerFlowDTO.setShowOtherAnswers(new Boolean(qaContent.isShowOtherAnswers()).toString()); generalLearnerFlowDTO.setActivityOffline(new Boolean(qaContent.isRunOffline()).toString()); generalLearnerFlowDTO.setAllowRichEditor(new Boolean(qaContent.isAllowRichEditor()).toString()); + generalLearnerFlowDTO.setAllowRateAnswers(new Boolean(qaContent.isAllowRateAnswers()).toString()); generalLearnerFlowDTO.setTotalQuestionCount(new Integer(qaContent.getQaQueContents().size())); Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/MonitoringUtil.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/Attic/MonitoringUtil.java,v diff -u -r1.42.8.1 -r1.42.8.2 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/MonitoringUtil.java 28 Oct 2010 23:43:47 -0000 1.42.8.1 +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/MonitoringUtil.java 24 Feb 2011 14:22:39 -0000 1.42.8.2 @@ -47,6 +47,7 @@ import org.lamsfoundation.lams.tool.qa.QaStringComparator; import org.lamsfoundation.lams.tool.qa.QaUsrResp; import org.lamsfoundation.lams.tool.qa.QaUtils; +import org.lamsfoundation.lams.tool.qa.dto.AverageRatingDTO; import org.lamsfoundation.lams.tool.qa.service.IQaService; /** @@ -320,7 +321,8 @@ Map mapMonitoredUserContainerDTO = new TreeMap(new QaStringComparator()); List listMonitoredUserContainerDTO = new LinkedList(); Iterator itUsers = listUsers.iterator(); - + QaContent qaContent = qaService.getQaContentBySessionId(sessionId); + while (itUsers.hasNext()) { QaQueUsr qaQueUsr = (QaQueUsr) itUsers.next(); @@ -356,6 +358,14 @@ qaMonitoredUserDTO.setQuestionUid(questionUid); qaMonitoredUserDTO.setVisible(new Boolean(qaUsrResp.isVisible()).toString()); + + //set averageRating + if (qaContent.isAllowRateAnswers()) { + AverageRatingDTO averageRating = qaService.getAverageRatingDTOByResponse(qaUsrResp.getResponseId()); + qaMonitoredUserDTO.setAverageRating(averageRating.getRating()); + qaMonitoredUserDTO.setNumberOfVotes(averageRating.getNumberOfVotes()); + } + listMonitoredUserContainerDTO.add(qaMonitoredUserDTO); } } Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaAuthoringForm.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/Attic/QaAuthoringForm.java,v diff -u -r1.25.4.1.4.1 -r1.25.4.1.4.2 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaAuthoringForm.java 1 Nov 2010 10:36:27 -0000 1.25.4.1.4.1 +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaAuthoringForm.java 24 Feb 2011 14:22:39 -0000 1.25.4.1.4.2 @@ -74,6 +74,7 @@ protected String monitoringReportTitle; protected String endLearningMessage; protected String usernameVisible; + protected String allowRateAnswers; protected String showOtherAnswers; protected String questionsSequenced; protected String lockWhenFinished; @@ -160,6 +161,7 @@ public void resetRadioBoxes() { this.synchInMonitor = OPTION_OFF; this.usernameVisible = OPTION_OFF; + this.allowRateAnswers = OPTION_OFF; this.questionsSequenced = OPTION_OFF; this.lockWhenFinished = OPTION_OFF; this.reflect = OPTION_OFF; @@ -168,16 +170,17 @@ } public String toString() { - return new ToStringBuilder(this).append("Listing current QaAuthoringForm properties: ").append( - "toolContentID: ", toolContentID).append("currentTab: ", currentTab).append("activeModule: ", - activeModule).append("defaultContentIdStr: ", defaultContentIdStr).append("title: ", title).append( - "instructions: ", instructions).append("reportTitle: ", reportTitle).append("monitoringReportTitle: ", - monitoringReportTitle).append("endLearningMessage: ", endLearningMessage).append( - "onlineInstructions: ", onlineInstructions).append("offlineInstructions: ", offlineInstructions) - .append("usernameVisible: ", usernameVisible).append("showOtherAnswers: ", showOtherAnswers).append( - "synchInMonitor: ", synchInMonitor).append("questionsSequenced: ", questionsSequenced).append( - "lockWhenFinished: ", lockWhenFinished).append("reflect: ", reflect).append( - "defineLaterInEditMode: ", defineLaterInEditMode).toString(); + return new ToStringBuilder(this).append("Listing current QaAuthoringForm properties: ") + .append("toolContentID: ", toolContentID).append("currentTab: ", currentTab) + .append("activeModule: ", activeModule).append("defaultContentIdStr: ", defaultContentIdStr) + .append("title: ", title).append("instructions: ", instructions).append("reportTitle: ", reportTitle) + .append("monitoringReportTitle: ", monitoringReportTitle) + .append("endLearningMessage: ", endLearningMessage).append("onlineInstructions: ", onlineInstructions) + .append("offlineInstructions: ", offlineInstructions).append("usernameVisible: ", usernameVisible) + .append("allowRateAnswers: ", allowRateAnswers).append("showOtherAnswers: ", showOtherAnswers) + .append("synchInMonitor: ", synchInMonitor).append("questionsSequenced: ", questionsSequenced) + .append("lockWhenFinished: ", lockWhenFinished).append("reflect: ", reflect) + .append("defineLaterInEditMode: ", defineLaterInEditMode).toString(); } /** @@ -434,8 +437,23 @@ public void setUsernameVisible(String usernameVisible) { this.usernameVisible = usernameVisible; } + + /** + * @return Returns the allowRateAnswers. + */ + public String getAllowRateAnswers() { + return allowRateAnswers; + } /** + * @param allowRateAnswers + * The allowRateAnswers to set. + */ + public void setAllowRateAnswers(String allowRateAnswers) { + this.allowRateAnswers = allowRateAnswers; + } + + /** * @return Returns the submitTabDone. */ public String getSubmitTabDone() { Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningAction.java,v diff -u -r1.37.4.1.4.1 -r1.37.4.1.4.2 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningAction.java 1 Nov 2010 10:43:48 -0000 1.37.4.1.4.1 +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningAction.java 24 Feb 2011 14:22:40 -0000 1.37.4.1.4.2 @@ -111,13 +111,16 @@ import javax.servlet.http.HttpSession; import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.math.NumberUtils; import org.apache.log4j.Logger; import org.apache.struts.Globals; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionMessage; import org.apache.struts.action.ActionMessages; +import org.json.JSONException; +import org.json.JSONObject; import org.lamsfoundation.lams.notebook.model.NotebookEntry; import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants; import org.lamsfoundation.lams.tool.exception.ToolException; @@ -131,6 +134,8 @@ import org.lamsfoundation.lams.tool.qa.QaSession; import org.lamsfoundation.lams.tool.qa.QaUsrResp; import org.lamsfoundation.lams.tool.qa.QaUtils; +import org.lamsfoundation.lams.tool.qa.ResponseRating; +import org.lamsfoundation.lams.tool.qa.dto.AverageRatingDTO; import org.lamsfoundation.lams.tool.qa.service.IQaService; import org.lamsfoundation.lams.tool.qa.service.QaServiceProxy; import org.lamsfoundation.lams.usermanagement.User; @@ -270,6 +275,8 @@ boolean allowRichEditor = qaContent.isAllowRichEditor(); generalLearnerFlowDTO.setAllowRichEditor(new Boolean(allowRichEditor).toString()); + + generalLearnerFlowDTO.setAllowRateAnswers(new Boolean(qaContent.isAllowRateAnswers()).toString()); boolean showOtherAnswers = qaContent.isShowOtherAnswers(); generalLearnerFlowDTO.setShowOtherAnswers(new Boolean(showOtherAnswers).toString()); @@ -353,6 +360,8 @@ boolean allowRichEditor = qaContent.isAllowRichEditor(); generalLearnerFlowDTO.setAllowRichEditor(new Boolean(allowRichEditor).toString()); + + generalLearnerFlowDTO.setAllowRateAnswers(new Boolean(qaContent.isAllowRateAnswers()).toString()); /* * Learning mode requires this setting for jsp to generate the user's report @@ -571,6 +580,8 @@ boolean allowRichEditor = qaContent.isAllowRichEditor(); generalLearnerFlowDTO.setAllowRichEditor(new Boolean(allowRichEditor).toString()); + + generalLearnerFlowDTO.setAllowRateAnswers(new Boolean(qaContent.isAllowRateAnswers()).toString()); HttpSession ss = SessionManager.getSession(); /* get back login user DTO */ @@ -690,6 +701,8 @@ boolean allowRichEditor = qaContent.isAllowRichEditor(); generalLearnerFlowDTO.setAllowRichEditor(new Boolean(allowRichEditor).toString()); + + generalLearnerFlowDTO.setAllowRateAnswers(new Boolean(qaContent.isAllowRateAnswers()).toString()); HttpSession ss = SessionManager.getSession(); /* get back login user DTO */ @@ -924,6 +937,40 @@ qaLearningForm.resetAll(); return (mapping.findForward(LOAD_LEARNER)); } + + /** + * Rates answers submitted by other learners. + * + * @param mapping + * @param form + * @param request + * @param response + * @return + * @throws JSONException + * @throws IOException + * @throws ServletException + * @throws ToolException + */ + public ActionForward rateResponse(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws JSONException, IOException { + + IQaService qaService = QaServiceProxy.getQaService(getServlet().getServletContext()); + + float rating = Float.parseFloat((String) request.getParameter("rate")); + Long responseId = WebUtil.readLongParam(request, "idBox"); + Long toolSessionID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_SESSION_ID); + UserDTO user = (UserDTO) SessionManager.getSession().getAttribute(AttributeNames.USER); + Long userId = new Long(user.getUserID().intValue()); + + AverageRatingDTO averageRatingDTO = qaService.rateResponse(responseId, userId, toolSessionID, rating); + + JSONObject JSONObject = new JSONObject(); + JSONObject.put("averageRating", averageRatingDTO.getRating()); + JSONObject.put("numberOfVotes", averageRatingDTO.getNumberOfVotes()); + response.setContentType("application/x-json"); + response.getWriter().print(JSONObject); + return null; + } /** * finishes the user's tool activity endLearning(HttpServletRequest request, @@ -1073,6 +1120,8 @@ boolean allowRichEditor = qaContent.isAllowRichEditor(); generalLearnerFlowDTO.setAllowRichEditor(new Boolean(allowRichEditor).toString()); + + generalLearnerFlowDTO.setAllowRateAnswers(new Boolean(qaContent.isAllowRateAnswers()).toString()); NotebookEntry notebookEntry = qaService.getEntry(new Long(toolSessionID), CoreNotebookConstants.NOTEBOOK_TOOL, MY_SIGNATURE, new Integer(userID)); Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningStarterAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningStarterAction.java,v diff -u -r1.70.4.1.4.1 -r1.70.4.1.4.2 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningStarterAction.java 1 Nov 2010 10:40:05 -0000 1.70.4.1.4.1 +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningStarterAction.java 24 Feb 2011 14:22:39 -0000 1.70.4.1.4.2 @@ -443,7 +443,7 @@ logger.debug("lockWhenFinished: " + lockWhenFinished); boolean allowRichEditor = qaContent.isAllowRichEditor(); generalLearnerFlowDTO.setAllowRichEditor(new Boolean(allowRichEditor).toString()); - + generalLearnerFlowDTO.setAllowRateAnswers(new Boolean(qaContent.isAllowRateAnswers()).toString()); String sessionStatus = qaSession.getSession_status(); logger.debug("sessionStatus: " + sessionStatus); Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaStarterAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaStarterAction.java,v diff -u -r1.71.4.1.4.1 -r1.71.4.1.4.2 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaStarterAction.java 1 Nov 2010 10:33:53 -0000 1.71.4.1.4.1 +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaStarterAction.java 24 Feb 2011 14:22:39 -0000 1.71.4.1.4.2 @@ -406,6 +406,7 @@ QaUtils.populateAuthoringDTO(request, qaContent, qaGeneralAuthoringDTO); qaAuthoringForm.setUsernameVisible(qaContent.isUsernameVisible() ? "1" : "0"); + qaAuthoringForm.setAllowRateAnswers(qaContent.isAllowRateAnswers() ? "1" : "0"); qaAuthoringForm.setShowOtherAnswers(qaContent.isShowOtherAnswers() ? "1" : "0"); qaAuthoringForm.setSynchInMonitor(qaContent.isSynchInMonitor() ? "1" : "0"); qaAuthoringForm.setQuestionsSequenced(qaContent.isQuestionsSequenced() ? "1" : "0"); Index: lams_tool_laqa/test/java/org/lamsfoundation/lams/tool/qa/QaDataAccessTestCase.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/test/java/org/lamsfoundation/lams/tool/qa/Attic/QaDataAccessTestCase.java,v diff -u -r1.19 -r1.19.12.1 --- lams_tool_laqa/test/java/org/lamsfoundation/lams/tool/qa/QaDataAccessTestCase.java 2 Nov 2006 20:49:08 -0000 1.19 +++ lams_tool_laqa/test/java/org/lamsfoundation/lams/tool/qa/QaDataAccessTestCase.java 24 Feb 2011 14:22:42 -0000 1.19.12.1 @@ -140,6 +140,7 @@ qa.setCreationDate(new Date(System.currentTimeMillis())); qa.setCreatedBy(0); qa.setUsernameVisible(false); + qa.setAllowRateAnswers(false); qa.setDefineLater(false); qa.setSynchInMonitor(false); qa.setOnlineInstructions(""); Index: lams_tool_laqa/web/authoring/AdvancedContent.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/web/authoring/AdvancedContent.jsp,v diff -u -r1.29.6.2 -r1.29.6.2.4.1 --- lams_tool_laqa/web/authoring/AdvancedContent.jsp 11 May 2009 04:40:48 -0000 1.29.6.2 +++ lams_tool_laqa/web/authoring/AdvancedContent.jsp 24 Feb 2011 14:22:42 -0000 1.29.6.2.4.1 @@ -20,23 +20,52 @@ <%@ include file="/common/taglibs.jsp"%> + + + +

- +

-
-    +

+        +

+

+        + + + +

Index: lams_tool_laqa/web/authoring/AuthoringTabsHolder.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/web/authoring/AuthoringTabsHolder.jsp,v diff -u -r1.30 -r1.30.10.1 --- lams_tool_laqa/web/authoring/AuthoringTabsHolder.jsp 30 Sep 2008 05:54:57 -0000 1.30 +++ lams_tool_laqa/web/authoring/AuthoringTabsHolder.jsp 24 Feb 2011 14:22:42 -0000 1.30.10.1 @@ -96,16 +96,7 @@ document.QaAuthoringForm.dispatch.value=method; document.QaAuthoringForm.submit(); } - - function updateUsernameVisible(clickedObj){ - if(clickedObj.checked){ - document.QaAuthoringForm.usernameVisible.checked=true; - }else{ - document.QaAuthoringForm.usernameVisible.checked=false; - } - } - Index: lams_tool_laqa/web/images/bg_jRatingInfos.png =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/web/images/Attic/bg_jRatingInfos.png,v diff -u -r1.1 -r1.1.2.1 Binary files differ Index: lams_tool_laqa/web/images/small.png =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/web/images/Attic/small.png,v diff -u -r1.1 -r1.1.2.1 Binary files differ Index: lams_tool_laqa/web/images/stars.png =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/web/images/Attic/stars.png,v diff -u -r1.1 -r1.1.2.1 Binary files differ Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_tool_laqa/web/includes/css/jRating.jquery.css'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_tool_laqa/web/includes/css/ratingStars.css'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_tool_laqa/web/includes/javascript/jRating.jquery.js'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_tool_laqa/web/includes/javascript/jquery.js'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_laqa/web/learning/LearnerRep.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/web/learning/LearnerRep.jsp,v diff -u -r1.37.8.2 -r1.37.8.3 --- lams_tool_laqa/web/learning/LearnerRep.jsp 16 Sep 2009 08:21:22 -0000 1.37.8.2 +++ lams_tool_laqa/web/learning/LearnerRep.jsp 24 Feb 2011 14:22:41 -0000 1.37.8.3 @@ -33,14 +33,37 @@ - <fmt:message key="activity.title" /> + + + + + + + + + + + + + + + + +