Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java =================================================================== diff -u -rfb5e0c0aecff491e327336a11c4bca68599a7775 -r4d50a65cf4be964ee4e5050578d6136145387b5f --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java (.../GradebookService.java) (revision fb5e0c0aecff491e327336a11c4bca68599a7775) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java (.../GradebookService.java) (revision 4d50a65cf4be964ee4e5050578d6136145387b5f) @@ -50,6 +50,7 @@ import org.lamsfoundation.lams.gradebook.dto.GBUserGridRowDTO; import org.lamsfoundation.lams.gradebook.dto.GradebookGridRowDTO; import org.lamsfoundation.lams.gradebook.util.GBGridView; +import org.lamsfoundation.lams.gradebook.util.LessonComparator; import org.lamsfoundation.lams.learningdesign.Activity; import org.lamsfoundation.lams.learningdesign.ActivityEvaluation; import org.lamsfoundation.lams.learningdesign.CompetenceMapping; @@ -645,7 +646,7 @@ 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()), false); + lessonAverageTimeTaken[1] = new ExcelCell(gradebookDAO.getAverageDurationLesson(lesson.getLessonId())/1000, false); rowList.add(lessonAverageTimeTaken); rowList.add(EMPTY_ROW); // ------------------------------------------------------------------ @@ -722,7 +723,8 @@ List rowList = new LinkedList(); User user = (User) getUserService().findById(User.class, userId); - List lessonsFromDB = lessonService.getLessonsByGroupAndUser(userId, organisationId); + Set lessonsFromDB = new TreeSet(new LessonComparator()); + lessonsFromDB.addAll(lessonService.getLessonsByGroupAndUser(userId, organisationId)); List lessons = new LinkedList(); // Dont include lesson in list if the user doesnt have permission @@ -736,7 +738,7 @@ } if (lessons == null || (lessons.size() == 0)) { - return null; + return rowList.toArray(new ExcelCell[][] {}); } //collect users from all lessons Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/util/LessonComparator.java =================================================================== diff -u --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/util/LessonComparator.java (revision 0) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/util/LessonComparator.java (revision 4d50a65cf4be964ee4e5050578d6136145387b5f) @@ -0,0 +1,40 @@ +/**************************************************************** + * Copyright (C) 2005 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$ */ +package org.lamsfoundation.lams.gradebook.util; + +import java.util.Comparator; + +import org.lamsfoundation.lams.lesson.Lesson; + +public class LessonComparator implements Comparator { + public int compare(Lesson o1, Lesson o2) { + if (o1 != null && o2 != null) { + return (o1.getLessonName()+o1.getStartDateTime()).compareTo((o2.getLessonName()+o2.getStartDateTime())); + } else if (o1 != null) { + return 1; + } else { + return -1; + } + } +}