From b0d932b22bc056cd028f32e3bb21a67a0cad305d Mon Sep 17 00:00:00 2001
From: uhensler <urs.hensler@frentix.com>
Date: Wed, 27 Jan 2021 17:02:32 +0100
Subject: [PATCH] OO-5253: Display done participations before resetting survey

---
 .../course/nodes/survey/SurveyManager.java    |  5 +-
 .../survey/manager/SurveyManagerImpl.java     |  5 +-
 ...urveyDeleteDataConfirmationController.java | 11 ++--
 .../nodes/survey/ui/SurveyRunController.java  |  6 ++-
 .../ui/_content/delete_data_confirmation.html |  2 +-
 .../ui/_i18n/LocalStrings_de.properties       |  2 +-
 .../ui/_i18n/LocalStrings_en.properties       |  2 +-
 .../ui/_i18n/LocalStrings_fr.properties       | 53 +++++++++----------
 .../ui/_i18n/LocalStrings_it.properties       | 11 ++--
 .../ui/_i18n/LocalStrings_pt_BR.properties    | 39 +++++++-------
 .../modules/forms/EvaluationFormManager.java  |  2 -
 .../modules/forms/SessionFilterFactory.java   |  4 ++
 .../manager/EvaluationFormManagerImpl.java    |  5 --
 .../manager/EvaluationFormSessionDAO.java     | 14 -----
 .../manager/EvaluationFormSessionDAOTest.java | 17 ------
 15 files changed, 74 insertions(+), 104 deletions(-)

diff --git a/src/main/java/org/olat/course/nodes/survey/SurveyManager.java b/src/main/java/org/olat/course/nodes/survey/SurveyManager.java
index ff6660e0534..14de2bcbad1 100644
--- a/src/main/java/org/olat/course/nodes/survey/SurveyManager.java
+++ b/src/main/java/org/olat/course/nodes/survey/SurveyManager.java
@@ -30,6 +30,7 @@ import org.olat.modules.forms.EvaluationFormParticipation;
 import org.olat.modules.forms.EvaluationFormSession;
 import org.olat.modules.forms.EvaluationFormSurvey;
 import org.olat.modules.forms.EvaluationFormSurveyIdentifier;
+import org.olat.modules.forms.SessionFilter;
 import org.olat.modules.forms.model.xml.Form;
 import org.olat.repository.RepositoryEntry;
 
@@ -69,8 +70,8 @@ public interface SurveyManager {
 
 	public void onExecutionFinished(SurveyCourseNode courseNode, UserCourseEnvironment userCourseEnv);
 
-	public long getCountOfSessions(EvaluationFormSurvey survey);
-
+	public Long getSessionsCount(SessionFilter filter);
+	
 	public void deleteAllData(EvaluationFormSurvey survey, SurveyCourseNode courseNode, UserCourseEnvironment userCourseEnv);
 
 }
diff --git a/src/main/java/org/olat/course/nodes/survey/manager/SurveyManagerImpl.java b/src/main/java/org/olat/course/nodes/survey/manager/SurveyManagerImpl.java
index 645000326f7..fe79d2fd4b7 100644
--- a/src/main/java/org/olat/course/nodes/survey/manager/SurveyManagerImpl.java
+++ b/src/main/java/org/olat/course/nodes/survey/manager/SurveyManagerImpl.java
@@ -43,6 +43,7 @@ import org.olat.modules.forms.EvaluationFormParticipationIdentifier;
 import org.olat.modules.forms.EvaluationFormSession;
 import org.olat.modules.forms.EvaluationFormSurvey;
 import org.olat.modules.forms.EvaluationFormSurveyIdentifier;
+import org.olat.modules.forms.SessionFilter;
 import org.olat.modules.forms.model.xml.Form;
 import org.olat.repository.RepositoryEntry;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -176,8 +177,8 @@ public class SurveyManagerImpl implements SurveyManager {
 	}
 
 	@Override
