Skip to content
Snippets Groups Projects
Commit 56455f9a authored by uhensler's avatar uhensler
Browse files

OO-4186: Usage of course assessment service in manual scoring course element

parent c9509d72
No related branches found
No related tags found
No related merge requests found
...@@ -49,7 +49,6 @@ import org.olat.core.id.Roles; ...@@ -49,7 +49,6 @@ import org.olat.core.id.Roles;
import org.olat.core.util.StringHelper; import org.olat.core.util.StringHelper;
import org.olat.core.util.Util; import org.olat.core.util.Util;
import org.olat.course.ICourse; import org.olat.course.ICourse;
import org.olat.course.assessment.AssessmentManager;
import org.olat.course.assessment.CourseAssessmentService; import org.olat.course.assessment.CourseAssessmentService;
import org.olat.course.condition.ConditionEditController; import org.olat.course.condition.ConditionEditController;
import org.olat.course.editor.CourseEditorEnv; import org.olat.course.editor.CourseEditorEnv;
...@@ -69,7 +68,6 @@ import org.olat.course.run.userview.NodeEvaluation; ...@@ -69,7 +68,6 @@ import org.olat.course.run.userview.NodeEvaluation;
import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.course.run.userview.UserCourseEnvironment;
import org.olat.course.run.userview.UserCourseEnvironmentImpl; import org.olat.course.run.userview.UserCourseEnvironmentImpl;
import org.olat.modules.ModuleConfiguration; import org.olat.modules.ModuleConfiguration;
import org.olat.modules.assessment.AssessmentEntry;
import org.olat.modules.assessment.Role; import org.olat.modules.assessment.Role;
import org.olat.modules.forms.EvaluationFormSession; import org.olat.modules.forms.EvaluationFormSession;
import org.olat.modules.forms.handler.EvaluationFormResource; import org.olat.modules.forms.handler.EvaluationFormResource;
...@@ -318,16 +316,16 @@ public class MSCourseNode extends AbstractAccessableCourseNode implements Persis ...@@ -318,16 +316,16 @@ public class MSCourseNode extends AbstractAccessableCourseNode implements Persis
} }
public void updateScoreEvaluation(Identity identity, UserCourseEnvironment assessedUserCourseEnv, public void updateScoreEvaluation(Identity identity, UserCourseEnvironment assessedUserCourseEnv,
Identity assessedIdentity, Role by, EvaluationFormSession session) { Role by, EvaluationFormSession session) {
AssessmentManager am = assessedUserCourseEnv.getCourseEnvironment().getAssessmentManager();
MSService msService = CoreSpringFactory.getImpl(MSService.class); MSService msService = CoreSpringFactory.getImpl(MSService.class);
Float score = getScore(am, msService, assessedIdentity, session); Float score = getScore(msService, assessedUserCourseEnv, session);
Boolean passed = getPassed(am, assessedIdentity, score); Boolean passed = getPassed(assessedUserCourseEnv, score);
// save // save
ScoreEvaluation scoreEvaluation = new ScoreEvaluation(score, passed); ScoreEvaluation scoreEvaluation = new ScoreEvaluation(score, passed);
am.saveScoreEvaluation(this, identity, assessedIdentity, scoreEvaluation, assessedUserCourseEnv, false, by); CourseAssessmentService courseAssessmentService = CoreSpringFactory.getImpl(CourseAssessmentService.class);
courseAssessmentService.saveScoreEvaluation(this, identity, scoreEvaluation, assessedUserCourseEnv, false, by);
} }
@Override @Override
...@@ -347,16 +345,19 @@ public class MSCourseNode extends AbstractAccessableCourseNode implements Persis ...@@ -347,16 +345,19 @@ public class MSCourseNode extends AbstractAccessableCourseNode implements Persis
} }
private void updateScorePassedOnPublish(ICourse course, Identity assessedIdentity, Identity coachIdentity) { private void updateScorePassedOnPublish(ICourse course, Identity assessedIdentity, Identity coachIdentity) {
RepositoryEntry ores = course.getCourseEnvironment().getCourseGroupManager().getCourseEntry(); CourseAssessmentService courseAssessmentService = CoreSpringFactory.getImpl(CourseAssessmentService.class);
AssessmentManager am = course.getCourseEnvironment().getAssessmentManager();
MSService msService = CoreSpringFactory.getImpl(MSService.class); MSService msService = CoreSpringFactory.getImpl(MSService.class);
RepositoryEntry ores = course.getCourseEnvironment().getCourseGroupManager().getCourseEntry();
IdentityEnvironment identityEnv = new IdentityEnvironment(assessedIdentity, null);
UserCourseEnvironment userCourseEnv = new UserCourseEnvironmentImpl(identityEnv, course.getCourseEnvironment());
Float currentScore = am.getNodeScore(this, assessedIdentity); ScoreEvaluation currentEval = courseAssessmentService.getPersistedAssessmentEvaluation(this, userCourseEnv);
Boolean currentPassed = am.getNodePassed(this, assessedIdentity); Float currentScore = currentEval.getScore();
Boolean currentPassed = currentEval.getPassed();
EvaluationFormSession session = msService.getSession(ores, getIdent(), assessedIdentity, done); EvaluationFormSession session = msService.getSession(ores, getIdent(), assessedIdentity, done);
Float updatedScore = getScore(am, msService, assessedIdentity, session); Float updatedScore = getScore(msService, userCourseEnv, session);
Boolean updatedPassed = getPassed(am, assessedIdentity, updatedScore); Boolean updatedPassed = getPassed(userCourseEnv, updatedScore);
boolean needUpdate = false; boolean needUpdate = false;
if((currentScore == null && updatedScore != null) if((currentScore == null && updatedScore != null)
...@@ -372,14 +373,11 @@ public class MSCourseNode extends AbstractAccessableCourseNode implements Persis ...@@ -372,14 +373,11 @@ public class MSCourseNode extends AbstractAccessableCourseNode implements Persis
if(needUpdate) { if(needUpdate) {
ScoreEvaluation scoreEval = new ScoreEvaluation(updatedScore, updatedPassed); ScoreEvaluation scoreEval = new ScoreEvaluation(updatedScore, updatedPassed);
IdentityEnvironment identityEnv = new IdentityEnvironment(assessedIdentity, null); courseAssessmentService.saveScoreEvaluation(this, coachIdentity, scoreEval, userCourseEnv, false, Role.coach);
UserCourseEnvironment uce = new UserCourseEnvironmentImpl(identityEnv, course.getCourseEnvironment());
am.saveScoreEvaluation(this, coachIdentity, assessedIdentity, scoreEval, uce, false, Role.coach);
} }
} }
private Float getScore(AssessmentManager am, MSService msService, Identity assessedIdentity, private Float getScore(MSService msService, UserCourseEnvironment assessedUserCourseEnv, EvaluationFormSession session) {
EvaluationFormSession session) {
Float score = null; Float score = null;
ModuleConfiguration config = getModuleConfiguration(); ModuleConfiguration config = getModuleConfiguration();
String scoreConfig = config.getStringValue(CONFIG_KEY_SCORE); String scoreConfig = config.getStringValue(CONFIG_KEY_SCORE);
...@@ -394,8 +392,7 @@ public class MSCourseNode extends AbstractAccessableCourseNode implements Persis ...@@ -394,8 +392,7 @@ public class MSCourseNode extends AbstractAccessableCourseNode implements Persis
} }
if (score == null) { if (score == null) {
CourseAssessmentService courseAssessmentService = CoreSpringFactory.getImpl(CourseAssessmentService.class); CourseAssessmentService courseAssessmentService = CoreSpringFactory.getImpl(CourseAssessmentService.class);
AssessmentEntry assessmentEntry = am.getAssessmentEntry(this, assessedIdentity); ScoreEvaluation currentEval = courseAssessmentService.getPersistedAssessmentEvaluation(this, assessedUserCourseEnv);
ScoreEvaluation currentEval = courseAssessmentService.toAssessmentEvaluation(assessmentEntry, this);
score = currentEval.getScore(); score = currentEval.getScore();
} }
...@@ -412,7 +409,7 @@ public class MSCourseNode extends AbstractAccessableCourseNode implements Persis ...@@ -412,7 +409,7 @@ public class MSCourseNode extends AbstractAccessableCourseNode implements Persis
return score; return score;
} }
private Boolean getPassed(AssessmentManager am, Identity assessedIdentity, Float score) { private Boolean getPassed(UserCourseEnvironment assessedUserCourseEnv, Float score) {
Boolean passed = null; Boolean passed = null;
ModuleConfiguration config = getModuleConfiguration(); ModuleConfiguration config = getModuleConfiguration();
Float cutConfig = (Float) config.get(MSCourseNode.CONFIG_KEY_PASSED_CUT_VALUE); Float cutConfig = (Float) config.get(MSCourseNode.CONFIG_KEY_PASSED_CUT_VALUE);
...@@ -421,8 +418,7 @@ public class MSCourseNode extends AbstractAccessableCourseNode implements Persis ...@@ -421,8 +418,7 @@ public class MSCourseNode extends AbstractAccessableCourseNode implements Persis
passed = Boolean.valueOf(aboveCutValue); passed = Boolean.valueOf(aboveCutValue);
} else { } else {
CourseAssessmentService courseAssessmentService = CoreSpringFactory.getImpl(CourseAssessmentService.class); CourseAssessmentService courseAssessmentService = CoreSpringFactory.getImpl(CourseAssessmentService.class);
AssessmentEntry assessmentEntry = am.getAssessmentEntry(this, assessedIdentity); ScoreEvaluation currentEval = courseAssessmentService.getPersistedAssessmentEvaluation(this, assessedUserCourseEnv);
ScoreEvaluation currentEval = courseAssessmentService.toAssessmentEvaluation(assessmentEntry, this);
passed = currentEval.getPassed(); passed = currentEval.getPassed();
} }
return passed; return passed;
......
...@@ -154,9 +154,10 @@ public class MSEvaluationFormExecutionController extends BasicController impleme ...@@ -154,9 +154,10 @@ public class MSEvaluationFormExecutionController extends BasicController impleme
private void doSetAssessmentScore() { private void doSetAssessmentScore() {
session = msService.getSession(session); session = msService.getSession(session);
Identity assessedIdentity = assessedUserCourseEnv.getIdentityEnvironment().getIdentity(); if (courseNode instanceof MSCourseNode) {
//TODO uh enable MSCourseNode msCourseNode = (MSCourseNode) courseNode;
// msCourseNode.updateScoreEvaluation(getIdentity(), assessedUserCourseEnv, assessedIdentity, Role.coach, session); msCourseNode.updateScoreEvaluation(getIdentity(), assessedUserCourseEnv, Role.coach, session);
}
updateUIReopen(); updateUIReopen();
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment