Index: lams_central/src/java/org/lamsfoundation/lams/web/qb/QbStatsController.java
===================================================================
diff -u -r75e43eb7dffa6bf6eb2a11bb1e616c53bdbd76ed -raccfdd9d97b1e9f4db2c48861a2f5ea1d065a3cb
--- lams_central/src/java/org/lamsfoundation/lams/web/qb/QbStatsController.java (.../QbStatsController.java) (revision 75e43eb7dffa6bf6eb2a11bb1e616c53bdbd76ed)
+++ lams_central/src/java/org/lamsfoundation/lams/web/qb/QbStatsController.java (.../QbStatsController.java) (revision accfdd9d97b1e9f4db2c48861a2f5ea1d065a3cb)
@@ -47,7 +47,7 @@
@RequestMapping("/show")
public String showStats(@RequestParam long qbQuestionUid, Model model) throws Exception {
- QbStatsDTO stats = qbService.getStats(qbQuestionUid);
+ QbStatsDTO stats = qbService.getQbQuestionStats(qbQuestionUid);
model.addAttribute("stats", stats);
return "qb/stats";
}
Index: lams_central/web/qb/stats.jsp
===================================================================
diff -u -re31315857f6ab9eeb9fc2d2719c558255e1e202f -raccfdd9d97b1e9f4db2c48861a2f5ea1d065a3cb
--- lams_central/web/qb/stats.jsp (.../stats.jsp) (revision e31315857f6ab9eeb9fc2d2719c558255e1e202f)
+++ lams_central/web/qb/stats.jsp (.../stats.jsp) (revision accfdd9d97b1e9f4db2c48861a2f5ea1d065a3cb)
@@ -186,8 +186,17 @@
Tool type
- Average correct selection (as first choice)
+ Test participant count
|
+
+ Difficulty index
+ |
+
+ Discrimination index
+ |
+
+ Point biserial
+ |
@@ -205,15 +214,21 @@
-
-
- -
-
-
- %
-
-
+
|
+
+
+ - |
+ - |
+ - |
+
+
+ |
+ |
+ |
+
+
+
Index: lams_common/src/java/org/lamsfoundation/lams/commonContext.xml
===================================================================
diff -u -r2e9ee1c2451a05981f05e9edf89bb3356cf2b147 -raccfdd9d97b1e9f4db2c48861a2f5ea1d065a3cb
--- lams_common/src/java/org/lamsfoundation/lams/commonContext.xml (.../commonContext.xml) (revision 2e9ee1c2451a05981f05e9edf89bb3356cf2b147)
+++ lams_common/src/java/org/lamsfoundation/lams/commonContext.xml (.../commonContext.xml) (revision accfdd9d97b1e9f4db2c48861a2f5ea1d065a3cb)
@@ -540,6 +540,7 @@
+
Index: lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch20190110.sql
===================================================================
diff -u -rea713460dca019bef05427df59a6609f89285656 -raccfdd9d97b1e9f4db2c48861a2f5ea1d065a3cb
--- lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch20190110.sql (.../patch20190110.sql) (revision ea713460dca019bef05427df59a6609f89285656)
+++ lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch20190110.sql (.../patch20190110.sql) (revision accfdd9d97b1e9f4db2c48861a2f5ea1d065a3cb)
@@ -524,6 +524,13 @@
AND qo.qb_question_uid = tq.qb_question_uid
AND o.question_uid = tq.tool_question_uid;
+UPDATE tl_laasse10_option_answer AS sa, tl_laasse10_question_option AS o, lams_qb_tool_question AS tq, lams_qb_option AS qo
+ SET sa.question_option_uid = qo.uid
+ WHERE o.sequence_id = qo.display_order
+ AND sa.question_option_uid = o.uid
+ AND qo.qb_question_uid = tq.qb_question_uid
+ AND o.question_uid = tq.tool_question_uid;
+
-- prepare for answer inheritance
INSERT INTO lams_qb_tool_answer
SELECT uid, assessment_question_uid, submitted_option_uid FROM tl_laasse10_question_result;
Index: lams_common/src/java/org/lamsfoundation/lams/qb/dao/IQbDAO.java
===================================================================
diff -u -r0d764ec63c5013349de051818fbc82a970d6a803 -raccfdd9d97b1e9f4db2c48861a2f5ea1d065a3cb
--- lams_common/src/java/org/lamsfoundation/lams/qb/dao/IQbDAO.java (.../IQbDAO.java) (revision 0d764ec63c5013349de051818fbc82a970d6a803)
+++ lams_common/src/java/org/lamsfoundation/lams/qb/dao/IQbDAO.java (.../IQbDAO.java) (revision accfdd9d97b1e9f4db2c48861a2f5ea1d065a3cb)
@@ -37,6 +37,8 @@
Map getAnswerStatsForActivity(long activityId);
+ Map getAnswersForActivity(long activityId, long qbQuestionUid);
+
Map getBurningQuestions(long qbQuestionUid);
List getPagedQbQuestions(Integer questionType, int page, int size, String sortBy, String sortOrder,
Index: lams_common/src/java/org/lamsfoundation/lams/qb/dao/hibernate/QbDAO.java
===================================================================
diff -u -rdb82bbb0a1dbdd3de23181aa6da4595d836e274b -raccfdd9d97b1e9f4db2c48861a2f5ea1d065a3cb
--- lams_common/src/java/org/lamsfoundation/lams/qb/dao/hibernate/QbDAO.java (.../QbDAO.java) (revision db82bbb0a1dbdd3de23181aa6da4595d836e274b)
+++ lams_common/src/java/org/lamsfoundation/lams/qb/dao/hibernate/QbDAO.java (.../QbDAO.java) (revision accfdd9d97b1e9f4db2c48861a2f5ea1d065a3cb)
@@ -1,5 +1,6 @@
package org.lamsfoundation.lams.qb.dao.hibernate;
+import java.math.BigInteger;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
@@ -26,6 +27,20 @@
+ "WHERE a.qbToolQuestion.uid = :qbToolQuestionUid GROUP BY a.qbOption.uid";
private static final String FIND_ANSWER_STATS_BY_ACTIVITY = "SELECT a.qbOption.uid, COUNT(a.uid) FROM QbToolAnswer AS a, "
+ " ToolActivity AS act WHERE a.qbToolQuestion.toolContentId = act.toolContentId AND act.activityId = :activityId GROUP BY a.qbOption.uid";
+ private static final String FIND_ANSWERS_BY_ACTIVITY = "SELECT COALESCE(mcu.que_usr_id, su.user_id, au.user_id), "
+ + "COALESCE(a.qb_option_uid, aa.question_option_uid) AS opt "
+ + "FROM lams_learning_activity AS act JOIN lams_qb_tool_question AS tq USING (tool_content_id) "
+ + "JOIN lams_qb_tool_answer AS a USING (tool_question_uid) "
+ + "LEFT JOIN tl_lamc11_usr_attempt AS mca ON a.answer_uid = mca.uid "
+ + "LEFT JOIN tl_lamc11_que_usr AS mcu ON mca.que_usr_id = mcu.uid "
+ + "LEFT JOIN tl_lascrt11_answer_log AS sa ON a.answer_uid = sa.uid "
+ + "LEFT JOIN tl_lascrt11_session AS ss ON sa.session_id = ss.session_id "
+ + "LEFT JOIN tl_lascrt11_user AS su ON ss.uid = su.session_uid "
+ + "LEFT JOIN tl_laasse10_option_answer AS aa ON a.answer_uid = aa.question_result_uid AND aa.answer_boolean = 1 "
+ + "LEFT JOIN tl_laasse10_question_result AS aq ON a.answer_uid = aq.uid "
+ + "LEFT JOIN tl_laasse10_assessment_result AS ar ON aq.result_uid = ar.uid "
+ + "LEFT JOIN tl_laasse10_user AS au ON ar.user_uid = au.uid "
+ + "WHERE act.activity_id = :activityId AND tq.qb_question_uid = :qbQuestionUid HAVING opt IS NOT NULL";
private static final String FIND_BURNING_QUESTIONS = "SELECT b.question, COUNT(bl.uid) FROM ScratchieBurningQuestion b LEFT OUTER JOIN "
+ "BurningQuestionLike AS bl ON bl.burningQuestion = b WHERE b.scratchieItem.qbQuestion.uid = :qbQuestionUid "
+ "GROUP BY b.question ORDER BY COUNT(bl.uid) DESC";
@@ -199,6 +214,18 @@
@Override
@SuppressWarnings("unchecked")
+ public Map getAnswersForActivity(long activityId, long qbQuestionUid) {
+ List