-	public long getCountOfSessions(EvaluationFormSurvey survey) {
-		return evaluationFormManager.getCountOfSessions(survey);
+	public Long getSessionsCount(SessionFilter filter) {
+		return evaluationFormManager.loadSessionsCount(filter);
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/course/nodes/survey/ui/SurveyDeleteDataConfirmationController.java b/src/main/java/org/olat/course/nodes/survey/ui/SurveyDeleteDataConfirmationController.java
index d2dff8ce746..557a58cd01f 100644
--- a/src/main/java/org/olat/course/nodes/survey/ui/SurveyDeleteDataConfirmationController.java
+++ b/src/main/java/org/olat/course/nodes/survey/ui/SurveyDeleteDataConfirmationController.java
@@ -40,11 +40,13 @@ public class SurveyDeleteDataConfirmationController extends FormBasicController
 
 	private MultipleSelectionElement confirmationEl;
 	
-	private final long numberOfSessions;
+	private final Long allSessions;
+	private final Long doneSessions;
 	
-	public SurveyDeleteDataConfirmationController(UserRequest ureq, WindowControl wControl, long numberOfSessions) {
+	public SurveyDeleteDataConfirmationController(UserRequest ureq, WindowControl wControl, Long allSessions, Long doneSessions) {
 		super(ureq, wControl, "delete_data_confirmation");
-		this.numberOfSessions = numberOfSessions;
+		this.allSessions = allSessions;
+		this.doneSessions = doneSessions;
 		initForm(ureq);
 	}
 
@@ -54,7 +56,8 @@ public class SurveyDeleteDataConfirmationController extends FormBasicController
 		formLayout.add("confirm", confirmCont);
 		confirmCont.setRootForm(mainForm);
 		
-		flc.contextPut("numSessions", String.valueOf(numberOfSessions));
+		String message = translate("run.command.delete.data.all.message", new String[] {String.valueOf(allSessions), String.valueOf(doneSessions)} );
+		flc.contextPut("message", message);
 		
 		String[] conformationValues = new String[] { translate("run.command.delete.data.all.check") };
 		confirmationEl = uifactory.addCheckboxesHorizontal("confirm.delete", "", confirmCont, confirmationKeys, conformationValues);
diff --git a/src/main/java/org/olat/course/nodes/survey/ui/SurveyRunController.java b/src/main/java/org/olat/course/nodes/survey/ui/SurveyRunController.java
index 4b3efbce6ae..4c6b667705b 100644
--- a/src/main/java/org/olat/course/nodes/survey/ui/SurveyRunController.java
+++ b/src/main/java/org/olat/course/nodes/survey/ui/SurveyRunController.java
@@ -42,6 +42,7 @@ import org.olat.modules.forms.EvaluationFormParticipation;
 import org.olat.modules.forms.EvaluationFormSession;
 import org.olat.modules.forms.EvaluationFormSurvey;
 import org.olat.modules.forms.EvaluationFormSurveyIdentifier;
+import org.olat.modules.forms.SessionFilterFactory;
 import org.olat.modules.forms.ui.EvaluationFormExecutionController;
 import org.olat.modules.forms.ui.ProgressEvent;
 import org.olat.repository.RepositoryEntry;
@@ -180,8 +181,9 @@ public class SurveyRunController extends BasicController {
 	}
 
 	private void doConfirmDeleteAllData(UserRequest ureq) {
-		long countOfSessions = surveyManager.getCountOfSessions(survey);
-		deleteDataConfirmationCtrl = new SurveyDeleteDataConfirmationController(ureq, getWindowControl(), countOfSessions);
+		Long allSessions = surveyManager.getSessionsCount(SessionFilterFactory.create(survey));
+		Long doneSessions = surveyManager.getSessionsCount(SessionFilterFactory.createSelectDone(survey));
+		deleteDataConfirmationCtrl = new SurveyDeleteDataConfirmationController(ureq, getWindowControl(), allSessions, doneSessions);
 		listenTo(deleteDataConfirmationCtrl);
 		cmc = new CloseableModalController(getWindowControl(), translate("close"),
 				deleteDataConfirmationCtrl.getInitialComponent(), true, translate("run.command.delete.data.all.title"), true);
diff --git a/src/main/java/org/olat/course/nodes/survey/ui/_content/delete_data_confirmation.html b/src/main/java/org/olat/course/nodes/survey/ui/_content/delete_data_confirmation.html
index 124c56a8b3a..47f00550397 100644
--- a/src/main/java/org/olat/course/nodes/survey/ui/_content/delete_data_confirmation.html
+++ b/src/main/java/org/olat/course/nodes/survey/ui/_content/delete_data_confirmation.html
@@ -1,4 +1,4 @@
 <div class="o_error">
-	$r.translate("run.command.delete.data.all.message", $numSessions)
+	$message
 </div>
 $r.render("confirm")
\ No newline at end of file
diff --git a/src/main/java/org/olat/course/nodes/survey/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/nodes/survey/ui/_i18n/LocalStrings_de.properties
index 56d4753a81a..965a3461de6 100644
--- a/src/main/java/org/olat/course/nodes/survey/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/course/nodes/survey/ui/_i18n/LocalStrings_de.properties
@@ -31,7 +31,7 @@ run.command.delete.data.all=Umfrage zur\u00fcksetzen
 run.command.delete.data.all.confirmation.error=Best\u00e4tigen Sie bitte das L\u00f6schen.
 run.command.delete.data.all.button=L\u00f6schen
 run.command.delete.data.all.check=Alle Antworten l\u00f6schen
-run.command.delete.data.all.message=Wollen Sie wirklich alle Antworten l\u00f6schen? Es haben bereits {0} Benutzer/innen an dieser Umfrage teilgenommen. Die Antworten k\u00f6nnen nicht wieder hergestellt werden!
+run.command.delete.data.all.message=Wollen Sie wirklich alle Antworten l\u00f6schen? Die Umfrage wurde bereits von {0} Benutzer/innen gestartet und von {1} Benutzer/innen abgeschlossen. Die Antworten k\u00f6nnen nicht wieder hergestellt werden!
 run.command.delete.data.all.title=Alle Antworten l\u00f6schen
 run.participation.done.message=Sie haben den Fragebogen bereits ausgef\u00fcllt. Vielen Dank f\u00fcr Ihre Teilnahme.
 run.participation.done.title=Fragebogen ausgef\u00fcllt
diff --git a/src/main/java/org/olat/course/nodes/survey/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/nodes/survey/ui/_i18n/LocalStrings_en.properties
index 56e0442448c..61967e710cf 100644
--- a/src/main/java/org/olat/course/nodes/survey/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/nodes/survey/ui/_i18n/LocalStrings_en.properties
@@ -31,7 +31,7 @@ run.command.delete.data.all=Reset survey
 run.command.delete.data.all.confirmation.error=Please confirm the deletion of the responses.
 run.command.delete.data.all.button=Delete
 run.command.delete.data.all.check=Delete all responses
-run.command.delete.data.all.message=Do you really want to delete all responses. Already {0} users participated in this survey. It is not possible to restore the responses.
+run.command.delete.data.all.message=Do you really want to delete all responses. The survey has already been started by {0} users and completed by {1} users. It is not possible to restore the responses.
 run.command.delete.data.all.title=Delete all responses
 run.participation.done.message=You have already finished this survey. Thank you for your participation.
 run.participation.done.title=Survey finished
diff --git a/src/main/java/org/olat/course/nodes/survey/ui/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/course/nodes/survey/ui/_i18n/LocalStrings_fr.properties
index ee9f8a53adc..da6b9f47a86 100644
--- a/src/main/java/org/olat/course/nodes/survey/ui/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/course/nodes/survey/ui/_i18n/LocalStrings_fr.properties
@@ -1,45 +1,44 @@
 #Thu Oct 08 13:56:14 CEST 2020
-condition.accessibility.title=Acc\u00E8s
+condition.accessibility.title=Acc\u00e8s
 course.node.link.text=Questionnaire
-edit.choose=Choisir, cr\u00E9er ou importer
+edit.choose=Choisir, cr\u00e9er ou importer
 edit.choose.evaluation.form=Choisir un questionnaire
 edit.edit=Editer
 edit.evaluation.form=Questionnaire
 edit.evaluation.form.link={0}
-edit.evaluation.form.not.choosen=Pas de questionnaire s\u00E9lectionner
+edit.evaluation.form.not.choosen=Pas de questionnaire s\u00e9lectionner
 edit.execution=Participation par
 edit.execution.by.coach=Coaches
-edit.execution.by.guest=Invit\u00E9s
-edit.execution.by.owner=Propri\u00E9taires
+edit.execution.by.guest=Invit\u00e9s
+edit.execution.by.owner=Propri\u00e9taires
 edit.execution.by.participant=Participants
-edit.preview=Aper\u00E7u
+edit.preview=Aper\u00e7u
 edit.replace=Remplacer
-edit.report=R\u00E9sultats visible pour
+edit.report=R\u00e9sultats visible pour
 edit.report.for.coach=Coaches
-edit.report.for.guest=Invit\u00E9s
-edit.report.for.owner=Propri\u00E9taires
+edit.report.for.guest=Invit\u00e9s
+edit.report.for.owner=Propri\u00e9taires
 edit.report.for.participant=Participants
 edit.title=Questionnaire
-error.repo.entry.missing=Le questionnaire que vous voulez afficher \u00E0 \u00E9t\u00E9 effac\u00E9 entre-temps des ressources didactiques.
-error.repo.entry.not.replaceable=Le questionnaire ne peut plus \u00EAtre remplac\u00E9.
-error.repo.no.key.long=Pour "{0}", vous devez s\u00E9lectionner un questionnaire dans le tab "Questionnaire" dans la section configuration.
-error.repo.no.key.short=Pas de questionnaire s\u00E9lectionn\u00E9.
+error.repo.entry.missing=Le questionnaire que vous voulez afficher \u00e0 \u00e9t\u00e9 effac\u00e9 entre-temps des ressources didactiques.
+error.repo.entry.not.replaceable=Le questionnaire ne peut plus \u00eatre remplac\u00e9.
+error.repo.no.key.long=Pour "{0}", vous devez s\u00e9lectionner un questionnaire dans le tab "Questionnaire" dans la section configuration.
+error.repo.no.key.short=Pas de questionnaire s\u00e9lectionn\u00e9.
 figure.course=Cours
-figure.course.node=\u00C9lement de cours
+figure.course.node=\u00c9lement de cours
 fully.assessed.trigger.status.done=Questionnaire soumis
-pane.tab.accessibility=Acc\u00E8s
+pane.tab.accessibility=Acc\u00e8s
 pane.tab.config=Questionnaire
-report.noaccess=Vous n'avez pas acc\u00E8s aux statistiques de ce questionnaire. Soit vous n'avez pas les autorisations requises, soit vous n'avez pas termin\u00E9 de remplir le questionnaire.
-run.command.delete.data.all=R\u00E9initialiser le questionnaire
+report.noaccess=Vous n'avez pas acc\u00e8s aux statistiques de ce questionnaire. Soit vous n'avez pas les autorisations requises, soit vous n'avez pas termin\u00e9 de remplir le questionnaire.
+run.command.delete.data.all=R\u00e9initialiser le questionnaire
 run.command.delete.data.all.button=Effacer
-run.command.delete.data.all.check=Effacer toutes les r\u00E9ponses
-run.command.delete.data.all.confirmation.error=Veuillez confirmer l'effacement de toutes les r\u00E9ponses.
-run.command.delete.data.all.message=Voulez-vous vraiment effacer toutes les r\u00E9ponses de ce questionnaire? {0} utilisateurs l'ont d\u00E9j\u00E0 rempli. Il ne sera pas possible de restaurer les r\u00E9ponses effac\u00E9es.
-run.command.delete.data.all.title=Effacer toutes les r\u00E9ponses
-run.no.survey.message=Le questionnaire n'est pas pr\u00EAt \u00E0 \u00EAtre utilis\u00E9.
-run.no.survey.title=Le questionnaire n'est pas pr\u00EAt.
+run.command.delete.data.all.check=Effacer toutes les r\u00e9ponses
+run.command.delete.data.all.confirmation.error=Veuillez confirmer l'effacement de toutes les r\u00e9ponses.
+run.command.delete.data.all.title=Effacer toutes les r\u00e9ponses
+run.no.survey.message=Le questionnaire n'est pas pr\u00eat \u00e0 \u00eatre utilis\u00e9.
+run.no.survey.title=Le questionnaire n'est pas pr\u00eat.
 run.noaccess.message=Cette partie du cours ne vous est pas accessible.
-run.noaccess.title=Acc\u00E8s refus\u00E9
-run.participation.done.message=Vous avez d\u00E9j\u00E0 rempli ce questionnaire. Merci de votre participation.
-run.participation.done.title=Questionnaire termin\u00E9
-run.reset=R\u00E9initialiser
+run.noaccess.title=Acc\u00e8s refus\u00e9
+run.participation.done.message=Vous avez d\u00e9j\u00e0 rempli ce questionnaire. Merci de votre participation.
+run.participation.done.title=Questionnaire termin\u00e9
+run.reset=R\u00e9initialiser
diff --git a/src/main/java/org/olat/course/nodes/survey/ui/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/course/nodes/survey/ui/_i18n/LocalStrings_it.properties
index b45b426ceb8..1e2bb64785e 100644
--- a/src/main/java/org/olat/course/nodes/survey/ui/_i18n/LocalStrings_it.properties
+++ b/src/main/java/org/olat/course/nodes/survey/ui/_i18n/LocalStrings_it.properties
@@ -19,8 +19,8 @@ edit.report.for.guest=Ospiti
 edit.report.for.owner=Proprietari
 edit.report.for.participant=Partecipanti
 edit.title=Indagine
-error.repo.entry.missing=Questa indagine \u00E8 stata nel frattempo cancellata all'interno della cartella di memorizzazione delle risorse di apprendimento.
-error.repo.entry.not.replaceable=Il questionario non pu\u00F2 pi\u00F9 essere sostituito.
+error.repo.entry.missing=Questa indagine \u00e8 stata nel frattempo cancellata all'interno della cartella di memorizzazione delle risorse di apprendimento.
+error.repo.entry.not.replaceable=Il questionario non pu\u00f2 pi\u00f9 essere sostituito.
 error.repo.no.key.long=Per "{0}" devi selezionare un questionario nella scheda " Indagine" all'interno della sezione di configurazione.
 error.repo.no.key.short=Nessun questionario scelto.
 fully.assessed.trigger.status.done=Indagine terminata
@@ -30,12 +30,11 @@ run.command.delete.data.all=Resettare indagine
 run.command.delete.data.all.button=Cancellare
 run.command.delete.data.all.check=Cancellare tutte le risposte
 run.command.delete.data.all.confirmation.error=Si prega di confermare la cancellazione delle risposte.
-run.command.delete.data.all.message=Vuole davvero cancellare tutte le risposte? Gi\u00E0 {0} utenti hanno partecipato a questa indagine. Non \u00E8 possibile ripristinare le risposte.
 run.command.delete.data.all.title=Cancellare tutte le risposte
-run.no.survey.message=Questa indagine non \u00E8 disponibile per la partecipazione.
+run.no.survey.message=Questa indagine non \u00e8 disponibile per la partecipazione.
 run.no.survey.title=Indagine non pronta
-run.noaccess.message=Questa parte del corso non \u00E8 accessibile per lei.
+run.noaccess.message=Questa parte del corso non \u00e8 accessibile per lei.
 run.noaccess.title=Nessuno accesso
-run.participation.done.message=Lei ha gi\u00E0 terminato questo sondaggio. Grazie per la sua partecipazione.
+run.participation.done.message=Lei ha gi\u00e0 terminato questo sondaggio. Grazie per la sua partecipazione.
 run.participation.done.title=Indagine terminata
 run.reset=Resettare
diff --git a/src/main/java/org/olat/course/nodes/survey/ui/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/course/nodes/survey/ui/_i18n/LocalStrings_pt_BR.properties
index dedcf67ac3c..c50631bab21 100644
--- a/src/main/java/org/olat/course/nodes/survey/ui/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/course/nodes/survey/ui/_i18n/LocalStrings_pt_BR.properties
@@ -1,43 +1,42 @@
 #Fri Sep 25 19:50:24 CEST 2020
 course.node.link.text=Pesquisa
 edit.choose=Escolha, crie ou importe
-edit.choose.evaluation.form=Escolha o question\u00E1rio
+edit.choose.evaluation.form=Escolha o question\u00e1rio
 edit.edit=Editar
-edit.evaluation.form=Question\u00E1rio
+edit.evaluation.form=Question\u00e1rio
 edit.evaluation.form.link={0}
-edit.evaluation.form.not.choosen=Nenhum question\u00E1rio escolhido
-edit.execution=Participa\u00E7\u00E3o por
+edit.evaluation.form.not.choosen=Nenhum question\u00e1rio escolhido
+edit.execution=Participa\u00e7\u00e3o por
 edit.execution.by.coach=Treinadores
 edit.execution.by.guest=Convidados
-edit.execution.by.owner=Propriet\u00E1rios
+edit.execution.by.owner=Propriet\u00e1rios
 edit.execution.by.participant=Participantes
 edit.preview=Visualizar
 edit.replace=Substituir
-edit.report=Resultados vis\u00EDveis para
+edit.report=Resultados vis\u00edveis para
 edit.report.for.coach=Treinadores
 edit.report.for.guest=Convidados
-edit.report.for.owner=Propriet\u00E1rios
+edit.report.for.owner=Propriet\u00e1rios
 edit.report.for.participant=Participantes
 edit.title=Pesquisa
-error.repo.entry.missing=Esta pesquisa foi apagada enquanto isso dentro da pasta de armazenamento de recursos did\u00E1ticos.
-error.repo.entry.not.replaceable=O question\u00E1rio n\u00E3o pode mais ser substitu\u00EDdo.
-error.repo.no.key.long=Para "{0}" voc\u00EA tem que selecionar um question\u00E1rio na aba "Pesquisa" dentro da se\u00E7\u00E3o de configura\u00E7\u00E3o.
-error.repo.no.key.short=Nenhum question\u00E1rio escolhido.
+error.repo.entry.missing=Esta pesquisa foi apagada enquanto isso dentro da pasta de armazenamento de recursos did\u00e1ticos.
+error.repo.entry.not.replaceable=O question\u00e1rio n\u00e3o pode mais ser substitu\u00eddo.
+error.repo.no.key.long=Para "{0}" voc\u00ea tem que selecionar um question\u00e1rio na aba "Pesquisa" dentro da se\u00e7\u00e3o de configura\u00e7\u00e3o.
+error.repo.no.key.short=Nenhum question\u00e1rio escolhido.
 figure.course=Curso
 figure.course.node=Elemento do Curso
-fully.assessed.trigger.status.done=Pesquisa conclu\u00EDda
+fully.assessed.trigger.status.done=Pesquisa conclu\u00edda
 pane.tab.config=Pesquisa
-report.noaccess=Voc\u00EA n\u00E3o tem acesso \u00E0s estat\u00EDsticas desta pesquisa. Voc\u00EA n\u00E3o tem os direitos necess\u00E1rios ou n\u00E3o terminou sua participa\u00E7\u00E3o.
+report.noaccess=Voc\u00ea n\u00e3o tem acesso \u00e0s estat\u00edsticas desta pesquisa. Voc\u00ea n\u00e3o tem os direitos necess\u00e1rios ou n\u00e3o terminou sua participa\u00e7\u00e3o.
 run.command.delete.data.all=Redefinir pesquisa
 run.command.delete.data.all.button=Excluir
 run.command.delete.data.all.check=Excluir todas as respostas
-run.command.delete.data.all.confirmation.error=Por favor, confirme a exclus\u00E3o das respostas.
-run.command.delete.data.all.message=Voc\u00EA realmente deseja excluir todas as respostas? {0} usu\u00E1rios j\u00E1 participaram desta pesquisa. N\u00E3o \u00E9 poss\u00EDvel restaurar as respostas.
+run.command.delete.data.all.confirmation.error=Por favor, confirme a exclus\u00e3o das respostas.
 run.command.delete.data.all.title=Excluir todas as respostas
-run.no.survey.message=A pesquisa n\u00E3o est\u00E1 pronta para participar.
-run.no.survey.title=Pesquisa n\u00E3o est\u00E1 pronta
-run.noaccess.message=Esta parte do curso n\u00E3o est\u00E1 acess\u00EDvel para voc\u00EA.
+run.no.survey.message=A pesquisa n\u00e3o est\u00e1 pronta para participar.
+run.no.survey.title=Pesquisa n\u00e3o est\u00e1 pronta
+run.noaccess.message=Esta parte do curso n\u00e3o est\u00e1 acess\u00edvel para voc\u00ea.
 run.noaccess.title=Sem acesso
-run.participation.done.message=Voc\u00EA j\u00E1 terminou esta pesquisa. Obrigado pela sua participa\u00E7\u00E3o.
-run.participation.done.title=Pesquisa conclu\u00EDda
+run.participation.done.message=Voc\u00ea j\u00e1 terminou esta pesquisa. Obrigado pela sua participa\u00e7\u00e3o.
+run.participation.done.title=Pesquisa conclu\u00edda
 run.reset=Redefinir
diff --git a/src/main/java/org/olat/modules/forms/EvaluationFormManager.java b/src/main/java/org/olat/modules/forms/EvaluationFormManager.java
index 7040f636704..bdb7e1a782c 100644
--- a/src/main/java/org/olat/modules/forms/EvaluationFormManager.java
+++ b/src/main/java/org/olat/modules/forms/EvaluationFormManager.java
@@ -176,8 +176,6 @@ public interface EvaluationFormManager {
 	 */
 	public EvaluationFormSession reopenSession(EvaluationFormSession session);
 	
-	public long getCountOfSessions(EvaluationFormSurveyRef surveyRef);
-	
 	public List<EvaluationFormResponse> getResponses(List<String> responseIdentifiers, SessionFilter filter, Limit limit);
 
 	public EvaluationFormResponse createStringResponse(String responseIdentifier, EvaluationFormSession session,
diff --git a/src/main/java/org/olat/modules/forms/SessionFilterFactory.java b/src/main/java/org/olat/modules/forms/SessionFilterFactory.java
index f6ae46461c2..ff23376d0a1 100644
--- a/src/main/java/org/olat/modules/forms/SessionFilterFactory.java
+++ b/src/main/java/org/olat/modules/forms/SessionFilterFactory.java
@@ -51,6 +51,10 @@ public class SessionFilterFactory {
 			EvaluationFormSessionStatus status) {
 		return new SurveysFilter(surveyIdentitfier, status);
 	}
+	
+	public static SessionFilter create(EvaluationFormSurveyRef survey) {
+		return new SurveysFilter(Collections.singletonList(survey));
+	}
 
 	public static SessionFilter createSelectDone(EvaluationFormSurveyRef survey) {
 		return createSelectDone(Collections.singletonList(survey));
diff --git a/src/main/java/org/olat/modules/forms/manager/EvaluationFormManagerImpl.java b/src/main/java/org/olat/modules/forms/manager/EvaluationFormManagerImpl.java
index 3b37dc2ab2b..31715c1762b 100644
--- a/src/main/java/org/olat/modules/forms/manager/EvaluationFormManagerImpl.java
+++ b/src/main/java/org/olat/modules/forms/manager/EvaluationFormManagerImpl.java
@@ -361,11 +361,6 @@ public class EvaluationFormManagerImpl implements EvaluationFormManager {
 		return finishedSesssion;
 	}
 
-	@Override
-	public long getCountOfSessions(EvaluationFormSurveyRef surveyRef) {
-		return evaluationFormSessionDao.getCountOfSessions(surveyRef);
-	}
-
 	@Override
 	public EvaluationFormResponse createFileResponse(String responseIdentifier, EvaluationFormSession session,
 			File file, String filename) throws IOException {
diff --git a/src/main/java/org/olat/modules/forms/manager/EvaluationFormSessionDAO.java b/src/main/java/org/olat/modules/forms/manager/EvaluationFormSessionDAO.java
index 68c000b9c50..b237c3aee0a 100644
--- a/src/main/java/org/olat/modules/forms/manager/EvaluationFormSessionDAO.java
+++ b/src/main/java/org/olat/modules/forms/manager/EvaluationFormSessionDAO.java
@@ -228,20 +228,6 @@ class EvaluationFormSessionDAO {
 		}
 		return session;
 	}
-
-	long getCountOfSessions(EvaluationFormSurveyRef surveyRef) {
-		if (surveyRef == null) return 0;
-	
-		StringBuilder sb = new StringBuilder();
-		sb.append("select count(session.key) from evaluationformsession as session");
-		sb.append(" where session.survey.key=:surveyKey");
-		
-		List<Long> counts = dbInstance.getCurrentEntityManager()
-				.createQuery(sb.toString(), Long.class)
-				.setParameter("surveyKey", surveyRef.getKey())
-				.getResultList();
-		return counts.get(0);
-	}
 	
 	void deleteSessions(EvaluationFormSurveyRef surveyRef) {
 		if (surveyRef == null) return;
diff --git a/src/test/java/org/olat/modules/forms/manager/EvaluationFormSessionDAOTest.java b/src/test/java/org/olat/modules/forms/manager/EvaluationFormSessionDAOTest.java
index 10a1f5ecfe0..9843df6dd34 100644
--- a/src/test/java/org/olat/modules/forms/manager/EvaluationFormSessionDAOTest.java
+++ b/src/test/java/org/olat/modules/forms/manager/EvaluationFormSessionDAOTest.java
@@ -234,23 +234,6 @@ public class EvaluationFormSessionDAOTest extends OlatTestCase {
 		assertThat(hasSessions).isFalse();
 	}
 	
-	@Test
-	public void shouldGetCountOfSessionsForSurvey() {
-		EvaluationFormSurvey survey = evaTestHelper.createSurvey();
-		dbInstance.commit();
-		
-		long countOfSessions = sut.getCountOfSessions(survey);
-		assertThat(countOfSessions).isEqualTo(0);
-		
-		evaTestHelper.createSession(survey);
-		evaTestHelper.createSession(survey);
-		dbInstance.commit();
-		
-		countOfSessions = sut.getCountOfSessions(survey);
-		assertThat(countOfSessions).isEqualTo(2);
-		
-	}
-	
 	@Test
 	public void shouldDeleteSessionsOfSurvey() {
 		EvaluationFormSurvey survey = evaTestHelper.createSurvey();
-- 
GitLab