Index: lams_tool_assessment/db/sql/create_lams_tool_assessment.sql =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/db/sql/create_lams_tool_assessment.sql,v diff -u -r1.12.2.2.2.6 -r1.12.2.2.2.7 --- lams_tool_assessment/db/sql/create_lams_tool_assessment.sql 16 Sep 2011 16:59:54 -0000 1.12.2.2.2.6 +++ lams_tool_assessment/db/sql/create_lams_tool_assessment.sql 11 Oct 2011 16:17:03 -0000 1.12.2.2.2.7 @@ -30,6 +30,7 @@ run_offline tinyint, time_limit integer DEFAULT 0, attempts_allowed integer DEFAULT 1, + passing_mark integer DEFAULT 0, instructions text, online_instructions text, offline_instructions text, Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/AssessmentConstants.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/AssessmentConstants.java,v diff -u -r1.16.6.3 -r1.16.6.4 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/AssessmentConstants.java 28 Sep 2011 20:59:38 -0000 1.16.6.3 +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/AssessmentConstants.java 11 Oct 2011 16:17:03 -0000 1.16.6.4 @@ -198,6 +198,8 @@ public static final String ATTR_IS_RESUBMIT_ALLOWED = "isResubmitAllowed"; + public static final String ATTR_IS_USER_FAILED = "isUserFailed"; + public static final String ATTR_FINISHED_LOCK = "finishedLock"; public static final String ATTR_USER = "user"; Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20110413_updateTo236.sql =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20110413_updateTo236.sql,v diff -u -r1.1.2.3 -r1.1.2.4 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20110413_updateTo236.sql 16 Sep 2011 16:59:54 -0000 1.1.2.3 +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20110413_updateTo236.sql 11 Oct 2011 16:17:03 -0000 1.1.2.4 @@ -9,7 +9,6 @@ ALTER TABLE tl_laasse10_assessment ADD COLUMN submission_deadline DATETIME DEFAULT null; -- LDEV-2684 Option for not displaying answers summary - ALTER TABLE tl_laasse10_assessment ADD COLUMN display_summary tinyint DEFAULT false; -- LDEV-2714 Pool of questions for assessment tool @@ -25,7 +24,10 @@ primary key (uid) )type=innodb; +-- LDEV-2717 Add passing mark feature to assessment tool +ALTER TABLE tl_laasse10_assessment ADD COLUMN passing_mark integer DEFAULT 0; + ----------------------Put all sql statements above here------------------------- -- If there were no errors, commit and restore autocommit to on Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/Assessment.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/Assessment.java,v diff -u -r1.5.6.6 -r1.5.6.7 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/Assessment.java 28 Sep 2011 20:59:38 -0000 1.5.6.6 +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/Assessment.java 11 Oct 2011 16:17:02 -0000 1.5.6.7 @@ -67,6 +67,8 @@ private int attemptsAllowed; + private int passingMark; + private boolean runOffline; private boolean shuffled; @@ -690,7 +692,21 @@ public void setAttemptsAllowed(int attemptsAllowed) { this.attemptsAllowed = attemptsAllowed; } + + /** + * passing mark based on which we decide either user has failed or passed + * + * @hibernate.property column="passing_mark" + * @return + */ + public int getPassingMark() { + return passingMark; + } + public void setPassingMark(int passingMark) { + this.passingMark = passingMark; + } + /** * @hibernate.property column="shuffled" * @return Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestion.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestion.java,v diff -u -r1.11.6.4 -r1.11.6.5 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestion.java 29 Sep 2011 19:08:05 -0000 1.11.6.4 +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestion.java 11 Oct 2011 16:17:03 -0000 1.11.6.5 @@ -56,6 +56,9 @@ private int sequenceId; + /** + * Default grade set in author. + */ private int defaultGrade; private float penaltyFactor; @@ -99,6 +102,11 @@ private String questionFeedback; + /** + * Grade acquired from QUestionReference in learner. + */ + private int grade; + private float mark; private float penalty; @@ -258,6 +266,8 @@ } /** + * Default grade set in author. To be used only in author + * * @hibernate.property column="default_grade" * * @return @@ -266,6 +276,9 @@ return defaultGrade; } + /** + * @param defaultGrade Default grade set in author. To be used only in author + */ public void setDefaultGrade(int defaultGrade) { this.defaultGrade = defaultGrade; } @@ -493,6 +506,19 @@ return questionFeedback; } + /** + * @return Grade acquired from QUestionReference in learner. + */ + public int getGrade() { + return grade; + } + /** + * @param grade Grade acquired from QUestionReference in learner. + */ + public void setGrade(int grade) { + this.grade = grade; + } + public Float getMark() { return mark; } Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentResult.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentResult.java,v diff -u -r1.3 -r1.3.6.1 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentResult.java 17 Mar 2009 22:40:48 -0000 1.3 +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentResult.java 11 Oct 2011 16:17:02 -0000 1.3.6.1 @@ -142,13 +142,20 @@ } /** + * Overall assessment grade (incl all penalties) + * * @hibernate.property column="grade" * @return */ public float getGrade() { return grade; } + /** + * Overall assessment grade (incl all penalties) + * + * @param grade + */ public void setGrade(float grade) { this.grade = grade; } Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java,v diff -u -r1.15.2.1.2.6 -r1.15.2.1.2.7 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java 29 Sep 2011 19:08:05 -0000 1.15.2.1.2.6 +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java 11 Oct 2011 16:17:03 -0000 1.15.2.1.2.7 @@ -356,7 +356,7 @@ AssessmentQuestionResult processedAnswer = this.processUserAnswer(question, numberWrongAnswers); questionResultList.add(processedAnswer); - maximumGrade += question.getDefaultGrade(); + maximumGrade += question.getGrade(); grade += processedAnswer.getMark(); } } @@ -391,7 +391,7 @@ questionResult.setFinishDate(new Date()); float mark = 0; - float maxMark = question.getDefaultGrade(); + float maxMark = question.getGrade(); if (question.getType() == AssessmentConstants.QUESTION_TYPE_MULTIPLE_CHOICE) { for (AssessmentQuestionOption option : question.getQuestionOptions()) { if (option.getAnswerBoolean()) { Fisheye: Tag 1.1.8.1 refers to a dead (removed) revision in file `lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/util/AssessmentWebUtils.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java,v diff -u -r1.14.6.8 -r1.14.6.9 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java 30 Sep 2011 15:51:52 -0000 1.14.6.8 +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java 11 Oct 2011 16:17:03 -0000 1.14.6.9 @@ -240,6 +240,8 @@ if (question.getCreateBy() != null) { question.getCreateBy().getLoginName(); } + question.setGrade(questionReference.getDefaultGrade()); + questionList.add(question); } @@ -352,18 +354,23 @@ processUserAnswers(sessionMap); loadupResultMarks(sessionMap); - Long toolSessionId = (Long) sessionMap.get(AttributeNames.PARAM_TOOL_SESSION_ID); + //calculate whether isResubmitAllowed Assessment assessment = (Assessment) sessionMap.get(AssessmentConstants.ATTR_ASSESSMENT); IAssessmentService service = getAssessmentService(); HttpSession ss = SessionManager.getSession(); UserDTO userDTO = (UserDTO) ss.getAttribute(AttributeNames.USER); Long userID = new Long(userDTO.getUserID().longValue()); - //AssessmentUser user = service.getUserByIDAndSession(userID, toolSessionId); int dbResultCount = service.getAssessmentResultCount(assessment.getUid(), userID); int attemptsAllowed = assessment.getAttemptsAllowed(); - boolean isResubmitAllowed = ((attemptsAllowed > dbResultCount) | (attemptsAllowed == 0));// && !user.isSessionFinished(); + boolean isResubmitAllowed = ((attemptsAllowed > dbResultCount) | (attemptsAllowed == 0)); sessionMap.put(AssessmentConstants.ATTR_IS_RESUBMIT_ALLOWED, isResubmitAllowed); + //calculate whether isUserFailed + AssessmentResult result = (AssessmentResult) sessionMap.get(AssessmentConstants.ATTR_ASSESSMENT_RESULT); + int passingMark = assessment.getPassingMark(); + boolean isUserFailed = ((passingMark != 0) && (passingMark > result.getGrade())); + request.setAttribute(AssessmentConstants.ATTR_IS_USER_FAILED, isUserFailed); + sessionMap.put(AssessmentConstants.ATTR_FINISHED_LOCK, true); request.setAttribute(AssessmentConstants.ATTR_SESSION_MAP_ID, sessionMapID); return mapping.findForward(AssessmentConstants.SUCCESS); Index: lams_tool_assessment/web/pages/authoring/advance.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/web/pages/authoring/advance.jsp,v diff -u -r1.2.8.2 -r1.2.8.3 --- lams_tool_assessment/web/pages/authoring/advance.jsp 2 Jun 2011 02:14:29 -0000 1.2.8.2 +++ lams_tool_assessment/web/pages/authoring/advance.jsp 11 Oct 2011 16:17:03 -0000 1.2.8.3 @@ -1,6 +1,26 @@ <%@ include file="/common/taglibs.jsp"%> + +

@@ -35,7 +55,17 @@

- + +

+ +        + checked="checked" + /> + + 6 5 @@ -44,7 +74,16 @@ 2 1 - +

+ +        + checked="checked" + /> + + + +

Index: lams_tool_assessment/web/pages/authoring/basic.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/web/pages/authoring/basic.jsp,v diff -u -r1.6.8.5 -r1.6.8.6 --- lams_tool_assessment/web/pages/authoring/basic.jsp 29 Sep 2011 19:08:05 -0000 1.6.8.5 +++ lams_tool_assessment/web/pages/authoring/basic.jsp 11 Oct 2011 16:17:03 -0000 1.6.8.6 @@ -6,6 +6,10 @@ Fisheye: Tag 1.1.2.2 refers to a dead (removed) revision in file `lams_tool_assessment/web/pages/authoring/exportQuestions.jsp'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_assessment/web/pages/authoring/parts/addessay.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/web/pages/authoring/parts/addessay.jsp,v diff -u -r1.7.6.3 -r1.7.6.4 --- lams_tool_assessment/web/pages/authoring/parts/addessay.jsp 1 Mar 2010 21:04:44 -0000 1.7.6.3 +++ lams_tool_assessment/web/pages/authoring/parts/addessay.jsp 11 Oct 2011 16:17:03 -0000 1.7.6.4 @@ -62,7 +62,7 @@ }); }); // post-submit callback - function afterRatingSubmit(responseText, statusText) { + function afterRatingSubmit(responseText, statusText) { self.parent.refreshThickbox(); self.parent.tb_remove(); } Index: lams_tool_assessment/web/pages/learning/learning.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/web/pages/learning/learning.jsp,v diff -u -r1.10.6.6 -r1.10.6.7 --- lams_tool_assessment/web/pages/learning/learning.jsp 2 Jun 2011 02:48:01 -0000 1.10.6.6 +++ lams_tool_assessment/web/pages/learning/learning.jsp 11 Oct 2011 16:17:03 -0000 1.10.6.7 @@ -161,6 +161,14 @@ + +

+ + ${assessment.passingMark} + +
+ + Index: lams_tool_assessment/web/pages/monitoring/parts/advanceoptions.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/web/pages/monitoring/parts/advanceoptions.jsp,v diff -u -r1.1.6.2 -r1.1.6.3 --- lams_tool_assessment/web/pages/monitoring/parts/advanceoptions.jsp 2 Jun 2011 08:00:12 -0000 1.1.6.2 +++ lams_tool_assessment/web/pages/monitoring/parts/advanceoptions.jsp 11 Oct 2011 16:17:03 -0000 1.1.6.3 @@ -57,6 +57,23 @@ + + + + + + + - + + + ${assessment.passingMark} + + + + + + +