Index: lams_common/src/java/org/lamsfoundation/lams/commonContext.xml
===================================================================
diff -u -rf0b909d0e482fe674e3c3d2f40ec7cc8d19b6803 -r0483acb3c9e3b07f42d9511bbfea3708029438e8
--- lams_common/src/java/org/lamsfoundation/lams/commonContext.xml (.../commonContext.xml) (revision f0b909d0e482fe674e3c3d2f40ec7cc8d19b6803)
+++ lams_common/src/java/org/lamsfoundation/lams/commonContext.xml (.../commonContext.xml) (revision 0483acb3c9e3b07f42d9511bbfea3708029438e8)
@@ -549,6 +549,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 0483acb3c9e3b07f42d9511bbfea3708029438e8)
@@ -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 -r0483acb3c9e3b07f42d9511bbfea3708029438e8
--- 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 0483acb3c9e3b07f42d9511bbfea3708029438e8)
@@ -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 -re00ee97b803f195e523abcd3f765513a58a03d32 -r0483acb3c9e3b07f42d9511bbfea3708029438e8
--- lams_common/src/java/org/lamsfoundation/lams/qb/service/QbService.java (.../QbService.java) (revision e00ee97b803f195e523abcd3f765513a58a03d32)
+++ lams_common/src/java/org/lamsfoundation/lams/qb/service/QbService.java (.../QbService.java) (revision 0483acb3c9e3b07f42d9511bbfea3708029438e8)
@@ -18,13 +18,17 @@
import java.util.UUID;
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;
@@ -36,10 +40,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;
@@ -56,6 +63,8 @@
private IUserManagementService userManagementService;
+ private ILogEventService logEventService;
+
public static final Comparator COLLECTION_NAME_COMPARATOR = Comparator
.comparing(QbCollection::getName);
@@ -654,9 +663,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;
}
@@ -672,4 +691,8 @@
public void setUserManagementService(IUserManagementService userManagementService) {
this.userManagementService = userManagementService;
}
+
+ public void setLogEventService(ILogEventService logEventService) {
+ this.logEventService = logEventService;
+ }
}
\ No newline at end of file