Index: lams_tool_assessment/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== diff -u -rb97c9857551b67fbe95d700328a8316c7ba42bf5 -r98ccad973dd8280fbae78c301f824877b2564c44 --- lams_tool_assessment/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision b97c9857551b67fbe95d700328a8316c7ba42bf5) +++ lams_tool_assessment/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 98ccad973dd8280fbae78c301f824877b2564c44) @@ -168,6 +168,13 @@ label.learning.submit.all =Submit All label.learning.next.activity =Next Activity label.learning.resubmit =Resubmit +label.learning.summary.started.on =Started on +label.learning.summary.completed.on =Completed on +label.learning.summary.time.taken =Time taken +label.learning.summary.hours =hour(s) +label.learning.summary.minutes =minutes +label.learning.summary.grade =Grade +label.learning.summary.out.of.maximum =out of a maximum of monitoring.tab.summary =Summary monitoring.tab.instructions =Instruction monitoring.tab.statistics =Statistic Index: lams_tool_assessment/db/sql/create_lams_tool_assessment.sql =================================================================== diff -u -rffbd31e92ef761df70dfa660de414ba7b8b269ce -r98ccad973dd8280fbae78c301f824877b2564c44 --- lams_tool_assessment/db/sql/create_lams_tool_assessment.sql (.../create_lams_tool_assessment.sql) (revision ffbd31e92ef761df70dfa660de414ba7b8b269ce) +++ lams_tool_assessment/db/sql/create_lams_tool_assessment.sql (.../create_lams_tool_assessment.sql) (revision 98ccad973dd8280fbae78c301f824877b2564c44) @@ -106,6 +106,8 @@ finish_date datetime, user_uid bigint, session_id bigint, + maximum_grade integer, + grade float, primary key (uid) )type=innodb; create table tl_laasse10_question_result ( Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/AssessmentQuestionResultDAO.java =================================================================== diff -u -rffbd31e92ef761df70dfa660de414ba7b8b269ce -r98ccad973dd8280fbae78c301f824877b2564c44 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/AssessmentQuestionResultDAO.java (.../AssessmentQuestionResultDAO.java) (revision ffbd31e92ef761df70dfa660de414ba7b8b269ce) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/AssessmentQuestionResultDAO.java (.../AssessmentQuestionResultDAO.java) (revision 98ccad973dd8280fbae78c301f824877b2564c44) @@ -29,6 +29,8 @@ import org.lamsfoundation.lams.tool.assessment.model.AssessmentQuestionResult; public interface AssessmentQuestionResultDAO extends DAO { + + int getNumberWrongAnswersDoneBefore(Long assessmentUid, Long userId, Long questionUid); // public AssessmentQuestionResult getAssessmentQuestionResult(Long questionUid, Long userId); // Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/AssessmentResultDAO.java =================================================================== diff -u -rffbd31e92ef761df70dfa660de414ba7b8b269ce -r98ccad973dd8280fbae78c301f824877b2564c44 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/AssessmentResultDAO.java (.../AssessmentResultDAO.java) (revision ffbd31e92ef761df70dfa660de414ba7b8b269ce) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/AssessmentResultDAO.java (.../AssessmentResultDAO.java) (revision 98ccad973dd8280fbae78c301f824877b2564c44) @@ -35,7 +35,7 @@ AssessmentResult getLastAssessmentResult(Long assessmentUid, Long userId); - int getAssessmentResultCount(Long toolSessionId, Long userId); + int getAssessmentResultCount(Long assessmentUid, Long userId); // /** // * Return list which contains key pair which key is assessment question uid, value is number view. Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentQuestionResultDAOHibernate.java =================================================================== diff -u -rffbd31e92ef761df70dfa660de414ba7b8b269ce -r98ccad973dd8280fbae78c301f824877b2564c44 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentQuestionResultDAOHibernate.java (.../AssessmentQuestionResultDAOHibernate.java) (revision ffbd31e92ef761df70dfa660de414ba7b8b269ce) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentQuestionResultDAOHibernate.java (.../AssessmentQuestionResultDAOHibernate.java) (revision 98ccad973dd8280fbae78c301f824877b2564c44) @@ -30,6 +30,7 @@ import org.lamsfoundation.lams.tool.assessment.dao.AssessmentQuestionResultDAO; import org.lamsfoundation.lams.tool.assessment.model.Assessment; import org.lamsfoundation.lams.tool.assessment.model.AssessmentQuestionResult; +import org.lamsfoundation.lams.tool.assessment.model.AssessmentResult; import org.lamsfoundation.lams.tool.assessment.model.AssessmentSession; public class AssessmentQuestionResultDAOHibernate extends BaseDAOHibernate implements AssessmentQuestionResultDAO { @@ -43,12 +44,19 @@ //// private static final String FIND_VIEW_COUNT_BY_USER = "select count(*) from " //// + AssessmentQuestionResult.class.getName() + " as r where r.sessionId=? and r.user.userId =?"; // -// private static final String FIND_SUMMARY = "select v.assessmentQuestion.uid, count(v.assessmentQuestion) from " +// private static final String FIND_WRONG_ANSWERS_NUMBER = "select v.assessmentQuestion.uid, count(v.assessmentQuestion) from " // + AssessmentQuestionResult.class.getName() + " as v , " + AssessmentSession.class.getName() + " as s, " // + Assessment.class.getName() + " as r " + " where v.sessionId = s.sessionId " // + " and s.assessment.uid = r.uid " + " and r.contentId =? " // + " group by v.sessionId, v.assessmentQuestion.uid "; -// + + private static final String FIND_WRONG_ANSWERS_NUMBER = "select count(q) from " + + AssessmentQuestionResult.class.getName() + + " as q, " + + AssessmentResult.class.getName() + + " as r " + + " where q.resultUid = r.uid and r.assessment.uid = ? and r.user.userId =? and q.assessmentQuestion.uid =? and q.mark = 0"; + // public AssessmentQuestionResult getAssessmentQuestionResult(Long questionUid, Long userId) { // List list = getHibernateTemplate().find(FIND_BY_QUESTION_AND_USER, new Object[] { userId, questionUid }); // if (list == null || list.size() == 0) @@ -66,7 +74,7 @@ // public Map getSummary(Long contentId) { // // // Note: Hibernate 3.1 query.uniqueResult() returns Integer, Hibernate 3.2 query.uniqueResult() returns Long -// List result = getHibernateTemplate().find(FIND_SUMMARY, contentId); +// List result = getHibernateTemplate().find(FIND_WRONG_ANSWERS_NUMBER, contentId); // Map summaryList = new HashMap(result.size()); // for (Object[] list : result) { // if (list[1] != null) { @@ -81,4 +89,13 @@ // return getHibernateTemplate().find(FIND_BY_QUESTION_AND_SESSION, new Object[] { sessionId, questionUid }); // } + public int getNumberWrongAnswersDoneBefore(Long assessmentUid, Long userId, Long questionUid) { + List list = getHibernateTemplate().find(FIND_WRONG_ANSWERS_NUMBER, new Object[] { assessmentUid, userId, questionUid }); + if (list == null || list.size() == 0) { + return 0; + } else { + return ((Number) list.get(0)).intValue(); + } + } + } Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentResultDAOHibernate.java =================================================================== diff -u -rffbd31e92ef761df70dfa660de414ba7b8b269ce -r98ccad973dd8280fbae78c301f824877b2564c44 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentResultDAOHibernate.java (.../AssessmentResultDAOHibernate.java) (revision ffbd31e92ef761df70dfa660de414ba7b8b269ce) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentResultDAOHibernate.java (.../AssessmentResultDAOHibernate.java) (revision 98ccad973dd8280fbae78c301f824877b2564c44) @@ -42,8 +42,8 @@ private static final String FIND_BY_ASSESSMENT_AND_SESSION = "from " + AssessmentResult.class.getName() + " as r where r.sessionId = ? and r.assessment.uid=?"; - private static final String FIND_ASSESSMENT_RESULT_COUNT_BY_USER = "select count(*) from " - + AssessmentResult.class.getName() + " as r where r.sessionId=? and r.user.userId =?"; + private static final String FIND_ASSESSMENT_RESULT_COUNT_BY_ASSESSMENT_AND_USER = "select count(*) from " + + AssessmentResult.class.getName() + " as r where r.user.userId=? and r.assessment.uid=?"; // private static final String FIND_SUMMARY = "select v.assessmentQuestion.uid, count(v.assessmentQuestion) from " // + AssessmentQuestionResult.class.getName() + " as v , " + AssessmentSession.class.getName() + " as s, " @@ -60,12 +60,12 @@ if (list == null || list.size() == 0) { return null; } else { - return (AssessmentResult) list.get(0); + return (AssessmentResult) list.get(list.size()-1); } } - public int getAssessmentResultCount(Long toolSessionId, Long userId) { - List list = getHibernateTemplate().find(FIND_ASSESSMENT_RESULT_COUNT_BY_USER, new Object[] { toolSessionId, userId }); + public int getAssessmentResultCount(Long assessmentUid, Long userId) { + List list = getHibernateTemplate().find(FIND_ASSESSMENT_RESULT_COUNT_BY_ASSESSMENT_AND_USER, new Object[] { userId, assessmentUid }); if (list == null || list.size() == 0) { return 0; } else { Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestionResult.hbm.xml =================================================================== diff -u -rffbd31e92ef761df70dfa660de414ba7b8b269ce -r98ccad973dd8280fbae78c301f824877b2564c44 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestionResult.hbm.xml (.../AssessmentQuestionResult.hbm.xml) (revision ffbd31e92ef761df70dfa660de414ba7b8b269ce) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestionResult.hbm.xml (.../AssessmentQuestionResult.hbm.xml) (revision 98ccad973dd8280fbae78c301f824877b2564c44) @@ -36,6 +36,14 @@ /> + + optionAnswers; public AssessmentQuestionResult() { - optionAnswers = new TreeSet(new SequencableComparator()); + optionAnswers = new TreeSet(new SequencableComparator()); } /** @@ -77,6 +78,19 @@ } /** + * @hibernate.property column="result_uid" + * + * @return Returns resultUid. + */ + public Long getResultUid() { + return resultUid; + } + + public void setResultUid(Long resultUid) { + this.resultUid = resultUid; + } + + /** * @hibernate.property column="answer_string" type="text" * * @return Returns the possible answer. Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentResult.hbm.xml =================================================================== diff -u -rffbd31e92ef761df70dfa660de414ba7b8b269ce -r98ccad973dd8280fbae78c301f824877b2564c44 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentResult.hbm.xml (.../AssessmentResult.hbm.xml) (revision ffbd31e92ef761df70dfa660de414ba7b8b269ce) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentResult.hbm.xml (.../AssessmentResult.hbm.xml) (revision 98ccad973dd8280fbae78c301f824877b2564c44) @@ -69,6 +69,22 @@ column="session_id" /> + + + + questionResults; + // DTO fields: + private Date timeTaken; + private String overallFeedback; + public AssessmentResult() { questionResults = new TreeSet(new AssessmentQuestionResultComparator()); } @@ -124,6 +130,30 @@ } /** + * @hibernate.property column="maximum_grade" + * @return + */ + public int getMaximumGrade() { + return maximumGrade; + } + + public void setMaximumGrade(int maximumGrade) { + this.maximumGrade = maximumGrade; + } + + /** + * @hibernate.property column="grade" + * @return + */ + public float getGrade() { + return grade; + } + + public void setGrade(float grade) { + this.grade = grade; + } + + /** * * @hibernate.set cascade="all" * @hibernate.collection-key column="result_uid" @@ -142,6 +172,19 @@ this.questionResults = questionResults; } + public Date getTimeTaken() { + return timeTaken; + } + public void setTimeTaken(Date timeTaken) { + this.timeTaken = timeTaken; + } + + public String getOverallFeedback() { + return overallFeedback; + } + public void setOverallFeedback(String overallFeedback) { + this.overallFeedback = overallFeedback; + } } \ No newline at end of file Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java =================================================================== diff -u -rb97c9857551b67fbe95d700328a8316c7ba42bf5 -r98ccad973dd8280fbae78c301f824877b2564c44 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision b97c9857551b67fbe95d700328a8316c7ba42bf5) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 98ccad973dd8280fbae78c301f824877b2564c44) @@ -426,23 +426,33 @@ result.setSessionId(toolSessionId); result.setStartDate(new Timestamp(new Date().getTime())); assessmentResultDao.saveObject(result); + int dd = 22; } public void processUserAnswers(Long assessmentUid, Long userId, ArrayList> pagedQuestions) { SortedSet questionResultList = new TreeSet( new AssessmentQuestionResultComparator()); + int maximumGrade = 0; + float grade = 0; for (LinkedHashSet questionsForOnePage : pagedQuestions) { for (AssessmentQuestion question : questionsForOnePage) { - AssessmentQuestionResult processedAnswer = this.processUserAnswer(question); + int numberWrongAnswers = assessmentQuestionResultDao.getNumberWrongAnswersDoneBefore(assessmentUid, userId, question.getUid()); + AssessmentQuestionResult processedAnswer = this.processUserAnswer(question, numberWrongAnswers); questionResultList.add(processedAnswer); + + maximumGrade += question.getDefaultGrade(); + grade += processedAnswer.getMark(); } } AssessmentResult result = assessmentResultDao.getLastAssessmentResult(assessmentUid, userId); result.setQuestionResults(questionResultList); + result.setMaximumGrade(maximumGrade); + result.setGrade(grade); + result.setFinishDate(new Timestamp(new Date().getTime())); assessmentResultDao.saveObject(result); } - private AssessmentQuestionResult processUserAnswer(AssessmentQuestion question) { + private AssessmentQuestionResult processUserAnswer(AssessmentQuestion question, int numberWrongAnswers) { AssessmentQuestionResult questionResult = new AssessmentQuestionResult(); Set optionAnswers = questionResult.getOptionAnswers(); @@ -482,7 +492,8 @@ } else { pattern = Pattern.compile(optionString); } - boolean isAnswerCorrect = pattern.matcher(question.getAnswerString()).matches(); + boolean isAnswerCorrect = (question.getAnswerString() != null) ? + pattern.matcher(question.getAnswerString()).matches() : false; if (isAnswerCorrect) { mark = option.getGrade()*maxMark; @@ -523,7 +534,13 @@ } if (mark > maxMark) { mark = maxMark; - } else if (mark < 0) { + } + if (mark > 0) { + float penalty = question.getPenaltyFactor()*numberWrongAnswers; + mark -= penalty; + questionResult.setPenalty(penalty); + } + if (mark < 0) { mark = 0; } questionResult.setMark(mark); @@ -534,8 +551,8 @@ return assessmentResultDao.getLastAssessmentResult(assessmentUid, userId); } - public int getAssessmentResultCount(Long toolSessionId, Long userId) { - return assessmentResultDao.getAssessmentResultCount(toolSessionId, userId); + public int getAssessmentResultCount(Long assessmentUid, Long userId) { + return assessmentResultDao.getAssessmentResultCount(assessmentUid, userId); } public String finishToolSession(Long toolSessionId, Long userId) throws AssessmentApplicationException { Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java =================================================================== diff -u -rb97c9857551b67fbe95d700328a8316c7ba42bf5 -r98ccad973dd8280fbae78c301f824877b2564c44 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java (.../IAssessmentService.java) (revision b97c9857551b67fbe95d700328a8316c7ba42bf5) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java (.../IAssessmentService.java) (revision 98ccad973dd8280fbae78c301f824877b2564c44) @@ -180,7 +180,7 @@ AssessmentResult getLastAssessmentResult(Long assessmentUid, Long userId); - int getAssessmentResultCount(Long toolSessionId, Long userId); + int getAssessmentResultCount(Long assessmentUid, Long userId); /** * If success return next activity's url, otherwise return null. Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java =================================================================== diff -u -rb97c9857551b67fbe95d700328a8316c7ba42bf5 -r98ccad973dd8280fbae78c301f824877b2564c44 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java (.../LearningAction.java) (revision b97c9857551b67fbe95d700328a8316c7ba42bf5) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java (.../LearningAction.java) (revision 98ccad973dd8280fbae78c301f824877b2564c44) @@ -32,6 +32,7 @@ import java.util.Collections; import java.util.Date; import java.util.HashMap; +import java.util.Iterator; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; @@ -60,6 +61,7 @@ import org.lamsfoundation.lams.tool.assessment.AssessmentConstants; import org.lamsfoundation.lams.tool.assessment.model.Assessment; import org.lamsfoundation.lams.tool.assessment.model.AssessmentOptionAnswer; +import org.lamsfoundation.lams.tool.assessment.model.AssessmentOverallFeedback; import org.lamsfoundation.lams.tool.assessment.model.AssessmentQuestion; import org.lamsfoundation.lams.tool.assessment.model.AssessmentQuestionOption; import org.lamsfoundation.lams.tool.assessment.model.AssessmentQuestionResult; @@ -176,7 +178,7 @@ UserDTO userDTO = (UserDTO) ss.getAttribute(AttributeNames.USER); Long userID = new Long(userDTO.getUserID().longValue()); AssessmentUser user = service.getUserByIDAndSession(userID, toolSessionId); - int dbResultCount = service.getAssessmentResultCount(toolSessionId, userID); + int dbResultCount = service.getAssessmentResultCount(assessment.getUid(), userID); int attemptsAllowed = assessment.getAttemptsAllowed(); boolean finishedLock = ((assessmentUser != null) && assessmentUser.isSessionFinished()) || ((attemptsAllowed <= dbResultCount) && (attemptsAllowed != 0)); @@ -292,6 +294,9 @@ // loadupLastAttempt for display purpose if (dbResultCount > 0) { loadupLastAttempt(sessionMap); + if (finishedLock) { + loadupResultMarks(sessionMap); + } } return mapping.findForward(AssessmentConstants.SUCCESS); @@ -666,10 +671,10 @@ private void loadupResultMarks(SessionMap sessionMap){ ArrayList> pagedQuestions = (ArrayList>) sessionMap .get(AssessmentConstants.ATTR_PAGED_QUESTIONS); - Long assessmentUid = ((Assessment) sessionMap.get(AssessmentConstants.ATTR_ASSESSMENT)).getUid(); + Assessment assessment = (Assessment) sessionMap.get(AssessmentConstants.ATTR_ASSESSMENT); Long userId = ((AssessmentUser) sessionMap.get(AssessmentConstants.ATTR_USER)).getUserId(); IAssessmentService service = getAssessmentService(); - AssessmentResult result = service.getLastAssessmentResult(assessmentUid,userId); + AssessmentResult result = service.getLastAssessmentResult(assessment.getUid(), userId); for(LinkedHashSet questionsForOnePage : pagedQuestions) { for (AssessmentQuestion question : questionsForOnePage) { @@ -681,6 +686,23 @@ } } } + + Date timeTaken = new Date(result.getFinishDate().getTime() - result.getStartDate().getTime()); + result.setTimeTaken(timeTaken); + if (assessment.isAllowOverallFeedbackAfterQuestion()) { + int percentageCorrectAnswers = (int) (result.getGrade() * 100 / result.getMaximumGrade()); + ArrayList overallFeedbacks = new ArrayList(assessment.getOverallFeedbacks()); + int lastBorder = 0; + for (int i = overallFeedbacks.size()-1; i >= 0; i--) { + AssessmentOverallFeedback overallFeedback = overallFeedbacks.get(i); + if ((percentageCorrectAnswers >= lastBorder) && (percentageCorrectAnswers <= overallFeedback.getGradeBoundary())) { + result.setOverallFeedback(overallFeedback.getFeedback()); + break; + } + lastBorder = overallFeedback.getGradeBoundary(); + } + } + sessionMap.put(AssessmentConstants.ATTR_ASSESSMENT_RESULT, result); } private void loadupLastAttempt(SessionMap sessionMap){ @@ -762,14 +784,14 @@ */ private boolean isResubmitAllowed(SessionMap sessionMap) { Long toolSessionId = (Long) sessionMap.get(AttributeNames.PARAM_TOOL_SESSION_ID); + 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(toolSessionId, userID); - Assessment assessment = (Assessment) sessionMap.get(AssessmentConstants.ATTR_ASSESSMENT); + int dbResultCount = service.getAssessmentResultCount(assessment.getUid(), userID); int attemptsAllowed = assessment.getAttemptsAllowed(); return ((attemptsAllowed > dbResultCount) | (attemptsAllowed == 0)) && !user.isSessionFinished(); } @@ -780,29 +802,6 @@ return (IAssessmentService) wac.getBean(AssessmentConstants.ASSESSMENT_SERVICE); } - /** - * Return ActionForward according to assessment question type. - * - * @param type - * @param mapping - * @return - */ - private ActionForward findForward(short type, ActionMapping mapping) { - ActionForward forward; - switch (type) { - case AssessmentConstants.QUESTION_TYPE_MULTIPLE_CHOICE: - forward = mapping.findForward("file"); - break; - case AssessmentConstants.QUESTION_TYPE_MATCHING_PAIRS: - forward = mapping.findForward("website"); - break; - default: - forward = null; - break; - } - return forward; - } - private AssessmentUser getCurrentUser(IAssessmentService service, Long sessionId) { // try to get form system session HttpSession ss = SessionManager.getSession(); Index: lams_tool_assessment/web/pages/learning/learning.jsp =================================================================== diff -u -rb97c9857551b67fbe95d700328a8316c7ba42bf5 -r98ccad973dd8280fbae78c301f824877b2564c44 --- lams_tool_assessment/web/pages/learning/learning.jsp (.../learning.jsp) (revision b97c9857551b67fbe95d700328a8316c7ba42bf5) +++ lams_tool_assessment/web/pages/learning/learning.jsp (.../learning.jsp) (revision 98ccad973dd8280fbae78c301f824877b2564c44) @@ -19,6 +19,7 @@ +