From e1909fc7a35ce5e9e55da05595b5149cc3a9af2f Mon Sep 17 00:00:00 2001 From: uhensler <urs.hensler@frentix.com> Date: Wed, 11 Sep 2019 16:46:31 +0200 Subject: [PATCH] OO-4241: Reset assessment entries when resetting a survey course element --- .../olat/course/nodes/SurveyCourseNode.java | 5 +++-- .../course/nodes/survey/SurveyManager.java | 4 ++-- .../survey/manager/SurveyManagerImpl.java | 22 +++++++++++++++---- .../survey/ui/SurveyConfigController.java | 5 ++--- .../nodes/survey/ui/SurveyEditController.java | 6 ++--- .../nodes/survey/ui/SurveyRunController.java | 6 +++-- 6 files changed, 32 insertions(+), 16 deletions(-) diff --git a/src/main/java/org/olat/course/nodes/SurveyCourseNode.java b/src/main/java/org/olat/course/nodes/SurveyCourseNode.java index 6e4fbbf0e17..7aad74f31e1 100644 --- a/src/main/java/org/olat/course/nodes/SurveyCourseNode.java +++ b/src/main/java/org/olat/course/nodes/SurveyCourseNode.java @@ -142,9 +142,10 @@ public class SurveyCourseNode extends AbstractAccessableCourseNode { public TabbableController createEditController(UserRequest ureq, WindowControl wControl, BreadcrumbPanel stackPanel, ICourse course, UserCourseEnvironment euce) { updateModuleConfigDefaults(false); - TabbableController childTabCntrllr = new SurveyEditController(ureq, wControl, this, euce); + RepositoryEntry courseEntry = euce.getCourseEditorEnv().getCourseGroupManager().getCourseEntry(); + TabbableController childTabCtrl = new SurveyEditController(ureq, wControl, this, courseEntry); CourseNode chosenNode = course.getEditorTreeModel().getCourseNode(euce.getCourseEditorEnv().getCurrentCourseNodeId()); - return new NodeEditController(ureq, wControl, course, chosenNode, euce, childTabCntrllr); + return new NodeEditController(ureq, wControl, course, chosenNode, euce, childTabCtrl); } @Override 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 8b7971b137b..090a6817dc3 100644 --- a/src/main/java/org/olat/course/nodes/survey/SurveyManager.java +++ b/src/main/java/org/olat/course/nodes/survey/SurveyManager.java @@ -42,7 +42,7 @@ import org.olat.repository.RepositoryEntry; public interface SurveyManager { public EvaluationFormSurveyIdentifier getSurveyIdentifier(SurveyCourseNode surveyCourseNode, - UserCourseEnvironment userCourseEnv); + RepositoryEntry courseEntry); public EvaluationFormSurvey loadSurvey(EvaluationFormSurveyIdentifier surveyIdent); @@ -71,6 +71,6 @@ public interface SurveyManager { public long getCountOfSessions(EvaluationFormSurvey survey); - public void deleteAllData(EvaluationFormSurvey survey); + 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 64d643b739e..802b0e681fb 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 @@ -22,15 +22,18 @@ package org.olat.course.nodes.survey.manager; import static org.olat.modules.forms.handler.EvaluationFormResource.FORM_XML_FILE; import java.io.File; +import java.util.List; import java.util.UUID; import org.olat.core.id.Identity; import org.olat.core.util.UserSession; +import org.olat.course.assessment.AssessmentManager; import org.olat.course.assessment.CourseAssessmentService; import org.olat.course.nodes.SurveyCourseNode; import org.olat.course.nodes.survey.SurveyManager; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.fileresource.FileResourceManager; +import org.olat.modules.assessment.AssessmentEntry; import org.olat.modules.assessment.Role; import org.olat.modules.assessment.model.AssessmentRunStatus; import org.olat.modules.ceditor.DataStorage; @@ -62,10 +65,9 @@ public class SurveyManagerImpl implements SurveyManager { @Override public EvaluationFormSurveyIdentifier getSurveyIdentifier(SurveyCourseNode surveyCourseNode, - UserCourseEnvironment userCourseEnv) { - RepositoryEntry ores = userCourseEnv.getCourseEnvironment().getCourseGroupManager().getCourseEntry(); + RepositoryEntry courseEntry) { String subIdent = surveyCourseNode.getIdent(); - return EvaluationFormSurveyIdentifier.of(ores, subIdent); + return EvaluationFormSurveyIdentifier.of(courseEntry, subIdent); } @Override @@ -179,8 +181,20 @@ public class SurveyManagerImpl implements SurveyManager { } @Override - public void deleteAllData(EvaluationFormSurvey survey) { + public void deleteAllData(EvaluationFormSurvey survey, SurveyCourseNode courseNode, UserCourseEnvironment userCourseEnv) { evaluationFormManager.deleteAllData(survey); + + AssessmentManager assessmentManager = userCourseEnv.getCourseEnvironment().getAssessmentManager(); + List<AssessmentEntry> assessmentEntries = assessmentManager.getAssessmentEntries(courseNode); + for (AssessmentEntry assessmentEntry : assessmentEntries) { + assessmentEntry.setCurrentRunCompletion(null); + assessmentEntry.setCurrentRunStatus(null); + assessmentEntry.setCompletion(null); + assessmentEntry.setAssessmentStatus(null); + assessmentEntry.setFullyAssessed(null); + assessmentManager.updateAssessmentEntry(assessmentEntry); + } + } } diff --git a/src/main/java/org/olat/course/nodes/survey/ui/SurveyConfigController.java b/src/main/java/org/olat/course/nodes/survey/ui/SurveyConfigController.java index 47e7de0ff04..619fb11d00c 100644 --- a/src/main/java/org/olat/course/nodes/survey/ui/SurveyConfigController.java +++ b/src/main/java/org/olat/course/nodes/survey/ui/SurveyConfigController.java @@ -43,7 +43,6 @@ import org.olat.core.util.StringHelper; import org.olat.course.editor.NodeEditController; import org.olat.course.nodes.SurveyCourseNode; import org.olat.course.nodes.survey.SurveyManager; -import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.modules.ModuleConfiguration; import org.olat.modules.ceditor.DataStorage; import org.olat.modules.forms.EvaluationFormSurvey; @@ -103,10 +102,10 @@ public class SurveyConfigController extends FormBasicController { private SurveyManager surveyManager; public SurveyConfigController(UserRequest ureq, WindowControl wControl, SurveyCourseNode surveyCourseNode, - UserCourseEnvironment userCourseEnv) { + RepositoryEntry courseEntry) { super(ureq, wControl); this.moduleConfiguration = surveyCourseNode.getModuleConfiguration(); - this.surveyIdent = surveyManager.getSurveyIdentifier(surveyCourseNode, userCourseEnv); + this.surveyIdent = surveyManager.getSurveyIdentifier(surveyCourseNode, courseEntry); this.survey = surveyManager.loadSurvey(surveyIdent); initForm(ureq); } diff --git a/src/main/java/org/olat/course/nodes/survey/ui/SurveyEditController.java b/src/main/java/org/olat/course/nodes/survey/ui/SurveyEditController.java index fb5765c2f17..b0b78bcf3be 100644 --- a/src/main/java/org/olat/course/nodes/survey/ui/SurveyEditController.java +++ b/src/main/java/org/olat/course/nodes/survey/ui/SurveyEditController.java @@ -28,7 +28,7 @@ import org.olat.core.gui.control.Event; import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.generic.tabbable.ActivateableTabbableDefaultController; import org.olat.course.nodes.SurveyCourseNode; -import org.olat.course.run.userview.UserCourseEnvironment; +import org.olat.repository.RepositoryEntry; /** * @@ -46,10 +46,10 @@ public class SurveyEditController extends ActivateableTabbableDefaultController private TabbedPane tabPane; public SurveyEditController(UserRequest ureq, WindowControl wControl, SurveyCourseNode surveyCourseNode, - UserCourseEnvironment userCourseEnv) { + RepositoryEntry courseEntry) { super(ureq, wControl); - surveyConfigController = new SurveyConfigController(ureq, wControl, surveyCourseNode, userCourseEnv); + surveyConfigController = new SurveyConfigController(ureq, wControl, surveyCourseNode, courseEntry); listenTo(surveyConfigController); } 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 a9ad7fcbfe7..7ca2b3e4e0f 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 @@ -41,6 +41,7 @@ import org.olat.modules.forms.EvaluationFormSession; import org.olat.modules.forms.EvaluationFormSurvey; import org.olat.modules.forms.EvaluationFormSurveyIdentifier; import org.olat.modules.forms.ui.EvaluationFormExecutionController; +import org.olat.repository.RepositoryEntry; import org.springframework.beans.factory.annotation.Autowired; /** @@ -73,7 +74,8 @@ public class SurveyRunController extends BasicController { super(ureq, wControl); this.userCourseEnv = userCourseEnv; this.courseNode = courseNode; - this.surveyIdent = surveyManager.getSurveyIdentifier(courseNode, userCourseEnv); + RepositoryEntry courseEntry = userCourseEnv.getCourseEnvironment().getCourseGroupManager().getCourseEntry(); + this.surveyIdent = surveyManager.getSurveyIdentifier(courseNode, courseEntry); this.secCallback = secCallback; mainVC = createVelocityContainer("run"); @@ -172,7 +174,7 @@ public class SurveyRunController extends BasicController { } private void doDeleteAllData(UserRequest ureq) { - surveyManager.deleteAllData(survey); + surveyManager.deleteAllData(survey, courseNode, userCourseEnv); initVelocityContainer(ureq); } -- GitLab