19 declare(strict_types=1);
36 if (!$this->test_session->isSubmitted()) {
37 $this->test_session->setSubmitted();
38 $this->test_session->setSubmittedTimestamp();
39 $this->test_session->saveToDb();
42 $last_started_pass = (
43 $this->test_session->getLastStartedPass() === null ? -1 : $this->test_session->getLastStartedPass()
46 $last_finished_pass = (
47 $this->test_session->getLastFinishedPass() === null ? -1 : $this->test_session->getLastFinishedPass()
50 if ($last_started_pass > -1 && $last_finished_pass < $last_started_pass) {
51 $this->test_session->setLastFinishedPass($this->test_session->getPass());
52 $this->test_session->increaseTestPass();
56 $this->obj_test->updateTestResultCache($this->test_session->getActiveId(), null);
63 $obj_id = $this->obj_test->getId();
71 $debug =
"finPass={$this->test_session->getLastFinishedPass()} / Lp={$lp}";
74 $this->test_session->getUserId(),
76 "updateLearningProgressAfterPassFinishedIsWritten has been called from {$caller} ({$debug})",
83 return (
new Exception())->getTrace()[3][
'class'];
static _addLog( $user_id, $object_id, $logtext, $question_id=0, $original_id=0, $test_only=false, $test_ref_id=0)
Add an assessment log entry.
Class ilTestPassFinishTasks.
static _getParticipantId($active_id)
Get user id for active id.
updateLearningProgressAfterPassFinishedIsWritten()
__construct(private readonly ilTestSession $test_session, private readonly ilObjTest $obj_test,)
static _lookupStatus(int $a_obj_id, int $a_user_id, bool $a_create=true)
Lookup status.
executeTestFinishOperation(callable $operation)
performFinishTasks(ilTestProcessLocker $process_locker)
static _updateStatus(int $a_obj_id, int $a_usr_id, ?object $a_obj=null, bool $a_percentage=false, bool $a_force_raise=false)