Skip to content
Snippets Groups Projects
Commit 01a900dd authored by srosse's avatar srosse
Browse files

Merge branch 'OpenOLAT_13.2' of...

Merge branch 'OpenOLAT_13.2' of ssh://srosse@office.frentix.com/home/srosse/repositories/OpenOLAT.git into OpenOLAT_13.2
parents 11e16510 89eff346
No related branches found
No related tags found
No related merge requests found
...@@ -98,9 +98,6 @@ public interface QualityAnalysisService { ...@@ -98,9 +98,6 @@ public interface QualityAnalysisService {
public MultiTrendSeries<String> calculateIdentifierTrends(AnalysisSearchParameter searchParams, public MultiTrendSeries<String> calculateIdentifierTrends(AnalysisSearchParameter searchParams,
Collection<String> responseIdentifiers, Collection<Rubric> rubrics, TemporalGroupBy temporalGroupBy); 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, * Calculate trend of multiple rubrics. Before using this method, make sure,
......
...@@ -19,7 +19,6 @@ ...@@ -19,7 +19,6 @@
*/ */
package org.olat.modules.quality.analysis.manager; package org.olat.modules.quality.analysis.manager;
import static java.util.Collections.singletonList;
import static java.util.stream.Collectors.toList; import static java.util.stream.Collectors.toList;
import java.util.Collection; import java.util.Collection;
...@@ -316,19 +315,6 @@ public class QualityAnalysisServiceImpl implements QualityAnalysisService { ...@@ -316,19 +315,6 @@ public class QualityAnalysisServiceImpl implements QualityAnalysisService {
return statisticsCalculator.getTrendsByIdentifiers(statistics, temporalGroupBy); 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 @Override
public MultiTrendSeries<MultiKey> calculateTrends(AnalysisSearchParameter searchParams, public MultiTrendSeries<MultiKey> calculateTrends(AnalysisSearchParameter searchParams,
Set<Rubric> rubrics, MultiGroupBy groupBy, TemporalGroupBy temporalGroupBy) { Set<Rubric> rubrics, MultiGroupBy groupBy, TemporalGroupBy temporalGroupBy) {
......
...@@ -69,6 +69,10 @@ public class StatisticsCalculator { ...@@ -69,6 +69,10 @@ public class StatisticsCalculator {
GroupedStatistics<GroupedStatistic> statistics = new GroupedStatistics<>(); GroupedStatistics<GroupedStatistic> statistics = new GroupedStatistics<>();
for (RawGroupedStatistic rawStatistic : rawStatistics.getStatistics()) { for (RawGroupedStatistic rawStatistic : rawStatistics.getStatistics()) {
Rubric rubric = identifierToRubric.get(rawStatistic.getIdentifier()); Rubric rubric = identifierToRubric.get(rawStatistic.getIdentifier());
if (rubric == null) {
// fallback for trend (grouped by rubric / grouped by all)
rubric = getFirstRubric(rubrics);
}
if (rubric != null) { if (rubric != null) {
GroupedStatistic statistic = getGroupedStatistic(rawStatistic, rubric); GroupedStatistic statistic = getGroupedStatistic(rawStatistic, rubric);
statistics.putStatistic(statistic); statistics.putStatistic(statistic);
...@@ -77,6 +81,13 @@ public class StatisticsCalculator { ...@@ -77,6 +81,13 @@ public class StatisticsCalculator {
return statistics; return statistics;
} }
private Rubric getFirstRubric(Collection<Rubric> rubrics) {
for (Rubric rubric : rubrics) {
return rubric;
}
return null;
}
private Map<String, Rubric> getIdentifierToRubric(Collection<Rubric> rubrics) { private Map<String, Rubric> getIdentifierToRubric(Collection<Rubric> rubrics) {
Map<String, Rubric> identifierToRubric = new HashMap<>(); Map<String, Rubric> identifierToRubric = new HashMap<>();
for (Rubric rubric : rubrics) { for (Rubric rubric : rubrics) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment