/** * Write skills * * @param * @return */ function writeSkills() { global $lng, $ilCtrl; return; include_once "./Modules/Survey/classes/class.ilSurveySkill.php"; $sskill = new ilSurveySkill($this->survey); $apps = $this->survey->getAppraiseesData(); $ctpl = new ilTemplate("tpl.svy_skill_list_changes.html", true, true, "Modules/Survey"); foreach ($apps as $app) { $new_levels = $sskill->determineSkillLevelsForAppraisee($app["user_id"]); foreach ($new_levels as $nl) { if ($nl["new_level_id"] > 0) { ilBasicSkill::writeUserSkillLevelStatus($nl["new_level_id"], $app["user_id"], $this->survey->getRefId(), $nl["tref_id"], ilBasicSkill::ACHIEVED); } } } ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true); $ilCtrl->redirect($this, "listSkillChanges"); }
/** * Look for all skill level that have a trigger and update * the user skill level information, if it has changed */ public static function updateSkillLevelsByTriggerRef($a_user_id, $a_ref_id) { global $ilDB; die("ilBasicSkill::updateSkillLevelsByTriggerRef is deprecated."); $set = $ilDB->query("SELECT id, trigger_obj_id FROM skl_level WHERE " . " trigger_ref_id = " . $ilDB->quote($a_ref_id, "integer")); while ($rec = $ilDB->fetchAssoc($set)) { $skill_level_id = $rec["id"]; $tr_obj_id = $rec["trigger_obj_id"]; if (ilObject::_hasUntrashedReference($tr_obj_id)) { include_once "./Services/Tracking/classes/class.ilLPStatusWrapper.php"; $completed = ilLPStatusWrapper::_lookupCompletedForObject($tr_obj_id); foreach ($completed as $user_id) { if ($a_user_id == $user_id) { ilBasicSkill::writeUserSkillLevelStatus($skill_level_id, $user_id, ilBasicSkill::ACHIEVED); } } } } }
/** * Write appraisee skills * * @param * @return */ function writeAppraiseeSkills($a_app_id) { // write raters evaluation $new_levels = $this->determineSkillLevelsForAppraisee($a_app_id); foreach ($new_levels as $nl) { if ($nl["new_level_id"] > 0) { ilBasicSkill::writeUserSkillLevelStatus($nl["new_level_id"], $a_app_id, $this->survey->getRefId(), $nl["tref_id"], ilBasicSkill::ACHIEVED, true); } } // patch optes start // write self evaluation, /* $new_levels = $this->determineSkillLevelsForAppraisee($a_app_id, true); foreach ($new_levels as $nl) { if ($nl["new_level_id"] > 0) { ilBasicSkill::writeUserSkillLevelStatus($nl["new_level_id"], $a_app_id, $this->survey->getRefId(), $nl["tref_id"], ilBasicSkill::ACHIEVED, true, 1); } }*/ // patch optes end }
/** * Write appraisee skills * * @param * @return */ function writeAppraiseeSkills($a_app_id) { $new_levels = $this->determineSkillLevelsForAppraisee($a_app_id); foreach ($new_levels as $nl) { if ($nl["new_level_id"] > 0) { ilBasicSkill::writeUserSkillLevelStatus($nl["new_level_id"], $a_app_id, $this->survey->getRefId(), $nl["tref_id"], ilBasicSkill::ACHIEVED, true); } } }
/** * Save self evaluation * * @param int $a_user_id user id * @param int $a_top_skill the "selectable" top skill * @param int $a_tref_id template reference id * @param int $a_basic_skill the basic skill the level belongs to * @param int $a_level level id */ static function saveSelfEvaluation($a_user_id, $a_top_skill, $a_tref_id, $a_basic_skill, $a_level) { global $ilDB; include_once "./Services/Skill/classes/class.ilBasicSkill.php"; ilBasicSkill::writeUserSkillLevelStatus($a_level, $a_user_id, 0, $a_tref_id, ilBasicSkill::ACHIEVED, false, 1); return; $set = $ilDB->query("SELECT * FROM skl_self_eval_level " . " WHERE user_id = " . $ilDB->quote($a_user_id, "integer") . " AND top_skill_id = " . $ilDB->quote($a_top_skill, "integer") . " AND tref_id = " . $ilDB->quote((int) $a_tref_id, "integer") . " AND skill_id = " . $ilDB->quote($a_basic_skill, "integer")); if (!$ilDB->fetchAssoc($set)) { $ilDB->manipulate("INSERT INTO skl_self_eval_level " . "(user_id, top_skill_id, tref_id, skill_id, level_id, last_update) VALUES (" . $ilDB->quote($a_user_id, "integer") . "," . $ilDB->quote($a_top_skill, "integer") . "," . $ilDB->quote((int) $a_tref_id, "integer") . "," . $ilDB->quote($a_basic_skill, "integer") . "," . $ilDB->quote($a_level, "integer") . "," . $ilDB->quote(ilUtil::now(), "timestamp") . ")"); } else { $ilDB->manipulate("UPDATE skl_self_eval_level SET " . " level_id = " . $ilDB->quote($a_level, "integer") . ", " . " last_update = " . $ilDB->quote(ilUtil::now(), "timestamp") . " WHERE user_id = " . $ilDB->quote($a_user_id, "integer") . " AND top_skill_id = " . $ilDB->quote($a_top_skill, "integer") . " AND tref_id = " . $ilDB->quote((int) $a_tref_id, "integer") . " AND skill_id = " . $ilDB->quote($a_basic_skill, "integer")); } }
private function invokeSkillLevelTrigger($userId, $skillBaseId, $skillTrefId, $skillLevelId) { ilBasicSkill::writeUserSkillLevelStatus($skillLevelId, $userId, $this->testOBJ->getRefId(), $skillTrefId, ilBasicSkill::ACHIEVED, true); //mail('*****@*****.**', "trigger skill $skillBaseId:$skillTrefId level $skillLevelId for user $userId", ''); }