Index: lams_central/src/java/org/lamsfoundation/lams/gradebook/service/GradeBookService.java =================================================================== diff -u -r02df1b4f76fac80d72ff5583feddace3897844d9 -r741b4aeae881d6df027beb62bb672402eb45afd3 --- lams_central/src/java/org/lamsfoundation/lams/gradebook/service/GradeBookService.java (.../GradeBookService.java) (revision 02df1b4f76fac80d72ff5583feddace3897844d9) +++ lams_central/src/java/org/lamsfoundation/lams/gradebook/service/GradeBookService.java (.../GradeBookService.java) (revision 741b4aeae881d6df027beb62bb672402eb45afd3) @@ -106,19 +106,21 @@ Activity firstActivity = monitoringService.getActivityById(lesson.getLearningDesign().getFirstActivity() .getActivityId()); - if (firstActivity.isToolActivity() && firstActivity instanceof ToolActivity) { + if (firstActivity != null && firstActivity.isToolActivity() && firstActivity instanceof ToolActivity) { - GBActivityGridRowDTO activityDTO = getGradeBookActivityDTO(firstActivity, learner, learnerProgress); + GBActivityGridRowDTO activityDTO = getGradeBookActivityDTO((ToolActivity) firstActivity, learner, + learnerProgress); gradeBookActivityDTOs.add(activityDTO); } SortedSet sortedActivities = new TreeSet(activities); for (Activity activity : sortedActivities) { - if (activity.getActivityId().longValue() != firstActivity.getActivityId().longValue()) { + if (activity.getActivityId().longValue() != firstActivity.getActivityId().longValue() + && activity instanceof ToolActivity) { - - GBActivityGridRowDTO activityDTO = getGradeBookActivityDTO(activity, learner, learnerProgress); + GBActivityGridRowDTO activityDTO = getGradeBookActivityDTO((ToolActivity) activity, learner, + learnerProgress); gradeBookActivityDTOs.add(activityDTO); } } @@ -130,7 +132,7 @@ * org.lamsfoundation.lams.learningdesign.Activity) */ @SuppressWarnings("unchecked") - public List getGBUserRowsForActivity(Lesson lesson, Activity activity) { + public List getGBUserRowsForActivity(Lesson lesson, ToolActivity activity) { List gradeBookUserDTOs = new ArrayList(); @@ -150,22 +152,17 @@ .getLessonId()); gUserDTO.setStatus(getActivityStatusStr(learnerProgress, activity)); gUserDTO.setTimeTaken(getActivityDuration(learnerProgress, activity)); - - // Set the outputs and activity url, if there is one - if (activity.isToolActivity() && activity instanceof ToolActivity) { - ToolActivity toolAct = (ToolActivity) activity; - // Get the tool outputs for this user if there are any - ToolSession toolSession = toolService.getToolSessionByLearner(learner, toolAct); - if (toolSession != null) { - // Set the activityLearner URL for this gradebook activity - gUserDTO.setActivityUrl(Configuration.get(ConfigurationKeys.SERVER_URL) - + toolAct.getTool().getLearnerProgressUrl() + "&userID=" + learner.getUserId() - + "&toolSessionID=" + toolSession.getToolSessionId().toString()); + // Get the tool outputs for this user if there are any + ToolSession toolSession = toolService.getToolSessionByLearner(learner, activity); + if (toolSession != null) { + // Set the activityLearner URL for this gradebook activity + gUserDTO.setActivityUrl(Configuration.get(ConfigurationKeys.SERVER_URL) + + activity.getTool().getLearnerProgressUrl() + "&userID=" + learner.getUserId() + + "&toolSessionID=" + toolSession.getToolSessionId().toString()); - gUserDTO.setOutput(this.getToolOutputsStr(toolAct, toolSession, learner)); + gUserDTO.setOutput(this.getToolOutputsStr(activity, toolSession, learner)); - } } // Add marks and feedback @@ -486,7 +483,7 @@ * @param learnerProgress * @return */ - private GBActivityGridRowDTO getGradeBookActivityDTO(Activity activity, User learner, + private GBActivityGridRowDTO getGradeBookActivityDTO(ToolActivity activity, User learner, LearnerProgress learnerProgress) { logger.debug("Getting gradebook data for activity: " + activity.getActivityId() + ". For user: " @@ -507,39 +504,35 @@ gactivityDTO.setTimeTaken(getActivityDuration(learnerProgress, activity)); gactivityDTO.setStatus(getActivityStatusStr(learnerProgress, activity)); - if (activity.isToolActivity() && activity instanceof ToolActivity) { - ToolActivity toolAct = (ToolActivity) activity; + // Get the competences for this activity + Set competenceMappings = activity.getCompetenceMappings(); + String competenceMappingsStr = ""; + if (competenceMappings != null) { + for (CompetenceMapping mapping : competenceMappings) { + competenceMappingsStr += mapping.getCompetence().getTitle() + ", "; + } - // Get the competences for this activity - Set competenceMappings = toolAct.getCompetenceMappings(); - String competenceMappingsStr = ""; - if (competenceMappings != null) { - for (CompetenceMapping mapping : competenceMappings) { - competenceMappingsStr += mapping.getCompetence().getTitle() + ", "; - } - - // trim the last comma off - if (competenceMappingsStr.length() > 0) { - competenceMappingsStr = competenceMappingsStr.substring(0, competenceMappingsStr.lastIndexOf(",")); - } + // trim the last comma off + if (competenceMappingsStr.length() > 0) { + competenceMappingsStr = competenceMappingsStr.substring(0, competenceMappingsStr.lastIndexOf(",")); } - gactivityDTO.setCompetences(competenceMappingsStr); + } + gactivityDTO.setCompetences(competenceMappingsStr); - // Get the tool outputs for this user if there are any - ToolSession toolSession = toolService.getToolSessionByLearner(learner, toolAct); - if (toolSession != null) { - // Set the activityLearner URL for this gradebook activity - gactivityDTO.setActivityUrl(Configuration.get(ConfigurationKeys.SERVER_URL) - + toolAct.getTool().getLearnerProgressUrl() + "&userID=" + learner.getUserId() - + "&toolSessionID=" + toolSession.getToolSessionId().toString()); + // Get the tool outputs for this user if there are any + ToolSession toolSession = toolService.getToolSessionByLearner(learner, activity); + if (toolSession != null) { + // Set the activityLearner URL for this gradebook activity + gactivityDTO.setActivityUrl(Configuration.get(ConfigurationKeys.SERVER_URL) + + activity.getTool().getLearnerProgressUrl() + "&userID=" + learner.getUserId() + "&toolSessionID=" + + toolSession.getToolSessionId().toString()); - gactivityDTO.setOutput(this.getToolOutputsStr(toolAct, toolSession, learner)); - } + gactivityDTO.setOutput(this.getToolOutputsStr(activity, toolSession, learner)); } return gactivityDTO; } - + private Long getActivityDuration(LearnerProgress learnerProgress, Activity activity) { if (learnerProgress != null) { if (learnerProgress.getCompletedActivities().get(activity) != null) { Index: lams_central/src/java/org/lamsfoundation/lams/gradebook/service/IGradeBookService.java =================================================================== diff -u -r662af4c9490c6c67127cda6c29d7d806a9e9eaca -r741b4aeae881d6df027beb62bb672402eb45afd3 --- lams_central/src/java/org/lamsfoundation/lams/gradebook/service/IGradeBookService.java (.../IGradeBookService.java) (revision 662af4c9490c6c67127cda6c29d7d806a9e9eaca) +++ lams_central/src/java/org/lamsfoundation/lams/gradebook/service/IGradeBookService.java (.../IGradeBookService.java) (revision 741b4aeae881d6df027beb62bb672402eb45afd3) @@ -29,6 +29,7 @@ import org.lamsfoundation.lams.gradebook.dto.GBUserGridRowDTO; import org.lamsfoundation.lams.gradebook.dto.GradeBookGridRowDTO; import org.lamsfoundation.lams.learningdesign.Activity; +import org.lamsfoundation.lams.learningdesign.ToolActivity; import org.lamsfoundation.lams.lesson.Lesson; import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.User; @@ -64,7 +65,7 @@ * @param activity * @return */ - public List getGBUserRowsForActivity(Lesson lesson, Activity activity); + public List getGBUserRowsForActivity(Lesson lesson, ToolActivity activity); /** * Gets the user rows and the user's entire lesson mark for all users Index: lams_central/src/java/org/lamsfoundation/lams/gradebook/web/action/GradeBookAction.java =================================================================== diff -u -r2ae6299d000baa190344632f261958349730b440 -r741b4aeae881d6df027beb62bb672402eb45afd3 --- lams_central/src/java/org/lamsfoundation/lams/gradebook/web/action/GradeBookAction.java (.../GradeBookAction.java) (revision 2ae6299d000baa190344632f261958349730b440) +++ lams_central/src/java/org/lamsfoundation/lams/gradebook/web/action/GradeBookAction.java (.../GradeBookAction.java) (revision 741b4aeae881d6df027beb62bb672402eb45afd3) @@ -25,7 +25,6 @@ import java.io.PrintWriter; import java.util.ArrayList; -import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.Set; @@ -41,13 +40,11 @@ import org.lamsfoundation.lams.gradebook.dto.GBLessonGridRowDTO; import org.lamsfoundation.lams.gradebook.dto.GBUserGridRowDTO; import org.lamsfoundation.lams.gradebook.dto.GradeBookGridRowDTO; -import org.lamsfoundation.lams.gradebook.dto.comparators.GBIDComparator; -import org.lamsfoundation.lams.gradebook.dto.comparators.GBMarkComparator; -import org.lamsfoundation.lams.gradebook.dto.comparators.GBRowNameComparator; import org.lamsfoundation.lams.gradebook.service.IGradeBookService; import org.lamsfoundation.lams.gradebook.util.GradeBookConstants; import org.lamsfoundation.lams.gradebook.util.GradeBookUtil; import org.lamsfoundation.lams.learningdesign.Activity; +import org.lamsfoundation.lams.learningdesign.ToolActivity; import org.lamsfoundation.lams.lesson.Lesson; import org.lamsfoundation.lams.lesson.service.ILessonService; import org.lamsfoundation.lams.monitoring.service.IMonitoringService; @@ -147,28 +144,6 @@ gradeBookActivityDTOs = gradeBookService.getGBActivityRowsForLesson(lesson); } - // // Work out the sublist to fetch based on rowlimit and current page. - // int totalPages = 1; - // if (rowLimit < gradeBookActivityDTOs.size()) { - // - // totalPages = new Double(Math.ceil(new Integer(gradeBookActivityDTOs.size()).doubleValue() - // / new Integer(rowLimit).doubleValue())).intValue(); - // int firstRow = (page - 1) * rowLimit; - // int lastRow = firstRow + rowLimit; - // - // if (lastRow > gradeBookActivityDTOs.size()) { - // gradeBookActivityDTOs = gradeBookActivityDTOs.subList(firstRow, gradeBookActivityDTOs.size()); - // } else { - // gradeBookActivityDTOs = gradeBookActivityDTOs.subList(firstRow, lastRow); - // } - // - // } - - // String ret = GradeBookUtil.toGridXML(gradeBookActivityDTOs, page, totalPages, method); - - // public static String toGridXML(List gridRows, String view, String sortBy, boolean isSearch, String searchField, - // String searchOper, String searchString, String sortOrder, int rowLimit, int page) - if (sortBy == null) { sortBy = "id"; } @@ -238,59 +213,15 @@ Long activityID = WebUtil.readLongParam(request, AttributeNames.PARAM_ACTIVITY_ID); Activity activity = monitoringService.getActivityById(activityID); - if (activity != null) { - gradeBookUserDTOs = gradeBookService.getGBUserRowsForActivity(lesson, activity); + if (activity != null && activity instanceof ToolActivity) { + gradeBookUserDTOs = gradeBookService.getGBUserRowsForActivity(lesson, (ToolActivity)activity); } else { // return null and the grid will report an error logger.error("No activity found for: " + activityID); return null; } } - - // // Sort the list appropriately - // if (sortBy != null) { - // if (sortBy.equals("rowName")) { - // Collections.sort(gradeBookUserDTOs, new GBRowNameComparator()); - // } else if (sortBy.equals("mark")) { - // Collections.sort(gradeBookUserDTOs, new GBMarkComparator()); - // } else { - // Collections.sort(gradeBookUserDTOs, new GBRowNameComparator()); - // } - // } else { - // Collections.sort(gradeBookUserDTOs, new GBRowNameComparator()); - // } - // - // // if it is a search fix up the set - // if (isSearch) { - // String searchField = WebUtil.readStrParam(request, "searchField"); - // String searchOper = WebUtil.readStrParam(request, "searchOper"); - // String searchString = WebUtil.readStrParam(request, "searchString"); - // gradeBookUserDTOs = (List)doRowNameSearch(gradeBookUserDTOs, searchField, searchOper, searchString.toLowerCase()); - // } - // - // // Reverse the order if requested - // if (sortOrder != null && sortOrder.equals("desc")) { - // Collections.reverse(gradeBookUserDTOs); - // } - // - // // Work out the sublist to fetch based on rowlimit and current page. - // int totalPages = 1; - // if (rowLimit < gradeBookUserDTOs.size()) { - // - // totalPages = new Double(Math.ceil(new Integer(gradeBookUserDTOs.size()).doubleValue() - // / new Integer(rowLimit).doubleValue())).intValue(); - // int firstRow = (page - 1) * rowLimit; - // int lastRow = firstRow + rowLimit; - // - // if (lastRow > gradeBookUserDTOs.size()) { - // gradeBookUserDTOs = gradeBookUserDTOs.subList(firstRow, gradeBookUserDTOs.size()); - // } else { - // gradeBookUserDTOs = gradeBookUserDTOs.subList(firstRow, lastRow); - // } - // - // } - - //String ret = GradeBookUtil.toGridXML(gradeBookUserDTOs, page, totalPages, method); + String ret = GradeBookUtil.toGridXML(gradeBookUserDTOs, view, sortBy, isSearch, searchField, searchOper, searchString, sortOrder, rowLimit, page); @@ -351,51 +282,6 @@ gradeBookLessonDTOs = gradeBookService.getGBLessonRows(organisation, user); - // // if it is a search fix up the set - // if (isSearch) { - // String searchField = WebUtil.readStrParam(request, "searchField"); - // String searchOper = WebUtil.readStrParam(request, "searchOper"); - // String searchString = WebUtil.readStrParam(request, "searchString"); - // gradeBookLessonDTOs = (List)doRowNameSearch(gradeBookLessonDTOs, searchField, searchOper, searchString - // .toLowerCase()); - // } - // - // // Sort the list appropriately - // if (sortBy != null) { - // if (sortBy.equals("lessonName")) { - // Collections.sort(gradeBookLessonDTOs, new GBRowNameComparator()); - // } else if (sortBy.equals("mark")) { - // Collections.sort(gradeBookLessonDTOs, new GBMarkComparator()); - // } else { - // Collections.sort(gradeBookLessonDTOs, new GBIDComparator()); - // } - // } else { - // Collections.sort(gradeBookLessonDTOs, new GBIDComparator()); - // } - // - // // Reverse the order if requested - // if (sortOrder != null && sortOrder.equals("desc")) { - // Collections.reverse(gradeBookLessonDTOs); - // } - // - // // Work out the sublist to fetch based on rowlimit and current page. - // int totalPages = 1; - // if (rowLimit < gradeBookLessonDTOs.size()) { - // - // totalPages = new Double(Math.ceil(new Integer(gradeBookLessonDTOs.size()).doubleValue() - // / new Integer(rowLimit).doubleValue())).intValue(); - // - // int firstRow = (page - 1) * rowLimit; - // int lastRow = firstRow + rowLimit; - // - // if (lastRow > gradeBookLessonDTOs.size()) { - // gradeBookLessonDTOs = gradeBookLessonDTOs.subList(firstRow, gradeBookLessonDTOs.size()); - // } else { - // gradeBookLessonDTOs = gradeBookLessonDTOs.subList(firstRow, lastRow); - // } - // - // } - if (sortBy == null) { sortBy = "id"; }