Index: lams_common/src/java/org/lamsfoundation/lams/commonContext.xml =================================================================== diff -u -r67db3e1b2ada0d59ff98c807a54282783797c5e6 -r21d4b974607ac1f6ebe825a430276c66e685ad71 --- lams_common/src/java/org/lamsfoundation/lams/commonContext.xml (.../commonContext.xml) (revision 67db3e1b2ada0d59ff98c807a54282783797c5e6) +++ lams_common/src/java/org/lamsfoundation/lams/commonContext.xml (.../commonContext.xml) (revision 21d4b974607ac1f6ebe825a430276c66e685ad71) @@ -548,6 +548,7 @@ + Index: lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch20190808.sql =================================================================== diff -u --- lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch20190808.sql (revision 0) +++ lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch20190808.sql (revision 21d4b974607ac1f6ebe825a430276c66e685ad71) @@ -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-4844 Add a Question Bank event for merging questions +INSERT INTO lams_log_event_type VALUES (27, 'TYPE_QUESTIONS_MERGED', 'QUESTION_BANK'); + +----------------------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/logevent/LogEvent.java =================================================================== diff -u -r78b847b4a5962e1c3d0167cfdc0f95137be57e6a -r21d4b974607ac1f6ebe825a430276c66e685ad71 --- lams_common/src/java/org/lamsfoundation/lams/logevent/LogEvent.java (.../LogEvent.java) (revision 78b847b4a5962e1c3d0167cfdc0f95137be57e6a) +++ lams_common/src/java/org/lamsfoundation/lams/logevent/LogEvent.java (.../LogEvent.java) (revision 21d4b974607ac1f6ebe825a430276c66e685ad71) @@ -78,6 +78,7 @@ public static final int TYPE_LOGIN = 24; // user logged in public static final int TYPE_LOGOUT = 25; // user logged out public static final int TYPE_CONFIG_CHANGE = 26; // user logged out + public static final int TYPE_QUESTIONS_MERGED = 27; // question were merged in Question Bank /** *************************************************************** */ Index: lams_common/src/java/org/lamsfoundation/lams/qb/service/QbService.java =================================================================== diff -u -r21606f18aac597a4f64d761bd0e33e904e35a997 -r21d4b974607ac1f6ebe825a430276c66e685ad71 --- lams_common/src/java/org/lamsfoundation/lams/qb/service/QbService.java (.../QbService.java) (revision 21606f18aac597a4f64d761bd0e33e904e35a997) +++ lams_common/src/java/org/lamsfoundation/lams/qb/service/QbService.java (.../QbService.java) (revision 21d4b974607ac1f6ebe825a430276c66e685ad71) @@ -17,13 +17,17 @@ import java.util.Set; import java.util.stream.Collectors; +import javax.servlet.http.HttpSession; + import org.apache.log4j.Logger; import org.lamsfoundation.lams.gradebook.GradebookUserLesson; import org.lamsfoundation.lams.gradebook.service.IGradebookService; import org.lamsfoundation.lams.learningdesign.Activity; import org.lamsfoundation.lams.learningdesign.LearningDesign; import org.lamsfoundation.lams.learningdesign.ToolActivity; import org.lamsfoundation.lams.lesson.Lesson; +import org.lamsfoundation.lams.logevent.LogEvent; +import org.lamsfoundation.lams.logevent.service.ILogEventService; import org.lamsfoundation.lams.qb.dao.IQbDAO; import org.lamsfoundation.lams.qb.dto.QbStatsActivityDTO; import org.lamsfoundation.lams.qb.dto.QbStatsDTO; @@ -35,10 +39,13 @@ import org.lamsfoundation.lams.tool.service.ILamsCoreToolService; import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.Role; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.util.Configuration; import org.lamsfoundation.lams.util.ConfigurationKeys; import org.lamsfoundation.lams.util.WebUtil; +import org.lamsfoundation.lams.web.session.SessionManager; +import org.lamsfoundation.lams.web.util.AttributeNames; import com.fasterxml.jackson.databind.node.ArrayNode; import com.fasterxml.jackson.databind.node.JsonNodeFactory; @@ -55,6 +62,8 @@ private IUserManagementService userManagementService; + private ILogEventService logEventService; + public static final Comparator COLLECTION_NAME_COMPARATOR = Comparator .comparing(QbCollection::getName); @@ -586,9 +595,19 @@ int answersChanged = qbDAO.mergeQuestions(sourceQbQuestionUid, targetQbQuestionUid); qbDAO.deleteById(QbQuestion.class, sourceQbQuestionUid); + + logEventService.logEvent(LogEvent.TYPE_QUESTIONS_MERGED, QbService.getUserId(), null, null, null, + new StringBuilder("Question UID ").append(sourceQbQuestionUid).append(" merged into question UID ") + .append(targetQbQuestionUid).toString()); return answersChanged; } + private static Integer getUserId() { + HttpSession ss = SessionManager.getSession(); + UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); + return user != null ? user.getUserID() : null; + } + public void setQbDAO(IQbDAO qbDAO) { this.qbDAO = qbDAO; } @@ -604,4 +623,8 @@ public void setUserManagementService(IUserManagementService userManagementService) { this.userManagementService = userManagementService; } + + public void setLogEventService(ILogEventService logEventService) { + this.logEventService = logEventService; + } } \ No newline at end of file