Index: lams_central/src/java/org/lamsfoundation/lams/gradebook/service/GradeBookService.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/gradebook/service/Attic/GradeBookService.java,v diff -u -r1.16 -r1.17 --- lams_central/src/java/org/lamsfoundation/lams/gradebook/service/GradeBookService.java 3 Apr 2009 06:08:06 -0000 1.16 +++ lams_central/src/java/org/lamsfoundation/lams/gradebook/service/GradeBookService.java 6 Apr 2009 06:14:03 -0000 1.17 @@ -368,10 +368,10 @@ lessonRow.setStartDate(getLocaleDateString(user, lesson.getStartDateTime())); // Setting the timeTaken value as the average for the lesson, as this is not a specific user view - lessonRow.setTimeTaken(gradeBookDAO.getAverageDurationLesson(lesson.getLessonId())); + lessonRow.setAverageTimeTaken(gradeBookDAO.getAverageDurationLesson(lesson.getLessonId())); lessonRow.setLessonDescription(lesson.getLessonDescription()); - lessonRow.setMark(gradeBookDAO.getAverageMarkForLesson(lesson.getLessonId())); + lessonRow.setAverageMark(gradeBookDAO.getAverageMarkForLesson(lesson.getLessonId())); String gbMonURL = Configuration.get(ConfigurationKeys.SERVER_URL) + "gradebook/gradebookMonitoring.do?lessonID=" + lesson.getLessonId().toString(); @@ -427,7 +427,7 @@ gactivityDTO.setRowName(activity.getTitle()); // setting the average time - gactivityDTO.setTimeTaken(gradeBookDAO.getAverageDurationForActivity(activity.getActivityId())); + gactivityDTO.setAverageTimeTaken(gradeBookDAO.getAverageDurationForActivity(activity.getActivityId())); String monitorUrl = Configuration.get(ConfigurationKeys.SERVER_URL) + activity.getTool().getMonitorUrl() + "?" + AttributeNames.PARAM_CONTENT_FOLDER_ID + "=" + lesson.getLearningDesign().getContentFolderID() + "&" @@ -463,9 +463,9 @@ } } - // Settting the mark as an average for the class as this is not a specific user view + // Setting the mark as an average for the class as this is not a specific user view if (count != 0) { - gactivityDTO.setMark(sum / count); + gactivityDTO.setAverageMark(sum / count); } } Index: lams_central/src/java/org/lamsfoundation/lams/gradebook/util/GradeBookConstants.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/gradebook/util/Attic/GradeBookConstants.java,v diff -u -r1.2 -r1.3 --- lams_central/src/java/org/lamsfoundation/lams/gradebook/util/GradeBookConstants.java 6 Apr 2009 05:32:45 -0000 1.2 +++ lams_central/src/java/org/lamsfoundation/lams/gradebook/util/GradeBookConstants.java 6 Apr 2009 06:14:03 -0000 1.3 @@ -49,6 +49,8 @@ public static final String PARAM_SEARCH_STRING = "searchString"; public static final String PARAM_ROW_NAME = "rowName"; public static final String PARAM_TIME_TAKEN = "timeTaken"; + public static final String PARAM_AVG_TIME_TAKEN = "avgTimeTaken"; + public static final String PARAM_AVG_MARK = "avgMark"; // Sort public static final String SORT_DESC = "desc"; Index: lams_central/src/java/org/lamsfoundation/lams/gradebook/util/GradeBookUtil.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/gradebook/util/Attic/GradeBookUtil.java,v diff -u -r1.6 -r1.7 --- lams_central/src/java/org/lamsfoundation/lams/gradebook/util/GradeBookUtil.java 6 Apr 2009 05:32:45 -0000 1.6 +++ lams_central/src/java/org/lamsfoundation/lams/gradebook/util/GradeBookUtil.java 6 Apr 2009 06:14:03 -0000 1.7 @@ -39,6 +39,8 @@ import javax.xml.transform.stream.StreamResult; import org.lamsfoundation.lams.gradebook.dto.GradeBookGridRowDTO; +import org.lamsfoundation.lams.gradebook.dto.comparators.GBAverageMarkComparator; +import org.lamsfoundation.lams.gradebook.dto.comparators.GBAverageTimeTakenComparator; import org.lamsfoundation.lams.gradebook.dto.comparators.GBIDComparator; import org.lamsfoundation.lams.gradebook.dto.comparators.GBMarkComparator; import org.lamsfoundation.lams.gradebook.dto.comparators.GBRowNameComparator; @@ -204,6 +206,10 @@ Collections.sort(gridRows, new GBIDComparator()); } else if (sortBy.equals(GradeBookConstants.PARAM_TIME_TAKEN)) { Collections.sort(gridRows, new GBTimeTakenComparator()); + } else if (sortBy.equals(GradeBookConstants.PARAM_AVG_TIME_TAKEN)) { + Collections.sort(gridRows, new GBAverageTimeTakenComparator()); + } else if (sortBy.equals(GradeBookConstants.PARAM_AVG_MARK)) { + Collections.sort(gridRows, new GBAverageMarkComparator()); } else { Collections.sort(gridRows, new GBRowNameComparator()); } Index: lams_central/src/java/org/lamsfoundation/lams/gradebook/web/action/GradeBookAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/gradebook/web/action/Attic/GradeBookAction.java,v diff -u -r1.13 -r1.14 --- lams_central/src/java/org/lamsfoundation/lams/gradebook/web/action/GradeBookAction.java 6 Apr 2009 05:32:45 -0000 1.13 +++ lams_central/src/java/org/lamsfoundation/lams/gradebook/web/action/GradeBookAction.java 6 Apr 2009 06:14:03 -0000 1.14 @@ -66,7 +66,7 @@ * * * @struts.action path="/gradebook/gradebook" parameter="dispatch" - * scope="request" name="gradeBookForm" validate="false" + * scope="request" validate="false" * * @struts:action-forward name="error" path=".error" * @struts:action-forward name="message" path=".message" Index: lams_central/src/java/org/lamsfoundation/lams/gradebook/web/action/GradeBookMonitoringAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/gradebook/web/action/Attic/GradeBookMonitoringAction.java,v diff -u -r1.11 -r1.12 --- lams_central/src/java/org/lamsfoundation/lams/gradebook/web/action/GradeBookMonitoringAction.java 6 Apr 2009 05:32:44 -0000 1.11 +++ lams_central/src/java/org/lamsfoundation/lams/gradebook/web/action/GradeBookMonitoringAction.java 6 Apr 2009 06:14:03 -0000 1.12 @@ -53,7 +53,7 @@ /** * @author lfoxton * - * Handles the monitor interface for gradebook + * Handles the monitor interfaces for gradebook * * This is where marking for an activity/lesson takes place * Index: lams_common/src/java/org/lamsfoundation/lams/gradebook/dto/GBActivityGridRowDTO.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/gradebook/dto/Attic/GBActivityGridRowDTO.java,v diff -u -r1.8 -r1.9 --- lams_common/src/java/org/lamsfoundation/lams/gradebook/dto/GBActivityGridRowDTO.java 3 Apr 2009 06:08:06 -0000 1.8 +++ lams_common/src/java/org/lamsfoundation/lams/gradebook/dto/GBActivityGridRowDTO.java 6 Apr 2009 06:14:02 -0000 1.9 @@ -84,16 +84,16 @@ ret.add(rowName); } - if (timeTaken != null) { - ret.add(convertTimeToString(timeTaken)); + if (averageTimeTaken != null) { + ret.add(convertTimeToString(averageTimeTaken)); } else { ret.add("-"); } ret.add(competences); - if (mark != null) { - ret.add(mark.toString()); + if (averageMark != null) { + ret.add(averageMark.toString()); } else { ret.add("-"); } Index: lams_common/src/java/org/lamsfoundation/lams/gradebook/dto/GBLessonGridRowDTO.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/gradebook/dto/Attic/GBLessonGridRowDTO.java,v diff -u -r1.4 -r1.5 --- lams_common/src/java/org/lamsfoundation/lams/gradebook/dto/GBLessonGridRowDTO.java 2 Apr 2009 02:27:56 -0000 1.4 +++ lams_common/src/java/org/lamsfoundation/lams/gradebook/dto/GBLessonGridRowDTO.java 6 Apr 2009 06:14:02 -0000 1.5 @@ -60,15 +60,15 @@ ret.add(subGroup); ret.add(startDate); - if (timeTaken != null) { - ret.add(convertTimeToString(timeTaken)); + if (averageTimeTaken != null) { + ret.add(convertTimeToString(averageTimeTaken)); } else { ret.add("-"); } ret.add(lessonDescription); - if (mark != null) { - ret.add(mark.toString()); + if (averageMark != null) { + ret.add(averageMark.toString()); } else { ret.add("-"); } Index: lams_common/src/java/org/lamsfoundation/lams/gradebook/dto/GradeBookGridRowDTO.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/gradebook/dto/Attic/GradeBookGridRowDTO.java,v diff -u -r1.4 -r1.5 --- lams_common/src/java/org/lamsfoundation/lams/gradebook/dto/GradeBookGridRowDTO.java 2 Apr 2009 02:27:56 -0000 1.4 +++ lams_common/src/java/org/lamsfoundation/lams/gradebook/dto/GradeBookGridRowDTO.java 6 Apr 2009 06:14:02 -0000 1.5 @@ -37,11 +37,16 @@ public String rowName; // A unit of time in milliseconds that determines the time taken for the corressponding task - // Be it a lesson or an activity public Long timeTaken; + // Another unit of time that represents average time taken for a corresponding task + public Long averageTimeTaken; + // The mark for the corresponding gradebook grid row task public Double mark; + + // Average mark for the corresponding task + public Double averageMark; /** * A shared function to convert milliseconds into a readable string @@ -103,5 +108,23 @@ public void setRowName(String rowName) { this.rowName = rowName; } + + public Long getAverageTimeTaken() { + return averageTimeTaken; + } + + public void setAverageTimeTaken(Long averageTimeTaken) { + this.averageTimeTaken = averageTimeTaken; + } + + public Double getAverageMark() { + return averageMark; + } + + public void setAverageMark(Double averageMark) { + this.averageMark = averageMark; + } + + } \ No newline at end of file Index: lams_common/src/java/org/lamsfoundation/lams/gradebook/dto/comparators/GBAverageMarkComparator.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/gradebook/dto/comparators/Attic/GBAverageMarkComparator.java,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lams_common/src/java/org/lamsfoundation/lams/gradebook/dto/comparators/GBAverageMarkComparator.java 6 Apr 2009 06:14:02 -0000 1.1 @@ -0,0 +1,47 @@ +/**************************************************************** + * Copyright (C) 2008 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id: GBAverageMarkComparator.java,v 1.1 2009/04/06 06:14:02 lfoxton Exp $ */ +package org.lamsfoundation.lams.gradebook.dto.comparators; + +import java.util.Comparator; + +import org.lamsfoundation.lams.gradebook.dto.GradeBookGridRowDTO; + +@SuppressWarnings("unchecked") +public class GBAverageMarkComparator implements Comparator { + + public int compare(Object gradeBookGridRow, Object anotherGradeBookGridRow) { + + if (gradeBookGridRow instanceof GradeBookGridRowDTO && anotherGradeBookGridRow instanceof GradeBookGridRowDTO) { + + Double mark1 = ((GradeBookGridRowDTO) gradeBookGridRow).getAverageMark(); + Double mark2 = ((GradeBookGridRowDTO) anotherGradeBookGridRow).getAverageMark(); + + mark1 = (mark1 == null) ? 0.0 : mark1; + mark2 = (mark2 == null) ? 0.0 : mark2; + return new Double(mark1 - mark2).intValue(); + } else { + return 0; + } + } +} Index: lams_common/src/java/org/lamsfoundation/lams/gradebook/dto/comparators/GBAverageTimeTakenComparator.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/gradebook/dto/comparators/Attic/GBAverageTimeTakenComparator.java,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lams_common/src/java/org/lamsfoundation/lams/gradebook/dto/comparators/GBAverageTimeTakenComparator.java 6 Apr 2009 06:14:02 -0000 1.1 @@ -0,0 +1,47 @@ +/**************************************************************** + * Copyright (C) 2008 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id: GBAverageTimeTakenComparator.java,v 1.1 2009/04/06 06:14:02 lfoxton Exp $ */ +package org.lamsfoundation.lams.gradebook.dto.comparators; + +import java.util.Comparator; + +import org.lamsfoundation.lams.gradebook.dto.GradeBookGridRowDTO; + +@SuppressWarnings("unchecked") +public class GBAverageTimeTakenComparator implements Comparator{ + public int compare(Object gradeBookGridRow, Object anotherGradeBookGridRow) { + + if (gradeBookGridRow instanceof GradeBookGridRowDTO && anotherGradeBookGridRow instanceof GradeBookGridRowDTO) { + + Long timeTaken1 = ((GradeBookGridRowDTO) gradeBookGridRow).getAverageTimeTaken(); + Long timeTaken2 = ((GradeBookGridRowDTO) anotherGradeBookGridRow).getAverageTimeTaken(); + + timeTaken1 = (timeTaken1 == null) ? 0 : timeTaken1; + timeTaken2 = (timeTaken2 == null) ? 0 : timeTaken2; + return new Double(timeTaken1 - timeTaken2).intValue(); + } else { + return 0; + } + } +} + \ No newline at end of file