Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GBUserGridRowDTO.java
===================================================================
diff -u -re7df9c322cd3d1d3c84c2117419750a34c3cdab8 -r1aed494b3b9aeb79f7837c12b15cd1330b3020fa
--- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GBUserGridRowDTO.java (.../GBUserGridRowDTO.java) (revision e7df9c322cd3d1d3c84c2117419750a34c3cdab8)
+++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GBUserGridRowDTO.java (.../GBUserGridRowDTO.java) (revision 1aed494b3b9aeb79f7837c12b15cd1330b3020fa)
@@ -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;
@@ -33,6 +34,7 @@
String feedback;
// For activity view
+ Date startDate;
String output;
String activityUrl;
@@ -69,6 +71,7 @@
ret.add(rowName);
}
ret.add(status);
+ ret.add(startDate != null ? convertDateToString(startDate, DEFAULT_DATE_FORMAT) : CELL_EMPTY);
ret.add((timeTaken != null) ? convertTimeToString(timeTaken) : CELL_EMPTY);
ret.add((output != null) ? output.toString() : CELL_EMPTY);
ret.add(feedback);
@@ -143,4 +146,12 @@
this.currentActivity = currentActivity;
}
+ public Date getStartDate() {
+ return startDate;
+ }
+
+ public void setStartDate(Date startTime) {
+ this.startDate = startTime;
+ }
+
}
Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GradebookGridRowDTO.java
===================================================================
diff -u -racc8d2acf5b6b0002e0c8129947040a779ab4077 -r1aed494b3b9aeb79f7837c12b15cd1330b3020fa
--- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GradebookGridRowDTO.java (.../GradebookGridRowDTO.java) (revision acc8d2acf5b6b0002e0c8129947040a779ab4077)
+++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GradebookGridRowDTO.java (.../GradebookGridRowDTO.java) (revision 1aed494b3b9aeb79f7837c12b15cd1330b3020fa)
@@ -23,8 +23,11 @@
/* $Id$ */
package org.lamsfoundation.lams.gradebook.dto;
+import java.text.DateFormat;
import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
import java.util.ArrayList;
+import java.util.Date;
import org.lamsfoundation.lams.gradebook.util.GBGridView;
@@ -34,6 +37,9 @@
public static final String CELL_EMPTY = "-";
+ public static final DateFormat DEFAULT_DATE_FORMAT = DateFormat.getDateTimeInstance(DateFormat.SHORT,
+ DateFormat.SHORT);
+
// The id for a row, might be activityId, userId, lessonID etc
public String id;
@@ -95,6 +101,20 @@
}
}
+ /**
+ * A shared function to convert date into a readable string
+ *
+ * @param date to format
+ * @return formatted date
+ */
+ protected String convertDateToString(Date date, DateFormat format) {
+ if (date != null) {
+ DateFormat usedFormat = format == null ? DEFAULT_DATE_FORMAT : format;
+ return usedFormat.format(date);
+ }
+ return null;
+ }
+
protected String markToString() {
if (mark != null) {
if (marksAvailable != null) {
Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java
===================================================================
diff -u -rc908ebed08eb519235a7b4e2866e58b630962efa -r1aed494b3b9aeb79f7837c12b15cd1330b3020fa
--- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java (.../GradebookService.java) (revision c908ebed08eb519235a7b4e2866e58b630962efa)
+++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java (.../GradebookService.java) (revision 1aed494b3b9aeb79f7837c12b15cd1330b3020fa)
@@ -256,6 +256,7 @@
// Set the progress
LearnerProgress learnerProgress = getLearnerProgress(lesson, learner);
gUserDTO.setStatus(getActivityStatusStr(learnerProgress, activity));
+ gUserDTO.setStartDate(getActivityStartDate(learnerProgress, activity));
gUserDTO.setTimeTaken(getActivityDuration(learnerProgress, activity));
// Get the tool outputs for this user if there are any
@@ -1113,6 +1114,24 @@
return gactivityDTO;
}
+ /**
+ * Gets activity start time, either attempted or completed
+ * @param learnerProgress
+ * @param activity
+ * @return
+ */
+ private Date getActivityStartDate(LearnerProgress learnerProgress, Activity activity) {
+ Date startDate = null;
+ if (learnerProgress != null) {
+ startDate = learnerProgress.getAttemptedActivities().get(activity);
+ if (startDate == null) {
+ CompletedActivityProgress compProg = learnerProgress.getCompletedActivities().get(activity);
+ startDate = compProg.getStartDate();
+ }
+ }
+ return startDate;
+ }
+
private Long getActivityDuration(LearnerProgress learnerProgress, Activity activity) {
if (learnerProgress != null) {
if (learnerProgress.getCompletedActivities().get(activity) != null) {
Index: lams_gradebook/web/gradebookMonitor.jsp
===================================================================
diff -u -rce3e782fd6844641f7298e09104f8d7554f073ff -r1aed494b3b9aeb79f7837c12b15cd1330b3020fa
--- lams_gradebook/web/gradebookMonitor.jsp (.../gradebookMonitor.jsp) (revision ce3e782fd6844641f7298e09104f8d7554f073ff)
+++ lams_gradebook/web/gradebookMonitor.jsp (.../gradebookMonitor.jsp) (revision 1aed494b3b9aeb79f7837c12b15cd1330b3020fa)
@@ -324,6 +324,7 @@
'',
"",
"",
+ "",
"",
"",
"",
@@ -333,7 +334,8 @@
{name:'id', index:'id', sortable:false, editable:false, hidden:true, search:false, hidedlg:true},
{name:'marksAvailable',index:'marksAvailable', sortable:false, editable:false, hidden:true, search:false, hidedlg:true},
{name:'rowName',index:'rowName', sortable:true, editable:false},
- {name:'status', align:'center', width:30, index:'status', sortable:false, editable:false, search:false, width:50, align:"center"},
+ {name:'status', index:'status', sortable:false, editable:false, search:false, width:30, align:"center"},
+ {name:'startDate', index:'startDate', sortable:true, editable: false, hidden:true, width:60, align:"center"},
{name:'timeTaken', index:'timeTaken', sortable:true, editable: false, width:80, align:"center"},
{name:'output', index:'output', sortable:false, editable: false, search:false, width:200, hidden:true},
{name:'feedback',index:'feedback', sortable:false, editable:true, edittype:'textarea', editoptions:{rows:'4',cols:'20'} , search:false, width:200, hidden:true},