19declare(strict_types=1);
88 $cmd = $this->
ctrl->getCmd(self::CMD_SHOW) .
'Cmd';
92 protected function init(
bool $skill_profile_enabled): void
95 $this->test_passes_selector->setActiveId($this->test_session->getActiveId());
96 $this->test_passes_selector->setLastFinishedPass($this->test_session->getLastFinishedPass());
101 $this->test_obj->getTestId(),
102 $this->test_obj->getRefId(),
103 $this->skills_service->profile(),
104 $this->skills_service->personal()
107 $skill_evaluation->setUserId($this->getTestSession()->getUserId());
108 $skill_evaluation->setActiveId($this->getTestSession()->getActiveId());
110 $skill_evaluation->setNumRequiredBookingsForSkillTriggering(
111 $this->test_obj->getGlobalSettings()->getSkillTriggeringNumberOfAnswers()
114 $skill_evaluation->init($this->getQuestionList());
116 $available_skill_profiles = $skill_evaluation->getAssignedSkillMatchingSkillProfiles();
117 $this->setNoSkillProfileOptionEnabled(
118 $skill_evaluation->noProfileMatchingAssignedSkillExists($available_skill_profiles)
120 $this->setAvailableSkillProfiles($available_skill_profiles);
123 $evaluation_passes = $this->test_passes_selector->getExistingPasses();
125 $available_skills = [];
127 foreach ($evaluation_passes as $eval_pass) {
128 $test_results = $this->test_obj->getTestResult($this->getTestSession()->getActiveId(), $eval_pass,
true);
130 $skill_evaluation->setPass($eval_pass);
131 $skill_evaluation->evaluate($test_results);
133 if ($skill_profile_enabled && self::INVOLVE_SKILLS_BELOW_NUM_ANSWERS_BARRIER_FOR_GAP_ANALASYS) {
134 $skills = $skill_evaluation->getSkillsInvolvedByAssignment();
136 $skills = $skill_evaluation->getSkillsMatchingNumAnswersBarrier();
139 $available_skills = array_merge($available_skills, $skills);
142 $this->setAvailableSkills(array_values($available_skills));
147 $skill_profile_selected = $this->testrequest->isset(self::SKILL_PROFILE_PARAM);
148 $selected_skill_profile = $this->testrequest->int(self::SKILL_PROFILE_PARAM);
150 $this->
init($skill_profile_selected);
153 $personal_skills_gui->setGapAnalysisActualStatusModePerObject(
154 $this->test_obj->getId(),
155 $this->lng->txt(
'tst_test_result')
157 $personal_skills_gui->setTriggerObjectsFilter([$this->test_obj->getId()]);
158 $personal_skills_gui->setHistoryView(
true);
159 $personal_skills_gui->setProfileId($selected_skill_profile);
161 $this->tpl->setContent(
162 $this->buildEvaluationToolbarGUI($selected_skill_profile)->getHTML()
163 . $personal_skills_gui->getGapAnalysisHTML(
164 $this->getTestSession()->getUserId(),
165 $this->available_skills
171 int $selected_skill_profile_id
173 if (!$this->no_skill_profile_option_enabled && $selected_skill_profile_id === null) {
174 $selected_skill_profile_id = key($this->available_skill_profiles) ?? 0;
178 $gui->setAvailableSkillProfiles($this->available_skill_profiles);
179 $gui->setNoSkillProfileOptionEnabled($this->no_skill_profile_option_enabled);
180 $gui->setSelectedEvaluationMode($selected_skill_profile_id);
187 $this->test_session = $test_session;
192 return $this->test_session;
197 $this->no_skill_profile_option_enabled = $no_skill_profile_option_enabled;
202 $this->available_skill_profiles = $available_skill_profiles;
207 $this->available_skills = $available_skills;
Personal skills GUI class.
bool $no_skill_profile_option_enabled
const INVOLVE_SKILLS_BELOW_NUM_ANSWERS_BARRIER_FOR_GAP_ANALASYS
array $available_skill_profiles
setAvailableSkillProfiles(array $available_skill_profiles)
__construct(private readonly ilObjTest $test_obj, private readonly ilCtrlInterface $ctrl, private readonly ilGlobalTemplateInterface $tpl, private readonly ilLanguage $lng, private readonly ilDBInterface $db, private readonly TestLogger $logger, private readonly SkillService $skills_service, private readonly RequestDataCollector $testrequest)
ilTestObjectiveOrientedContainer $objective_oriented_container
buildEvaluationToolbarGUI(int $selected_skill_profile_id)
ilAssQuestionList $question_list
getObjectiveOrientedContainer()
ilTestPassesSelector $test_passes_selector
setNoSkillProfileOptionEnabled(bool $no_skill_profile_option_enabled)
setTestSession(ilTestSession $test_session)
init(bool $skill_profile_enabled)
setAvailableSkills(array $available_skills)
setObjectiveOrientedContainer(ilTestObjectiveOrientedContainer $objective_oriented_container)
ilTestSession $test_session
const SKILL_PROFILE_PARAM
setQuestionList(ilAssQuestionList $question_list)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
if(!file_exists('../ilias.ini.php'))