From 2a0181cf4b321466eceec141088d3598b59854a3 Mon Sep 17 00:00:00 2001 From: uhensler <urs.hensler@frentix.com> Date: Fri, 28 Jun 2019 15:19:38 +0200 Subject: [PATCH] OO-4108: Respect scale direction when calculating min / max value --- .../nodes/ms/manager/MSServiceImpl.java | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/olat/course/nodes/ms/manager/MSServiceImpl.java b/src/main/java/org/olat/course/nodes/ms/manager/MSServiceImpl.java index 445cb70fec9..62c8f8ed8e1 100644 --- a/src/main/java/org/olat/course/nodes/ms/manager/MSServiceImpl.java +++ b/src/main/java/org/olat/course/nodes/ms/manager/MSServiceImpl.java @@ -194,12 +194,18 @@ public class MSServiceImpl implements MSService { float rubricSumMin = evaluationFormManager.getRubricStatistic(rubric, getSlidersStatistic(rubric, true)) .getTotalStatistic() .getSum().floatValue(); - // If no responses the min is 0 - rubricSumMin = rubricSumMin > 0? 0: rubricSumMin; - sumMin += rubricSumMin; float rubricSumMax = evaluationFormManager.getRubricStatistic(rubric, getSlidersStatistic(rubric, false)) .getTotalStatistic() .getSum().floatValue(); + if (rubricSumMin > rubricSumMax) { + float temp = rubricSumMin; + rubricSumMin = rubricSumMax; + rubricSumMax = temp; + } + // If no responses the min is 0 + rubricSumMin = rubricSumMin > 0? 0: rubricSumMin; + + sumMin += rubricSumMin; sumMax += rubricSumMax; } } @@ -223,11 +229,17 @@ public class MSServiceImpl implements MSService { float rubricAvgMin = evaluationFormManager.getRubricStatistic(rubric, getSlidersStatistic(rubric, true)) .getTotalStatistic() .getAvg().floatValue(); - // If no responses the min is 0 - rubricAvgMin = rubricAvgMin > 0? 0: rubricAvgMin; float rubricAvgMax = evaluationFormManager.getRubricStatistic(rubric, getSlidersStatistic(rubric, false)) .getTotalStatistic() .getAvg().floatValue(); + // switch if descending scale + if (rubricAvgMin > rubricAvgMax) { + float temp = rubricAvgMin; + rubricAvgMin = rubricAvgMax; + rubricAvgMax = temp; + } + // If no responses the min is 0 + rubricAvgMin = rubricAvgMin > 0? 0: rubricAvgMin; int numberOfSliders = rubric.getSliders().size(); sumMin += numberOfSliders * rubricAvgMin; sumMax += numberOfSliders * rubricAvgMax; -- GitLab