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