Index: lams_build/lib/lams/lams-gradebook.jar =================================================================== diff -u -ra691e28fae421807502c1e41403843ad47756be9 -r3e36623a35a8f471dcf3a6b0de9eca8006a881e1 Binary files differ Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/gradebookApplicationContext.xml =================================================================== diff -u -r4f4b9ab44586710e317302b4a5ad2bc0ab7a8d26 -r3e36623a35a8f471dcf3a6b0de9eca8006a881e1 --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/gradebookApplicationContext.xml (.../gradebookApplicationContext.xml) (revision 4f4b9ab44586710e317302b4a5ad2bc0ab7a8d26) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/gradebookApplicationContext.xml (.../gradebookApplicationContext.xml) (revision 3e36623a35a8f471dcf3a6b0de9eca8006a881e1) @@ -28,6 +28,7 @@ PROPAGATION_REQUIRED + PROPAGATION_REQUIRED PROPAGATION_REQUIRED,readOnly PROPAGATION_REQUIRED,readOnly Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java =================================================================== diff -u -r4f4b9ab44586710e317302b4a5ad2bc0ab7a8d26 -r3e36623a35a8f471dcf3a6b0de9eca8006a881e1 --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java (.../GradebookService.java) (revision 4f4b9ab44586710e317302b4a5ad2bc0ab7a8d26) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java (.../GradebookService.java) (revision 3e36623a35a8f471dcf3a6b0de9eca8006a881e1) @@ -41,9 +41,15 @@ import java.util.TimeZone; import java.util.TreeSet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; import org.lamsfoundation.lams.dao.IBaseDAO; import org.lamsfoundation.lams.gradebook.GradebookUserActivity; import org.lamsfoundation.lams.gradebook.GradebookUserLesson; @@ -81,6 +87,7 @@ import org.lamsfoundation.lams.util.DateUtil; import org.lamsfoundation.lams.util.ExcelCell; import org.lamsfoundation.lams.util.MessageService; +import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.util.audit.IAuditService; import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; @@ -446,7 +453,23 @@ gradebookUserActivity.setFeedback(feedback); gradebookDAO.insertOrUpdate(gradebookUserActivity); } + + @Override + public void toggleMarksReleased(Long lessonId) { + Lesson lesson = lessonService.getLesson(lessonId); + + boolean isMarksReleased = (lesson.getMarksReleased() != null) && lesson.getMarksReleased(); + lesson.setMarksReleased(!isMarksReleased); + userService.save(lesson); + + // audit log marks released + UserDTO monitor = (UserDTO) SessionManager.getSession().getAttribute(AttributeNames.USER); + String messageKey = (isMarksReleased) ? "audit.marks.released.off" : "audit.marks.released.on"; + String message = messageService.getMessage(messageKey, new String[] {lessonId.toString()}); + auditService.log(monitor, GradebookConstants.MODULE_NAME, message); + } + @SuppressWarnings("unchecked") public List getGBLessonRows(Organisation organisation, User user, User viewer, GBGridView view) { List lessonRows = new ArrayList(); Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/IGradebookService.java =================================================================== diff -u -r4f4b9ab44586710e317302b4a5ad2bc0ab7a8d26 -r3e36623a35a8f471dcf3a6b0de9eca8006a881e1 --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/IGradebookService.java (.../IGradebookService.java) (revision 4f4b9ab44586710e317302b4a5ad2bc0ab7a8d26) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/IGradebookService.java (.../IGradebookService.java) (revision 3e36623a35a8f471dcf3a6b0de9eca8006a881e1) @@ -130,6 +130,13 @@ void updateUserLessonGradebookFeedback(Lesson lesson, User learner, String feedback); /** + * Toggle on/off marks released option + * + * @param lessonId + */ + void toggleMarksReleased(Long lessonId); + + /** * Gets the lesson row dtos for a given organisation * * @param organisation Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/web/action/GradebookMonitoringAction.java =================================================================== diff -u -r4f4b9ab44586710e317302b4a5ad2bc0ab7a8d26 -r3e36623a35a8f471dcf3a6b0de9eca8006a881e1 --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/web/action/GradebookMonitoringAction.java (.../GradebookMonitoringAction.java) (revision 4f4b9ab44586710e317302b4a5ad2bc0ab7a8d26) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/web/action/GradebookMonitoringAction.java (.../GradebookMonitoringAction.java) (revision 3e36623a35a8f471dcf3a6b0de9eca8006a881e1) @@ -265,33 +265,27 @@ 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); + /** + * 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); + + gradebookService.toggleMarksReleased(lessonID); - Lesson lesson = lessonService.getLesson(lessonID); + writeResponse(response, CONTENT_TYPE_TEXT_PLAIN, ENCODING_UTF8, "success"); + return null; + } - boolean marksReleased = lesson.getMarksReleased() != null && lesson.getMarksReleased(); - - lesson.setMarksReleased(!marksReleased); - - userService.save(lesson); - - writeResponse(response, CONTENT_TYPE_TEXT_PLAIN, ENCODING_UTF8, "success"); - return null; - } - /** * Exports Lesson Gradebook into excel. */