diff --git a/src/main/java/org/olat/modules/quality/analysis/QualityAnalysisService.java b/src/main/java/org/olat/modules/quality/analysis/QualityAnalysisService.java index 6e44ba293fe9c1c5f86d4fc8e8bcef1156c1feee..2a7b5b5b8ff43cc67bb0142a128e999eda790329 100644 --- a/src/main/java/org/olat/modules/quality/analysis/QualityAnalysisService.java +++ b/src/main/java/org/olat/modules/quality/analysis/QualityAnalysisService.java @@ -98,9 +98,6 @@ public interface QualityAnalysisService { public MultiTrendSeries<String> calculateIdentifierTrends(AnalysisSearchParameter searchParams, Collection<String> responseIdentifiers, Collection<Rubric> rubrics, TemporalGroupBy temporalGroupBy); - - public MultiTrendSeries<MultiKey> calculateTrends(AnalysisSearchParameter searchParams, - Rubric rubric, MultiGroupBy groupBy, TemporalGroupBy temporalGroupBy); /** * Calculate trend of multiple rubrics. Before using this method, make sure, diff --git a/src/main/java/org/olat/modules/quality/analysis/manager/QualityAnalysisServiceImpl.java b/src/main/java/org/olat/modules/quality/analysis/manager/QualityAnalysisServiceImpl.java index e4e65d90e26bede053669d68342519a0ebd4e262..6a8ccbe7d4ca0fe8c7815215fa0bb7a1b717974a 100644 --- a/src/main/java/org/olat/modules/quality/analysis/manager/QualityAnalysisServiceImpl.java +++ b/src/main/java/org/olat/modules/quality/analysis/manager/QualityAnalysisServiceImpl.java @@ -19,7 +19,6 @@ */ package org.olat.modules.quality.analysis.manager; -import static java.util.Collections.singletonList; import static java.util.stream.Collectors.toList; import java.util.Collection; @@ -316,19 +315,6 @@ public class QualityAnalysisServiceImpl implements QualityAnalysisService { return statisticsCalculator.getTrendsByIdentifiers(statistics, temporalGroupBy); } - @Override - public MultiTrendSeries<MultiKey> calculateTrends(AnalysisSearchParameter searchParams, Rubric rubric, - MultiGroupBy groupBy, TemporalGroupBy temporalGroupBy) { - if (groupBy == null || temporalGroupBy == null) return new MultiTrendSeries<>(); - - List<String> identifiers = rubric.getSliders().stream().map(Slider::getId).collect(toList()); - List<RawGroupedStatistic> statisticsList = filterDao.loadGroupedStatistic(searchParams, - identifiers, true, groupBy, temporalGroupBy); - GroupedStatistics<RawGroupedStatistic> rawStatistics = new GroupedStatistics<>(statisticsList); - GroupedStatistics<GroupedStatistic> statistics = statisticsCalculator.getGroupedStatistics(rawStatistics, singletonList(rubric)); - return statisticsCalculator.getTrendsByMultiKey(statistics, temporalGroupBy); - } - @Override public MultiTrendSeries<MultiKey> calculateTrends(AnalysisSearchParameter searchParams, Set<Rubric> rubrics, MultiGroupBy groupBy, TemporalGroupBy temporalGroupBy) { diff --git a/src/main/java/org/olat/modules/quality/analysis/manager/StatisticsCalculator.java b/src/main/java/org/olat/modules/quality/analysis/manager/StatisticsCalculator.java index c3dba002073abbe6cc485cee842cba30f2078c14..4d3c43d3e8968722a462945bf5da4437baaff080 100644 --- a/src/main/java/org/olat/modules/quality/analysis/manager/StatisticsCalculator.java +++ b/src/main/java/org/olat/modules/quality/analysis/manager/StatisticsCalculator.java @@ -69,6 +69,10 @@ public class StatisticsCalculator { GroupedStatistics<GroupedStatistic> statistics = new GroupedStatistics<>(); for (RawGroupedStatistic rawStatistic : rawStatistics.getStatistics()) { Rubric rubric = identifierToRubric.get(rawStatistic.getIdentifier()); + if (rubric == null) { + // fallback for trend (grouped by rubric / grouped by all) + rubric = getFirstRubric(rubrics); + } if (rubric != null) { GroupedStatistic statistic = getGroupedStatistic(rawStatistic, rubric); statistics.putStatistic(statistic); @@ -77,6 +81,13 @@ public class StatisticsCalculator { return statistics; } + private Rubric getFirstRubric(Collection<Rubric> rubrics) { + for (Rubric rubric : rubrics) { + return rubric; + } + return null; + } + private Map<String, Rubric> getIdentifierToRubric(Collection<Rubric> rubrics) { Map<String, Rubric> identifierToRubric = new HashMap<>(); for (Rubric rubric : rubrics) {