Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GBActivityGridRowDTO.java
===================================================================
diff -u -r2bbb1206137d5ff2a03d6d08101e4617d0fe02eb -r12673718843ca7b082dee1c8a42e73f5fc6c805a
--- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GBActivityGridRowDTO.java (.../GBActivityGridRowDTO.java) (revision 2bbb1206137d5ff2a03d6d08101e4617d0fe02eb)
+++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GBActivityGridRowDTO.java (.../GBActivityGridRowDTO.java) (revision 12673718843ca7b082dee1c8a42e73f5fc6c805a)
@@ -46,7 +46,16 @@
// Properties for activity view
String monitorUrl;
+ Long groupId;
+ public Long getGroupId() {
+ return groupId;
+ }
+
+ public void setGroupId(Long groupId) {
+ this.groupId = groupId;
+ }
+
public GBActivityGridRowDTO() {
}
@@ -71,7 +80,8 @@
ret.add((mark != null) ? mark.toString() : CELL_EMPTY);
} else if (view == GBGridView.MON_ACTIVITY) {
-
+
+ ret.add(groupId != null ? groupId.toString() : "");
if (monitorUrl != null && monitorUrl.length() != 0) {
ret.add(""
+ rowName + "");
Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GradebookGridRowDTO.java
===================================================================
diff -u -re074865bde063cd3ac9e531a90857d07de9d121c -r12673718843ca7b082dee1c8a42e73f5fc6c805a
--- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GradebookGridRowDTO.java (.../GradebookGridRowDTO.java) (revision e074865bde063cd3ac9e531a90857d07de9d121c)
+++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GradebookGridRowDTO.java (.../GradebookGridRowDTO.java) (revision 12673718843ca7b082dee1c8a42e73f5fc6c805a)
@@ -34,7 +34,7 @@
public static final String CELL_EMPTY = "-";
// The id for a row, might be activityId, userId, lessonID etc
- public Long id;
+ public String id;
// The name for the row, every gradebook row has some sort of name
// Be it the user's name, the activity name, the lesson name etc
@@ -101,11 +101,11 @@
this.mark = mark;
}
- public Long getId() {
+ public String getId() {
return id;
}
- public void setId(Long id) {
+ public void setId(String id) {
this.id = id;
}
Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/comparators/GBIDComparator.java
===================================================================
diff -u -re074865bde063cd3ac9e531a90857d07de9d121c -r12673718843ca7b082dee1c8a42e73f5fc6c805a
--- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/comparators/GBIDComparator.java (.../GBIDComparator.java) (revision e074865bde063cd3ac9e531a90857d07de9d121c)
+++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/comparators/GBIDComparator.java (.../GBIDComparator.java) (revision 12673718843ca7b082dee1c8a42e73f5fc6c805a)
@@ -33,8 +33,14 @@
if (gradebookRow instanceof GradebookGridRowDTO && anotherGradebookRow instanceof GradebookGridRowDTO) {
- Long id1 = ((GradebookGridRowDTO) gradebookRow).getId();
- Long id2 = ((GradebookGridRowDTO) anotherGradebookRow).getId();
+ Long id1;
+ Long id2;
+ try {
+ id1 = Long.parseLong(((GradebookGridRowDTO) gradebookRow).getId());
+ id2 = Long.parseLong(((GradebookGridRowDTO) anotherGradebookRow).getId());
+ } catch (NumberFormatException e) {
+ return 0;
+ }
if (id1 == null || id2 == null) {
return 0;
Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/comparators/GBStartDateComparator.java
===================================================================
diff -u -r2bbb1206137d5ff2a03d6d08101e4617d0fe02eb -r12673718843ca7b082dee1c8a42e73f5fc6c805a
--- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/comparators/GBStartDateComparator.java (.../GBStartDateComparator.java) (revision 2bbb1206137d5ff2a03d6d08101e4617d0fe02eb)
+++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/comparators/GBStartDateComparator.java (.../GBStartDateComparator.java) (revision 12673718843ca7b082dee1c8a42e73f5fc6c805a)
@@ -27,6 +27,7 @@
import java.util.Date;
import org.lamsfoundation.lams.gradebook.dto.GBActivityGridRowDTO;
+import org.lamsfoundation.lams.gradebook.dto.GradebookGridRowDTO;
@SuppressWarnings("unchecked")
public class GBStartDateComparator implements Comparator {
@@ -36,10 +37,18 @@
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) {
+
+ Long id1 = null;
+ Long id2 = null;
+
+ try {
+ id1 = Long.parseLong(((GradebookGridRowDTO) actGridRow).getId());
+ id2 = Long.parseLong(((GradebookGridRowDTO) anotherActGridRow).getId());
+ } catch (NumberFormatException e) {
+ return 0;
+ }
+
if (id1 == null || id2 == null) {
return 0;
}
Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java
===================================================================
diff -u -r2bbb1206137d5ff2a03d6d08101e4617d0fe02eb -r12673718843ca7b082dee1c8a42e73f5fc6c805a
--- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java (.../GradebookService.java) (revision 2bbb1206137d5ff2a03d6d08101e4617d0fe02eb)
+++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java (.../GradebookService.java) (revision 12673718843ca7b082dee1c8a42e73f5fc6c805a)
@@ -45,6 +45,8 @@
import org.lamsfoundation.lams.gradebook.util.GBGridView;
import org.lamsfoundation.lams.learningdesign.Activity;
import org.lamsfoundation.lams.learningdesign.CompetenceMapping;
+import org.lamsfoundation.lams.learningdesign.Group;
+import org.lamsfoundation.lams.learningdesign.Grouping;
import org.lamsfoundation.lams.learningdesign.ToolActivity;
import org.lamsfoundation.lams.lesson.CompletedActivityProgress;
import org.lamsfoundation.lams.lesson.LearnerProgress;
@@ -156,15 +158,46 @@
.getActivityId());
if (firstActivity.isToolActivity() && firstActivity instanceof ToolActivity) {
- GBActivityGridRowDTO activityDTO = getGradebookActivityDTO((ToolActivity) firstActivity, lesson);
- gradebookActivityDTOs.add(activityDTO);
+ Grouping grouping = firstActivity.getGrouping();
+ if (grouping != null) {
+ Set groups = (Set) grouping.getGroups();
+ if (groups != null) {
+
+ for (Group group : groups) {
+ GBActivityGridRowDTO activityDTO = getGradebookActivityDTO((ToolActivity) firstActivity,
+ lesson, group.getGroupName(), group.getGroupId());
+ gradebookActivityDTOs.add(activityDTO);
+ }
+
+ }
+ } else {
+ GBActivityGridRowDTO activityDTO = getGradebookActivityDTO((ToolActivity) firstActivity, lesson, null,
+ null);
+ gradebookActivityDTOs.add(activityDTO);
+ }
}
for (Activity activity : activities) {
if (activity.getActivityId().longValue() != firstActivity.getActivityId().longValue()
&& activity instanceof ToolActivity) {
- GBActivityGridRowDTO activityDTO = getGradebookActivityDTO((ToolActivity) activity, lesson);
- gradebookActivityDTOs.add(activityDTO);
+
+ Grouping grouping = activity.getGrouping();
+ if (grouping != null) {
+ Set groups = (Set) grouping.getGroups();
+ if (groups != null) {
+
+ for (Group group : groups) {
+ GBActivityGridRowDTO activityDTO = getGradebookActivityDTO((ToolActivity) activity, lesson,
+ group.getGroupName(), group.getGroupId());
+ gradebookActivityDTOs.add(activityDTO);
+ }
+
+ }
+ } else {
+ GBActivityGridRowDTO activityDTO = getGradebookActivityDTO((ToolActivity) activity, lesson, null,
+ null);
+ gradebookActivityDTOs.add(activityDTO);
+ }
}
}
@@ -177,17 +210,27 @@
* org.lamsfoundation.lams.learningdesign.Activity)
*/
@SuppressWarnings("unchecked")
- public List getGBUserRowsForActivity(Lesson lesson, ToolActivity activity) {
+ public List getGBUserRowsForActivity(Lesson lesson, ToolActivity activity, Long groupId) {
List gradebookUserDTOs = new ArrayList();
- Set learners = (Set) lesson.getAllLearners();
+ Set learners = null;
+ if (groupId != null) {
+ Group group = (Group) userService.findById(Group.class, groupId);
+ if (group != null) {
+ learners = (Set) group.getUsers();
+ } else {
+ learners = (Set) lesson.getAllLearners();
+ }
+ } else {
+ learners = (Set) lesson.getAllLearners();
+ }
if (learners != null) {
for (User learner : learners) {
GBUserGridRowDTO gUserDTO = new GBUserGridRowDTO();
gUserDTO.setRowName(learner.getLastName() + " " + learner.getFirstName());
- gUserDTO.setId(new Long(learner.getUserId()));
+ gUserDTO.setId(learner.getUserId().toString());
GradebookUserActivity gradebookUserActivity = gradebookDAO.getGradebookUserDataForActivity(activity
.getActivityId(), learner.getUserId());
@@ -242,7 +285,7 @@
for (User learner : learners) {
GBUserGridRowDTO gradebookUserDTO = new GBUserGridRowDTO();
- gradebookUserDTO.setId(new Long(learner.getUserId()));
+ gradebookUserDTO.setId(learner.getUserId().toString());
gradebookUserDTO.setRowName(learner.getLastName() + " " + learner.getFirstName());
// Setting the status and time taken for the user's lesson
@@ -374,13 +417,13 @@
if (!(view == GBGridView.MON_COURSE
&& (lesson.getLessonClass().isStaffMember(user) || userService.isUserInRole(user
.getUserId(), organisation.getOrganisationId(), Role.GROUP_MANAGER)) || view == GBGridView.LRN_COURSE
- && lesson.getAllLearners().contains(user))) {
+ && lesson.getAllLearners().contains(user) && lesson.getMarksReleased())) {
continue;
}
GBLessonGridRowDTO lessonRow = new GBLessonGridRowDTO();
lessonRow.setLessonName(lesson.getLessonName());
- lessonRow.setId(lesson.getLessonId());
+ lessonRow.setId(lesson.getLessonId().toString());
lessonRow.setStartDate(getLocaleDateString(user, lesson.getStartDateTime()));
if (view == GBGridView.MON_COURSE) {
@@ -466,15 +509,32 @@
* @param lesson
* @return
*/
- private GBActivityGridRowDTO getGradebookActivityDTO(ToolActivity activity, Lesson lesson) {
+ private GBActivityGridRowDTO getGradebookActivityDTO(ToolActivity activity, Lesson lesson, String groupName,
+ Long groupId) {
+
GBActivityGridRowDTO gactivityDTO = new GBActivityGridRowDTO();
- gactivityDTO.setId(activity.getActivityId());
+ gactivityDTO.setId(activity.getActivityId().toString());
+
+ // Setting name
+ // If grouped acitivty, append group name
gactivityDTO.setRowName(activity.getTitle());
+ if (groupName != null && groupId != null) {
+ gactivityDTO.setGroupId(groupId);
+ gactivityDTO.setRowName(activity.getTitle() + " (" + groupName + ")");
+
+ // Need to make the id unique, so appending the group id for this row
+ gactivityDTO.setId(activity.getActivityId().toString() + "_" + groupId.toString());
+
+ // Setting averages for group
+ gactivityDTO.setAverageMark(gradebookDAO.getAverageMarkForGroupedActivity(activity.getActivityId(), groupId));
+ gactivityDTO.setAverageTimeTaken(gradebookDAO.getAverageDurationForGroupedActivity(activity.getActivityId(), groupId));
+
+ } else {
+ // Setting averages for lesson
+ gactivityDTO.setAverageMark(gradebookDAO.getAverageMarkForActivity(activity.getActivityId()));
+ gactivityDTO.setAverageTimeTaken(gradebookDAO.getAverageDurationForActivity(activity.getActivityId()));
+ }
- // Setting averages
- gactivityDTO.setAverageMark(gradebookDAO.getAverageMarkForActivity(activity.getActivityId()));
- gactivityDTO.setAverageTimeTaken(gradebookDAO.getAverageDurationForActivity(activity.getActivityId()));
-
String monitorUrl = Configuration.get(ConfigurationKeys.SERVER_URL) + activity.getTool().getMonitorUrl() + "?"
+ AttributeNames.PARAM_CONTENT_FOLDER_ID + "=" + lesson.getLearningDesign().getContentFolderID() + "&"
+ AttributeNames.PARAM_TOOL_CONTENT_ID + "=" + activity.getToolContentId();
@@ -513,8 +573,17 @@
+ learner.getUserId());
GBActivityGridRowDTO gactivityDTO = new GBActivityGridRowDTO();
- gactivityDTO.setId(activity.getActivityId());
+ gactivityDTO.setId(activity.getActivityId().toString());
+
+ // Set the title
+ // If it is a grouped activity, and the user has a group get the group title as well
gactivityDTO.setRowName(activity.getTitle());
+ if (activity.getGrouping() != null) {
+ Group group = activity.getGroupFor(learner);
+ if (group != null) {
+ gactivityDTO.setRowName(activity.getTitle() + " (" + group.getGroupName() + ")");
+ }
+ }
GradebookUserActivity gradebookActivity = gradebookDAO.getGradebookUserDataForActivity(
activity.getActivityId(), learner.getUserId());
@@ -557,10 +626,10 @@
+ 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 {
+ } else {
gactivityDTO.setStartDate(learnerProgress.getCompletedActivities().get(activity).getStartDate());
}
}
Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/IGradebookService.java
===================================================================
diff -u -re074865bde063cd3ac9e531a90857d07de9d121c -r12673718843ca7b082dee1c8a42e73f5fc6c805a
--- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/IGradebookService.java (.../IGradebookService.java) (revision e074865bde063cd3ac9e531a90857d07de9d121c)
+++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/IGradebookService.java (.../IGradebookService.java) (revision 12673718843ca7b082dee1c8a42e73f5fc6c805a)
@@ -64,9 +64,10 @@
*
* @param lesson
* @param activity
+ * @param groupId
* @return
*/
- public List getGBUserRowsForActivity(Lesson lesson, ToolActivity activity);
+ public List getGBUserRowsForActivity(Lesson lesson, ToolActivity activity, Long groupId);
/**
* Gets the user rows and the user's entire lesson mark for all users
Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/util/GradebookConstants.java
===================================================================
diff -u -r2bbb1206137d5ff2a03d6d08101e4617d0fe02eb -r12673718843ca7b082dee1c8a42e73f5fc6c805a
--- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/util/GradebookConstants.java (.../GradebookConstants.java) (revision 2bbb1206137d5ff2a03d6d08101e4617d0fe02eb)
+++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/util/GradebookConstants.java (.../GradebookConstants.java) (revision 12673718843ca7b082dee1c8a42e73f5fc6c805a)
@@ -53,6 +53,7 @@
public static final String PARAM_AVG_MARK = "avgMark";
public static final String PARAM_VIEW = "view";
public static final String PARAM_START_DATE = "startDate";
+ public static final String PARAM_GROUP_ID = "groupId";
// Sort
public static final String SORT_DESC = "desc";
Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/web/action/GradebookAction.java
===================================================================
diff -u -r2bbb1206137d5ff2a03d6d08101e4617d0fe02eb -r12673718843ca7b082dee1c8a42e73f5fc6c805a
--- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/web/action/GradebookAction.java (.../GradebookAction.java) (revision 2bbb1206137d5ff2a03d6d08101e4617d0fe02eb)
+++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/web/action/GradebookAction.java (.../GradebookAction.java) (revision 12673718843ca7b082dee1c8a42e73f5fc6c805a)
@@ -44,6 +44,7 @@
import org.lamsfoundation.lams.gradebook.util.GradebookConstants;
import org.lamsfoundation.lams.gradebook.util.GradebookUtil;
import org.lamsfoundation.lams.learningdesign.Activity;
+import org.lamsfoundation.lams.learningdesign.Group;
import org.lamsfoundation.lams.learningdesign.ToolActivity;
import org.lamsfoundation.lams.lesson.Lesson;
import org.lamsfoundation.lams.lesson.service.ILessonService;
@@ -221,11 +222,24 @@
if (view == GBGridView.MON_USER || view == GBGridView.MON_COURSE) {
gradebookUserDTOs = gradebookService.getGBUserRowsForLesson(lesson);
} else if (view == GBGridView.MON_ACTIVITY) {
- Long activityID = WebUtil.readLongParam(request, AttributeNames.PARAM_ACTIVITY_ID);
-
+ String rowID = WebUtil.readStrParam(request, AttributeNames.PARAM_ACTIVITY_ID);
+
+ Long activityID = null;
+
+ // Splitting the rowID param to get the activity/group id pair
+ String[] split = rowID.split("_");
+ if (split.length == 2) {
+ activityID = Long.parseLong(split[0]);
+ } else {
+ activityID = Long.parseLong(rowID);
+ }
+
+ // Getting the group id if it is there
+ Long groupId = WebUtil.readLongParam(request, GradebookConstants.PARAM_GROUP_ID, true);
+
Activity activity = monitoringService.getActivityById(activityID);
if (activity != null && activity instanceof ToolActivity) {
- gradebookUserDTOs = gradebookService.getGBUserRowsForActivity(lesson, (ToolActivity)activity);
+ gradebookUserDTOs = gradebookService.getGBUserRowsForActivity(lesson, (ToolActivity)activity, groupId);
} else {
// return null and the grid will report an error
logger.error("No activity found for: " + activityID);
Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/web/action/GradebookMonitoringAction.java
===================================================================
diff -u -re074865bde063cd3ac9e531a90857d07de9d121c -r12673718843ca7b082dee1c8a42e73f5fc6c805a
--- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/web/action/GradebookMonitoringAction.java (.../GradebookMonitoringAction.java) (revision e074865bde063cd3ac9e531a90857d07de9d121c)
+++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/web/action/GradebookMonitoringAction.java (.../GradebookMonitoringAction.java) (revision 12673718843ca7b082dee1c8a42e73f5fc6c805a)
@@ -63,8 +63,7 @@
* @struts.action path="/gradebookMonitoring" parameter="dispatch"
* scope="request" name="monitoringForm" validate="false"
*
- * @struts:action-forward name="monitorgradebook"
- * path="/gradebookMonitor.jsp"
+ * @struts:action-forward name="monitorgradebook" path="/gradebookMonitor.jsp"
* @struts:action-forward name="monitorcoursegradebook"
* path="/gradebookCourseMonitor.jsp"
* @struts:action-forward name="error" path=".error"
@@ -108,6 +107,8 @@
LessonDetailsDTO lessonDetatilsDTO = lesson.getLessonDetails();
request.setAttribute("lessonDetails", lessonDetatilsDTO);
+ request.setAttribute("marksReleased", lesson.getMarksReleased());
+
return mapping.findForward("monitorgradebook");
}
@@ -116,23 +117,23 @@
return mapping.findForward("error");
}
}
-
+
@SuppressWarnings("unchecked")
public ActionForward courseMonitor(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
try {
initServices();
Integer oranisationID = WebUtil.readIntParam(request, AttributeNames.PARAM_ORGANISATION_ID);
-
+
logger.debug("request monitorGradebook for organisation: " + oranisationID.toString());
UserDTO user = getUser();
if (user == null) {
logger.error("User missing from session. ");
return mapping.findForward("error");
} else {
-
- Organisation organisation = (Organisation)userService.findById(Organisation.class, oranisationID);
+
+ Organisation organisation = (Organisation) userService.findById(Organisation.class, oranisationID);
if (organisation == null) {
logger.error("Organisation " + oranisationID + " does not exist. Unable to load gradebook");
return mapping.findForward("error");
@@ -146,17 +147,17 @@
}
logger.debug("user is staff");
-
+
request.setAttribute("organisationID", oranisationID);
request.setAttribute("organisationName", organisation.getName());
-
+
return mapping.findForward("monitorcoursegradebook");
}
} catch (Exception e) {
logger.error("Failed to load gradebook monitor", e);
return mapping.findForward("error");
}
- }
+ }
/**
* Updates a user's mark or feedback for an entire lesson
@@ -174,17 +175,17 @@
Long lessonID = WebUtil.readLongParam(request, AttributeNames.PARAM_LESSON_ID);
Integer userID = WebUtil.readIntParam(request, GradebookConstants.PARAM_ID);
String markStr = WebUtil.readStrParam(request, GradebookConstants.PARAM_MARK, true);
- String feedback = WebUtil.readStrParam(request, GradebookConstants.PARAM_FEEDBACK, true);
+ String feedback = WebUtil.readStrParam(request, GradebookConstants.PARAM_FEEDBACK, true);
Lesson lesson = lessonService.getLesson(lessonID);
- User learner = (User)userService.findById(User.class, userID);
+ User learner = (User) userService.findById(User.class, userID);
if (lesson != null || learner != null) {
-
+
if (markStr != null && !markStr.equals("")) {
Double mark = Double.parseDouble(markStr);
gradebookService.updateUserLessonGradebookMark(lesson, learner, mark);
}
-
+
if (feedback != null) {
gradebookService.updateUserLessonGradebookFeedback(lesson, learner, feedback);
}
@@ -196,8 +197,8 @@
}
/**
- * Updates a user's mark or feedback for an activity,
- * then aggregates their total lesson mark
+ * Updates a user's mark or feedback for an activity, then aggregates their
+ * total lesson mark
*
* @param mapping
* @param form
@@ -210,46 +211,80 @@
HttpServletRequest request, HttpServletResponse response) throws Exception {
initServices();
Long lessonID = WebUtil.readLongParam(request, AttributeNames.PARAM_LESSON_ID);
-
+
GBGridView view = GradebookUtil.readGBGridViewParam(request, GradebookConstants.PARAM_VIEW, false);
Long activityID = null;
Integer userID = null;
-
+
// Fetch the id based on which grid it came from
if (view == GBGridView.MON_ACTIVITY) {
- activityID = WebUtil.readLongParam(request, AttributeNames.PARAM_ACTIVITY_ID);
- userID = WebUtil.readIntParam(request, GradebookConstants.PARAM_ID);
+ String rowID = WebUtil.readStrParam(request, AttributeNames.PARAM_ACTIVITY_ID);
+ // Splitting the rowID param to get the activity/group id pair
+ String[] split = rowID.split("_");
+ if (split.length == 2) {
+ activityID = Long.parseLong(split[0]);
+ } else {
+ activityID = Long.parseLong(rowID);
+ }
+
+ userID = WebUtil.readIntParam(request, GradebookConstants.PARAM_ID);
+
} else if (view == GBGridView.MON_USER) {
activityID = WebUtil.readLongParam(request, GradebookConstants.PARAM_ID);
userID = WebUtil.readIntParam(request, GradebookConstants.PARAM_USERID);
}
String markStr = WebUtil.readStrParam(request, GradebookConstants.PARAM_MARK, true);
- String feedback = WebUtil.readStrParam(request, GradebookConstants.PARAM_FEEDBACK, true);
+ String feedback = WebUtil.readStrParam(request, GradebookConstants.PARAM_FEEDBACK, true);
Activity activity = monitoringService.getActivityById(activityID);
- User learner = (User)userService.findById(User.class, userID);
+ User learner = (User) userService.findById(User.class, userID);
Lesson lesson = lessonService.getLesson(lessonID);
if (lesson != null && activity != null && learner != null && activity.isToolActivity()) {
-
+
if (markStr != null && !markStr.equals("")) {
Double mark = Double.parseDouble(markStr);
gradebookService.updateUserActivityGradebookMark(lesson, learner, activity, mark);
}
-
+
if (feedback != null) {
gradebookService.updateUserActivityGradebookFeedback(activity, learner, feedback);
}
-
+
} else {
logger.error("Lesson or activity missing for lesson: " + lessonID + "and activity: " + activityID);
}
return null;
}
+
+ /**
+ * Toggles the release mark flag for a lesson
+ *
+ * @param mapping
+ * @param form
+ * @param request
+ * @param response
+ * @return
+ * @throws Exception
+ */
+ public ActionForward toggleReleaseMarks(ActionMapping mapping, ActionForm form,
+ HttpServletRequest request, HttpServletResponse response) throws Exception {
+ initServices();
+ Long lessonID = WebUtil.readLongParam(request, AttributeNames.PARAM_LESSON_ID);
+ Lesson lesson = lessonService.getLesson(lessonID);
+
+ lesson.setMarksReleased(!lesson.getMarksReleased());
+ userService.save(lesson);
+
+ response.setContentType("text/plain");
+ response.getWriter().write("success");
+ return null;
+ }
+
private UserDTO getUser() {
HttpSession ss = SessionManager.getSession();
return (UserDTO) ss.getAttribute(AttributeNames.USER);
@@ -270,7 +305,7 @@
getMonitoringServiceService();
getGradebookService();
}
-
+
private IUserManagementService getUserService() {
if (userService == null) {
WebApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(getServlet()
@@ -288,7 +323,7 @@
}
return lessonService;
}
-
+
private IMonitoringService getMonitoringServiceService() {
if (monitoringService == null) {
WebApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(getServlet()
@@ -297,7 +332,7 @@
}
return monitoringService;
}
-
+
private IGradebookService getGradebookService() {
if (gradebookService == null) {
WebApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(getServlet()
Index: lams_gradebook/web/gradebookCourseMonitor.jsp
===================================================================
diff -u -r824584ee2b82bea619fbe38b470de7cca15868ea -r12673718843ca7b082dee1c8a42e73f5fc6c805a
--- lams_gradebook/web/gradebookCourseMonitor.jsp (.../gradebookCourseMonitor.jsp) (revision 824584ee2b82bea619fbe38b470de7cca15868ea)
+++ lams_gradebook/web/gradebookCourseMonitor.jsp (.../gradebookCourseMonitor.jsp) (revision 12673718843ca7b082dee1c8a42e73f5fc6c805a)
@@ -74,7 +74,7 @@
'',
'',
'',
- '',
+ '',
''
],
colModel:[
Index: lams_gradebook/web/gradebookMonitor.jsp
===================================================================
diff -u -r2bbb1206137d5ff2a03d6d08101e4617d0fe02eb -r12673718843ca7b082dee1c8a42e73f5fc6c805a
--- lams_gradebook/web/gradebookMonitor.jsp (.../gradebookMonitor.jsp) (revision 2bbb1206137d5ff2a03d6d08101e4617d0fe02eb)
+++ lams_gradebook/web/gradebookMonitor.jsp (.../gradebookMonitor.jsp) (revision 12673718843ca7b082dee1c8a42e73f5fc6c805a)
@@ -11,12 +11,56 @@
+
+