From 299ec2822e5f3f8163476ab7eb9fec44fb735863 Mon Sep 17 00:00:00 2001 From: uhensler <urs.hensler@frentix.com> Date: Fri, 23 Aug 2019 11:44:30 +0200 Subject: [PATCH] OO-4186: Delete last methods from assessable course node --- .../assessment/CourseAssessmentService.java | 4 +-- .../assessment/handler/AssessmentHandler.java | 4 +-- .../handler/NonAssessmentHandler.java | 4 +-- .../manager/BulkAssessmentTask.java | 4 +-- .../manager/CourseAssessmentServiceImpl.java | 13 +++++---- .../IdentityListCourseNodeController.java | 4 +-- .../tool/tools/AbstractToolsController.java | 2 +- .../course/nodes/AssessableCourseNode.java | 14 --------- .../olat/course/nodes/BasicLTICourseNode.java | 6 ---- .../course/nodes/CheckListCourseNode.java | 21 +------------- .../org/olat/course/nodes/GTACourseNode.java | 14 --------- .../olat/course/nodes/IQTESTCourseNode.java | 9 ------ .../org/olat/course/nodes/MSCourseNode.java | 19 ------------ .../course/nodes/PortfolioCourseNode.java | 29 ------------------- .../course/nodes/ProjectBrokerCourseNode.java | 14 --------- .../org/olat/course/nodes/STCourseNode.java | 13 --------- .../olat/course/nodes/ScormCourseNode.java | 16 +--------- .../org/olat/course/nodes/TACourseNode.java | 13 --------- .../basiclti/CourseNodeOutcomeMapper.java | 3 +- .../nodes/basiclti/LTIAssessmentHandler.java | 4 +-- .../nodes/basiclti/LTIRunController.java | 2 +- .../nodes/cl/CheckListAssessmentHandler.java | 4 +-- .../nodes/cl/ui/CheckListRunController.java | 2 +- .../gta/AbstractGTAAssessmentHandler.java | 4 +-- ...TACoachedParticipantGradingController.java | 6 +++- .../gta/ui/GTAParticipantController.java | 5 +++- .../nodes/iq/ConfirmReopenController.java | 3 +- .../IQIdentityListCourseNodeController.java | 2 +- .../nodes/iq/IQTESTAssessmentHandler.java | 4 +-- .../course/nodes/ms/MSAssessmentHandler.java | 4 +-- .../portfolio/PortfolioAssessmentHandler.java | 4 +-- .../ProjectBrokerAssessmentHandler.java | 4 +-- .../nodes/scorm/ScormAssessmentHandler.java | 4 +-- .../nodes/scorm/ScormRunController.java | 2 +- .../course/nodes/st/STAssessmentHandler.java | 3 +- .../ta/DropboxScoringViewController.java | 4 +-- .../course/nodes/ta/TAAssessmentHandler.java | 4 +-- .../olat/course/nodes/ta/TaskController.java | 9 +++++- .../course/reminder/rule/PassedRuleSPI.java | 3 +- .../course/reminder/rule/ScoreRuleSPI.java | 3 +- .../course/run/scoring/ScoreAccounting.java | 19 +++++------- .../ui/QTI21AssessmentDetailsController.java | 2 +- ...ctionIdentityAssessmentItemController.java | 2 +- .../manager/PortfolioServiceImpl.java | 4 +-- .../olat/modules/scorm/ScormAPIMapper.java | 8 ++--- 45 files changed, 84 insertions(+), 237 deletions(-) diff --git a/src/main/java/org/olat/course/assessment/CourseAssessmentService.java b/src/main/java/org/olat/course/assessment/CourseAssessmentService.java index 803d403e214..31a8bb8cba1 100644 --- a/src/main/java/org/olat/course/assessment/CourseAssessmentService.java +++ b/src/main/java/org/olat/course/assessment/CourseAssessmentService.java @@ -74,7 +74,7 @@ public interface CourseAssessmentService { * @param userCourseEnvironment * @return */ - public AssessmentEvaluation getUserAssessmentEvaluation(CourseNode courseNode, UserCourseEnvironment userCourseEnvironment); + public AssessmentEvaluation getPersistedAssessmentEvaluation(CourseNode courseNode, UserCourseEnvironment userCourseEnvironment); /** * Converts the assessmentEntry to an AssessmentEvaluation in respect of the @@ -113,7 +113,7 @@ public interface CourseAssessmentService { * default values 0.0f / false for score/passed; currently only the * STNode returns null, if there are no scoring rules defined. */ - public ScoreEvaluation getUserScoreEvaluation(CourseNode courseNode, UserCourseEnvironment userCourseEnvironment); + public AssessmentEvaluation getUserScoreEvaluation(CourseNode courseNode, UserCourseEnvironment userCourseEnvironment); public void updateUserScoreEvaluation(CourseNode courseNode, ScoreEvaluation scoreEvaluation, UserCourseEnvironment userCourseEnvironment, Identity coachingIdentity, boolean incrementAttempts, Role by); diff --git a/src/main/java/org/olat/course/assessment/handler/AssessmentHandler.java b/src/main/java/org/olat/course/assessment/handler/AssessmentHandler.java index aa26d4f007e..ee63f7eaf45 100644 --- a/src/main/java/org/olat/course/assessment/handler/AssessmentHandler.java +++ b/src/main/java/org/olat/course/assessment/handler/AssessmentHandler.java @@ -26,8 +26,8 @@ import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.WindowControl; import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; import org.olat.course.nodes.CourseNode; +import org.olat.course.run.scoring.AssessmentEvaluation; import org.olat.course.run.scoring.ScoreCalculator; -import org.olat.course.run.scoring.ScoreEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.group.BusinessGroup; import org.olat.modules.assessment.AssessmentEntry; @@ -66,7 +66,7 @@ public interface AssessmentHandler { * @param userCourseEnvironment * @return */ - public ScoreEvaluation getCalculatedScoreEvaluation(CourseNode courseNode, UserCourseEnvironment userCourseEnvironment); + public AssessmentEvaluation getCalculatedScoreEvaluation(CourseNode courseNode, UserCourseEnvironment userCourseEnvironment); /** * This method has to be implemented if the AssessmentConfig.isScoreEvaluationCalculated() return true. diff --git a/src/main/java/org/olat/course/assessment/handler/NonAssessmentHandler.java b/src/main/java/org/olat/course/assessment/handler/NonAssessmentHandler.java index 681da2988b2..849ed8c4a0b 100644 --- a/src/main/java/org/olat/course/assessment/handler/NonAssessmentHandler.java +++ b/src/main/java/org/olat/course/assessment/handler/NonAssessmentHandler.java @@ -26,8 +26,8 @@ import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.WindowControl; import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; import org.olat.course.nodes.CourseNode; +import org.olat.course.run.scoring.AssessmentEvaluation; import org.olat.course.run.scoring.ScoreCalculator; -import org.olat.course.run.scoring.ScoreEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.group.BusinessGroup; import org.olat.modules.assessment.AssessmentEntry; @@ -63,7 +63,7 @@ public class NonAssessmentHandler implements AssessmentHandler { } @Override - public ScoreEvaluation getCalculatedScoreEvaluation(CourseNode courseNode, + public AssessmentEvaluation getCalculatedScoreEvaluation(CourseNode courseNode, UserCourseEnvironment userCourseEnvironment) { return null; } diff --git a/src/main/java/org/olat/course/assessment/manager/BulkAssessmentTask.java b/src/main/java/org/olat/course/assessment/manager/BulkAssessmentTask.java index ad27b325da8..553ba60a692 100644 --- a/src/main/java/org/olat/course/assessment/manager/BulkAssessmentTask.java +++ b/src/main/java/org/olat/course/assessment/manager/BulkAssessmentTask.java @@ -397,7 +397,7 @@ public class BulkAssessmentTask implements LongRunnable, TaskAwareRunnable, Sequ Boolean passed = row.getPassed(); if (hasPassed && passed != null && cut == null) { // Configuration of manual assessment --> Display passed/not passed: yes, Type of display: Manual by tutor - ScoreEvaluation seOld = courseNode.getUserScoreEvaluation(uce); + ScoreEvaluation seOld = courseAssessmentService.getUserScoreEvaluation(courseNode, uce); Float oldScore = seOld.getScore(); ScoreEvaluation se = new ScoreEvaluation(oldScore, passed, datas.getStatus(), datas.getVisibility(), null, null, null, null); // Update score,passed properties in db, and the user's efficiency statement @@ -431,7 +431,7 @@ public class BulkAssessmentTask implements LongRunnable, TaskAwareRunnable, Sequ } if(!statusVisibilitySet && (datas.getStatus() != null || datas.getVisibility() != null)) { - ScoreEvaluation seOld = courseNode.getUserScoreEvaluation(uce); + ScoreEvaluation seOld = courseAssessmentService.getUserScoreEvaluation(courseNode, uce); ScoreEvaluation se = new ScoreEvaluation(seOld.getScore(), seOld.getPassed(), datas.getStatus(), datas.getVisibility(), seOld.getFullyAssessed(), seOld.getCurrentRunCompletion(), seOld.getCurrentRunStatus(), seOld.getAssessmentID()); diff --git a/src/main/java/org/olat/course/assessment/manager/CourseAssessmentServiceImpl.java b/src/main/java/org/olat/course/assessment/manager/CourseAssessmentServiceImpl.java index fb6b5270b3d..269ef741ae0 100644 --- a/src/main/java/org/olat/course/assessment/manager/CourseAssessmentServiceImpl.java +++ b/src/main/java/org/olat/course/assessment/manager/CourseAssessmentServiceImpl.java @@ -100,7 +100,7 @@ public class CourseAssessmentServiceImpl implements CourseAssessmentService { } @Override - public AssessmentEvaluation getUserAssessmentEvaluation(CourseNode courseNode, UserCourseEnvironment userCourseEnvironment) { + public AssessmentEvaluation getPersistedAssessmentEvaluation(CourseNode courseNode, UserCourseEnvironment userCourseEnvironment) { AssessmentEntry assessmentEntry = getAssessmentHandler(courseNode).getAssessmentEntry(courseNode, userCourseEnvironment); return toAssessmentEvaluation(assessmentEntry, courseNode); } @@ -117,17 +117,18 @@ public class CourseAssessmentServiceImpl implements CourseAssessmentService { } @Override - public ScoreEvaluation getUserScoreEvaluation(CourseNode courseNode, UserCourseEnvironment userCourseEnvironment) { + public AssessmentEvaluation getUserScoreEvaluation(CourseNode courseNode, UserCourseEnvironment userCourseEnvironment) { AssessmentConfig assessmentConfig = getAssessmentConfig(courseNode); AssessmentHandler assessmentHandler = getAssessmentHandler(courseNode); - ScoreEvaluation scoreEvaluation = AssessmentEvaluation.EMPTY_EVAL; + AssessmentEvaluation assessmentEvaluation = AssessmentEvaluation.EMPTY_EVAL; if (assessmentConfig.isScoreEvaluationCalculated()) { - scoreEvaluation = assessmentHandler.getCalculatedScoreEvaluation(courseNode, userCourseEnvironment); + assessmentEvaluation = assessmentHandler.getCalculatedScoreEvaluation(courseNode, userCourseEnvironment); } else if (assessmentConfig.isScoreEvaluationPersisted()) { - scoreEvaluation = getUserAssessmentEvaluation(courseNode, userCourseEnvironment); + assessmentEvaluation = getPersistedAssessmentEvaluation(courseNode, userCourseEnvironment); } - return scoreEvaluation; + // Other handlers should be able to have other implementations + return assessmentEvaluation; } @Override diff --git a/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeController.java b/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeController.java index 738398717b7..07a4ca400cc 100644 --- a/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeController.java +++ b/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeController.java @@ -844,7 +844,7 @@ public class IdentityListCourseNodeController extends FormBasicController UserCourseEnvironment assessedUserCourseEnv = new UserCourseEnvironmentImpl(identityEnv, course.getCourseEnvironment(), coachCourseEnv.isCourseReadOnly()); assessedUserCourseEnv.getScoreAccounting().evaluateAll(); - ScoreEvaluation scoreEval = assessableCourseNode.getUserScoreEvaluation(assessedUserCourseEnv); + ScoreEvaluation scoreEval = courseAssessmentService.getUserScoreEvaluation(courseNode, assessedUserCourseEnv); ScoreEvaluation doneEval = new ScoreEvaluation(scoreEval.getScore(), scoreEval.getPassed(), scoreEval.getAssessmentStatus(), visibility, scoreEval.getFullyAssessed(), scoreEval.getCurrentRunCompletion(), scoreEval.getCurrentRunStatus(), scoreEval.getAssessmentID()); @@ -884,7 +884,7 @@ public class IdentityListCourseNodeController extends FormBasicController UserCourseEnvironment assessedUserCourseEnv = new UserCourseEnvironmentImpl(identityEnv, course.getCourseEnvironment(), coachCourseEnv.isCourseReadOnly()); assessedUserCourseEnv.getScoreAccounting().evaluateAll(); - ScoreEvaluation scoreEval = assessableCourseNode.getUserScoreEvaluation(assessedUserCourseEnv); + ScoreEvaluation scoreEval = courseAssessmentService.getUserScoreEvaluation(courseNode, assessedUserCourseEnv); ScoreEvaluation doneEval = new ScoreEvaluation(scoreEval.getScore(), scoreEval.getPassed(), AssessmentEntryStatus.done, null, scoreEval.getFullyAssessed(), scoreEval.getCurrentRunCompletion(), scoreEval.getCurrentRunStatus(), scoreEval.getAssessmentID()); diff --git a/src/main/java/org/olat/course/assessment/ui/tool/tools/AbstractToolsController.java b/src/main/java/org/olat/course/assessment/ui/tool/tools/AbstractToolsController.java index 831e3439d80..70020eef848 100644 --- a/src/main/java/org/olat/course/assessment/ui/tool/tools/AbstractToolsController.java +++ b/src/main/java/org/olat/course/assessment/ui/tool/tools/AbstractToolsController.java @@ -99,7 +99,7 @@ public abstract class AbstractToolsController extends BasicController { assessedUserCourseEnv = AssessmentHelper .createAndInitUserCourseEnvironment(assessedIdentity, coachCourseEnv.getCourseEnvironment()); - scoreEval = courseNode.getUserScoreEvaluation(assessedUserCourseEnv); + scoreEval = courseAssessmentService.getUserScoreEvaluation(courseNode, assessedUserCourseEnv); } public boolean isCourseReadonly() { diff --git a/src/main/java/org/olat/course/nodes/AssessableCourseNode.java b/src/main/java/org/olat/course/nodes/AssessableCourseNode.java index e1a013f2e63..e9eb7a564d9 100644 --- a/src/main/java/org/olat/course/nodes/AssessableCourseNode.java +++ b/src/main/java/org/olat/course/nodes/AssessableCourseNode.java @@ -26,10 +26,6 @@ package org.olat.course.nodes; -import org.olat.course.run.scoring.AssessmentEvaluation; -import org.olat.course.run.userview.UserCourseEnvironment; - - /** * Initial Date: Jun 18, 2004 * @author gnaegi @@ -41,14 +37,4 @@ import org.olat.course.run.userview.UserCourseEnvironment; */ public interface AssessableCourseNode extends CourseNode { - /** - * this method implementation must not cache any results! - * - * The user has no scoring results jet (e.g. made no test yet), then the - * ScoreEvaluation.NA has to be returned! - * @param userCourseEnv - * @return null, if this node cannot deliver any useful scoring info (this is not the case for a test never tried or manual scoring: those have default values 0.0f / false for score/passed; currently only the STNode returns null if there are no scoring rules defined.) - */ - public AssessmentEvaluation getUserScoreEvaluation(UserCourseEnvironment userCourseEnv); - } diff --git a/src/main/java/org/olat/course/nodes/BasicLTICourseNode.java b/src/main/java/org/olat/course/nodes/BasicLTICourseNode.java index 2fdd4f9721f..0bad4813e6a 100644 --- a/src/main/java/org/olat/course/nodes/BasicLTICourseNode.java +++ b/src/main/java/org/olat/course/nodes/BasicLTICourseNode.java @@ -47,7 +47,6 @@ import org.olat.course.nodes.basiclti.LTIConfigForm; import org.olat.course.nodes.basiclti.LTIEditController; import org.olat.course.nodes.basiclti.LTIRunController; import org.olat.course.run.navigation.NodeRunConstructionResult; -import org.olat.course.run.scoring.AssessmentEvaluation; import org.olat.course.run.userview.NodeEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.ims.lti.LTIDisplayOptions; @@ -264,9 +263,4 @@ public class BasicLTICourseNode extends AbstractAccessableCourseNode implements config.setConfigurationVersion(CURRENT_VERSION); } - @Override - public AssessmentEvaluation getUserScoreEvaluation(UserCourseEnvironment userCourseEnv) { - return null; // moved - } - } \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/CheckListCourseNode.java b/src/main/java/org/olat/course/nodes/CheckListCourseNode.java index f7b74085b6b..dc28173ac50 100644 --- a/src/main/java/org/olat/course/nodes/CheckListCourseNode.java +++ b/src/main/java/org/olat/course/nodes/CheckListCourseNode.java @@ -72,7 +72,6 @@ import org.olat.course.nodes.cl.ui.CheckListRunController; import org.olat.course.nodes.cl.ui.CheckListRunForCoachController; import org.olat.course.properties.CoursePropertyManager; import org.olat.course.run.navigation.NodeRunConstructionResult; -import org.olat.course.run.scoring.AssessmentEvaluation; import org.olat.course.run.scoring.ScoreEvaluation; import org.olat.course.run.userview.NodeEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; @@ -152,24 +151,6 @@ public class CheckListCourseNode extends AbstractAccessableCourseNode implements return createNodeRunConstructionResult(ureq, wControl, userCourseEnv, ne, null).getRunController(); } - /** - * the structure node does not have a score itself, but calculates the - * score/passed info by evaluating the configured expression in the the - * (condition)interpreter. - * - * @see org.olat.course.nodes.AssessableCourseNode#getUserScoreEvaluation(org.olat.course.run.userview.UserCourseEnvironment) - */ - @Override - public AssessmentEvaluation getUserScoreEvaluation(UserCourseEnvironment userCourseEnv) { - return null; // moved - } - - public AssessmentEntry getUserAssessmentEntry(CourseNode courseNode, UserCourseEnvironment userCourseEnv) { - AssessmentManager am = userCourseEnv.getCourseEnvironment().getAssessmentManager(); - Identity mySelf = userCourseEnv.getIdentityEnvironment().getIdentity(); - return am.getAssessmentEntry(this, mySelf); - } - @Override public StatusDescription isConfigValid() { if (oneClickStatusCache != null && oneClickStatusCache.length > 0) { @@ -458,7 +439,7 @@ public class CheckListCourseNode extends AbstractAccessableCourseNode implements } CourseAssessmentService courseAssessmentService = CoreSpringFactory.getImpl(CourseAssessmentService.class); - ScoreEvaluation currentEval = courseAssessmentService.getUserAssessmentEvaluation(this, assessedUserCourseEnv); + ScoreEvaluation currentEval = courseAssessmentService.getPersistedAssessmentEvaluation(this, assessedUserCourseEnv); ScoreEvaluation sceval = new ScoreEvaluation(new Float(score), currentEval.getPassed()); courseAssessmentService.saveScoreEvaluation(this, identity, sceval, assessedUserCourseEnv, false, by); } diff --git a/src/main/java/org/olat/course/nodes/GTACourseNode.java b/src/main/java/org/olat/course/nodes/GTACourseNode.java index 9044a0cb416..7965a57ea6f 100644 --- a/src/main/java/org/olat/course/nodes/GTACourseNode.java +++ b/src/main/java/org/olat/course/nodes/GTACourseNode.java @@ -61,7 +61,6 @@ import org.olat.core.util.vfs.filters.VFSSystemItemFilter; import org.olat.course.CourseFactory; import org.olat.course.ICourse; import org.olat.course.archiver.ScoreAccountingHelper; -import org.olat.course.assessment.AssessmentManager; import org.olat.course.editor.CourseEditorEnv; import org.olat.course.editor.NodeEditController; import org.olat.course.editor.PublishEvents; @@ -78,13 +77,11 @@ import org.olat.course.nodes.gta.ui.GTACoachedGroupListController; import org.olat.course.nodes.gta.ui.GTAEditController; import org.olat.course.nodes.gta.ui.GTARunController; import org.olat.course.run.navigation.NodeRunConstructionResult; -import org.olat.course.run.scoring.AssessmentEvaluation; import org.olat.course.run.userview.NodeEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.group.BusinessGroup; import org.olat.group.BusinessGroupService; import org.olat.modules.ModuleConfiguration; -import org.olat.modules.assessment.AssessmentEntry; import org.olat.repository.RepositoryEntry; import org.olat.user.UserManager; @@ -789,15 +786,4 @@ public class GTACourseNode extends AbstractAccessableCourseNode implements Persi return new GTACoachedGroupListController(ureq, wControl, stackPanel, coachCourseEnv, this, groups); } - @Override - public AssessmentEvaluation getUserScoreEvaluation(UserCourseEnvironment userCourseEnv) { - return null; // moved; - } - - public AssessmentEntry getUserAssessmentEntry(CourseNode courseNode, UserCourseEnvironment userCourseEnv) { - AssessmentManager am = userCourseEnv.getCourseEnvironment().getAssessmentManager(); - Identity assessedIdentity = userCourseEnv.getIdentityEnvironment().getIdentity(); - return am.getAssessmentEntry(this, assessedIdentity); - } - } \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java b/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java index 54a990f9e30..5622f9cd51b 100644 --- a/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java +++ b/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java @@ -68,7 +68,6 @@ import org.olat.course.nodes.iq.QTIResourceTypeModule; import org.olat.course.properties.CoursePropertyManager; import org.olat.course.run.environment.CourseEnvironment; import org.olat.course.run.navigation.NodeRunConstructionResult; -import org.olat.course.run.scoring.AssessmentEvaluation; import org.olat.course.run.scoring.ScoreEvaluation; import org.olat.course.run.userview.NodeEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; @@ -374,14 +373,6 @@ public class IQTESTCourseNode extends AbstractAccessableCourseNode implements Pe return oneClickStatusCache; } - /** - * @see org.olat.course.nodes.AssessableCourseNode#getUserScoreEvaluation(org.olat.course.run.userview.UserCourseEnvironment) - */ - @Override - public AssessmentEvaluation getUserScoreEvaluation(UserCourseEnvironment userCourseEnv) { - return null; // moved - } - @Override public RepositoryEntry getReferencedRepositoryEntry() { // ",false" because we do not want to be strict, but just indicate whether diff --git a/src/main/java/org/olat/course/nodes/MSCourseNode.java b/src/main/java/org/olat/course/nodes/MSCourseNode.java index 960e4643320..7912622336f 100644 --- a/src/main/java/org/olat/course/nodes/MSCourseNode.java +++ b/src/main/java/org/olat/course/nodes/MSCourseNode.java @@ -51,13 +51,11 @@ import org.olat.core.util.Util; import org.olat.course.ICourse; import org.olat.course.assessment.AssessmentManager; import org.olat.course.assessment.CourseAssessmentService; -import org.olat.course.assessment.handler.AssessmentConfig; import org.olat.course.condition.ConditionEditController; import org.olat.course.editor.CourseEditorEnv; import org.olat.course.editor.NodeEditController; import org.olat.course.editor.PublishEvents; import org.olat.course.editor.StatusDescription; -import org.olat.course.nodes.ms.MSAssessmentConfig; import org.olat.course.nodes.ms.MSCourseNodeEditController; import org.olat.course.nodes.ms.MSCourseNodeRunController; import org.olat.course.nodes.ms.MSRunController; @@ -66,7 +64,6 @@ import org.olat.course.nodes.ms.MinMax; import org.olat.course.properties.CoursePropertyManager; import org.olat.course.properties.PersistingCoursePropertyManager; import org.olat.course.run.navigation.NodeRunConstructionResult; -import org.olat.course.run.scoring.AssessmentEvaluation; import org.olat.course.run.scoring.ScoreEvaluation; import org.olat.course.run.userview.NodeEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; @@ -271,22 +268,6 @@ public class MSCourseNode extends AbstractAccessableCourseNode implements Persis public static void removeEvaluationFormReference(ModuleConfiguration moduleConfig) { moduleConfig.remove(CONFIG_KEY_EVAL_FORM_SOFTKEY); } - @Override - public AssessmentEvaluation getUserScoreEvaluation(UserCourseEnvironment userCourseEnv) { - updateModuleConfigDefaults(false); //TODO uh remove - AssessmentConfig assessmentConfig = new MSAssessmentConfig(getModuleConfiguration()); - if(assessmentConfig.hasPassed() || assessmentConfig.hasScore() || assessmentConfig.hasComment()) { - AssessmentEntry userAssessmentEntry = getUserAssessmentEntry(null, userCourseEnv); - return AssessmentEvaluation.toAssessmentEvaluation(userAssessmentEntry, assessmentConfig); - } - return AssessmentEvaluation.EMPTY_EVAL; - } - - public AssessmentEntry getUserAssessmentEntry(CourseNode courseNode, UserCourseEnvironment userCourseEnv) { - AssessmentManager am = userCourseEnv.getCourseEnvironment().getAssessmentManager(); - Identity mySelf = userCourseEnv.getIdentityEnvironment().getIdentity(); - return am.getAssessmentEntry(this, mySelf); - } @Override public String informOnDelete(Locale locale, ICourse course) { diff --git a/src/main/java/org/olat/course/nodes/PortfolioCourseNode.java b/src/main/java/org/olat/course/nodes/PortfolioCourseNode.java index 13c08630257..43e78f57384 100644 --- a/src/main/java/org/olat/course/nodes/PortfolioCourseNode.java +++ b/src/main/java/org/olat/course/nodes/PortfolioCourseNode.java @@ -43,7 +43,6 @@ import org.olat.core.util.StringHelper; import org.olat.core.util.Util; import org.olat.core.util.ValidationStatus; import org.olat.course.ICourse; -import org.olat.course.assessment.AssessmentManager; import org.olat.course.condition.Condition; import org.olat.course.condition.interpreter.ConditionInterpreter; import org.olat.course.editor.CourseEditorEnv; @@ -55,11 +54,9 @@ import org.olat.course.nodes.portfolio.PortfolioCourseNodeConfiguration.Deadline import org.olat.course.nodes.portfolio.PortfolioCourseNodeEditController; import org.olat.course.nodes.portfolio.PortfolioCourseNodeRunController; import org.olat.course.run.navigation.NodeRunConstructionResult; -import org.olat.course.run.scoring.AssessmentEvaluation; import org.olat.course.run.userview.NodeEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.modules.ModuleConfiguration; -import org.olat.modules.assessment.AssessmentEntry; import org.olat.modules.portfolio.PortfolioService; import org.olat.portfolio.EPTemplateMapResource; import org.olat.portfolio.manager.EPFrontendManager; @@ -290,32 +287,6 @@ public class PortfolioCourseNode extends AbstractAccessableCourseNode implements nodeEval.putAccessStatus(EDIT_CONDITION_ID, editor); } - @Override - public AssessmentEvaluation getUserScoreEvaluation(UserCourseEnvironment userCourseEnv) { - return null; // moved - } - - public AssessmentEntry getUserAssessmentEntry(CourseNode courseNode, UserCourseEnvironment userCourseEnv) { - AssessmentManager am = userCourseEnv.getCourseEnvironment().getAssessmentManager(); - Identity mySelf = userCourseEnv.getIdentityEnvironment().getIdentity(); - String referenceSoftkey = getReferencedRepositoryEntrySoftkey(); - if(referenceSoftkey == null) { - Long mapKey = (Long)getModuleConfiguration().get(PortfolioCourseNodeConfiguration.MAP_KEY); - if(mapKey != null) { - RepositoryEntry re = CoreSpringFactory.getImpl(EPStructureManager.class) - .loadPortfolioRepositoryEntryByMapKey(mapKey); - if(re != null) { - referenceSoftkey = re.getSoftkey(); - } - } - } - - if(referenceSoftkey != null) { - return am.getAssessmentEntry(this, mySelf); - } - return null; - } - @Override public void exportNode(File exportDirectory, ICourse course) { RepositoryEntry re = getReferencedRepositoryEntry(); diff --git a/src/main/java/org/olat/course/nodes/ProjectBrokerCourseNode.java b/src/main/java/org/olat/course/nodes/ProjectBrokerCourseNode.java index 7c9e7919ca2..559b2345fbb 100644 --- a/src/main/java/org/olat/course/nodes/ProjectBrokerCourseNode.java +++ b/src/main/java/org/olat/course/nodes/ProjectBrokerCourseNode.java @@ -77,7 +77,6 @@ import org.olat.core.util.vfs.VFSManager; import org.olat.core.util.vfs.filters.VFSSystemItemFilter; import org.olat.core.util.xml.XStreamHelper; import org.olat.course.ICourse; -import org.olat.course.assessment.AssessmentManager; import org.olat.course.condition.Condition; import org.olat.course.condition.interpreter.ConditionExpression; import org.olat.course.condition.interpreter.ConditionInterpreter; @@ -99,14 +98,12 @@ import org.olat.course.nodes.ta.ReturnboxController; import org.olat.course.properties.CoursePropertyManager; import org.olat.course.properties.PersistingCoursePropertyManager; import org.olat.course.run.navigation.NodeRunConstructionResult; -import org.olat.course.run.scoring.AssessmentEvaluation; import org.olat.course.run.userview.NodeEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.group.BusinessGroup; import org.olat.group.BusinessGroupService; import org.olat.group.model.BusinessGroupReference; import org.olat.modules.ModuleConfiguration; -import org.olat.modules.assessment.AssessmentEntry; import org.olat.properties.Property; import org.olat.repository.RepositoryEntry; import org.olat.resource.OLATResource; @@ -464,17 +461,6 @@ public class ProjectBrokerCourseNode extends GenericCourseNode implements Persis this.conditionProjectBroker = condition; } - @Override - public AssessmentEvaluation getUserScoreEvaluation(UserCourseEnvironment userCourseEnv) { - return null; // moved - } - - public AssessmentEntry getUserAssessmentEntry(CourseNode courseNode, UserCourseEnvironment userCourseEnv) { - AssessmentManager am = userCourseEnv.getCourseEnvironment().getAssessmentManager(); - Identity mySelf = userCourseEnv.getIdentityEnvironment().getIdentity(); - return am.getAssessmentEntry(this, mySelf); - } - @Override public void postImport(File importDirectory, ICourse course, CourseEnvironmentMapper envMapper, Processing processType) { // initialize managers diff --git a/src/main/java/org/olat/course/nodes/STCourseNode.java b/src/main/java/org/olat/course/nodes/STCourseNode.java index 9cf34ddf90f..18eeeb0ac3d 100644 --- a/src/main/java/org/olat/course/nodes/STCourseNode.java +++ b/src/main/java/org/olat/course/nodes/STCourseNode.java @@ -68,7 +68,6 @@ import org.olat.course.nodes.st.STCourseNodeEditController; import org.olat.course.nodes.st.STCourseNodeRunController; import org.olat.course.nodes.st.STPeekViewController; import org.olat.course.run.navigation.NodeRunConstructionResult; -import org.olat.course.run.scoring.AssessmentEvaluation; import org.olat.course.run.scoring.FailedEvaluationType; import org.olat.course.run.scoring.ScoreCalculator; import org.olat.course.run.scoring.ScoreEvaluation; @@ -242,18 +241,6 @@ public class STCourseNode extends AbstractAccessableCourseNode implements Assess } } - /** - * the structure node does not have a score itself, but calculates the - * score/passed info by evaluating the configured expression in the the - * (condition)interpreter. - * - * @see org.olat.course.nodes.AssessableCourseNode#getUserScoreEvaluation(org.olat.course.run.userview.UserCourseEnvironment) - */ - @Override - public AssessmentEvaluation getUserScoreEvaluation(UserCourseEnvironment userCourseEnv) { - return null; // moved - } - @Override public StatusDescription isConfigValid() { if (oneClickStatusCache != null) { return oneClickStatusCache[0]; } diff --git a/src/main/java/org/olat/course/nodes/ScormCourseNode.java b/src/main/java/org/olat/course/nodes/ScormCourseNode.java index 468b5d2947f..6fbd0ec3961 100644 --- a/src/main/java/org/olat/course/nodes/ScormCourseNode.java +++ b/src/main/java/org/olat/course/nodes/ScormCourseNode.java @@ -51,7 +51,6 @@ import org.olat.core.util.StringHelper; import org.olat.core.util.Util; import org.olat.core.util.ZipUtil; import org.olat.course.ICourse; -import org.olat.course.assessment.AssessmentManager; import org.olat.course.editor.CourseEditorEnv; import org.olat.course.editor.NodeEditController; import org.olat.course.editor.StatusDescription; @@ -60,12 +59,10 @@ import org.olat.course.nodes.scorm.ScormEditController; import org.olat.course.nodes.scorm.ScormRunController; import org.olat.course.properties.CoursePropertyManager; import org.olat.course.run.navigation.NodeRunConstructionResult; -import org.olat.course.run.scoring.AssessmentEvaluation; import org.olat.course.run.userview.NodeEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.fileresource.types.ScormCPFileResource; import org.olat.modules.ModuleConfiguration; -import org.olat.modules.assessment.AssessmentEntry; import org.olat.modules.scorm.ScormMainManager; import org.olat.modules.scorm.ScormPackageConfig; import org.olat.modules.scorm.archiver.ScormExportManager; @@ -357,18 +354,7 @@ public class ScormCourseNode extends AbstractAccessableCourseNode implements Per } return true; } - - @Override - public AssessmentEvaluation getUserScoreEvaluation(UserCourseEnvironment userCourseEnv) { - return null; // moved - } - - public AssessmentEntry getUserAssessmentEntry(CourseNode courseNode, UserCourseEnvironment userCourseEnv) { - AssessmentManager am = userCourseEnv.getCourseEnvironment().getAssessmentManager(); - Identity mySelf = userCourseEnv.getIdentityEnvironment().getIdentity(); - return am.getAssessmentEntry(this, mySelf);//we want t - } - + @Override public void cleanupOnDelete(ICourse course) { super.cleanupOnDelete(course); diff --git a/src/main/java/org/olat/course/nodes/TACourseNode.java b/src/main/java/org/olat/course/nodes/TACourseNode.java index 2ae33ed9579..0eff13d9734 100644 --- a/src/main/java/org/olat/course/nodes/TACourseNode.java +++ b/src/main/java/org/olat/course/nodes/TACourseNode.java @@ -88,12 +88,10 @@ import org.olat.course.properties.CoursePropertyManager; import org.olat.course.properties.PersistingCoursePropertyManager; import org.olat.course.run.environment.CourseEnvironment; import org.olat.course.run.navigation.NodeRunConstructionResult; -import org.olat.course.run.scoring.AssessmentEvaluation; import org.olat.course.run.scoring.ScoreEvaluation; import org.olat.course.run.userview.NodeEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.modules.ModuleConfiguration; -import org.olat.modules.assessment.AssessmentEntry; import org.olat.modules.assessment.Role; import org.olat.properties.Property; import org.olat.repository.RepositoryEntry; @@ -443,17 +441,6 @@ public class TACourseNode extends GenericCourseNode implements PersistentAssessa this.conditionSolution = conditionSolution; } - @Override - public AssessmentEvaluation getUserScoreEvaluation(UserCourseEnvironment userCourseEnv) { - return null; // moved - } - - public AssessmentEntry getUserAssessmentEntry(CourseNode courseNode, UserCourseEnvironment userCourseEnv) { - AssessmentManager am = userCourseEnv.getCourseEnvironment().getAssessmentManager(); - Identity mySelf = userCourseEnv.getIdentityEnvironment().getIdentity(); - return am.getAssessmentEntry(this, mySelf); - } - //TODO uh anders als die Default Implemntation notwendig? public void updateUserScoreEvaluation(ScoreEvaluation scoreEval, UserCourseEnvironment userCourseEnvironment, Identity coachingIdentity, boolean incrementAttempts, Role by) { diff --git a/src/main/java/org/olat/course/nodes/basiclti/CourseNodeOutcomeMapper.java b/src/main/java/org/olat/course/nodes/basiclti/CourseNodeOutcomeMapper.java index 664f47d3ec7..df42049a485 100644 --- a/src/main/java/org/olat/course/nodes/basiclti/CourseNodeOutcomeMapper.java +++ b/src/main/java/org/olat/course/nodes/basiclti/CourseNodeOutcomeMapper.java @@ -134,7 +134,8 @@ public class CourseNodeOutcomeMapper extends OutcomeMapper { if(node instanceof BasicLTICourseNode) { BasicLTICourseNode ltiNode = (BasicLTICourseNode)node; UserCourseEnvironment userCourseEnv = getUserCourseEnvironment(course); - ScoreEvaluation eval = ltiNode.getUserScoreEvaluation(userCourseEnv); + CourseAssessmentService courseAssessmentService = CoreSpringFactory.getImpl(CourseAssessmentService.class); + ScoreEvaluation eval = courseAssessmentService.getUserScoreEvaluation(ltiNode, userCourseEnv); String score = ""; if(eval != null && eval.getScore() != null) { float scaledScore = eval.getScore(); diff --git a/src/main/java/org/olat/course/nodes/basiclti/LTIAssessmentHandler.java b/src/main/java/org/olat/course/nodes/basiclti/LTIAssessmentHandler.java index 8a41714faa9..c6d9bac9d66 100644 --- a/src/main/java/org/olat/course/nodes/basiclti/LTIAssessmentHandler.java +++ b/src/main/java/org/olat/course/nodes/basiclti/LTIAssessmentHandler.java @@ -31,8 +31,8 @@ import org.olat.course.assessment.handler.AssessmentHandler; import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; import org.olat.course.nodes.BasicLTICourseNode; import org.olat.course.nodes.CourseNode; +import org.olat.course.run.scoring.AssessmentEvaluation; import org.olat.course.run.scoring.ScoreCalculator; -import org.olat.course.run.scoring.ScoreEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.group.BusinessGroup; import org.olat.ims.lti.ui.LTIResultDetailsController; @@ -70,7 +70,7 @@ public class LTIAssessmentHandler implements AssessmentHandler { } @Override - public ScoreEvaluation getCalculatedScoreEvaluation(CourseNode courseNode, + public AssessmentEvaluation getCalculatedScoreEvaluation(CourseNode courseNode, UserCourseEnvironment userCourseEnvironment) { return null; } diff --git a/src/main/java/org/olat/course/nodes/basiclti/LTIRunController.java b/src/main/java/org/olat/course/nodes/basiclti/LTIRunController.java index f18e2ac9613..6f3e62b37fd 100644 --- a/src/main/java/org/olat/course/nodes/basiclti/LTIRunController.java +++ b/src/main/java/org/olat/course/nodes/basiclti/LTIRunController.java @@ -342,7 +342,7 @@ public class LTIRunController extends BasicController { Integer attempts = courseAssessmentService.getUserAttempts(courseNode, userCourseEnv); startPage.contextPut("attempts", attempts); - ScoreEvaluation eval = courseNode.getUserScoreEvaluation(userCourseEnv); + ScoreEvaluation eval = courseAssessmentService.getUserScoreEvaluation(courseNode, userCourseEnv); Float cutValue = config.getFloatEntry(BasicLTICourseNode.CONFIG_KEY_PASSED_CUT_VALUE); if(cutValue != null) { startPage.contextPut("hasPassedValue", Boolean.TRUE); diff --git a/src/main/java/org/olat/course/nodes/cl/CheckListAssessmentHandler.java b/src/main/java/org/olat/course/nodes/cl/CheckListAssessmentHandler.java index 6ec5baa8dcf..b56ecb55314 100644 --- a/src/main/java/org/olat/course/nodes/cl/CheckListAssessmentHandler.java +++ b/src/main/java/org/olat/course/nodes/cl/CheckListAssessmentHandler.java @@ -34,8 +34,8 @@ import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; import org.olat.course.nodes.CheckListCourseNode; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.cl.ui.AssessedIdentityCheckListController; +import org.olat.course.run.scoring.AssessmentEvaluation; import org.olat.course.run.scoring.ScoreCalculator; -import org.olat.course.run.scoring.ScoreEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.group.BusinessGroup; import org.olat.modules.assessment.AssessmentEntry; @@ -71,7 +71,7 @@ public class CheckListAssessmentHandler implements AssessmentHandler { } @Override - public ScoreEvaluation getCalculatedScoreEvaluation(CourseNode courseNode, + public AssessmentEvaluation getCalculatedScoreEvaluation(CourseNode courseNode, UserCourseEnvironment userCourseEnvironment) { return null; } diff --git a/src/main/java/org/olat/course/nodes/cl/ui/CheckListRunController.java b/src/main/java/org/olat/course/nodes/cl/ui/CheckListRunController.java index f3b73576e6c..3ebc74e2aec 100644 --- a/src/main/java/org/olat/course/nodes/cl/ui/CheckListRunController.java +++ b/src/main/java/org/olat/course/nodes/cl/ui/CheckListRunController.java @@ -203,7 +203,7 @@ public class CheckListRunController extends FormBasicController implements Contr } private void exposeUserDataToVC(UserRequest ureq, FormLayoutContainer layoutCont) { - AssessmentEntry scoreEval = courseNode.getUserAssessmentEntry(null, userCourseEnv); + AssessmentEntry scoreEval = courseAssessmentService.getAssessmentEntry(courseNode, userCourseEnv); if(scoreEval == null) { layoutCont.contextPut("score", null); layoutCont.contextPut("hasPassedValue", Boolean.FALSE); diff --git a/src/main/java/org/olat/course/nodes/gta/AbstractGTAAssessmentHandler.java b/src/main/java/org/olat/course/nodes/gta/AbstractGTAAssessmentHandler.java index 7cd755d6c9e..b1c65b4580d 100644 --- a/src/main/java/org/olat/course/nodes/gta/AbstractGTAAssessmentHandler.java +++ b/src/main/java/org/olat/course/nodes/gta/AbstractGTAAssessmentHandler.java @@ -34,8 +34,8 @@ import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.GTACourseNode; import org.olat.course.nodes.gta.ui.GTAAssessmentDetailsController; import org.olat.course.nodes.gta.ui.GTAIdentityListCourseNodeController; +import org.olat.course.run.scoring.AssessmentEvaluation; import org.olat.course.run.scoring.ScoreCalculator; -import org.olat.course.run.scoring.ScoreEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.group.BusinessGroup; import org.olat.modules.assessment.AssessmentEntry; @@ -64,7 +64,7 @@ public abstract class AbstractGTAAssessmentHandler implements AssessmentHandler } @Override - public ScoreEvaluation getCalculatedScoreEvaluation(CourseNode courseNode, + public AssessmentEvaluation getCalculatedScoreEvaluation(CourseNode courseNode, UserCourseEnvironment userCourseEnvironment) { return null; } diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTACoachedParticipantGradingController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTACoachedParticipantGradingController.java index ae4bff8a729..0480c6b27f2 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/GTACoachedParticipantGradingController.java +++ b/src/main/java/org/olat/course/nodes/gta/ui/GTACoachedParticipantGradingController.java @@ -35,6 +35,7 @@ import org.olat.core.util.resource.OresHelper; import org.olat.course.CourseFactory; import org.olat.course.ICourse; import org.olat.course.assessment.AssessmentHelper; +import org.olat.course.assessment.CourseAssessmentService; import org.olat.course.assessment.ui.tool.AssessmentIdentityCourseNodeController; import org.olat.course.nodes.GTACourseNode; import org.olat.course.nodes.gta.GTAManager; @@ -73,6 +74,9 @@ public class GTACoachedParticipantGradingController extends BasicController { @Autowired private GTAManager gtaManager; + @Autowired + private CourseAssessmentService courseAssessmentService; + public GTACoachedParticipantGradingController(UserRequest ureq, WindowControl wControl, OLATResourceable courseOres, GTACourseNode gtaNode, Task assignedTask, @@ -158,7 +162,7 @@ public class GTACoachedParticipantGradingController extends BasicController { listenTo(msCtrl); mainVC.put("msrun", msCtrl.getInitialComponent()); - AssessmentEvaluation scoreEval = gtaNode.getUserScoreEvaluation(assessedUserCourseEnv); + AssessmentEvaluation scoreEval = courseAssessmentService.getUserScoreEvaluation(gtaNode, assessedUserCourseEnv); if(scoreEval.getAssessmentStatus() == AssessmentEntryStatus.done) { if(assignedTask == null) { RepositoryEntry courseEntry = coachCourseEnv.getCourseEnvironment().getCourseGroupManager().getCourseEntry(); diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantController.java index cb2ab1c652f..3e998dbd2f1 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantController.java +++ b/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantController.java @@ -54,6 +54,7 @@ import org.olat.core.util.mail.MailManager; import org.olat.core.util.mail.MailTemplate; import org.olat.core.util.mail.MailerResult; import org.olat.core.util.vfs.VFSContainer; +import org.olat.course.assessment.CourseAssessmentService; import org.olat.course.nodes.GTACourseNode; import org.olat.course.nodes.MSCourseNode; import org.olat.course.nodes.gta.AssignmentResponse; @@ -107,6 +108,8 @@ public class GTAParticipantController extends GTAAbstractController implements A @Autowired private MailManager mailManager; + @Autowired + private CourseAssessmentService courseAssessmentService; public GTAParticipantController(UserRequest ureq, WindowControl wControl, GTACourseNode gtaNode, UserCourseEnvironment userCourseEnv) { @@ -718,7 +721,7 @@ public class GTAParticipantController extends GTAAbstractController implements A boolean isVisible = false; if(config.getBooleanSafe(GTACourseNode.GTASK_GRADING)) { if (assignedTask != null && (assignedTask.getTaskStatus() == TaskProcess.grading || assignedTask.getTaskStatus() == TaskProcess.graded)) { - AssessmentEvaluation eval = gtaNode.getUserScoreEvaluation(getAssessedUserCourseEnvironment()); + AssessmentEvaluation eval = courseAssessmentService.getUserScoreEvaluation(gtaNode, getAssessedUserCourseEnvironment()); isVisible = eval.getUserVisible() == null || eval.getUserVisible().booleanValue(); } } else { diff --git a/src/main/java/org/olat/course/nodes/iq/ConfirmReopenController.java b/src/main/java/org/olat/course/nodes/iq/ConfirmReopenController.java index 01208a562c4..75704eb54a0 100644 --- a/src/main/java/org/olat/course/nodes/iq/ConfirmReopenController.java +++ b/src/main/java/org/olat/course/nodes/iq/ConfirmReopenController.java @@ -85,7 +85,8 @@ public class ConfirmReopenController extends FormBasicController { } else { UserCourseEnvironment assessedUserCourseEnv = AssessmentHelper .createAndInitUserCourseEnvironment(testSession.getIdentity(), courseEnv); - ScoreEvaluation scoreEval = courseNode.getUserScoreEvaluation(assessedUserCourseEnv); + + ScoreEvaluation scoreEval = courseAssessmentService.getUserScoreEvaluation(courseNode, assessedUserCourseEnv); ScoreEvaluation reopenedScoreEval = new ScoreEvaluation(scoreEval.getScore(), scoreEval.getPassed(), AssessmentEntryStatus.inProgress, scoreEval.getUserVisible(), scoreEval.getFullyAssessed(), scoreEval.getCurrentRunCompletion(), AssessmentRunStatus.running, testSession.getKey()); diff --git a/src/main/java/org/olat/course/nodes/iq/IQIdentityListCourseNodeController.java b/src/main/java/org/olat/course/nodes/iq/IQIdentityListCourseNodeController.java index b27bdf38cd8..40b16ef1c94 100644 --- a/src/main/java/org/olat/course/nodes/iq/IQIdentityListCourseNodeController.java +++ b/src/main/java/org/olat/course/nodes/iq/IQIdentityListCourseNodeController.java @@ -439,7 +439,7 @@ public class IQIdentityListCourseNodeController extends IdentityListCourseNodeCo for(AssessmentTestSession testSession:testSessionsToComplete) { UserCourseEnvironment assessedUserCourseEnv = AssessmentHelper .createAndInitUserCourseEnvironment(testSession.getIdentity(), getCourseEnvironment()); - ScoreEvaluation scoreEval = ((IQTESTCourseNode)courseNode).getUserScoreEvaluation(assessedUserCourseEnv); + ScoreEvaluation scoreEval = courseAssessmentService.getUserScoreEvaluation(courseNode, assessedUserCourseEnv); BigDecimal finalScore = testSession.getFinalScore(); Float score = finalScore == null ? null : finalScore.floatValue(); diff --git a/src/main/java/org/olat/course/nodes/iq/IQTESTAssessmentHandler.java b/src/main/java/org/olat/course/nodes/iq/IQTESTAssessmentHandler.java index bbce039ec6b..f62bb322e81 100644 --- a/src/main/java/org/olat/course/nodes/iq/IQTESTAssessmentHandler.java +++ b/src/main/java/org/olat/course/nodes/iq/IQTESTAssessmentHandler.java @@ -36,8 +36,8 @@ import org.olat.course.assessment.handler.NonAssessmentConfig; import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.IQTESTCourseNode; +import org.olat.course.run.scoring.AssessmentEvaluation; import org.olat.course.run.scoring.ScoreCalculator; -import org.olat.course.run.scoring.ScoreEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.fileresource.types.ImsQTI21Resource; import org.olat.group.BusinessGroup; @@ -89,7 +89,7 @@ public class IQTESTAssessmentHandler implements AssessmentHandler { } @Override - public ScoreEvaluation getCalculatedScoreEvaluation(CourseNode courseNode, + public AssessmentEvaluation getCalculatedScoreEvaluation(CourseNode courseNode, UserCourseEnvironment userCourseEnvironment) { return null; } diff --git a/src/main/java/org/olat/course/nodes/ms/MSAssessmentHandler.java b/src/main/java/org/olat/course/nodes/ms/MSAssessmentHandler.java index 0dd8ddd21e8..cd0824b88a1 100644 --- a/src/main/java/org/olat/course/nodes/ms/MSAssessmentHandler.java +++ b/src/main/java/org/olat/course/nodes/ms/MSAssessmentHandler.java @@ -31,8 +31,8 @@ import org.olat.course.assessment.handler.AssessmentHandler; import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.MSCourseNode; +import org.olat.course.run.scoring.AssessmentEvaluation; import org.olat.course.run.scoring.ScoreCalculator; -import org.olat.course.run.scoring.ScoreEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.group.BusinessGroup; import org.olat.modules.assessment.AssessmentEntry; @@ -69,7 +69,7 @@ public class MSAssessmentHandler implements AssessmentHandler { } @Override - public ScoreEvaluation getCalculatedScoreEvaluation(CourseNode courseNode, + public AssessmentEvaluation getCalculatedScoreEvaluation(CourseNode courseNode, UserCourseEnvironment userCourseEnvironment) { return null; } diff --git a/src/main/java/org/olat/course/nodes/portfolio/PortfolioAssessmentHandler.java b/src/main/java/org/olat/course/nodes/portfolio/PortfolioAssessmentHandler.java index 6fd9ea28dd1..4e7c582c585 100644 --- a/src/main/java/org/olat/course/nodes/portfolio/PortfolioAssessmentHandler.java +++ b/src/main/java/org/olat/course/nodes/portfolio/PortfolioAssessmentHandler.java @@ -32,8 +32,8 @@ import org.olat.course.assessment.handler.AssessmentHandler; import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.PortfolioCourseNode; +import org.olat.course.run.scoring.AssessmentEvaluation; import org.olat.course.run.scoring.ScoreCalculator; -import org.olat.course.run.scoring.ScoreEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.group.BusinessGroup; import org.olat.modules.assessment.AssessmentEntry; @@ -91,7 +91,7 @@ public class PortfolioAssessmentHandler implements AssessmentHandler { } @Override - public ScoreEvaluation getCalculatedScoreEvaluation(CourseNode courseNode, + public AssessmentEvaluation getCalculatedScoreEvaluation(CourseNode courseNode, UserCourseEnvironment userCourseEnvironment) { return null; } diff --git a/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerAssessmentHandler.java b/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerAssessmentHandler.java index 1ee627cb3ab..12acddadb97 100644 --- a/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerAssessmentHandler.java +++ b/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerAssessmentHandler.java @@ -31,8 +31,8 @@ import org.olat.course.assessment.handler.AssessmentHandler; import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.ProjectBrokerCourseNode; +import org.olat.course.run.scoring.AssessmentEvaluation; import org.olat.course.run.scoring.ScoreCalculator; -import org.olat.course.run.scoring.ScoreEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.group.BusinessGroup; import org.olat.modules.assessment.AssessmentEntry; @@ -68,7 +68,7 @@ public class ProjectBrokerAssessmentHandler implements AssessmentHandler { } @Override - public ScoreEvaluation getCalculatedScoreEvaluation(CourseNode courseNode, + public AssessmentEvaluation getCalculatedScoreEvaluation(CourseNode courseNode, UserCourseEnvironment userCourseEnvironment) { return null; } diff --git a/src/main/java/org/olat/course/nodes/scorm/ScormAssessmentHandler.java b/src/main/java/org/olat/course/nodes/scorm/ScormAssessmentHandler.java index 5e8bbeaf5c5..cf8237788cd 100644 --- a/src/main/java/org/olat/course/nodes/scorm/ScormAssessmentHandler.java +++ b/src/main/java/org/olat/course/nodes/scorm/ScormAssessmentHandler.java @@ -31,8 +31,8 @@ import org.olat.course.assessment.handler.AssessmentHandler; import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.ScormCourseNode; +import org.olat.course.run.scoring.AssessmentEvaluation; import org.olat.course.run.scoring.ScoreCalculator; -import org.olat.course.run.scoring.ScoreEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.group.BusinessGroup; import org.olat.modules.assessment.AssessmentEntry; @@ -69,7 +69,7 @@ public class ScormAssessmentHandler implements AssessmentHandler { } @Override - public ScoreEvaluation getCalculatedScoreEvaluation(CourseNode courseNode, + public AssessmentEvaluation getCalculatedScoreEvaluation(CourseNode courseNode, UserCourseEnvironment userCourseEnvironment) { return null; } diff --git a/src/main/java/org/olat/course/nodes/scorm/ScormRunController.java b/src/main/java/org/olat/course/nodes/scorm/ScormRunController.java index ca4005594c9..42f976dce37 100644 --- a/src/main/java/org/olat/course/nodes/scorm/ScormRunController.java +++ b/src/main/java/org/olat/course/nodes/scorm/ScormRunController.java @@ -238,7 +238,7 @@ public class ScormRunController extends BasicController implements ScormAPICallb } if (isAssessable) { - ScoreEvaluation scoreEval = scormNode.getUserScoreEvaluation(userCourseEnv); + ScoreEvaluation scoreEval = courseAssessmentService.getUserScoreEvaluation(scormNode, userCourseEnv); Float score = scoreEval.getScore(); if(ScormEditController.CONFIG_ASSESSABLE_TYPE_SCORE.equals(assessableType)) { startPage.contextPut("score", score != null ? AssessmentHelper.getRoundedScore(score) : "0"); diff --git a/src/main/java/org/olat/course/nodes/st/STAssessmentHandler.java b/src/main/java/org/olat/course/nodes/st/STAssessmentHandler.java index 4f71bb02e92..fdd75fb8e4f 100644 --- a/src/main/java/org/olat/course/nodes/st/STAssessmentHandler.java +++ b/src/main/java/org/olat/course/nodes/st/STAssessmentHandler.java @@ -35,7 +35,6 @@ import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.STCourseNode; import org.olat.course.run.scoring.AssessmentEvaluation; import org.olat.course.run.scoring.ScoreCalculator; -import org.olat.course.run.scoring.ScoreEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.group.BusinessGroup; import org.olat.modules.assessment.AssessmentEntry; @@ -75,7 +74,7 @@ public class STAssessmentHandler implements AssessmentHandler { } @Override - public ScoreEvaluation getCalculatedScoreEvaluation(CourseNode courseNode, UserCourseEnvironment userCourseEnvironment) { + public AssessmentEvaluation getCalculatedScoreEvaluation(CourseNode courseNode, UserCourseEnvironment userCourseEnvironment) { ScoreCalculator scoreCalculator = getScoreCalculator(courseNode); if (scoreCalculator == null) { // this is a not-computable course node at the moment (no scoring/passing rules defined) diff --git a/src/main/java/org/olat/course/nodes/ta/DropboxScoringViewController.java b/src/main/java/org/olat/course/nodes/ta/DropboxScoringViewController.java index 35d73631c61..26ddf98c776 100644 --- a/src/main/java/org/olat/course/nodes/ta/DropboxScoringViewController.java +++ b/src/main/java/org/olat/course/nodes/ta/DropboxScoringViewController.java @@ -308,7 +308,7 @@ public class DropboxScoringViewController extends BasicController { if(node instanceof AssessableCourseNode) { AssessableCourseNode acn = (AssessableCourseNode)node; - AssessmentEvaluation eval = acn.getUserScoreEvaluation(userCourseEnv); + AssessmentEvaluation eval = courseAssessmentService.getUserScoreEvaluation(node, userCourseEnv); if(eval.getAssessmentStatus() == null || eval.getAssessmentStatus() == AssessmentEntryStatus.notStarted) { eval = new AssessmentEvaluation(eval, AssessmentEntryStatus.inProgress); courseAssessmentService.updateUserScoreEvaluation(acn, eval, userCourseEnv, coach, false, Role.coach); @@ -344,7 +344,7 @@ public class DropboxScoringViewController extends BasicController { } else if(FolderCommand.FOLDERCOMMAND_FINISHED == event) { if(node instanceof AssessableCourseNode) { AssessableCourseNode acn = (AssessableCourseNode)node; - AssessmentEvaluation eval = acn.getUserScoreEvaluation(userCourseEnv); + AssessmentEvaluation eval = courseAssessmentService.getUserScoreEvaluation(node, userCourseEnv); if (eval == null) { eval = AssessmentEvaluation.EMPTY_EVAL; } diff --git a/src/main/java/org/olat/course/nodes/ta/TAAssessmentHandler.java b/src/main/java/org/olat/course/nodes/ta/TAAssessmentHandler.java index 28dcca487ea..54be6b959e2 100644 --- a/src/main/java/org/olat/course/nodes/ta/TAAssessmentHandler.java +++ b/src/main/java/org/olat/course/nodes/ta/TAAssessmentHandler.java @@ -31,8 +31,8 @@ import org.olat.course.assessment.handler.AssessmentHandler; import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.TACourseNode; +import org.olat.course.run.scoring.AssessmentEvaluation; import org.olat.course.run.scoring.ScoreCalculator; -import org.olat.course.run.scoring.ScoreEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.group.BusinessGroup; import org.olat.modules.assessment.AssessmentEntry; @@ -69,7 +69,7 @@ public class TAAssessmentHandler implements AssessmentHandler { } @Override - public ScoreEvaluation getCalculatedScoreEvaluation(CourseNode courseNode, + public AssessmentEvaluation getCalculatedScoreEvaluation(CourseNode courseNode, UserCourseEnvironment userCourseEnvironment) { return null; } diff --git a/src/main/java/org/olat/course/nodes/ta/TaskController.java b/src/main/java/org/olat/course/nodes/ta/TaskController.java index d0c32a69661..ba99351007a 100644 --- a/src/main/java/org/olat/course/nodes/ta/TaskController.java +++ b/src/main/java/org/olat/course/nodes/ta/TaskController.java @@ -61,6 +61,7 @@ import org.olat.core.util.vfs.VFSItem; import org.olat.core.util.vfs.VFSLeaf; import org.olat.core.util.vfs.VFSManager; import org.olat.core.util.vfs.VFSMediaResource; +import org.olat.course.assessment.CourseAssessmentService; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.TACourseNode; import org.olat.course.properties.CoursePropertyManager; @@ -71,6 +72,7 @@ import org.olat.modules.ModuleConfiguration; import org.olat.modules.assessment.Role; import org.olat.modules.assessment.model.AssessmentEntryStatus; import org.olat.properties.Property; +import org.springframework.beans.factory.annotation.Autowired; /** * Initial Date: 02.09.2004 @@ -130,6 +132,10 @@ public class TaskController extends BasicController { private String assignedTask; private Panel panel; + + @Autowired + private CourseAssessmentService courseAssessmentService; + /** * Implements a task component. * @param ureq @@ -227,6 +233,7 @@ public class TaskController extends BasicController { /** * @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest, org.olat.core.gui.components.Component, org.olat.core.gui.control.Event) */ + @Override public void event(UserRequest ureq, Component source, Event event) { log.debug("Test Component.event source" + source + " , event=" + event); @@ -337,7 +344,7 @@ public class TaskController extends BasicController { Property p = cpm.createCourseNodePropertyInstance(node, identity, null, PROP_ASSIGNED, null, null, task, null); cpm.saveProperty(p); - AssessmentEvaluation eval = node.getUserScoreEvaluation(userCourseEnv); + AssessmentEvaluation eval = courseAssessmentService.getUserScoreEvaluation(node, userCourseEnv); if(eval.getAssessmentStatus() == null || eval.getAssessmentStatus() == AssessmentEntryStatus.notStarted) { eval = new AssessmentEvaluation(eval, AssessmentEntryStatus.inProgress); node.updateUserScoreEvaluation(eval, userCourseEnv, getIdentity(), false, Role.user); diff --git a/src/main/java/org/olat/course/reminder/rule/PassedRuleSPI.java b/src/main/java/org/olat/course/reminder/rule/PassedRuleSPI.java index cfd823f5010..5e1793b02df 100644 --- a/src/main/java/org/olat/course/reminder/rule/PassedRuleSPI.java +++ b/src/main/java/org/olat/course/reminder/rule/PassedRuleSPI.java @@ -101,13 +101,12 @@ public class PassedRuleSPI implements FilterRuleSPI { if(courseNode instanceof STCourseNode) { passeds = new HashMap<>(); - STCourseNode structureNode = (STCourseNode)courseNode; CourseAssessmentService courseAssessmentService = CoreSpringFactory.getImpl(CourseAssessmentService.class); AssessmentConfig assessmentConfig = courseAssessmentService.getAssessmentConfig(courseNode); if(assessmentConfig.hasPassed()) { for(Identity identity:identities) { UserCourseEnvironment uce = AssessmentHelper.createAndInitUserCourseEnvironment(identity, course); - ScoreEvaluation scoreEval = structureNode.getUserScoreEvaluation(uce); + ScoreEvaluation scoreEval = courseAssessmentService.getUserScoreEvaluation(courseNode, uce); Boolean passed = scoreEval.getPassed(); if(passed != null) { passeds.put(identity.getKey(), passed); diff --git a/src/main/java/org/olat/course/reminder/rule/ScoreRuleSPI.java b/src/main/java/org/olat/course/reminder/rule/ScoreRuleSPI.java index 89061269305..c3bfcfd774c 100644 --- a/src/main/java/org/olat/course/reminder/rule/ScoreRuleSPI.java +++ b/src/main/java/org/olat/course/reminder/rule/ScoreRuleSPI.java @@ -103,13 +103,12 @@ public class ScoreRuleSPI implements FilterRuleSPI { if(courseNode instanceof STCourseNode) { scores = new HashMap<>(); - STCourseNode structureNode = (STCourseNode)courseNode; CourseAssessmentService courseAssessmentService = CoreSpringFactory.getImpl(CourseAssessmentService.class); AssessmentConfig assessmentConfig = courseAssessmentService.getAssessmentConfig(courseNode); if(assessmentConfig.hasScore()) { for(Identity identity:identities) { UserCourseEnvironment uce = AssessmentHelper.createAndInitUserCourseEnvironment(identity, course); - ScoreEvaluation scoreEval = structureNode.getUserScoreEvaluation(uce); + ScoreEvaluation scoreEval = courseAssessmentService.getUserScoreEvaluation(courseNode, uce); Float score = scoreEval.getScore(); if(score != null) { scores.put(identity.getKey(), score); diff --git a/src/main/java/org/olat/course/run/scoring/ScoreAccounting.java b/src/main/java/org/olat/course/run/scoring/ScoreAccounting.java index e2e7440d855..4728f31c361 100644 --- a/src/main/java/org/olat/course/run/scoring/ScoreAccounting.java +++ b/src/main/java/org/olat/course/run/scoring/ScoreAccounting.java @@ -53,6 +53,7 @@ import org.olat.modules.assessment.model.AssessmentRunStatus; import org.olat.repository.RepositoryEntry; import org.olat.repository.RepositoryService; import org.olat.repository.model.RepositoryEntryLifecycle; +import org.springframework.beans.factory.annotation.Autowired; /** * Description:<BR/> @@ -69,6 +70,9 @@ public class ScoreAccounting { private boolean error; private final UserCourseEnvironment userCourseEnvironment; private final Map<AssessableCourseNode, AssessmentEvaluation> cachedScoreEvals = new HashMap<>(); + + @Autowired + private CourseAssessmentService courseAssessmentService; /** * Constructor of the user score accounting object @@ -76,6 +80,7 @@ public class ScoreAccounting { */ public ScoreAccounting(UserCourseEnvironment userCourseEnvironment) { this.userCourseEnvironment = userCourseEnvironment; + CoreSpringFactory.autowireObject(this); } /** @@ -105,7 +110,6 @@ public class ScoreAccounting { CourseNode courseNode = userCourseEnvironment.getCourseEnvironment().getRunStructure().getNode(nodeIdent); if(courseNode instanceof AssessableCourseNode) { AssessableCourseNode acn = (AssessableCourseNode)courseNode; - CourseAssessmentService courseAssessmentService = CoreSpringFactory.getImpl(CourseAssessmentService.class); AssessmentEvaluation se = courseAssessmentService.toAssessmentEvaluation(entry, courseNode); cachedScoreEvals.put(acn, se); } @@ -155,7 +159,6 @@ public class ScoreAccounting { recursionLevel++; AssessmentEvaluation se = null; if (recursionLevel <= 15) { - CourseAssessmentService courseAssessmentService = CoreSpringFactory.getImpl(CourseAssessmentService.class); AssessmentConfig assessmentConfig = courseAssessmentService.getAssessmentConfig(cn); if (update && assessmentConfig.isScoreEvaluationCalculated()) { AssessmentEntry entry = identToEntries.get(cn.getIdent()); @@ -168,7 +171,7 @@ public class ScoreAccounting { AssessmentEntry entry = identToEntries.get(cn.getIdent()); se = courseAssessmentService.toAssessmentEvaluation(entry, assessmentConfig); } else { - se = cn.getUserScoreEvaluation(userCourseEnvironment); + se = courseAssessmentService.getUserScoreEvaluation(cn, userCourseEnvironment); } cachedScoreEvals.put(cn, se); } @@ -201,7 +204,6 @@ public class ScoreAccounting { private AssessmentEvaluation calculateScoreEvaluation(AssessmentEntry entry, CourseNode cNode, AssessmentConfig assessmentConfig) { AssessmentEvaluation se; if(assessmentConfig.hasScore() || assessmentConfig.hasPassed()) { - CourseAssessmentService courseAssessmentService = CoreSpringFactory.getImpl(CourseAssessmentService.class); ScoreCalculator scoreCalculator = courseAssessmentService.getScoreCalculator(cNode); String scoreExpressionStr = scoreCalculator.getScoreExpression(); String passedExpressionStr = scoreCalculator.getPassedExpression(); @@ -362,12 +364,7 @@ public class ScoreAccounting { * @return The score evaluation */ public AssessmentEvaluation getScoreEvaluation(CourseNode courseNode) { - AssessmentEvaluation se = null; - if (courseNode instanceof AssessableCourseNode) { - AssessableCourseNode acn = (AssessableCourseNode) courseNode; - se = acn.getUserScoreEvaluation(userCourseEnvironment); - } - return se; + return courseAssessmentService.getUserScoreEvaluation(courseNode, userCourseEnvironment); } /** @@ -378,7 +375,7 @@ public class ScoreAccounting { public AssessmentEvaluation evalCourseNode(AssessableCourseNode cn) { AssessmentEvaluation se = cachedScoreEvals.get(cn); if (se == null) { // result of this node has not been calculated yet, do it - se = cn.getUserScoreEvaluation(userCourseEnvironment); + se = getScoreEvaluation(cn); cachedScoreEvals.put(cn, se); } return se; diff --git a/src/main/java/org/olat/ims/qti21/ui/QTI21AssessmentDetailsController.java b/src/main/java/org/olat/ims/qti21/ui/QTI21AssessmentDetailsController.java index 515fcda1307..d448a85e174 100644 --- a/src/main/java/org/olat/ims/qti21/ui/QTI21AssessmentDetailsController.java +++ b/src/main/java/org/olat/ims/qti21/ui/QTI21AssessmentDetailsController.java @@ -432,7 +432,7 @@ public class QTI21AssessmentDetailsController extends FormBasicController { private void doUpdateCourseNode(AssessmentTestSession session, AssessmentTest assessmentTest, AssessmentEntryStatus entryStatus) { Double cutValue = QtiNodesExtractor.extractCutValue(assessmentTest); - ScoreEvaluation scoreEval = courseNode.getUserScoreEvaluation(assessedUserCourseEnv); + ScoreEvaluation scoreEval = courseAssessmentService.getUserScoreEvaluation(courseNode, assessedUserCourseEnv); BigDecimal finalScore = session.getFinalScore(); Float score = finalScore == null ? null : finalScore.floatValue(); Boolean passed = scoreEval.getPassed(); diff --git a/src/main/java/org/olat/ims/qti21/ui/assessment/CorrectionIdentityAssessmentItemController.java b/src/main/java/org/olat/ims/qti21/ui/assessment/CorrectionIdentityAssessmentItemController.java index 1f3c797821a..ac26e1652d4 100644 --- a/src/main/java/org/olat/ims/qti21/ui/assessment/CorrectionIdentityAssessmentItemController.java +++ b/src/main/java/org/olat/ims/qti21/ui/assessment/CorrectionIdentityAssessmentItemController.java @@ -242,7 +242,7 @@ public class CorrectionIdentityAssessmentItemController extends FormBasicControl UserCourseEnvironment assessedUserCourseEnv = AssessmentHelper .createAndInitUserCourseEnvironment(testSession.getIdentity(), courseEnv); - ScoreEvaluation scoreEval = courseNode.getUserScoreEvaluation(assessedUserCourseEnv); + ScoreEvaluation scoreEval = courseAssessmentService.getUserScoreEvaluation(courseNode, assessedUserCourseEnv); BigDecimal finalScore = testSession.getFinalScore(); Float score = finalScore == null ? null : finalScore.floatValue(); diff --git a/src/main/java/org/olat/modules/portfolio/manager/PortfolioServiceImpl.java b/src/main/java/org/olat/modules/portfolio/manager/PortfolioServiceImpl.java index 85895116958..ab1dcec9aa0 100644 --- a/src/main/java/org/olat/modules/portfolio/manager/PortfolioServiceImpl.java +++ b/src/main/java/org/olat/modules/portfolio/manager/PortfolioServiceImpl.java @@ -1441,7 +1441,7 @@ public class PortfolioServiceImpl implements PortfolioService { if(courseNode instanceof PortfolioCourseNode) { PortfolioCourseNode pfNode = (PortfolioCourseNode)courseNode; UserCourseEnvironment userCourseEnv = AssessmentHelper.createAndInitUserCourseEnvironment(assessedIdentity, course); - AssessmentEvaluation eval = pfNode.getUserScoreEvaluation(userCourseEnv); + AssessmentEvaluation eval = courseAssessmentService.getUserScoreEvaluation(pfNode, userCourseEnv); status = eval.getAssessmentStatus(); } } else { @@ -1468,7 +1468,7 @@ public class PortfolioServiceImpl implements PortfolioService { if(courseNode instanceof PortfolioCourseNode) { PortfolioCourseNode pfNode = (PortfolioCourseNode)courseNode; UserCourseEnvironment userCourseEnv = AssessmentHelper.createAndInitUserCourseEnvironment(assessedIdentity, course); - AssessmentEvaluation eval = pfNode.getUserScoreEvaluation(userCourseEnv); + AssessmentEvaluation eval = courseAssessmentService.getUserScoreEvaluation(pfNode, userCourseEnv); ScoreEvaluation scoreEval= new ScoreEvaluation(eval.getScore(), eval.getPassed(), status, true, fullyAssessed, null, null, binder.getKey()); courseAssessmentService.updateUserScoreEvaluation(courseNode, scoreEval, userCourseEnv, diff --git a/src/main/java/org/olat/modules/scorm/ScormAPIMapper.java b/src/main/java/org/olat/modules/scorm/ScormAPIMapper.java index 73b061b2949..cbf793b0ecc 100644 --- a/src/main/java/org/olat/modules/scorm/ScormAPIMapper.java +++ b/src/main/java/org/olat/modules/scorm/ScormAPIMapper.java @@ -118,10 +118,10 @@ public class ScormAPIMapper implements Mapper, ScormAPICallback, Serializable { CourseAssessmentService courseAssessmentService = CoreSpringFactory.getImpl(CourseAssessmentService.class); AssessmentConfig assessmentConfig = courseAssessmentService.getAssessmentConfig(scormNode); if(assessmentConfig.hasScore()) { - currentScore = scormNode.getUserScoreEvaluation(userCourseEnv).getScore(); + currentScore = courseAssessmentService.getUserScoreEvaluation(scormNode, userCourseEnv).getScore(); } if(assessmentConfig.hasPassed()) { - currentPassed = scormNode.getUserScoreEvaluation(userCourseEnv).getPassed(); + currentPassed = courseAssessmentService.getUserScoreEvaluation(scormNode, userCourseEnv).getPassed(); } } } @@ -213,7 +213,7 @@ public class ScormAPIMapper implements Mapper, ScormAPICallback, Serializable { } } else if (!config.getBooleanSafe(ScormEditController.CONFIG_ATTEMPTSDEPENDONSCORE, false)) { boolean increment = !attemptsIncremented && finish; - ScoreEvaluation sceval = scormNode.getUserScoreEvaluation(userCourseEnv); + ScoreEvaluation sceval = courseAssessmentService.getUserScoreEvaluation(scormNode, userCourseEnv); courseAssessmentService.updateUserScoreEvaluation(scormNode, sceval, userCourseEnv, identity, increment, Role.user); if(increment) { @@ -278,7 +278,7 @@ public class ScormAPIMapper implements Mapper, ScormAPICallback, Serializable { } } else if (!config.getBooleanSafe(ScormEditController.CONFIG_ATTEMPTSDEPENDONSCORE, false)) { boolean increment = !attemptsIncremented && finish; - ScoreEvaluation sceval = scormNode.getUserScoreEvaluation(userCourseEnv); + ScoreEvaluation sceval = courseAssessmentService.getUserScoreEvaluation(scormNode, userCourseEnv); courseAssessmentService.updateUserScoreEvaluation(scormNode, sceval, userCourseEnv, identity, increment, Role.user); if(increment) { -- GitLab