Index: lams_gradebook/conf/language/lams/ApplicationResources.properties
===================================================================
diff -u -r625a1082501027cf4b35af4cebcf34178d0bec67 -ra9c5e4550ac78c7dde3dc3796d6cf8dc03d455e8
--- lams_gradebook/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 625a1082501027cf4b35af4cebcf34178d0bec67)
+++ lams_gradebook/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision a9c5e4550ac78c7dde3dc3796d6cf8dc03d455e8)
@@ -34,6 +34,7 @@
gradebook.monitor.releasemarks.3 = marks to learners
gradebook.monitor.releasemarks.check = Are you sure you want to release marks for this lesson to learners?
gradebook.monitor.releasemarks.check2 = Are you sure you want to hide marks from learners for this lesson?
+gradebook.monitor.releasemarks.toggle.panel.tooltip = Shows/hides a panel where learners can get notified of their marks for the this lesson.
error.releasemarks.fail = Mark release failed, please contact your system administrator.
error.markhigher = Mark must be lower than maximum mark.
error.cellsave = Problem saving cell content, please contact your system administrator.
Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/web/controller/GradebookMonitoringController.java
===================================================================
diff -u -r0933451e694b19886dd20e2962fc984e997dbf6e -ra9c5e4550ac78c7dde3dc3796d6cf8dc03d455e8
--- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/web/controller/GradebookMonitoringController.java (.../GradebookMonitoringController.java) (revision 0933451e694b19886dd20e2962fc984e997dbf6e)
+++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/web/controller/GradebookMonitoringController.java (.../GradebookMonitoringController.java) (revision a9c5e4550ac78c7dde3dc3796d6cf8dc03d455e8)
@@ -23,6 +23,8 @@
package org.lamsfoundation.lams.gradebook.web.controller;
import java.io.IOException;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.List;
@@ -33,11 +35,14 @@
import javax.servlet.http.HttpSession;
import org.apache.log4j.Logger;
+import org.lamsfoundation.lams.events.IEventNotificationService;
+import org.lamsfoundation.lams.gradebook.dto.GradebookGridRowDTO;
import org.lamsfoundation.lams.gradebook.service.IGradebookFullService;
import org.lamsfoundation.lams.gradebook.util.GBGridView;
import org.lamsfoundation.lams.gradebook.util.GradebookConstants;
import org.lamsfoundation.lams.gradebook.util.GradebookUtil;
import org.lamsfoundation.lams.learningdesign.Activity;
+import org.lamsfoundation.lams.lesson.LearnerProgress;
import org.lamsfoundation.lams.lesson.Lesson;
import org.lamsfoundation.lams.lesson.dto.LessonDetailsDTO;
import org.lamsfoundation.lams.lesson.service.ILessonService;
@@ -58,6 +63,7 @@
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
@@ -82,7 +88,11 @@
private ILessonService lessonService;
@Autowired
private ISecurityService securityService;
+ @Autowired
+ private IEventNotificationService eventNotificationService;
+ private static final DateFormat RELEASE_MARKS_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd");
+
@RequestMapping("")
public String unspecified(HttpServletRequest request, HttpServletResponse response) throws IOException {
Long lessonId = WebUtil.readLongParam(request, AttributeNames.PARAM_LESSON_ID);
@@ -252,12 +262,86 @@
return "success";
}
+ @RequestMapping("/displayReleaseMarksPanel")
+ public String displayReleaseMarksPanel(@RequestParam long lessonID) {
+ return "releaseLessonMarks";
+ }
+
+ @RequestMapping("/getReleaseMarksEmailContent")
+ @ResponseBody
+ public String getReleaseMarksEmailContent(@RequestParam long lessonID, @RequestParam int userID) {
+ StringBuilder content = new StringBuilder();
+
+ User user = userManagementService.getUserById(userID);
+ Lesson lesson = lessonService.getLesson(lessonID);
+ LearnerProgress learnerProgress = lessonService.getUserProgressForLesson(userID, lessonID);
+ content.append("Hi ").append(user.getFirstName()).append(",
here are your results of lesson \"")
+ .append(lesson.getLessonName()).append("\" in which you participated on ")
+ .append(RELEASE_MARKS_DATE_FORMAT.format(learnerProgress.getStartDate())).append(".
");
+
+ content.append(
+ "
Activity | Progress | ") + .append("Average score | Score |
---|---|---|---|
").append(activityDTO.getRowName()) + .append(" | "); + + if (activityDTO.getStatus().contains("success")) { + content.append("✓"); + } else if (activityDTO.getStatus().contains("cog")) { + content.append("⚙"); + } else { + content.append("-"); + } + + content.append(" | "); + if (activityDTO.getAverageMark() != null) { + content.append(GradebookUtil.niceFormatting(activityDTO.getAverageMark())); + } + + content.append(" | "); + if (activityDTO.getMark() != null) { + content.append(GradebookUtil.niceFormatting(activityDTO.getMark())); + } + + content.append(" |