Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GBActivityGridRowDTO.java =================================================================== diff -u -rd800327041497bb1a053493a53c450512121b951 -r2bbb1206137d5ff2a03d6d08101e4617d0fe02eb --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GBActivityGridRowDTO.java (.../GBActivityGridRowDTO.java) (revision d800327041497bb1a053493a53c450512121b951) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GBActivityGridRowDTO.java (.../GBActivityGridRowDTO.java) (revision 2bbb1206137d5ff2a03d6d08101e4617d0fe02eb) @@ -24,6 +24,7 @@ package org.lamsfoundation.lams.gradebook.dto; import java.util.ArrayList; +import java.util.Date; import org.lamsfoundation.lams.gradebook.util.GBGridView; @@ -41,6 +42,7 @@ String activityUrl; //double timeTaken; String feedback; + Date startDate; // Properties for activity view String monitorUrl; @@ -139,5 +141,13 @@ public void setMonitorUrl(String monitorUrl) { this.monitorUrl = monitorUrl; + } + + public Date getStartDate() { + return startDate; + } + + public void setStartDate(Date startDate) { + this.startDate = startDate; } } Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/comparators/GBStartDateComparator.java =================================================================== diff -u --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/comparators/GBStartDateComparator.java (revision 0) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/comparators/GBStartDateComparator.java (revision 2bbb1206137d5ff2a03d6d08101e4617d0fe02eb) @@ -0,0 +1,59 @@ +/**************************************************************** + * 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$ */ +package org.lamsfoundation.lams.gradebook.dto.comparators; + +import java.util.Comparator; +import java.util.Date; + +import org.lamsfoundation.lams.gradebook.dto.GBActivityGridRowDTO; + +@SuppressWarnings("unchecked") +public class GBStartDateComparator implements Comparator { + public int compare(Object actGridRow, Object anotherActGridRow) { + if (actGridRow instanceof GBActivityGridRowDTO && anotherActGridRow instanceof GBActivityGridRowDTO) { + + Date startDate1 = ((GBActivityGridRowDTO) actGridRow).getStartDate(); + Date startDate2 = ((GBActivityGridRowDTO) anotherActGridRow).getStartDate(); + + Long id1 = ((GBActivityGridRowDTO) actGridRow).getId(); + Long id2 = ((GBActivityGridRowDTO) anotherActGridRow).getId(); + + if (startDate1 == null && startDate2 == null) { + if (id1 == null || id2 == null) { + return 0; + } + Long ret = id1 - id2; + return ret.intValue() * -1; + } else if (startDate1 == null) { + return +1; + } else if (startDate2 == null) { + return -1; + } else { + return startDate1.compareTo(startDate2); + } + } else { + return 0; + } + } +} Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java =================================================================== diff -u -rd800327041497bb1a053493a53c450512121b951 -r2bbb1206137d5ff2a03d6d08101e4617d0fe02eb --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java (.../GradebookService.java) (revision d800327041497bb1a053493a53c450512121b951) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java (.../GradebookService.java) (revision 2bbb1206137d5ff2a03d6d08101e4617d0fe02eb) @@ -557,6 +557,12 @@ + activity.getTool().getLearnerProgressUrl() + "&userID=" + learner.getUserId() + "&toolSessionID=" + toolSession.getToolSessionId().toString()); gactivityDTO.setOutput(this.getToolOutputsStr(activity, toolSession, learner)); + + if (activityState == LearnerProgress.ACTIVITY_ATTEMPTED) { + gactivityDTO.setStartDate(learnerProgress.getAttemptedActivities().get(activity)); + }else { + gactivityDTO.setStartDate(learnerProgress.getCompletedActivities().get(activity).getStartDate()); + } } } @@ -665,7 +671,6 @@ } } toolOutputsStr += ""; - } } Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/util/GradebookConstants.java =================================================================== diff -u -re074865bde063cd3ac9e531a90857d07de9d121c -r2bbb1206137d5ff2a03d6d08101e4617d0fe02eb --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/util/GradebookConstants.java (.../GradebookConstants.java) (revision e074865bde063cd3ac9e531a90857d07de9d121c) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/util/GradebookConstants.java (.../GradebookConstants.java) (revision 2bbb1206137d5ff2a03d6d08101e4617d0fe02eb) @@ -52,6 +52,7 @@ public static final String PARAM_AVG_TIME_TAKEN = "avgTimeTaken"; public static final String PARAM_AVG_MARK = "avgMark"; public static final String PARAM_VIEW = "view"; + public static final String PARAM_START_DATE = "startDate"; // Sort public static final String SORT_DESC = "desc"; Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/util/GradebookUtil.java =================================================================== diff -u -re074865bde063cd3ac9e531a90857d07de9d121c -r2bbb1206137d5ff2a03d6d08101e4617d0fe02eb --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/util/GradebookUtil.java (.../GradebookUtil.java) (revision e074865bde063cd3ac9e531a90857d07de9d121c) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/util/GradebookUtil.java (.../GradebookUtil.java) (revision 2bbb1206137d5ff2a03d6d08101e4617d0fe02eb) @@ -45,6 +45,7 @@ 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.dto.comparators.GBStartDateComparator; import org.lamsfoundation.lams.gradebook.dto.comparators.GBTimeTakenComparator; import org.lamsfoundation.lams.util.WebUtil; import org.w3c.dom.Document; @@ -212,6 +213,8 @@ Collections.sort(gridRows, new GBAverageTimeTakenComparator()); } else if (sortBy.equals(GradebookConstants.PARAM_AVG_MARK)) { Collections.sort(gridRows, new GBAverageMarkComparator()); + } else if (sortBy.equals(GradebookConstants.PARAM_START_DATE)) { + Collections.sort(gridRows, new GBStartDateComparator()); } else { Collections.sort(gridRows, new GBRowNameComparator()); } Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/web/action/GradebookAction.java =================================================================== diff -u -re074865bde063cd3ac9e531a90857d07de9d121c -r2bbb1206137d5ff2a03d6d08101e4617d0fe02eb --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/web/action/GradebookAction.java (.../GradebookAction.java) (revision e074865bde063cd3ac9e531a90857d07de9d121c) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/web/action/GradebookAction.java (.../GradebookAction.java) (revision 2bbb1206137d5ff2a03d6d08101e4617d0fe02eb) @@ -155,8 +155,8 @@ gradebookActivityDTOs = gradebookService.getGBActivityRowsForLesson(lesson); } - if (sortBy == null) { - sortBy = GradebookConstants.PARAM_ID; + if (sortBy == null || sortBy.equals("")) { + sortBy = GradebookConstants.PARAM_START_DATE; } String ret = GradebookUtil.toGridXML(gradebookActivityDTOs, view, sortBy, isSearch, searchField, Index: lams_gradebook/web/gradebookCourseLearner.jsp =================================================================== diff -u -rd800327041497bb1a053493a53c450512121b951 -r2bbb1206137d5ff2a03d6d08101e4617d0fe02eb --- lams_gradebook/web/gradebookCourseLearner.jsp (.../gradebookCourseLearner.jsp) (revision d800327041497bb1a053493a53c450512121b951) +++ lams_gradebook/web/gradebookCourseLearner.jsp (.../gradebookCourseLearner.jsp) (revision 2bbb1206137d5ff2a03d6d08101e4617d0fe02eb) @@ -71,7 +71,6 @@ url: "/gradebook/gradebook.do?dispatch=getActivityGridData&view=lrnActivity&lessonID=" + lessonID, height: "100%", width: 550, - sortname: "id", imgpath: 'includes/javascript/jqgrid/themes/basic/images', pager: subgrid_table_id + "_pager", rowList:[5,10,20,30], Index: lams_gradebook/web/gradebookMonitor.jsp =================================================================== diff -u -r824584ee2b82bea619fbe38b470de7cca15868ea -r2bbb1206137d5ff2a03d6d08101e4617d0fe02eb --- lams_gradebook/web/gradebookMonitor.jsp (.../gradebookMonitor.jsp) (revision 824584ee2b82bea619fbe38b470de7cca15868ea) +++ lams_gradebook/web/gradebookMonitor.jsp (.../gradebookMonitor.jsp) (revision 2bbb1206137d5ff2a03d6d08101e4617d0fe02eb) @@ -64,7 +64,6 @@ height: "100%", width: 650, cellEdit:true, - sortname: "id", imgpath: 'includes/javascript/jqgrid/themes/basic/images', pager: subgrid_table_id + "_pager", rowList:[5,10,20,30],