Index: lams_common/src/java/org/lamsfoundation/lams/qb/service/IQbService.java =================================================================== diff -u -rcee2752fb2ef63145dae66eba09c5c53335822e0 -rca24a6088935075fff20ede75c29def3f8351316 --- lams_common/src/java/org/lamsfoundation/lams/qb/service/IQbService.java (.../IQbService.java) (revision cee2752fb2ef63145dae66eba09c5c53335822e0) +++ lams_common/src/java/org/lamsfoundation/lams/qb/service/IQbService.java (.../IQbService.java) (revision ca24a6088935075fff20ede75c29def3f8351316) @@ -20,8 +20,6 @@ // it is a new question static final int QUESTION_MODIFIED_ID_BUMP = 3; - static final double STATS_TOP_BOTTOM_GROUP_SIZE = 0.27; - /** * @param qbQuestionUid * @return QbQuestion object with the specified uid Index: lams_common/src/java/org/lamsfoundation/lams/qb/service/QbService.java =================================================================== diff -u -r4dfbbc90e3d414eaf3f4282a3a38b4ec741384d7 -rca24a6088935075fff20ede75c29def3f8351316 --- lams_common/src/java/org/lamsfoundation/lams/qb/service/QbService.java (.../QbService.java) (revision 4dfbbc90e3d414eaf3f4282a3a38b4ec741384d7) +++ lams_common/src/java/org/lamsfoundation/lams/qb/service/QbService.java (.../QbService.java) (revision ca24a6088935075fff20ede75c29def3f8351316) @@ -23,6 +23,8 @@ import org.lamsfoundation.lams.qb.model.QbOption; import org.lamsfoundation.lams.qb.model.QbQuestion; import org.lamsfoundation.lams.tool.service.ILamsCoreToolService; +import org.lamsfoundation.lams.util.Configuration; +import org.lamsfoundation.lams.util.ConfigurationKeys; import org.lamsfoundation.lams.util.WebUtil; import com.fasterxml.jackson.databind.node.ArrayNode; @@ -163,7 +165,7 @@ activityDTO.setMonitorURL(monitorUrl); // if there is only 1 participant, there is no point in calculating question indexes - if (participantCount > 1) { + if (participantCount >= Configuration.getAsInt(ConfigurationKeys.QB_STATS_MIN_PARTICIPANTS)) { // mapping of user ID -> option UID Map activityAnswers = qbDAO.getAnswersForActivity(activity.getActivityId(), qbQuestionUid); // see who answered correctly @@ -187,7 +189,8 @@ // sort grades by highest mark Collections.sort(userLessonGrades, (a, b) -> a.getMark().compareTo(b.getMark())); // see how many learners should be in top/bottom 27% of the group - int groupCount = (int) Math.ceil(STATS_TOP_BOTTOM_GROUP_SIZE * participantCount); + int groupCount = (int) Math.ceil( + Configuration.getAsInt(ConfigurationKeys.QB_STATS_MIN_PARTICIPANTS) / 100.0 * participantCount); // go through each grade and gather data for indexes for (int userIndex = 0; userIndex < participantCount; userIndex++) {