Index: lams_build/lib/lams/lams-gradebook.jar =================================================================== diff -u -r72f92afa07d5c5d0e6051081a1d0e1890ce934d5 -r15e70deb1c79e4c3098eb11b84287bb31c8f64c9 Binary files differ Index: lams_gradebook/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -r801f2b39d83891a1710f3935c9b0a23895e39c0b -r15e70deb1c79e4c3098eb11b84287bb31c8f64c9 --- lams_gradebook/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 801f2b39d83891a1710f3935c9b0a23895e39c0b) +++ lams_gradebook/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 15e70deb1c79e4c3098eb11b84287bb31c8f64c9) @@ -104,6 +104,7 @@ gradebook.export.login =Username button.help =Help button.help.tooltip =Open help +gradebook.monitor.show =Show +gradebook.monitor.learner.lesson.dates =Learner Lesson Dates - #======= End labels: Exported 98 labels for en AU ===== Index: lams_gradebook/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== diff -u -r801f2b39d83891a1710f3935c9b0a23895e39c0b -r15e70deb1c79e4c3098eb11b84287bb31c8f64c9 --- lams_gradebook/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 801f2b39d83891a1710f3935c9b0a23895e39c0b) +++ lams_gradebook/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 15e70deb1c79e4c3098eb11b84287bb31c8f64c9) @@ -104,6 +104,8 @@ gradebook.export.login =Username button.help =Help button.help.tooltip =Open help +gradebook.monitor.show =Show +gradebook.monitor.learner.lesson.dates =Learner Lesson Dates #======= End labels: Exported 98 labels for en AU ===== Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GBActivityGridRowDTO.java =================================================================== diff -u -r3d9ac24ccaeaccd16a79fcb948cc6191a570b306 -r15e70deb1c79e4c3098eb11b84287bb31c8f64c9 --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GBActivityGridRowDTO.java (.../GBActivityGridRowDTO.java) (revision 3d9ac24ccaeaccd16a79fcb948cc6191a570b306) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GBActivityGridRowDTO.java (.../GBActivityGridRowDTO.java) (revision 15e70deb1c79e4c3098eb11b84287bb31c8f64c9) @@ -24,7 +24,6 @@ package org.lamsfoundation.lams.gradebook.dto; import java.util.ArrayList; -import java.util.Date; import java.util.Set; import org.apache.commons.lang.StringEscapeUtils; @@ -43,7 +42,7 @@ // Properties for user view private String activityUrl; - private Date startDate; + // private Date startDate; defined in GradebookGridRowDTO // Properties for activity view private String monitorUrl; @@ -110,6 +109,8 @@ } ret.add(status); ret.add(timeTaken != null ? convertTimeToString(timeTaken) : CELL_EMPTY); + ret.add(startDate != null ? convertDateToString(startDate, null) : CELL_EMPTY); + ret.add(finishDate != null ? convertDateToString(finishDate, null) : CELL_EMPTY); ret.add(feedback); ret.add(mark != null ? GradebookUtil.niceFormatting(mark) : CELL_EMPTY); @@ -125,6 +126,8 @@ } ret.add((medianTimeTaken != null) ? convertTimeToString(medianTimeTaken) : CELL_EMPTY); + ret.add(CELL_EMPTY); + ret.add(CELL_EMPTY); ret.add(competences); ret.add(averageMark != null ? GradebookUtil.niceFormatting(averageMark) : CELL_EMPTY); @@ -166,11 +169,4 @@ 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/GBLessonGridRowDTO.java =================================================================== diff -u -r506e82d55455419723f11c0a8f99270b39f04055 -r15e70deb1c79e4c3098eb11b84287bb31c8f64c9 --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GBLessonGridRowDTO.java (.../GBLessonGridRowDTO.java) (revision 506e82d55455419723f11c0a8f99270b39f04055) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GBLessonGridRowDTO.java (.../GBLessonGridRowDTO.java) (revision 15e70deb1c79e4c3098eb11b84287bb31c8f64c9) @@ -35,14 +35,14 @@ public static final String VIEW_LEARNER = "learnerView"; private String subGroup; - private String startDate; + // private String startDate; defined in GradebookGridRowDTO // Only for monitor view private String gradebookMonitorURL; // Only for learner view private String gradebookLearnerURL; - private String finishDate; + // private String finishDate; defined in GradebookGridRowDTO public GBLessonGridRowDTO() { } @@ -63,7 +63,7 @@ ret.add(rowName); } ret.add(subGroup); - ret.add(startDate); + ret.add(startDate != null ? convertDateToString(startDate, null) : CELL_EMPTY); ret.add((medianTimeTaken != null && medianTimeTaken != 0) ? convertTimeToString(medianTimeTaken) : CELL_EMPTY); ret.add((averageMark != null) ? GradebookUtil.niceFormatting(averageMark) : CELL_EMPTY); @@ -77,9 +77,9 @@ } ret.add(subGroup); ret.add((status != null) ? status : CELL_EMPTY); + ret.add(startDate != null ? convertDateToString(startDate, null) : CELL_EMPTY); + ret.add(finishDate != null ? convertDateToString(finishDate, null) : CELL_EMPTY); ret.add(feedback); - ret.add((startDate != null) ? startDate : CELL_EMPTY); - ret.add((finishDate != null) ? finishDate : CELL_EMPTY); ret.add((medianTimeTaken != null && medianTimeTaken != 0) ? toItalic(convertTimeToString(medianTimeTaken)) : CELL_EMPTY); ret.add((timeTaken != null) ? convertTimeToString(timeTaken) : CELL_EMPTY); @@ -125,20 +125,4 @@ this.subGroup = subGroup; } - public String getStartDate() { - return startDate; - } - - public void setStartDate(String startDate) { - this.startDate = startDate; - } - - public String getFinishDate() { - return finishDate; - } - - public void setFinishDate(String finishDate) { - this.finishDate = finishDate; - } - } Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GBUserGridRowDTO.java =================================================================== diff -u -r51fb2a37254f24bb2a805d4ffd54482c779f43fa -r15e70deb1c79e4c3098eb11b84287bb31c8f64c9 --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GBUserGridRowDTO.java (.../GBUserGridRowDTO.java) (revision 51fb2a37254f24bb2a805d4ffd54482c779f43fa) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GBUserGridRowDTO.java (.../GBUserGridRowDTO.java) (revision 15e70deb1c79e4c3098eb11b84287bb31c8f64c9) @@ -24,7 +24,6 @@ package org.lamsfoundation.lams.gradebook.dto; import java.util.ArrayList; -import java.util.Date; import org.apache.commons.lang.StringEscapeUtils; import org.lamsfoundation.lams.gradebook.util.GBGridView; @@ -34,11 +33,11 @@ public class GBUserGridRowDTO extends GradebookGridRowDTO { // For activity view - private Date startDate; + // private Date startDate; defined in GradebookGridRowDTO private String activityUrl; // For excel export - private Date finishDate; + // private Date finishDate; defined in GradebookGridRowDTO private String firstName; private String lastName; private String login; @@ -66,6 +65,8 @@ ret.add(rowName); ret.add(status); ret.add((timeTaken != null) ? convertTimeToString(timeTaken) : CELL_EMPTY); + ret.add(startDate != null ? convertDateToString(startDate, null) : CELL_EMPTY); + ret.add(finishDate != null ? convertDateToString(finishDate, null) : CELL_EMPTY); ret.add(feedback); ret.add((mark != null) ? GradebookUtil.niceFormatting(mark) : CELL_EMPTY); @@ -80,13 +81,17 @@ } ret.add(status); ret.add((timeTaken != null) ? convertTimeToString(timeTaken) : CELL_EMPTY); + ret.add(startDate != null ? convertDateToString(startDate, null) : CELL_EMPTY); + ret.add(finishDate != null ? convertDateToString(finishDate, null) : CELL_EMPTY); ret.add(feedback); ret.add((mark != null) ? GradebookUtil.niceFormatting(mark) : CELL_EMPTY); } else if (view == GBGridView.MON_COURSE) { ret.add(rowName); ret.add(status); ret.add((timeTaken != null) ? convertTimeToString(timeTaken) : CELL_EMPTY); + ret.add(startDate != null ? convertDateToString(startDate, null) : CELL_EMPTY); + ret.add(finishDate != null ? convertDateToString(finishDate, null) : CELL_EMPTY); ret.add(feedback); ret.add((mark != null) ? GradebookUtil.niceFormatting(mark) : CELL_EMPTY); @@ -137,20 +142,4 @@ this.currentActivity = currentActivity; } - public Date getStartDate() { - return startDate; - } - - public void setStartDate(Date startTime) { - this.startDate = startTime; - } - - public Date getFinishDate() { - return finishDate; - } - - public void setFinishDate(Date finishDate) { - this.finishDate = finishDate; - } - } Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GradebookGridRowDTO.java =================================================================== diff -u -r506e82d55455419723f11c0a8f99270b39f04055 -r15e70deb1c79e4c3098eb11b84287bb31c8f64c9 --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GradebookGridRowDTO.java (.../GradebookGridRowDTO.java) (revision 506e82d55455419723f11c0a8f99270b39f04055) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GradebookGridRowDTO.java (.../GradebookGridRowDTO.java) (revision 15e70deb1c79e4c3098eb11b84287bb31c8f64c9) @@ -49,6 +49,12 @@ // A unit of time in milliseconds that determines the time taken for the corressponding task protected Long timeTaken; + // Start date of lesson / activity + protected Date startDate; + + // Start date of lesson / activity + protected Date finishDate; + // Another unit of time that represents average time taken for a corresponding task protected Long medianTimeTaken; @@ -241,4 +247,22 @@ public void setFeedback(String feedback) { this.feedback = feedback; } + + public Date getStartDate() { + return startDate; + } + + public void setStartDate(Date startDate) { + this.startDate = startDate; + } + + public Date getFinishDate() { + return finishDate; + } + + public void setFinishDate(Date finishDate) { + this.finishDate = finishDate; + } + + } Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java =================================================================== diff -u -r3d9ac24ccaeaccd16a79fcb948cc6191a570b306 -r15e70deb1c79e4c3098eb11b84287bb31c8f64c9 --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java (.../GradebookService.java) (revision 3d9ac24ccaeaccd16a79fcb948cc6191a570b306) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java (.../GradebookService.java) (revision 15e70deb1c79e4c3098eb11b84287bb31c8f64c9) @@ -23,7 +23,6 @@ package org.lamsfoundation.lams.gradebook.service; -import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collection; @@ -35,14 +34,12 @@ import java.util.LinkedHashSet; import java.util.LinkedList; import java.util.List; -import java.util.Locale; import java.util.Map; import java.util.Set; import java.util.TimeZone; import java.util.TreeSet; import org.apache.commons.lang.StringEscapeUtils; -import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.lamsfoundation.lams.dao.IBaseDAO; import org.lamsfoundation.lams.gradebook.GradebookUserActivity; @@ -128,7 +125,7 @@ @Override - public List getGBActivityRowsForLearner(Long lessonId, Integer userId) { + public List getGBActivityRowsForLearner(Long lessonId, Integer userId, TimeZone userTimezone) { GradebookService.logger.debug("Getting gradebook user data for lesson: " + lessonId + ". For user: " + userId); Lesson lesson = lessonService.getLesson(lessonId); @@ -163,7 +160,8 @@ LearnerProgress learnerProgress = lessonService.getUserProgressForLesson(learner.getUserId(), lesson.getLessonId()); // Setting status - activityDTO.setStartDate(getActivityStartDate(learnerProgress, activity, learner.getTimeZone())); + activityDTO.setStartDate(getActivityStartDate(learnerProgress, activity, userTimezone)); + activityDTO.setFinishDate(getActivityFinishDate(learnerProgress, activity, userTimezone)); activityDTO.setTimeTaken(getActivityDuration(learnerProgress, activity)); activityDTO.setStatus(getActivityStatusStr(learnerProgress, activity)); @@ -192,7 +190,7 @@ @Override @SuppressWarnings("unchecked") - public List getGBActivityRowsForLesson(Long lessonId) { + public List getGBActivityRowsForLesson(Long lessonId, TimeZone userTimezone) { GradebookService.logger.debug("Getting gradebook data for lesson: " + lessonId); Lesson lesson = lessonService.getLesson(lessonId); @@ -226,7 +224,7 @@ @Override @SuppressWarnings("unchecked") public List getGBUserRowsForActivity(Lesson lesson, ToolActivity activity, Long groupId, int page, - int size, String sortBy, String sortOrder, String searchString) { + int size, String sortBy, String sortOrder, String searchString, TimeZone timezone) { Long lessonId = lesson.getLessonId(); Long activityId = activity.getActivityId(); @@ -273,6 +271,8 @@ LearnerProgress learnerProgress = userToLearnerProgressMap.get(learner.getUserId()); gUserDTO.setStatus(getActivityStatusStr(learnerProgress, activity)); gUserDTO.setTimeTaken(getActivityDuration(learnerProgress, activity)); + gUserDTO.setStartDate(getActivityStartDate(learnerProgress, activity, timezone)); + gUserDTO.setFinishDate(getActivityFinishDate(learnerProgress, activity, timezone)); // Get the tool outputs for this user if there are any ToolSession toolSession = toolService.getToolSessionByLearner(learner, activity); @@ -302,14 +302,14 @@ } @Override - public ArrayList getGBUserRowsForLesson(Lesson lesson) { - return getGBUserRowsForLesson(lesson, 0, 0, null, null, null); + public ArrayList getGBUserRowsForLesson(Lesson lesson, TimeZone timeZone) { + return getGBUserRowsForLesson(lesson, 0, 0, null, null, null, timeZone); } @Override @SuppressWarnings("unchecked") public ArrayList getGBUserRowsForLesson(Lesson lesson, int page, int size, String sortBy, - String sortOrder, String searchString) { + String sortOrder, String searchString, TimeZone userTimeZone) { ArrayList gradebookUserDTOs = new ArrayList(); @@ -347,10 +347,25 @@ // calculate time taken if (learnerProgress != null) { - if ((learnerProgress.getStartDate() != null) && (learnerProgress.getFinishDate() != null)) { - gradebookUserDTO.setTimeTaken( - learnerProgress.getFinishDate().getTime() - learnerProgress.getStartDate().getTime()); + Date startDate = learnerProgress.getStartDate(); + Date finishDate = learnerProgress.getFinishDate(); + + if (startDate != null && finishDate != null) { + gradebookUserDTO.setTimeTaken(finishDate.getTime() - startDate.getTime()); } + + if ( startDate != null ) { + if ( userTimeZone != null ) + startDate = DateUtil.convertToTimeZoneFromDefault(userTimeZone, startDate); + gradebookUserDTO.setStartDate(startDate); + } + + if ( learnerProgress.getFinishDate() != null ) { + if ( userTimeZone != null ) + finishDate = DateUtil.convertToTimeZoneFromDefault(userTimeZone, finishDate); + gradebookUserDTO.setFinishDate(finishDate); + } + } GradebookUserLesson gradebookUserLesson = userToGradebookUserLessonMap.get(learner.getUserId()); @@ -648,7 +663,7 @@ @Override @SuppressWarnings("unchecked") public List getGBLessonRows(Organisation organisation, User user, User viewer, GBGridView view, - int page, int size, String sortBy, String sortOrder, String searchString) { + int page, int size, String sortBy, String sortOrder, String searchString, TimeZone userTimeZone) { List lessonRows = new ArrayList(); Integer userId = user.getUserId(); Integer orgId = organisation.getOrganisationId(); @@ -690,6 +705,15 @@ String gbMonURL = Configuration.get(ConfigurationKeys.SERVER_URL) + "gradebook/gradebookMonitoring.do?lessonID=" + lesson.getLessonId().toString(); lessonRow.setGradebookMonitorURL(gbMonURL); + + Date startDate = lesson.getStartDateTime(); + if ( startDate != null ) { + if ( userTimeZone != null ) + startDate = DateUtil.convertToTimeZoneFromDefault(userTimeZone, startDate); + lessonRow.setStartDate(startDate); + } + + } else if ((view == GBGridView.LRN_COURSE) || (view == GBGridView.MON_USER)) { GradebookUserLesson gbLesson = gradebookDAO.getGradebookUserDataForLesson(lesson.getLessonId(), @@ -707,12 +731,24 @@ lesson.getLessonId()); lessonRow.setStatus(getLessonStatusStr(learnerProgress)); if (learnerProgress != null) { - if ((learnerProgress.getStartDate() != null) && (learnerProgress.getFinishDate() != null)) { - lessonRow.setTimeTaken(learnerProgress.getFinishDate().getTime() - - learnerProgress.getStartDate().getTime()); + Date startDate = learnerProgress.getStartDate(); + Date finishDate = learnerProgress.getFinishDate(); + + if (startDate != null && finishDate != null) { + lessonRow.setTimeTaken(finishDate.getTime() - startDate.getTime()); } - lessonRow.setFinishDate(getLocaleDateString(user, learnerProgress.getFinishDate())); + if ( startDate != null ) { + if ( userTimeZone != null ) + startDate = DateUtil.convertToTimeZoneFromDefault(userTimeZone, startDate); + lessonRow.setStartDate(startDate); + } + + if ( learnerProgress.getFinishDate() != null ) { + if ( userTimeZone != null ) + finishDate = DateUtil.convertToTimeZoneFromDefault(userTimeZone, finishDate); + lessonRow.setFinishDate(finishDate); + } } } @@ -722,8 +758,6 @@ lessonRow.setSubGroup(""); } - lessonRow.setStartDate(getLocaleDateString(viewer, lesson.getStartDateTime())); - } } @@ -843,7 +877,7 @@ rowList.add(GradebookService.EMPTY_ROW); // Adding the activity average data to the summary - List activityRows = getGBActivityRowsForLesson(lesson.getLessonId()); + List activityRows = getGBActivityRowsForLesson(lesson.getLessonId(), null); ExcelCell[] activityAverageTitle = new ExcelCell[1]; activityAverageTitle[0] = new ExcelCell(getMessage("gradebook.export.activities"), true); rowList.add(activityAverageTitle); @@ -875,7 +909,7 @@ rowList.add(userMarksTitle); // Fetching the user data - ArrayList userRows = getGBUserRowsForLesson(lesson); + ArrayList userRows = getGBUserRowsForLesson(lesson, null); // Setting up the user marks table ExcelCell[] userTitleRow = new ExcelCell[6]; @@ -1498,23 +1532,24 @@ } } } - /** - * Gets the internationalised date - * - * @param user - * @param date - * @return - */ - private String getLocaleDateString(User user, Date date) { - if ((user == null) || (date == null)) { - return null; - } + // TODO Remove +// /** +// * Gets the internationalised date +// * +// * @param user +// * @param date +// * @return +// */ +// private String getLocaleDateString(User user, Date date) { +// if ((user == null) || (date == null)) { +// return null; +// } +// +// Locale locale = new Locale(user.getLocale().getLanguageIsoCode(), user.getLocale().getCountryIsoCode()); +// String dateStr = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM, locale).format(date); +// return dateStr; +// } - Locale locale = new Locale(user.getLocale().getLanguageIsoCode(), user.getLocale().getCountryIsoCode()); - String dateStr = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM, locale).format(date); - return dateStr; - } - /** * Returns progress status as text message. * @@ -1600,7 +1635,7 @@ * @param timeZone * @return */ - private Date getActivityStartDate(LearnerProgress learnerProgress, Activity activity, String timeZone) { + private Date getActivityStartDate(LearnerProgress learnerProgress, Activity activity, TimeZone timeZone) { Date startDate = null; if (learnerProgress != null) { startDate = learnerProgress.getAttemptedActivities().get(activity); @@ -1613,28 +1648,27 @@ } if (startDate != null) { - if (StringUtils.isBlank(timeZone)) { + if (timeZone == null) { GradebookService.logger.warn("No user time zone provided, leaving server default"); } else { if (GradebookService.logger.isTraceEnabled()) { GradebookService.logger.trace("Adjusting time according to zone \"" + timeZone + "\""); } - TimeZone userTimeZone = TimeZone.getTimeZone(timeZone); - startDate = DateUtil.convertToTimeZoneFromDefault(userTimeZone, startDate); + startDate = DateUtil.convertToTimeZoneFromDefault(timeZone, startDate); } } return startDate; } /** - * Gets completed activity finish time ajusted to monitor time zone. + * Gets completed activity finish time adjusted to monitor time zone. * * @param learnerProgress * @param activity * @param timeZone * @return */ - private Date getActivityFinishDate(LearnerProgress learnerProgress, Activity activity, String timeZone) { + private Date getActivityFinishDate(LearnerProgress learnerProgress, Activity activity, TimeZone timeZone) { Date finishDate = null; if (learnerProgress != null) { CompletedActivityProgress compProg = learnerProgress.getCompletedActivities().get(activity); @@ -1644,14 +1678,13 @@ } if (finishDate != null) { - if (StringUtils.isBlank(timeZone)) { + if (timeZone == null) { GradebookService.logger.warn("No user time zone provided, leaving server default"); } else { if (GradebookService.logger.isTraceEnabled()) { GradebookService.logger.trace("Adjusting time according to zone \"" + timeZone + "\""); } - TimeZone userTimeZone = TimeZone.getTimeZone(timeZone); - finishDate = DateUtil.convertToTimeZoneFromDefault(userTimeZone, finishDate); + finishDate = DateUtil.convertToTimeZoneFromDefault(timeZone, finishDate); } } return finishDate; Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/IGradebookService.java =================================================================== diff -u -rce9f4e0c6d1e5814bf0dcb0fa16ae888a8c854a3 -r15e70deb1c79e4c3098eb11b84287bb31c8f64c9 --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/IGradebookService.java (.../IGradebookService.java) (revision ce9f4e0c6d1e5814bf0dcb0fa16ae888a8c854a3) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/IGradebookService.java (.../IGradebookService.java) (revision 15e70deb1c79e4c3098eb11b84287bb31c8f64c9) @@ -26,6 +26,7 @@ import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; +import java.util.TimeZone; import org.lamsfoundation.lams.gradebook.GradebookUserActivity; import org.lamsfoundation.lams.gradebook.GradebookUserLesson; @@ -49,7 +50,7 @@ * @param lesson * @return */ - List getGBActivityRowsForLesson(Long lessonId); + List getGBActivityRowsForLesson(Long lessonId, TimeZone userTimezone); /** * Gets all the activity rows for a user, with the mark for the activity being the user's individual mark @@ -58,7 +59,7 @@ * @param learner * @return */ - List getGBActivityRowsForLearner(Long lessonId, Integer userId); + List getGBActivityRowsForLearner(Long lessonId, Integer userId, TimeZone userTimezone); /** * Gets the GBActivityDTO list for an activity, which provides the marks for all users in an activity @@ -69,15 +70,15 @@ * @return */ List getGBUserRowsForActivity(Lesson lesson, ToolActivity activity, Long groupId, int page, - int size, String sortBy, String sortOrder, String searchString); + int size, String sortBy, String sortOrder, String searchString, TimeZone userTimezone); /** * Gets the user rows and the user's entire lesson mark for all users in a lesson * * @param lesson * @return */ - List getGBUserRowsForLesson(Lesson lesson); + List getGBUserRowsForLesson(Lesson lesson, TimeZone userTimezone); /** * Gets the user rows containing only users' names. Do proper paging on DB side. @@ -90,7 +91,7 @@ * @return */ List getGBUserRowsForLesson(Lesson lesson, int page, int size, String sortBy, String sortOrder, - String searchString); + String searchString, TimeZone userTimezone); // /** // * Gets the user rows containing only users' names. Do proper paging on DB side. @@ -194,7 +195,7 @@ * @return */ List getGBLessonRows(Organisation organisation, User user, User viewer, GBGridView view, - int page, int size, String sortBy, String sortOrder, String searchString); + int page, int size, String sortBy, String sortOrder, String searchString, TimeZone userTimeZone); /** * Gets a gradebook lesson mark/feedback for a given user and lesson Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/web/action/GradebookAction.java =================================================================== diff -u -r506e82d55455419723f11c0a8f99270b39f04055 -r15e70deb1c79e4c3098eb11b84287bb31c8f64c9 --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/web/action/GradebookAction.java (.../GradebookAction.java) (revision 506e82d55455419723f11c0a8f99270b39f04055) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/web/action/GradebookAction.java (.../GradebookAction.java) (revision 15e70deb1c79e4c3098eb11b84287bb31c8f64c9) @@ -110,7 +110,7 @@ String searchOper = WebUtil.readStrParam(request, GradebookConstants.PARAM_SEARCH_OPERATION, true); String searchString = WebUtil.readStrParam(request, GradebookConstants.PARAM_SEARCH_STRING, true); GBGridView view = GradebookUtil.readGBGridViewParam(request, GradebookConstants.PARAM_VIEW, false); - + Long lessonID = WebUtil.readLongParam(request, AttributeNames.PARAM_LESSON_ID); if (!getSecurityService().isLessonParticipant(lessonID, getUser().getUserID(), "get activity gradebook data", false)) { @@ -119,13 +119,13 @@ } // Getting userID param, it is passed differently from different views + UserDTO currentUserDTO = getUser(); Integer userID = null; if (view == GBGridView.MON_USER) { userID = WebUtil.readIntParam(request, GradebookConstants.PARAM_USERID); } else if (view == GBGridView.LRN_ACTIVITY) { - UserDTO userDTO = getUser(); - if (userDTO != null) { - userID = userDTO.getUserID(); + if (currentUserDTO != null) { + userID = currentUserDTO.getUserID(); } } @@ -134,9 +134,9 @@ // Get the user gradebook list from the db // A slightly different list is needed for userview or activity view if ((view == GBGridView.MON_USER) || (view == GBGridView.LRN_ACTIVITY)) {//2nd level && from personal marks page (2nd level or 1st) - gradebookActivityDTOs = getGradebookService().getGBActivityRowsForLearner(lessonID, userID); + gradebookActivityDTOs = getGradebookService().getGBActivityRowsForLearner(lessonID, userID, currentUserDTO.getTimeZone()); } else if (view == GBGridView.MON_ACTIVITY) { - gradebookActivityDTOs = getGradebookService().getGBActivityRowsForLesson(lessonID); + gradebookActivityDTOs = getGradebookService().getGBActivityRowsForLesson(lessonID, currentUserDTO.getTimeZone()); } if ((sortBy == null) || sortBy.equals("")) { @@ -203,7 +203,7 @@ //GBGridView.MON_COURSE - Subgrid of 1st table of gradebook course monitor if (view == GBGridView.MON_USER || view == GBGridView.MON_COURSE) { gradebookUserDTOs = getGradebookService().getGBUserRowsForLesson(lesson, page - 1, rowLimit, sortBy, - sortOrder, searchString); + sortOrder, searchString, user.getTimeZone()); totalUsers = lesson.getAllLearners().size(); // Subgrid of 2nd table of gradebook lesson monitor @@ -226,7 +226,7 @@ Activity activity = getGradebookService().getActivityById(activityID); if ((activity != null) && (activity instanceof ToolActivity)) { gradebookUserDTOs = getGradebookService().getGBUserRowsForActivity(lesson, (ToolActivity) activity, - groupId, page - 1, rowLimit, sortBy, sortOrder, searchString); + groupId, page - 1, rowLimit, sortBy, sortOrder, searchString, user.getTimeZone()); //calculate totalUsers totalUsers = lesson.getAllLearners().size(); @@ -367,7 +367,7 @@ return null; } List gradebookLessonDTOs = getGradebookService().getGBLessonRows(organisation, user, viewer, - view, page - 1, rowLimit, sortBy, sortOrder, searchString); + view, page - 1, rowLimit, sortBy, sortOrder, searchString, getUser().getTimeZone()); String ret; if (view == GBGridView.MON_COURSE || view == GBGridView.LIST) { Index: lams_gradebook/web/gradebookCourseMonitor.jsp =================================================================== diff -u -r7d364252379e9c254844c9b39788519bea03de24 -r15e70deb1c79e4c3098eb11b84287bb31c8f64c9 --- lams_gradebook/web/gradebookCourseMonitor.jsp (.../gradebookCourseMonitor.jsp) (revision 7d364252379e9c254844c9b39788519bea03de24) +++ lams_gradebook/web/gradebookCourseMonitor.jsp (.../gradebookCourseMonitor.jsp) (revision 15e70deb1c79e4c3098eb11b84287bb31c8f64c9) @@ -20,6 +20,41 @@