Index: lams_build/lib/lams/lams.jar =================================================================== diff -u -r509cebe97fca335b7d517abc7e8d9af03d6eab2e -r506e82d55455419723f11c0a8f99270b39f04055 Binary files differ Index: lams_common/src/java/org/lamsfoundation/lams/gradebook/dao/IGradebookDAO.java =================================================================== diff -u -r51fb2a37254f24bb2a805d4ffd54482c779f43fa -r506e82d55455419723f11c0a8f99270b39f04055 --- lams_common/src/java/org/lamsfoundation/lams/gradebook/dao/IGradebookDAO.java (.../IGradebookDAO.java) (revision 51fb2a37254f24bb2a805d4ffd54482c779f43fa) +++ lams_common/src/java/org/lamsfoundation/lams/gradebook/dao/IGradebookDAO.java (.../IGradebookDAO.java) (revision 506e82d55455419723f11c0a8f99270b39f04055) @@ -55,15 +55,15 @@ Double getAverageMarkForLesson(Long lessonID); - long getAverageDurationLesson(Long lessonID); + long getMedianTimeTakenLesson(Long lessonID); - long getAverageDurationForActivity(Long activityID); + long getMedianTimeTakenForActivity(Long activityID); Double getAverageMarkForActivity(Long activityID); Double getAverageMarkForGroupedActivity(Long activityID, Long groupID); - long getAverageDurationForGroupedActivity(Long activityID, Long groupID); + long getMedianTimeTakenForGroupedActivity(Long activityID, Long groupID); List getLessonsByGroupAndUser(final Integer userId, final Integer orgId, int page, int size, String sortBy, String sortOrder, String searchString); Index: lams_common/src/java/org/lamsfoundation/lams/gradebook/dao/hibernate/GradebookDAO.java =================================================================== diff -u -r51fb2a37254f24bb2a805d4ffd54482c779f43fa -r506e82d55455419723f11c0a8f99270b39f04055 --- lams_common/src/java/org/lamsfoundation/lams/gradebook/dao/hibernate/GradebookDAO.java (.../GradebookDAO.java) (revision 51fb2a37254f24bb2a805d4ffd54482c779f43fa) +++ lams_common/src/java/org/lamsfoundation/lams/gradebook/dao/hibernate/GradebookDAO.java (.../GradebookDAO.java) (revision 506e82d55455419723f11c0a8f99270b39f04055) @@ -57,24 +57,12 @@ private static final String GET_AVERAGE_MARK_FOR_LESSON = "SELECT AVG(gles.mark) FROM GradebookUserLesson gles WHERE " + "gles.lesson.lessonId=:lessonID"; - private static final String GET_AVERAGE_COMPLETION_TIME = "select prog.finishDate, prog.startDate FROM LearnerProgress prog where " - + "prog.lesson.lessonId=:lessonID"; - - final String GET_AVERAGE_COMPLETION_TIME2 = "SELECT AVG(TIMEDIFF(progress.finishDate,progress.startDate)) " - + "FROM LearnerProgress progress " + "WHERE progress.lesson.lessonId = :lessonId "; - - private static final String GET_AVERAGE_COMPLETION_TIME_ACTIVITY = "select compProg.finishDate, compProg.startDate from CompletedActivityProgress compProg where " - + "compProg.activity.activityId=:activityID"; - private static final String GET_AVERAGE_MARK_FOR_ACTIVTY = "select avg(gact.mark) from GradebookUserActivity gact where " + "gact.activity.activityId=:activityID"; private static final String GET_AVERAGE_MARK_FOR_GROUPED_ACTIVTY = "select avg(gact.mark) from GradebookUserActivity gact, GroupUser gu, Group grp where " + "gact.activity.activityId=:activityID and grp.groupId=:groupID and gu.user=gact.learner and gu.group=grp"; - private static final String GET_AVERAGE_COMPLETION_TIME_GROUPED_ACTIVITY = "select compProg.finishDate, compProg.startDate from CompletedActivityProgress compProg, Group grp, GroupUser gu where " - + "compProg.activity.activityId=:activityID and grp.groupId=:groupID and gu.user=compProg.learnerProgress.user and gu.group=grp"; - @Override @SuppressWarnings("unchecked") public GradebookUserActivity getGradebookUserDataForActivity(Long activityID, Integer userID) { @@ -166,51 +154,57 @@ @Override @SuppressWarnings("unchecked") - public long getAverageDurationLesson(Long lessonID) { + public long getMedianTimeTakenLesson(Long lessonID) { + + final String GET_MEDIAN_TIME_TAKEN_FOR_LESSON = "SELECT AVG(t1.timeTaken) AS medianVal FROM (" + + " SELECT @rownum\\:=@rownum+1 AS `rowNumber`, TIME_TO_SEC(TIMEDIFF(progress.finish_date_time, progress.start_date_time)) AS timeTaken" + + " FROM lams_learner_progress progress, (SELECT @rownum\\:=0) r" + + " WHERE progress.lesson_id=:lessonID AND TIMEDIFF(progress.finish_date_time, progress.start_date_time) IS NOT NULL" + + " ORDER BY TIMEDIFF(progress.finish_date_time, progress.start_date_time)" + + " ) AS t1, " + + " (" + + " SELECT count(*) AS totalRows" + + " FROM lams_learner_progress progress" + + " WHERE progress.lesson_id=:lessonID AND TIMEDIFF(progress.finish_date_time, progress.start_date_time) IS NOT NULL" + + " ) AS t2" + + " WHERE t1.rowNumber in ( floor((totalRows+1)/2), floor((totalRows+2)/2) )"; - final String GET_AVERAGE_COMPLETION_TIME2 = "SELECT AVG(TIMEDIFF(progress.finishDate,progress.startDate)) " - + "FROM LearnerProgress progress " + "WHERE progress.lesson.lessonId = :lessonId "; + List result = getSession().createSQLQuery(GET_MEDIAN_TIME_TAKEN_FOR_LESSON).setLong("lessonID", lessonID).list(); - List result = getSession().createQuery(GET_AVERAGE_COMPLETION_TIME2).setLong("lessonId", lessonID).list(); - if (result == null || result.size() == 0 || result.get(0) == null) { return 0; } else { - return ((Number) result.get(0)).intValue(); + //converting into milliseconds + return ((Number) result.get(0)).intValue() * 1000; } } @Override @SuppressWarnings("unchecked") - public long getAverageDurationForActivity(Long activityID) { - List result = getSessionFactory().getCurrentSession() - .createQuery(GET_AVERAGE_COMPLETION_TIME_ACTIVITY).setLong("activityID", activityID.longValue()).list(); + public long getMedianTimeTakenForActivity(Long activityID) { + + final String GET_MEDIAN_TIME_TAKEN_FOR_ACTIVITY = "SELECT AVG(t1.timeTaken) AS medianVal FROM (" + + " SELECT @rownum\\:=@rownum+1 AS `rowNumber`, TIME_TO_SEC(TIMEDIFF(progress.completed_date_time, progress.start_date_time)) AS timeTaken" + + " FROM lams_progress_completed progress, (SELECT @rownum\\:=0) r" + + " WHERE progress.activity_id=:activityID AND TIMEDIFF(progress.completed_date_time, progress.start_date_time) IS NOT NULL" + + " ORDER BY TIMEDIFF(progress.completed_date_time, progress.start_date_time)" + + " ) AS t1, " + + " (" + + " SELECT count(*) AS totalRows" + + " FROM lams_progress_completed progress" + + " WHERE progress.activity_id=:activityID AND TIMEDIFF(progress.completed_date_time, progress.start_date_time) IS NOT NULL" + + " ) AS t2" + + " WHERE t1.rowNumber in ( floor((totalRows+1)/2), floor((totalRows+2)/2) )"; - if (result != null) { - if (result.size() > 0) { - - long sum = 0; - long count = 0; - for (Object[] dateObjs : result) { - if (dateObjs != null && dateObjs.length == 2) { - Date finishDate = (Date) dateObjs[0]; - Date startDate = (Date) dateObjs[1]; - - if (startDate != null && finishDate != null) { - - sum += finishDate.getTime() - startDate.getTime(); - count++; - } - } - } - - if (count > 0) { - return sum / count; - } - } - + List result = getSession().createSQLQuery(GET_MEDIAN_TIME_TAKEN_FOR_ACTIVITY) + .setLong("activityID", activityID.longValue()).list(); + + if (result == null || result.size() == 0 || result.get(0) == null) { + return 0; + } else { + //converting into milliseconds + return ((Number) result.get(0)).intValue() * 1000; } - return 0; } @Override @@ -246,36 +240,32 @@ @Override @SuppressWarnings("unchecked") - public long getAverageDurationForGroupedActivity(Long activityID, Long groupID) { - List result = getSessionFactory().getCurrentSession() - .createQuery(GET_AVERAGE_COMPLETION_TIME_GROUPED_ACTIVITY).setLong("activityID", activityID.longValue()) - .setLong("groupID", groupID.longValue()).list(); + public long getMedianTimeTakenForGroupedActivity(Long activityID, Long groupID) { + + final String GET_MEDIAN_TIME_TAKEN_FOR_GROUPED_ACTIVITY = "SELECT AVG(t1.timeTaken) AS medianVal FROM (" + + " SELECT @rownum\\:=@rownum+1 AS `rowNumber`, TIME_TO_SEC(TIMEDIFF(compProgress.completed_date_time, compProgress.start_date_time)) AS timeTaken" + + " FROM lams_progress_completed compProgress, (SELECT @rownum\\:=0) r, lams_learner_progress progr, lams_user_group ug " + + " WHERE compProgress.activity_id=:activityID AND TIMEDIFF(compProgress.completed_date_time, compProgress.start_date_time) IS NOT NULL" + + " AND ug.group_id=:groupID AND compProgress.learner_progress_id = progr.learner_progress_id AND progr.user_id=ug.user_id " + + " ORDER BY TIMEDIFF(compProgress.completed_date_time, compProgress.start_date_time)" + + " ) AS t1, " + + " (" + + " SELECT count(*) AS totalRows" + + " FROM lams_progress_completed compProgress, lams_learner_progress progr, lams_user_group ug" + + " WHERE compProgress.activity_id=:activityID AND TIMEDIFF(compProgress.completed_date_time, compProgress.start_date_time) IS NOT NULL" + + " AND ug.group_id=:groupID AND compProgress.learner_progress_id = progr.learner_progress_id AND progr.user_id=ug.user_id" + + " ) AS t2" + + " WHERE t1.rowNumber in ( floor((totalRows+1)/2), floor((totalRows+2)/2) )"; - if (result != null) { - if (result.size() > 0) { + List result = getSession().createSQLQuery(GET_MEDIAN_TIME_TAKEN_FOR_GROUPED_ACTIVITY) + .setLong("activityID", activityID.longValue()).setLong("groupID", groupID.longValue()).list(); - long sum = 0; - long count = 0; - for (Object[] dateObjs : result) { - if (dateObjs != null && dateObjs.length == 2) { - Date finishDate = (Date) dateObjs[0]; - Date startDate = (Date) dateObjs[1]; - - if (startDate != null && finishDate != null) { - - sum += finishDate.getTime() - startDate.getTime(); - count++; - } - } - } - - if (count > 0) { - return sum / count; - } - } - + if (result == null || result.size() == 0 || result.get(0) == null) { + return 0; + } else { + //converting into milliseconds + return ((Number) result.get(0)).intValue() * 1000; } - return 0; } @Override Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GBActivityGridRowDTO.java =================================================================== diff -u -r51fb2a37254f24bb2a805d4ffd54482c779f43fa -r506e82d55455419723f11c0a8f99270b39f04055 --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GBActivityGridRowDTO.java (.../GBActivityGridRowDTO.java) (revision 51fb2a37254f24bb2a805d4ffd54482c779f43fa) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GBActivityGridRowDTO.java (.../GBActivityGridRowDTO.java) (revision 506e82d55455419723f11c0a8f99270b39f04055) @@ -118,15 +118,15 @@ ret.add(rowName); } - ret.add((averageTimeTaken != null) ? convertTimeToString(averageTimeTaken) : CELL_EMPTY); + ret.add((medianTimeTaken != null) ? convertTimeToString(medianTimeTaken) : CELL_EMPTY); ret.add(competences); ret.add(averageMark != null ? GradebookUtil.niceFormatting(averageMark) : CELL_EMPTY); } else if (view == GBGridView.LRN_ACTIVITY) { ret.add(rowName); ret.add(status); ret.add(feedback); - ret.add((averageTimeTaken != null) ? convertTimeToString(averageTimeTaken) : CELL_EMPTY); + ret.add((medianTimeTaken != null) ? convertTimeToString(medianTimeTaken) : CELL_EMPTY); ret.add((timeTaken != null) ? convertTimeToString(timeTaken) : CELL_EMPTY); ret.add(averageMark != null ? GradebookUtil.niceFormatting(averageMark) : CELL_EMPTY); ret.add(mark != null ? GradebookUtil.niceFormatting(mark) : CELL_EMPTY); Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GBLessonGridRowDTO.java =================================================================== diff -u -r51fb2a37254f24bb2a805d4ffd54482c779f43fa -r506e82d55455419723f11c0a8f99270b39f04055 --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GBLessonGridRowDTO.java (.../GBLessonGridRowDTO.java) (revision 51fb2a37254f24bb2a805d4ffd54482c779f43fa) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GBLessonGridRowDTO.java (.../GBLessonGridRowDTO.java) (revision 506e82d55455419723f11c0a8f99270b39f04055) @@ -64,7 +64,7 @@ } ret.add(subGroup); ret.add(startDate); - ret.add((averageTimeTaken != null && averageTimeTaken != 0) ? convertTimeToString(averageTimeTaken) + ret.add((medianTimeTaken != null && medianTimeTaken != 0) ? convertTimeToString(medianTimeTaken) : CELL_EMPTY); ret.add((averageMark != null) ? GradebookUtil.niceFormatting(averageMark) : CELL_EMPTY); @@ -80,8 +80,8 @@ ret.add(feedback); ret.add((startDate != null) ? startDate : CELL_EMPTY); ret.add((finishDate != null) ? finishDate : CELL_EMPTY); - ret.add((averageTimeTaken != null && averageTimeTaken != 0) - ? toItalic(convertTimeToString(averageTimeTaken)) : CELL_EMPTY); + ret.add((medianTimeTaken != null && medianTimeTaken != 0) + ? toItalic(convertTimeToString(medianTimeTaken)) : CELL_EMPTY); ret.add((timeTaken != null) ? convertTimeToString(timeTaken) : CELL_EMPTY); ret.add((averageMark != null) ? toItalic(GradebookUtil.niceFormatting(averageMark)) : CELL_EMPTY); ret.add((mark != null) ? GradebookUtil.niceFormatting(mark) : CELL_EMPTY); Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GradebookGridRowDTO.java =================================================================== diff -u -r51fb2a37254f24bb2a805d4ffd54482c779f43fa -r506e82d55455419723f11c0a8f99270b39f04055 --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GradebookGridRowDTO.java (.../GradebookGridRowDTO.java) (revision 51fb2a37254f24bb2a805d4ffd54482c779f43fa) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GradebookGridRowDTO.java (.../GradebookGridRowDTO.java) (revision 506e82d55455419723f11c0a8f99270b39f04055) @@ -50,7 +50,7 @@ protected Long timeTaken; // Another unit of time that represents average time taken for a corresponding task - protected Long averageTimeTaken; + protected Long medianTimeTaken; // The mark for the corresponding gradebook grid row task protected Double mark; @@ -194,20 +194,20 @@ this.rowName = rowName; } - public Long getAverageTimeTaken() { - return averageTimeTaken; + public Long getMedianTimeTaken() { + return medianTimeTaken; } - public Long getAverageTimeTakenSeconds() { - if (averageTimeTaken != null) { - return averageTimeTaken / 1000; + public Long getMedianTimeTakenSeconds() { + if (medianTimeTaken != null) { + return medianTimeTaken / 1000; } else { return null; } } - public void setAverageTimeTaken(Long averageTimeTaken) { - this.averageTimeTaken = averageTimeTaken; + public void setMedianTimeTaken(Long medianTimeTaken) { + this.medianTimeTaken = medianTimeTaken; } public Double getAverageMark() { Fisheye: Tag 506e82d55455419723f11c0a8f99270b39f04055 refers to a dead (removed) revision in file `lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/comparators/GBAverageTimeTakenComparator.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/comparators/GBMedianTimeTakenComparator.java =================================================================== diff -u --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/comparators/GBMedianTimeTakenComparator.java (revision 0) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/comparators/GBMedianTimeTakenComparator.java (revision 506e82d55455419723f11c0a8f99270b39f04055) @@ -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 + * **************************************************************** + */ + + +package org.lamsfoundation.lams.gradebook.dto.comparators; + +import java.util.Comparator; + +import org.lamsfoundation.lams.gradebook.dto.GradebookGridRowDTO; + +@SuppressWarnings("unchecked") +public class GBMedianTimeTakenComparator implements Comparator { + @Override + public int compare(Object gradebookGridRow, Object anotherGradebookGridRow) { + + if (gradebookGridRow instanceof GradebookGridRowDTO && anotherGradebookGridRow instanceof GradebookGridRowDTO) { + + Long timeTaken1 = ((GradebookGridRowDTO) gradebookGridRow).getMedianTimeTaken(); + Long timeTaken2 = ((GradebookGridRowDTO) anotherGradebookGridRow).getMedianTimeTaken(); + + timeTaken1 = (timeTaken1 == null) ? 0 : timeTaken1; + timeTaken2 = (timeTaken2 == null) ? 0 : timeTaken2; + return new Double(timeTaken1 - timeTaken2).intValue(); + } else { + return 0; + } + } +} Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java =================================================================== diff -u -rce9f4e0c6d1e5814bf0dcb0fa16ae888a8c854a3 -r506e82d55455419723f11c0a8f99270b39f04055 --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java (.../GradebookService.java) (revision ce9f4e0c6d1e5814bf0dcb0fa16ae888a8c854a3) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java (.../GradebookService.java) (revision 506e82d55455419723f11c0a8f99270b39f04055) @@ -156,7 +156,7 @@ // Setting averages activityDTO.setAverageMark(gradebookDAO.getAverageMarkForActivity(activity.getActivityId())); - activityDTO.setAverageTimeTaken(gradebookDAO.getAverageDurationForActivity(activity.getActivityId())); + activityDTO.setMedianTimeTaken(gradebookDAO.getMedianTimeTakenForActivity(activity.getActivityId())); // Get the tool outputs for this user if there are any ToolSession toolSession = toolService.getToolSessionByLearner(learner, activity); @@ -670,7 +670,7 @@ } else if (view == GBGridView.MON_COURSE) { // Setting the averages for monitor view - lessonRow.setAverageTimeTaken(gradebookDAO.getAverageDurationLesson(lesson.getLessonId())); + lessonRow.setMedianTimeTaken(gradebookDAO.getMedianTimeTakenLesson(lesson.getLessonId())); lessonRow.setAverageMark(gradebookDAO.getAverageMarkForLesson(lesson.getLessonId())); // Set the gradebook monitor url @@ -682,7 +682,7 @@ GradebookUserLesson gbLesson = gradebookDAO.getGradebookUserDataForLesson(lesson.getLessonId(), userId); - lessonRow.setAverageTimeTaken(gradebookDAO.getAverageDurationLesson(lesson.getLessonId())); + lessonRow.setMedianTimeTaken(gradebookDAO.getMedianTimeTakenLesson(lesson.getLessonId())); lessonRow.setAverageMark(gradebookDAO.getAverageMarkForLesson(lesson.getLessonId())); if (gbLesson != null) { @@ -779,11 +779,10 @@ lessonAverageMark[1] = new ExcelCell(getAverageMarkForLesson(lesson.getLessonId()), false); rowList.add(lessonAverageMark); - ExcelCell[] lessonAverageTimeTaken = new ExcelCell[2]; - lessonAverageTimeTaken[0] = new ExcelCell(getMessage("gradebook.export.average.lesson.time.taken"), true); - lessonAverageTimeTaken[1] = new ExcelCell(gradebookDAO.getAverageDurationLesson(lesson.getLessonId()) / 1000, - false); - rowList.add(lessonAverageTimeTaken); + ExcelCell[] lessonMedianTimeTaken = new ExcelCell[2]; + lessonMedianTimeTaken[0] = new ExcelCell(getMessage("gradebook.export.average.lesson.time.taken"), true); + lessonMedianTimeTaken[1] = new ExcelCell(gradebookDAO.getMedianTimeTakenLesson(lesson.getLessonId()) / 1000, false); + rowList.add(lessonMedianTimeTaken); rowList.add(GradebookService.EMPTY_ROW); // Adding the activity average data to the summary @@ -807,7 +806,7 @@ ExcelCell[] activityDataRow = new ExcelCell[4]; activityDataRow[0] = new ExcelCell(activityRow.getRowName(), false); activityDataRow[1] = new ExcelCell(activityRow.getCompetences(), false); - activityDataRow[2] = new ExcelCell(activityRow.getAverageTimeTakenSeconds(), false); + activityDataRow[2] = new ExcelCell(activityRow.getMedianTimeTakenSeconds(), false); activityDataRow[3] = new ExcelCell(activityRow.getAverageMark(), false); rowList.add(activityDataRow); } @@ -1449,13 +1448,13 @@ // Setting averages for group activityDTO .setAverageMark(gradebookDAO.getAverageMarkForGroupedActivity(activity.getActivityId(), groupId)); - activityDTO.setAverageTimeTaken( - gradebookDAO.getAverageDurationForGroupedActivity(activity.getActivityId(), groupId)); + activityDTO.setMedianTimeTaken( + gradebookDAO.getMedianTimeTakenForGroupedActivity(activity.getActivityId(), groupId)); } else { // Setting averages for lesson activityDTO.setAverageMark(gradebookDAO.getAverageMarkForActivity(activity.getActivityId())); - activityDTO.setAverageTimeTaken(gradebookDAO.getAverageDurationForActivity(activity.getActivityId())); + activityDTO.setMedianTimeTaken(gradebookDAO.getMedianTimeTakenForActivity(activity.getActivityId())); } // Set the possible marks if applicable Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/util/GradebookUtil.java =================================================================== diff -u -r51fb2a37254f24bb2a805d4ffd54482c779f43fa -r506e82d55455419723f11c0a8f99270b39f04055 --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/util/GradebookUtil.java (.../GradebookUtil.java) (revision 51fb2a37254f24bb2a805d4ffd54482c779f43fa) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/util/GradebookUtil.java (.../GradebookUtil.java) (revision 506e82d55455419723f11c0a8f99270b39f04055) @@ -42,7 +42,7 @@ 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.GBMedianTimeTakenComparator; import org.lamsfoundation.lams.gradebook.dto.comparators.GBIDComparator; import org.lamsfoundation.lams.gradebook.dto.comparators.GBMarkComparator; import org.lamsfoundation.lams.gradebook.dto.comparators.GBRowNameComparator; @@ -219,7 +219,7 @@ } 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()); + Collections.sort(gridRows, new GBMedianTimeTakenComparator()); } else if (sortBy.equals(GradebookConstants.PARAM_AVG_MARK)) { Collections.sort(gridRows, new GBAverageMarkComparator()); } else if (sortBy.equals(GradebookConstants.PARAM_START_DATE)) { Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/web/action/GradebookAction.java =================================================================== diff -u -r51fb2a37254f24bb2a805d4ffd54482c779f43fa -r506e82d55455419723f11c0a8f99270b39f04055 --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/web/action/GradebookAction.java (.../GradebookAction.java) (revision 51fb2a37254f24bb2a805d4ffd54482c779f43fa) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/web/action/GradebookAction.java (.../GradebookAction.java) (revision 506e82d55455419723f11c0a8f99270b39f04055) @@ -64,13 +64,7 @@ /** * @author lfoxton * - * Handles the general requests for content in gradebook - * - * - * - * - * - * + * Handles the general requests for content in gradebook */ public class GradebookAction extends LamsDispatchAction { @@ -501,7 +495,7 @@ * @return * @throws Exception */ - public ActionForward getLessonMarkAverage(ActionMapping mapping, ActionForm form, HttpServletRequest request, + public ActionForward getAverageMarkForLesson(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { Long lessonID = WebUtil.readLongParam(request, AttributeNames.PARAM_LESSON_ID); if (!getSecurityService().isLessonMonitor(lessonID, getUser().getUserID(), "get lesson mark average", false)) { Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/web/action/GradebookLearningAction.java =================================================================== diff -u -r51fb2a37254f24bb2a805d4ffd54482c779f43fa -r506e82d55455419723f11c0a8f99270b39f04055 --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/web/action/GradebookLearningAction.java (.../GradebookLearningAction.java) (revision 51fb2a37254f24bb2a805d4ffd54482c779f43fa) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/web/action/GradebookLearningAction.java (.../GradebookLearningAction.java) (revision 506e82d55455419723f11c0a8f99270b39f04055) @@ -49,13 +49,6 @@ * Handles the learner interfaces for gradebook * * This is where marking for an activity/lesson takes place - * - * - * - * - * - * - * */ public class GradebookLearningAction extends LamsDispatchAction { Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/web/action/GradebookMonitoringAction.java =================================================================== diff -u -r51fb2a37254f24bb2a805d4ffd54482c779f43fa -r506e82d55455419723f11c0a8f99270b39f04055 --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/web/action/GradebookMonitoringAction.java (.../GradebookMonitoringAction.java) (revision 51fb2a37254f24bb2a805d4ffd54482c779f43fa) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/web/action/GradebookMonitoringAction.java (.../GradebookMonitoringAction.java) (revision 506e82d55455419723f11c0a8f99270b39f04055) @@ -66,15 +66,6 @@ * Handles the monitor interfaces for gradebook * * This is where marking for an activity/lesson takes place - * - * - * - * - * - * - * - * - * */ public class GradebookMonitoringAction extends LamsDispatchAction { Index: lams_gradebook/web/gradebookCourseLearner.jsp =================================================================== diff -u -r2ef18e4c87e2e7929950dbeb990c6715ef16c0c2 -r506e82d55455419723f11c0a8f99270b39f04055 --- lams_gradebook/web/gradebookCourseLearner.jsp (.../gradebookCourseLearner.jsp) (revision 2ef18e4c87e2e7929950dbeb990c6715ef16c0c2) +++ lams_gradebook/web/gradebookCourseLearner.jsp (.../gradebookCourseLearner.jsp) (revision 506e82d55455419723f11c0a8f99270b39f04055) @@ -55,7 +55,7 @@ {name:'feedback',index:'feedback', sortable:false, editable:false, search:false, width:200}, {name:'startDate',index:'startDate', sortable:false, editable:false, hidden:true, search:false}, {name:'finishDate',index:'finishDate', sortable:false, editable:false, hidden:true, search:false}, - {name:'averageTimeTaken',index:'averageTimeTaken', sortable:true, hidden:true, editable:false, search:false, width:80, align:"center"}, + {name:'medianTimeTaken',index:'medianTimeTaken', sortable:true, hidden:true, editable:false, search:false, width:80, align:"center"}, {name:'timeTaken',index:'timeTaken', sortable:true, editable:false, hidden:true, search:false, width:80, align:"center"}, {name:'averageMark',index:'averageMark', sortable:true, editable:false, search:false, width:50, align:"center"}, {name:'mark',index:'mark', sortable:true, editable:false, search:false, width:50, align:"center"} @@ -93,7 +93,7 @@ {name:'rowName', index:'rowName', sortable:false, editable: false, width:100}, {name:'status', index:'status', sortable:false, editable:false, width:50, align:"center"}, {name:'feedback', index:'feedback', sortable:false, editable: false, hidden:true}, - {name:'averageTimeTaken',index:'averageTimeTaken', sortable:true, hidden:true, editable:false, search:false, width:80, align:"center"}, + {name:'medianTimeTaken',index:'medianTimeTaken', sortable:true, hidden:true, editable:false, search:false, width:80, align:"center"}, {name:'timeTaken',index:'timeTaken', sortable:true, editable:false, hidden:true, search:false, width:80, align:"center"}, {name:'averageMark',index:'averageMark', sortable:true, editable:false, search:false, width:50, align:"center"}, {name:'mark', width:100, index:'mark', sortable:true, editable: false, width:50, align:"center"} Index: lams_gradebook/web/gradebookCourseMonitor.jsp =================================================================== diff -u -r2ef18e4c87e2e7929950dbeb990c6715ef16c0c2 -r506e82d55455419723f11c0a8f99270b39f04055 --- lams_gradebook/web/gradebookCourseMonitor.jsp (.../gradebookCourseMonitor.jsp) (revision 2ef18e4c87e2e7929950dbeb990c6715ef16c0c2) +++ lams_gradebook/web/gradebookCourseMonitor.jsp (.../gradebookCourseMonitor.jsp) (revision 506e82d55455419723f11c0a8f99270b39f04055) @@ -111,7 +111,7 @@ // update the lesson average mark if (cellname == "mark") { // Update the average activity mark - $.get("/gradebook/gradebook.do", {dispatch:"getLessonMarkAverage", lessonID:lessonID}, function(xml) { + $.get("/gradebook/gradebook.do", {dispatch:"getAverageMarkForLesson", lessonID:lessonID}, function(xml) { if (xml!=null) { jQuery("#organisationGrid").setCell(row_id, "avgMark", xml, "", ""); } @@ -229,7 +229,7 @@ {name:'feedback', index:'feedback', sortable:false, editable: true, edittype:'textarea', editoptions:{rows:'4',cols:'20'}, width:150}, {name:'startDate',index:'startDate', sortable:false, editable:false, hidden:true, search:false}, {name:'finishDate',index:'finishDate', sortable:false, editable:false, hidden:true, search:false}, - {name:'averageTimeTaken',index:'averageTimeTaken', sortable:true, hidden:true, editable:false, search:false, width:80, align:"center"}, + {name:'medianTimeTaken',index:'medianTimeTaken', sortable:true, hidden:true, editable:false, search:false, width:80, align:"center"}, {name:'timeTaken',index:'timeTaken', sortable:true, editable:false, hidden:true, search:false, width:80, align:"center"}, {name:'averageMark',index:'averageMark', sortable:true, editable:false, hidden:true, search:false, width:50, align:"center"}, {name:'mark',index:'mark', sortable:true, editable:true, editrules:{number:true}, search:false, width:60, align:"center"}