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 {
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,
......
......@@ -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) {
......
......@@ -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) {
......
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