3 declare(strict_types=1);
    49             ?: $DIC->skills()->internal()->repo()->getProfileCompletionRepo();
    50         $this->tree_service = $DIC->repositoryTree();
    51         $this->obj_definition = $DIC[
"objDefinition"];
    61         string $gap_mode = 
"",
    62         string $gap_mode_type = 
"",
    63         int $gap_mode_obj_id = 0,
    64         string $trigger_user = 
""    68         foreach ($skills as $sk) {
    69             $bs = new \ilBasicSkill($sk->getBaseSkillId());
    70             if ($gap_mode == 
"max_per_type") {
    71                 $max = $bs->getMaxLevelPerType($sk->getTrefId(), $gap_mode_type, 
$user_id);
    72             } elseif ($gap_mode == 
"max_per_object") {
    74                     $sub_objects = $this->tree_service->getSubTree(
    80                     foreach ($sub_objects as 
$ref_id) {
    82                         $max_tmp = $bs->getMaxLevelPerObject($sk->getTrefId(), $obj_id, 
$user_id, 0, $trigger_user);
    83                         if ($max_tmp > $max) {
    88                     $max = $bs->getMaxLevelPerObject($sk->getTrefId(), $gap_mode_obj_id, 
$user_id, 0, $trigger_user);
    91                 $max = $bs->getMaxLevel($sk->getTrefId(), 
$user_id);
    93             $actual_levels[$sk->getBaseSkillId()][$sk->getTrefId()] = $max;
    96         return $actual_levels;
   111         foreach ($skills as $sk) {
   112             $bs = new \ilBasicSkill($sk->getBaseSkillId());
   113             $last = $bs->getLastLevelEntryOfUser(
   120             $last_levels[$sk->getBaseSkillId()][$sk->getTrefId()] = $last;
   128         string $gap_mode = 
"",
   129         string $gap_mode_type = 
"",
   130         int $gap_mode_obj_id = 0
   143         string $gap_mode = 
"",
   144         string $gap_mode_type = 
"",
   145         int $gap_mode_obj_id = 0
   149         foreach ($skills as $sk) {
   150             $bs = new \ilBasicSkill($sk->getBaseSkillId());
   151             if ($gap_mode == 
"max_per_type") {
   152                 $perc = $bs->getNextLevelFulfilmentPerType($sk->getTrefId(), $gap_mode_type, 
$user_id);
   153             } elseif ($gap_mode == 
"max_per_object") {
   154                 $perc = $bs->getNextLevelFulfilmentPerObject($sk->getTrefId(), $gap_mode_obj_id, 
$user_id);
   156                 $perc = $bs->getNextLevelFulfilment($sk->getTrefId(), 
$user_id);
   158             $fuls[$sk->getBaseSkillId()][$sk->getTrefId()] = $perc;
   169         $profile_levels = $this->profile_manager->getSkillLevels($profile_id);
   174         foreach ($profile_levels as $level) {
   175             if (isset($actual_levels[$level->getBaseSkillId()][$level->getTrefId()]) &&
   176                 $actual_levels[$level->getBaseSkillId()][$level->getTrefId()] >= $level->getLevelId()) {
   181         if ($profile_count == 0) {
   184         $progress = $achieved_count / $profile_count * 100;
   186         return (
int) $progress;
   206         $user_profiles = $this->profile_manager->getProfilesOfUser($user_id);
   208         foreach ($user_profiles as $p) {
   210                 $profile_comps[$p->getId()] = 
true;
   212                 $profile_comps[$p->getId()] = 
false;
   216         return $profile_comps;
   225         return $this->profile_completion_repo->getEntries($user_id, $profile_id);
   234         return $this->profile_completion_repo->getFulfilledEntriesForUser($user_id);
   243         return $this->profile_completion_repo->getAllEntriesForUser($user_id);
   252         return $this->profile_completion_repo->getAllEntriesForProfile($profile_id);
   261         foreach ($completions as $profile_id => $fulfilled) {
   263                 $this->profile_completion_repo->addFulfilmentEntry($user_id, $profile_id);
   265                 $this->profile_completion_repo->addNonFulfilmentEntry($user_id, $profile_id);
   276             $this->profile_completion_repo->addFulfilmentEntry($user_id, $profile_id);
   278             $this->profile_completion_repo->addNonFulfilmentEntry($user_id, $profile_id);
   287         $users = $this->profile_manager->getAssignedUserIdsIncludingRoleAssignments($profile_id);
   298         $r_users = $this->profile_manager->getAssignedUsersForRole($role_id);
   309         $this->profile_completion_repo->deleteEntriesForProfile($profile_id);
   317         $this->profile_completion_repo->deleteEntriesForUser($user_id);
 writeCompletionEntryForAllAssignedUsersOfProfile(int $profile_id)
Write completion entries for a profile for all assigned users of the given profile. 
 
getProfileProgress(int $user_id, int $profile_id)
Get progress in percent for a profile. 
 
getActualNextLevelFulfilments(int $user_id, array $skills, string $gap_mode="", string $gap_mode_type="", int $gap_mode_obj_id=0)
 
getActualLastLevels(int $user_id, array $skills, string $gap_mode="", string $gap_mode_type="", int $gap_mode_obj_id=0)
 
deleteEntriesForProfile(int $profile_id)
Delete all profile completion entries for a profile. 
 
SkillProfileManager $profile_manager
 
static getSupportedObjectTypes()
 
static _getAllReferences(int $id)
get all reference ids for object ID 
 
getEntries(int $user_id, int $profile_id)
Get profile completion entries for given user-profile-combination. 
 
deleteEntriesForUser(int $user_id)
Delete all profile completion entries for a user. 
 
getAllEntriesForUser(int $user_id)
Get all profile completion entries for a user. 
 
getAllEntriesForProfile(int $profile_id)
Get all completion entries for a single profile. 
 
Repository for skill profile completion. 
 
getActualMaxLevels(int $user_id, array $skills, string $gap_mode="", string $gap_mode_type="", int $gap_mode_obj_id=0, string $trigger_user="")
 
static _lookupObjectId(int $ref_id)
 
getFulfilledEntriesForUser(int $user_id)
Get all fulfilled profile completion entries for a user. 
 
writeCompletionEntryForAllProfilesOfUser(int $user_id)
Write profile completion entries (fulfilled or non-fulfilled) of user for all profiles. 
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
__construct(SkillProfileManager $profile_manager, ?SkillProfileCompletionDBRepository $profile_completion_repo=null)
 
getAllProfileCompletionsForUser(int $user_id)
Get all profiles of user which are fulfilled or non-fulfilled. 
 
isProfileFulfilled(int $user_id, int $profile_id)
Check if a profile is fulfilled (progress = 100%) 
 
ilObjectDefinition $obj_definition
 
SkillProfileCompletionDBRepository $profile_completion_repo
 
getLastLevelPerObjectAndTriggerUser(int $user_id, array $skills, int $obj_id, string $trigger_user)
This does not include any container logic currently only used for survey, individual assessment...
 
writeCompletionEntryForRole(int $role_id, int $profile_id)
Write completion entries for a profile for assigned users of a role. 
 
Manages skill profile completion. 
 
writeCompletionEntryForSingleProfileOfUser(int $user_id, int $profile_id)
Write profile completion entry (fulfilled or non-fulfilled) of user for given profile. 
 
static _lookupType(int $id, bool $reference=false)