From dcefdf016d6f9c1c1ffe205e2b7f28daa41b7d4c Mon Sep 17 00:00:00 2001
From: uhensler <urs.hensler@frentix.com>
Date: Wed, 5 Feb 2020 16:09:32 +0100
Subject: [PATCH] OO-4520: Add return rate to survey report figures

---
 .../ui/EvaluationFormOverviewController.java  | 19 +++++++++++++------
 .../forms/ui/_i18n/LocalStrings_de.properties |  3 ++-
 .../forms/ui/_i18n/LocalStrings_en.properties |  3 ++-
 .../forms/ui/_i18n/LocalStrings_fr.properties |  2 +-
 .../ui/_i18n/LocalStrings_pt_BR.properties    |  2 +-
 5 files changed, 19 insertions(+), 10 deletions(-)

diff --git a/src/main/java/org/olat/modules/forms/ui/EvaluationFormOverviewController.java b/src/main/java/org/olat/modules/forms/ui/EvaluationFormOverviewController.java
index 85c463f89ad..1fa8257e7eb 100644
--- a/src/main/java/org/olat/modules/forms/ui/EvaluationFormOverviewController.java
+++ b/src/main/java/org/olat/modules/forms/ui/EvaluationFormOverviewController.java
@@ -76,18 +76,25 @@ public class EvaluationFormOverviewController extends BasicController {
 		EvaluationFormStatistic statistic = evaluationFormManager.getSessionsStatistic(filter);
 		
 		long numOfDoneSessions = statistic.getNumOfDoneSessions();
-		String numberSessions;
 		if (figures != null && figures.getNumberOfParticipations() != null) {
+			double percent = figures.getNumberOfParticipations() > 0
+					? numOfDoneSessions / figures.getNumberOfParticipations() * 100.0d
+					: 0.0;
+			long percentRounded = Math.round(percent);
+			
 			String[] args = new String[] {
 					String.valueOf(numOfDoneSessions),
-					String.valueOf(figures.getNumberOfParticipations())
+					String.valueOf(figures.getNumberOfParticipations()),
+					String.valueOf(percentRounded)
 			};
-			numberSessions = translate("report.overview.figures.number.done.session.of", args);
+			String numberSessions = translate("report.overview.figures.number.done.session.of", args);
+			allFigures.add(new Figure(translate("report.overview.figures.number.done.session.percent"),
+					numberSessions));
 		} else {
-			numberSessions = String.valueOf(numOfDoneSessions);
+			String numberSessions = String.valueOf(numOfDoneSessions);
+			allFigures.add(new Figure(translate("report.overview.figures.number.done.session"),
+					numberSessions));
 		}
-		allFigures.add(new Figure(translate("report.overview.figures.number.done.session"),
-				numberSessions));
 
 		String submissionPeriod = EvaluationFormFormatter.period(statistic.getFirstSubmission(),
 				statistic.getLastSubmission(), getLocale());
diff --git a/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_de.properties
index d90b57e39b8..4e6c527a475 100644
--- a/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_de.properties
@@ -76,7 +76,8 @@ report.overview.duration.count=Anzahl
 report.overview.duration.title=Bearbeitungsdauer
 report.overview.duration=Bearbeitungsdauer
 report.overview.figures.average.duration=Durchschnittliche Bearbeitungsdauer
-report.overview.figures.number.done.session.of={0} von {1}
+report.overview.figures.number.done.session.of={0} von {1} / {2}%
+report.overview.figures.number.done.session.percent=$\:report.overview.figures.number.done.session / R\u00FCcklaufquote
 report.overview.figures.number.done.session=Anzahl Teilnehmer
 report.overview.figures.submission.period=Abgabezeitraum
 report.overview.figures.title=Kennzahlen
diff --git a/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_en.properties
index 1d2d4e033e4..277410b7e30 100644
--- a/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_en.properties
@@ -75,7 +75,8 @@ report.overview.duration.count=Count
 report.overview.duration.title=Duration
 report.overview.duration=Duration
 report.overview.figures.average.duration=Average duration
-report.overview.figures.number.done.session.of={0} of {1}
+report.overview.figures.number.done.session.of={0} of {1} / {2}%
+report.overview.figures.number.done.session.percent=$\:report.overview.figures.number.done.session / Return rate
 report.overview.figures.number.done.session=Number of participants
 report.overview.figures.submission.period=Submission period
 report.overview.figures.title=Figures
diff --git a/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_fr.properties
index 7e252e809dd..006807445bb 100644
--- a/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_fr.properties
@@ -75,7 +75,7 @@ report.overview.duration.count=Nombre
 report.overview.duration.title=Dur\u00E9e
 report.overview.figures.average.duration=Dur\u00E9e moyenne
 report.overview.figures.number.done.session=Nombre de participants
-report.overview.figures.number.done.session.of={0} sur {1}
+report.overview.figures.number.done.session.of={0} sur {1} / {2}%
 report.overview.figures.submission.period=P\u00E9riode de soumission
 report.overview.figures.title=Indicateurs
 report.overview.total.title=Total rubriques
diff --git a/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_pt_BR.properties
index 33a686e5544..d14261aa1f9 100644
--- a/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_pt_BR.properties
@@ -76,7 +76,7 @@ report.overview.duration.count=Contagem
 report.overview.duration.title=Dura\u00E7\u00E3o
 report.overview.figures.average.duration=Dura\u00E7\u00E3o m\u00E9dia
 report.overview.figures.number.done.session=N\u00FAmero de participantes
-report.overview.figures.number.done.session.of={0} de {1}
+report.overview.figures.number.done.session.of={0} de {1} / {2}%
 report.overview.figures.submission.period=Per\u00EDodo de Submiss\u00E3o
 report.overview.figures.title=N\u00FAmeros-chave
 report.overview.total.title=Rubricas totais
-- 
GitLab