Index: lams_admin/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== diff -u -rf1922e4510a08d418a26d92481a839797b0b5829 -r20821464c467f40e45eec34c7cfedbe3864daf96 --- lams_admin/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision f1922e4510a08d418a26d92481a839797b0b5829) +++ lams_admin/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 20821464c467f40e45eec34c7cfedbe3864daf96) @@ -567,6 +567,7 @@ label.type.learner.content.updated =Learner's Entry Modified label.type.learner.content.show.hide =Learner's Entry Shown/Hidden label.type.unknown =Unknown +label.type.tool.mark.released =Mark Released in tool label.area.lesson =Lesson label.area.security =Security label.area.notification =Notification Index: lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch20180704.sql =================================================================== diff -u --- lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch20180704.sql (revision 0) +++ lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch20180704.sql (revision 20821464c467f40e45eec34c7cfedbe3864daf96) @@ -0,0 +1,14 @@ +-- Turn off autocommit, so nothing is committed if there is an error +SET AUTOCOMMIT = 0; +SET FOREIGN_KEY_CHECKS=0; +----------------------Put all sql statements below here------------------------- + +-- LDEV-4620 Audit Log entry for Marks released in tool +INSERT INTO lams_log_event_type (log_event_type_id, description, area) VALUES(23, 'TYPE_TOOL_MARK_RELEASED', 'MARKS'); + +----------------------Put all sql statements above here------------------------- + +-- If there were no errors, commit and restore autocommit to on +COMMIT; +SET AUTOCOMMIT = 1; +SET FOREIGN_KEY_CHECKS=1; \ No newline at end of file Index: lams_common/src/java/org/lamsfoundation/lams/lesson/dao/hibernate/LessonDAO.java =================================================================== diff -u -r4e1c720937f098b0e635154d64b736eaa230a75d -r20821464c467f40e45eec34c7cfedbe3864daf96 --- lams_common/src/java/org/lamsfoundation/lams/lesson/dao/hibernate/LessonDAO.java (.../LessonDAO.java) (revision 4e1c720937f098b0e635154d64b736eaa230a75d) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/dao/hibernate/LessonDAO.java (.../LessonDAO.java) (revision 20821464c467f40e45eec34c7cfedbe3864daf96) @@ -272,7 +272,7 @@ @Override public Long[] getLessonActivityIdsForToolContentId(long toolContentId) { Query query = getSession().createQuery(LessonDAO.FIND_LESSON_ACTIVITY_IDS_BY_TOOL_CONTENT_ID); - query.setLong("toolContentId", 33333); + query.setLong("toolContentId", toolContentId); List list = query.list(); Long[] longArray = {null, null}; Index: lams_common/src/java/org/lamsfoundation/lams/logevent/LogEvent.java =================================================================== diff -u -r4b865d9e5cdcaa1a21b113764194305d9a7480dd -r20821464c467f40e45eec34c7cfedbe3864daf96 --- lams_common/src/java/org/lamsfoundation/lams/logevent/LogEvent.java (.../LogEvent.java) (revision 4b865d9e5cdcaa1a21b113764194305d9a7480dd) +++ lams_common/src/java/org/lamsfoundation/lams/logevent/LogEvent.java (.../LogEvent.java) (revision 20821464c467f40e45eec34c7cfedbe3864daf96) @@ -58,11 +58,12 @@ public static final int TYPE_ACCOUNT_LOCKED = 15; public static final int TYPE_NOTIFICATION = 16; public static final int TYPE_MARK_UPDATED = 17; // Audit Service - public static final int TYPE_MARK_RELEASED = 18; + public static final int TYPE_MARK_RELEASED = 18; // Marks released in Gradebook public static final int TYPE_LEARNER_CONTENT_UPDATED = 19; // Audit Service public static final int TYPE_LEARNER_CONTENT_SHOW_HIDE = 20; // Audit Service public static final int TYPE_UNKNOWN = 21; // catch all for conversion public static final int TYPE_LIVE_EDIT = 22; // Start or end Live Edit of a lesson + public static final int TYPE_TOOL_MARK_RELEASED = 23; // Mark released in tool /** *************************************************************** */ Index: lams_common/src/java/org/lamsfoundation/lams/logevent/service/ILogEventService.java =================================================================== diff -u -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 -r20821464c467f40e45eec34c7cfedbe3864daf96 --- lams_common/src/java/org/lamsfoundation/lams/logevent/service/ILogEventService.java (.../ILogEventService.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) +++ lams_common/src/java/org/lamsfoundation/lams/logevent/service/ILogEventService.java (.../ILogEventService.java) (revision 20821464c467f40e45eec34c7cfedbe3864daf96) @@ -56,6 +56,17 @@ */ void logEvent(Integer logEventTypeId, Integer userId, Integer targetUserId, Long lessonId, Long activityId, String description); + + /** + * Records event of specified type in database. Designed to be called from tools, i.e. pass toolContentId instead of + * lessonId and activityId. + * + * @param eventType + * @param toolContentId + * @param learnerUserId optional parameter + * @param message + */ + void logToolEvent(int eventType, Long toolContentId, Long learnerUserId, String message); /** * Returns event by the given id. Index: lams_common/src/java/org/lamsfoundation/lams/logevent/service/LogEventService.java =================================================================== diff -u -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 -r20821464c467f40e45eec34c7cfedbe3864daf96 --- lams_common/src/java/org/lamsfoundation/lams/logevent/service/LogEventService.java (.../LogEventService.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) +++ lams_common/src/java/org/lamsfoundation/lams/logevent/service/LogEventService.java (.../LogEventService.java) (revision 20821464c467f40e45eec34c7cfedbe3864daf96) @@ -207,18 +207,23 @@ logLearnerChange(LogEvent.TYPE_LEARNER_CONTENT_SHOW_HIDE, learnerUserId, toolContentId, AUDIT_SHOW_I18N_KEY, args); } + + @Override + public void logToolEvent(int eventType, Long toolContentId, Long learnerUserId, String message) { + Long[] ids = lessonDAO.getLessonActivityIdsForToolContentId(toolContentId); + Long lessonId = ids[0]; + Long activityId = ids[1]; + Integer currentUserId = getCurrentUserId(); + + logEvent(eventType, currentUserId, learnerUserId != null ? learnerUserId.intValue() : null, lessonId, + activityId, message); + } private void logLearnerChange(int eventType, Long learnerUserId, Long toolContentId, String messageKey, Object[] args) { - Long lessonId = null; - Long activityId = null; - if (toolContentId != null) { - Object[] ids = lessonDAO.getLessonActivityIdsForToolContentId(toolContentId); - if (ids != null) { - lessonId = (Long) ids[0]; - activityId = (Long) ids[1]; - } - } + Long[] ids = lessonDAO.getLessonActivityIdsForToolContentId(toolContentId); + Long lessonId = ids[0]; + Long activityId = ids[1]; UserDTO currentUser = getCurrentUser(); args[args.length - 1] = currentUser.getUserID(); @@ -230,16 +235,9 @@ @Override // Use for unusual changes such as adding/removing file public void logChangeLearnerArbitraryChange(Long learnerUserId, String learnerUserLogin, Long toolContentId, String message) { - Long lessonId = null; - Long activityId = null; - if (toolContentId != null) { - // ToolActivity toolActivity = - Object[] ids = lessonDAO.getLessonActivityIdsForToolContentId(toolContentId); - if (ids != null) { - lessonId = (Long) ids[0]; - activityId = (Long) ids[1]; - } - } + Long[] ids = lessonDAO.getLessonActivityIdsForToolContentId(toolContentId); + Long lessonId = ids[0]; + Long activityId = ids[1]; logEvent(LogEvent.TYPE_LEARNER_CONTENT_UPDATED, getCurrentUserId(), learnerUserId != null ? learnerUserId.intValue() : null, lessonId, activityId, message); @@ -262,16 +260,9 @@ private void logEditActivityInMonitor(Long toolContentId, String messageKey) { - Number lessonId = null; - Number activityId = null; - if (toolContentId != null) { - // ToolActivity toolActivity = - Object[] ids = lessonDAO.getLessonActivityIdsForToolContentId(toolContentId); - if (ids != null) { - lessonId = (Number) ids[0]; - activityId = (Number) ids[1]; - } - } + Long[] ids = lessonDAO.getLessonActivityIdsForToolContentId(toolContentId); + Long lessonId = ids[0]; + Long activityId = ids[1]; UserDTO user = getCurrentUser(); String userString = user != null Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java =================================================================== diff -u -ra9e2d458266b86533fec824f1bd26710d2f59271 -r20821464c467f40e45eec34c7cfedbe3864daf96 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java (.../SubmitFilesService.java) (revision a9e2d458266b86533fec824f1bd26710d2f59271) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java (.../SubmitFilesService.java) (revision 20821464c467f40e45eec34c7cfedbe3864daf96) @@ -1033,20 +1033,9 @@ } //audit log event -// UserDTO currentUser = (UserDTO) SessionManager.getSession().getAttribute(AttributeNames.USER); -// StringBuilder instructorTxt = new StringBuilder(monitor.getLogin()).append(" (").append(monitor.getUserID()) -// .append(") "); -// StringBuilder learnerTxt = new StringBuilder(learner.getLogin()).append(" (").append(learner.getUserID()) -// .append(") "); -// -// String auditMsg = getLocalisedMessage(i18nKey, -// new Object[] { instructorTxt.toString(), detail.getFilePath(), learnerTxt.toString() }); -// Long toolContentId = null; -// if (detail.getSubmitFileSession() != null && detail.getSubmitFileSession().getContent() != null) { -// toolContentId = detail.getSubmitFileSession().getContent().getContentID(); -// } -// logEventService.logEvent(LogEvent.TYPE_MARK_RELEASED, monitor.getUserID(), null, lessonId, null, message); -// logEventService.logEvent(logEventTypeId, currentUser.getUserID(), null, lessonId, activityId, description); + String sessionName = session.getSessionName() + " (toolSessionId=" + session.getSessionID() + ")"; + String message = messageService.getMessage("msg.mark.released", new String[] { sessionName }); + logEventService.logToolEvent(LogEvent.TYPE_TOOL_MARK_RELEASED, content.getContentID(), null, message); } @Override