Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java =================================================================== diff -u -rf68ce97be6f4787ec46e1c036906f5c7a14dd445 -r8b05244abcc5ccff96d377a8ac5ddf7fd50f2dae --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java (.../GradebookService.java) (revision f68ce97be6f4787ec46e1c036906f5c7a14dd445) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java (.../GradebookService.java) (revision 8b05244abcc5ccff96d377a8ac5ddf7fd50f2dae) @@ -115,6 +115,7 @@ private MessageService messageService; private IAuditService auditService; + @Override @SuppressWarnings("unchecked") public List getGBActivityRowsForLearner(Lesson lesson, User learner) { @@ -138,7 +139,7 @@ GBActivityGridRowDTO activityDTO = new GBActivityGridRowDTO(activity, groupName, groupId); // Set the possible marks if applicable - activityDTO.setMarksAvailable(this.getTotalMarksAvailable(activity)); + activityDTO.setMarksAvailable(toolService.getActivityMaxPossibleMark(activity)); GradebookUserActivity gradebookActivity = gradebookDAO.getGradebookUserDataForActivity( activity.getActivityId(), learner.getUserId()); @@ -178,6 +179,7 @@ return gradebookActivityDTOs; } + @Override @SuppressWarnings("unchecked") public List getGBActivityRowsForLesson(Lesson lesson) { @@ -210,6 +212,7 @@ return gradebookActivityDTOs; } + @Override @SuppressWarnings("unchecked") public List getGBUserRowsForActivity(Lesson lesson, ToolActivity activity, Long groupId) { @@ -230,12 +233,12 @@ if (learners != null) { Map userToLearnerProgressMap = getUserToLearnerProgressMap(lesson); Map userToGradebookUserLessonMap = getUserToGradebookUserActivityMap(activity); - Long totalMarksAvailable = getTotalMarksAvailable(activity); + Long maxPossibleMark = toolService.getActivityMaxPossibleMark(activity); for (User learner : learners) { GBUserGridRowDTO gUserDTO = new GBUserGridRowDTO(learner); - gUserDTO.setMarksAvailable(totalMarksAvailable); + gUserDTO.setMarksAvailable(maxPossibleMark); // Set the progress LearnerProgress learnerProgress = userToLearnerProgressMap.get(learner.getUserId()); @@ -272,6 +275,7 @@ return gradebookUserDTOs; } + @Override @SuppressWarnings("unchecked") public ArrayList getGBUserRowsForLesson(Lesson lesson) { @@ -320,6 +324,7 @@ return gradebookUserDTOs; } + @Override public ArrayList getGBUserRowsForOrganisation(Organisation organisation) { ArrayList gradebookUserDTOs = new ArrayList(); @@ -341,14 +346,22 @@ } + @Override public GradebookUserLesson getGradebookUserLesson(Long lessonID, Integer userID) { return gradebookDAO.getGradebookUserDataForLesson(lessonID, userID); } + + @Override + public List getGradebookUserLesson(Long lessonID) { + return gradebookDAO.getGradebookUserDataForLesson(lessonID); + } + @Override public GradebookUserActivity getGradebookUserActivity(Long activityID, Integer userID) { return gradebookDAO.getGradebookUserDataForActivity(activityID, userID); } + @Override public Double getAverageMarkForActivity(Long activityID, Long groupID) { // return AverageMarkForActivity if groupId is null and AverageMarkForGroupedActivity if groupId is specified Double averageMark; @@ -360,10 +373,12 @@ return averageMark; } + @Override public Double getAverageMarkForLesson(Long lessonID) { return gradebookDAO.getAverageMarkForLesson(lessonID); } + @Override public void updateUserLessonGradebookMark(Lesson lesson, User learner, Double mark) { if (lesson != null && learner != null) { GradebookUserLesson gradebookUserLesson = gradebookDAO.getGradebookUserDataForLesson(lesson.getLessonId(), @@ -386,6 +401,7 @@ } } + @Override public void updateUserActivityGradebookMark(Lesson lesson, User learner, Activity activity, Double mark, Boolean markedInGradebook, boolean isAuditLogRequired) { if (lesson != null && activity != null && learner != null && activity.isToolActivity()) { @@ -429,6 +445,7 @@ } } + @Override public void updateUserLessonGradebookFeedback(Lesson lesson, User learner, String feedback) { GradebookUserLesson gradebookUserLesson = gradebookDAO.getGradebookUserDataForLesson(lesson.getLessonId(), @@ -442,6 +459,7 @@ gradebookDAO.insertOrUpdate(gradebookUserLesson); } + @Override public void updateUserActivityGradebookFeedback(Activity activity, User learner, String feedback) { GradebookUserActivity gradebookUserActivity = gradebookDAO.getGradebookUserDataForActivity( @@ -472,6 +490,7 @@ auditService.log(monitor, GradebookConstants.MODULE_NAME, message); } + @Override @SuppressWarnings("unchecked") public List getGBLessonRows(Organisation organisation, User user, User viewer, GBGridView view) { List lessonRows = new ArrayList(); @@ -627,6 +646,7 @@ return activityToUserDTOMap; } + @Override @SuppressWarnings("unchecked") public LinkedHashMap exportLessonGradebook(Lesson lesson) { @@ -817,6 +837,7 @@ return dataToExport; } + @Override @SuppressWarnings("unchecked") public LinkedHashMap exportCourseGradebook(Integer userId, Integer organisationId) { LinkedHashMap dataToExport = new LinkedHashMap(); @@ -1085,6 +1106,7 @@ return dataToExport; } + @Override public void updateActivityMark(Double mark, String feedback, Integer userID, Long toolSessionID, Boolean markedInGradebook) { ToolSession toolSession = toolService.getToolSessionById(toolSessionID); @@ -1102,6 +1124,7 @@ } } + @Override public Activity getActivityById(Long activityID) { return activityDAO.getActivityByActivityId(activityID); } @@ -1264,7 +1287,7 @@ } // Set the possible marks if applicable - activityDTO.setMarksAvailable(this.getTotalMarksAvailable(activity)); + activityDTO.setMarksAvailable(toolService.getActivityMaxPossibleMark(activity)); String monitorUrl = Configuration.get(ConfigurationKeys.SERVER_URL) + activity.getTool().getMonitorUrl() + "?" + AttributeNames.PARAM_CONTENT_FOLDER_ID + "=" + lesson.getLearningDesign().getContentFolderID() + "&" @@ -1427,48 +1450,6 @@ } /** - * Gets the - * - * @param activity - * @return - */ - private Long getTotalMarksAvailable(ToolActivity activity) { - SortedMap map = toolService.getOutputDefinitionsFromTool( - activity.getToolContentId(), ToolOutputDefinition.DATA_OUTPUT_DEFINITION_TYPE_CONDITION); - - Set actEvals = activity.getActivityEvaluations(); - - if (map != null) { - for (String key : map.keySet()) { - ToolOutputDefinition definition = map.get(key); - if (actEvals != null && actEvals.size() > 0) { - - // get first evaluation - ActivityEvaluation actEval = actEvals.iterator().next(); - - if (actEval.getToolOutputDefinition().equals(key)) { - - Object upperLimit = definition.getEndValue(); - if (upperLimit != null && upperLimit instanceof Long) { - return (Long) upperLimit; - } - break; - } - } else { - if (definition.isDefaultGradebookMark() != null && definition.isDefaultGradebookMark()) { - Object upperLimit = definition.getEndValue(); - if (upperLimit != null && upperLimit instanceof Long) { - return (Long) upperLimit; - } - break; - } - } - } - } - return null; - } - - /** * Returns map containing (userId -> LearnerProgressMap) pairs. It serves merely for optimizing amount of db * queries. */ @@ -1520,7 +1501,7 @@ Map map = new HashMap(); for (ToolActivity activity : activities) { - map.put(activity.getActivityId(), getTotalMarksAvailable(activity)); + map.put(activity.getActivityId(), toolService.getActivityMaxPossibleMark(activity)); } return map; @@ -1593,11 +1574,12 @@ return new HashMap(); } + @Override public String getMessage(String key) { return messageService.getMessage(key); } - public String getMessage(String key, Object[] args) { + private String getMessage(String key, Object[] args) { return messageService.getMessage(key, args); } Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/IGradebookService.java =================================================================== diff -u -r3e36623a35a8f471dcf3a6b0de9eca8006a881e1 -r8b05244abcc5ccff96d377a8ac5ddf7fd50f2dae --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/IGradebookService.java (.../IGradebookService.java) (revision 3e36623a35a8f471dcf3a6b0de9eca8006a881e1) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/IGradebookService.java (.../IGradebookService.java) (revision 8b05244abcc5ccff96d377a8ac5ddf7fd50f2dae) @@ -157,6 +157,14 @@ GradebookUserLesson getGradebookUserLesson(Long lessonID, Integer userID); /** + * Gets a gradebook lesson mark/feedback for all users in a given lesson + * + * @param lessonID + * @return + */ + List getGradebookUserLesson(Long lessonID); + + /** * Gets a gradebook activity mark/feedback for a given activity and user * * @param activityID