19 declare(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()
108 $skill_evaluation->setActiveId($this->
getTestSession()->getActiveId());
110 $skill_evaluation->setNumRequiredBookingsForSkillTriggering(
111 $this->test_obj->getGlobalSettings()->getSkillTriggeringNumberOfAnswers()
116 $available_skill_profiles = $skill_evaluation->getAssignedSkillMatchingSkillProfiles();
118 $skill_evaluation->noProfileMatchingAssignedSkillExists($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);
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(
163 . $personal_skills_gui->getGapAnalysisHTML(
164 $this->getTestSession()->getUserId(),
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);
setAvailableSkillProfiles(array $available_skill_profiles)
ilAssQuestionList $question_list
ilTestObjectiveOrientedContainer $objective_oriented_container
ilTestSession $test_session
bool $no_skill_profile_option_enabled
buildEvaluationToolbarGUI(int $selected_skill_profile_id)
setObjectiveOrientedContainer(ilTestObjectiveOrientedContainer $objective_oriented_container)
__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)
init(bool $skill_profile_enabled)
const INVOLVE_SKILLS_BELOW_NUM_ANSWERS_BARRIER_FOR_GAP_ANALASYS
setAvailableSkills(array $available_skills)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
Personal skills GUI class.
getObjectiveOrientedContainer()
ilTestPassesSelector $test_passes_selector
array $available_skill_profiles
setNoSkillProfileOptionEnabled(bool $no_skill_profile_option_enabled)
setTestSession(ilTestSession $test_session)
const SKILL_PROFILE_PARAM
setQuestionList(ilAssQuestionList $question_list)