ILIAS  trunk Revision v12.0_alpha-1540-g00f839d5fa1
ilCourseObjectiveResult Class Reference

class ilcourseobjective More...

+ Collaboration diagram for ilCourseObjectiveResult:

Public Member Functions

 __construct (int $a_usr_id)
 
 getUserId ()
 
 getAccomplished (int $a_crs_id)
 
 getSuggested (int $a_crs_id, string $a_status=self::IL_OBJECTIVE_STATUS_FINAL)
 
 reset (int $a_course_id)
 
 getStatus (int $a_course_id)
 
 hasAccomplishedObjective (int $a_objective_id)
 
 readStatus (int $a_crs_id)
 

Static Public Member Functions

static _getAccomplished (int $a_user_id, int $a_crs_id)
 
static _getSuggested (int $a_user_id, int $a_crs_id, string $a_status=self::IL_OBJECTIVE_STATUS_FINAL)
 
static getSuggestedQuestions (int $a_usr_id, int $a_crs_id)
 
static _updateObjectiveResult (int $a_user_id, int $a_active_id, int $a_question_id)
 
static _readAssignedObjectivesOfQuestion (int $a_question_id)
 
static _readAssignedObjectives (array $a_all_objectives)
 
static _updateObjectiveStatus (int $a_user_id, array $objectives)
 
static __isFullfilled (array $question_points, array $objective_data)
 

Data Fields

const IL_OBJECTIVE_STATUS_EMPTY = 'empty'
 
const IL_OBJECTIVE_STATUS_PRETEST = 'pretest'
 
const IL_OBJECTIVE_STATUS_FINAL = 'final'
 
const IL_OBJECTIVE_STATUS_NONE = 'none'
 
const IL_OBJECTIVE_STATUS_FINISHED = 'finished'
 
const IL_OBJECTIVE_STATUS_PRETEST_NON_SUGGEST = 'pretest_non_suggest'
 

Protected Member Functions

 resetTestForUser (ilObjTest $a_test, int $a_user_id)
 

Static Protected Member Functions

static __updatePassed (int $a_user_id, array $objective_ids)
 

Protected Attributes

ilDBInterface $db
 
ILIAS TestQuestionPool Questions PublicInterface $questioninfo
 

Private Attributes

int $user_id
 

Detailed Description

class ilcourseobjective

Author
Stefan Meyer meyer.nosp@m.@lei.nosp@m.fos.c.nosp@m.om

Definition at line 25 of file class.ilCourseObjectiveResult.php.

Constructor & Destructor Documentation

◆ __construct()

ilCourseObjectiveResult::__construct ( int  $a_usr_id)

Definition at line 39 of file class.ilCourseObjectiveResult.php.

40 {
41 global $DIC;
42
43 $this->db = $DIC->database();
44 $this->questioninfo = $DIC->testQuestion();
45
46 $this->user_id = $a_usr_id;
47 }
global $DIC
Definition: shib_login.php:26

References $DIC.

Member Function Documentation

◆ __isFullfilled()

static ilCourseObjectiveResult::__isFullfilled ( array  $question_points,
array  $objective_data 
)
static

Definition at line 394 of file class.ilCourseObjectiveResult.php.

394 : bool
395 {
396 global $DIC;
397
398 if (!is_array($objective_data['questions'])) {
399 return false;
400 }
401 $max_points = 0;
402 $reached_points = 0;
403 foreach ($objective_data['questions'] as $question_id) {
404 if (array_key_exists($question_id, $question_points)) {
405 $max_points += $question_points[$question_id]['max_points'];
406 $reached_points += $question_points[$question_id]['reached_points'] ?? 0;
407 } else {
408 $DIC->logger()->crs()->warning('stale question in course objective assignment table id ' . $question_id);
409 }
410 }
411 if (!$max_points) {
412 return false;
413 }
414 return $reached_points >= $objective_data['tst_limit'];
415 }

References $DIC.

Referenced by _updateObjectiveStatus().

+ Here is the caller graph for this function:

◆ __updatePassed()

static ilCourseObjectiveResult::__updatePassed ( int  $a_user_id,
array  $objective_ids 
)
staticprotected

Definition at line 417 of file class.ilCourseObjectiveResult.php.

417 : void
418 {
419 global $DIC;
420
421 $ilDB = $DIC['ilDB'];
422
423 $passed = array();
424
425 $query = "SELECT COUNT(t1.crs_id) num,t1.crs_id FROM crs_objectives t1 " .
426 "JOIN crs_objectives t2 WHERE t1.crs_id = t2.crs_id and " .
427 $ilDB->in('t1.objective_id', $objective_ids, false, 'integer') . " " .
428 "GROUP BY t1.crs_id";
429 $res = $ilDB->query($query);
430 $crs_ids = array();
431 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
432 $query = "SELECT COUNT(cs.objective_id) num_passed FROM crs_objective_status cs " .
433 "JOIN crs_objectives co ON cs.objective_id = co.objective_id " .
434 "WHERE crs_id = " . $ilDB->quote($row->crs_id, 'integer') . " " .
435 "AND user_id = " . $ilDB->quote($a_user_id, 'integer') . " ";
436
437 $user_res = $ilDB->query($query);
438 while ($user_row = $user_res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
439 if ((int) $user_row->num_passed === (int) $row->num) {
440 $passed[] = $row->crs_id;
441 }
442 }
443 $crs_ids[(int) $row->crs_id] = (int) $row->crs_id;
444 }
445 if ($passed !== []) {
446 foreach ($passed as $crs_id) {
448 $members->updatePassed($a_user_id, true);
449 }
450 }
451
452 // update tracking status
453 foreach ($crs_ids as $cid) {
454 ilLPStatusWrapper::_updateStatus($cid, $a_user_id);
455 }
456 }
static _getInstanceByObjId(int $a_obj_id)
const FETCHMODE_OBJECT
static _updateStatus(int $a_obj_id, int $a_usr_id, ?object $a_obj=null, bool $a_percentage=false, bool $a_force_raise=false)
$res
Definition: ltiservices.php:69

References $DIC, $ilDB, $res, ilCourseParticipants\_getInstanceByObjId(), ilLPStatusWrapper\_updateStatus(), ilDBConstants\FETCHMODE_OBJECT, and ILIAS\Repository\int().

Referenced by _updateObjectiveStatus().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _getAccomplished()

static ilCourseObjectiveResult::_getAccomplished ( int  $a_user_id,
int  $a_crs_id 
)
static

Definition at line 59 of file class.ilCourseObjectiveResult.php.

59 : array
60 {
61 global $DIC;
62
63 $ilDB = $DIC->database();
64
66 if (!is_array($objectives)) {
67 return array();
68 }
69 $query = "SELECT objective_id FROM crs_objective_status " .
70 "WHERE " . $ilDB->in('objective_id', $objectives, false, 'integer') . ' ' .
71 "AND user_id = " . $ilDB->quote($a_user_id, 'integer') . " ";
72 $res = $ilDB->query($query);
73 $accomplished = [];
74 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
75 $accomplished[] = (int) $row->objective_id;
76 }
77 return $accomplished;
78 }
static _getObjectiveIds(int $course_id, bool $a_activated_only=false)
$objectives

References $DIC, $ilDB, $objectives, $res, ilCourseObjective\_getObjectiveIds(), ilDBConstants\FETCHMODE_OBJECT, and ILIAS\Repository\int().

Referenced by getAccomplished().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _getSuggested()

static ilCourseObjectiveResult::_getSuggested ( int  $a_user_id,
int  $a_crs_id,
string  $a_status = self::IL_OBJECTIVE_STATUS_FINAL 
)
static

Definition at line 85 of file class.ilCourseObjectiveResult.php.

89 : array {
90 global $DIC;
91
92 $ilDB = $DIC->database();
93
95 $finished = $suggested = [];
96 if (
97 $a_status == self::IL_OBJECTIVE_STATUS_FINAL ||
98 $a_status == self::IL_OBJECTIVE_STATUS_FINISHED
99 ) {
100 // check finished
101 $query = "SELECT objective_id FROM crs_objective_status " .
102 "WHERE " . $ilDB->in('objective_id', $objectives, false, 'integer') . " " .
103 "AND user_id = " . $ilDB->quote($a_user_id, 'integer') . " ";
104 $res = $ilDB->query($query);
105 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
106 $finished[] = (int) $row->objective_id;
107 }
108 } else {
109 // Pretest
110 $query = "SELECT objective_id FROM crs_objective_status_p " .
111 "WHERE " . $ilDB->in('objective_id', $objectives, false, 'integer') . ' ' .
112 "AND user_id = " . $ilDB->quote($a_user_id, 'integer');
113 $res = $ilDB->query($query);
114 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
115 $finished[] = (int) $row->objective_id;
116 }
117 }
118 foreach ($objectives as $objective_id) {
119 if (!in_array($objective_id, $finished)) {
120 $suggested[] = $objective_id;
121 }
122 }
123 return $suggested;
124 }

Referenced by getSuggested(), and ilCourseObjectiveResultCache\readSuggested().

+ Here is the caller graph for this function:

◆ _readAssignedObjectives()

static ilCourseObjectiveResult::_readAssignedObjectives ( array  $a_all_objectives)
static

Definition at line 297 of file class.ilCourseObjectiveResult.php.

297 : array
298 {
299 global $DIC;
300
301 $ilDB = $DIC['ilDB'];
302
303 // Read necessary points
304 $query = "SELECT t.objective_id obj,t.ref_id ref, question_id,tst_status,tst_limit " .
305 "FROM crs_objective_tst t JOIN crs_objective_qst q " .
306 "ON (t.objective_id = q.objective_id AND t.ref_id = q.ref_id) " .
307 "WHERE " . $ilDB->in('t.objective_id', $a_all_objectives, false, 'integer');
308
309 $res = $ilDB->query($query);
310 $objectives = array();
311 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
312 $objectives[$row->obj . "_" . $row->tst_status]['questions'][(int) $row->question_id] = (int) $row->question_id;
313 $objectives[$row->obj . "_" . $row->tst_status]['tst_status'] = (int) $row->tst_status;
314 $objectives[$row->obj . "_" . $row->tst_status]['tst_limit'] = (int) $row->tst_limit;
315 $objectives[$row->obj . "_" . $row->tst_status]['objective_id'] = (int) $row->obj;
316 }
317 return $objectives;
318 }

References $DIC, $ilDB, $objectives, $res, ilDBConstants\FETCHMODE_OBJECT, and ILIAS\Repository\int().

Referenced by getStatus(), and readStatus().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _readAssignedObjectivesOfQuestion()

static ilCourseObjectiveResult::_readAssignedObjectivesOfQuestion ( int  $a_question_id)
static

Definition at line 272 of file class.ilCourseObjectiveResult.php.

272 : array
273 {
274 global $DIC;
275
276 $ilDB = $DIC['ilDB'];
277
278 // get all objtives and questions this current question is assigned to
279 $query = "SELECT q2.question_id qid,q2.objective_id ob FROM crs_objective_qst q1, " .
280 "crs_objective_qst q2 " .
281 "WHERE q1.question_id = " . $ilDB->quote($a_question_id, 'integer') . " " .
282 "AND q1.objective_id = q2.objective_id ";
283
284 $res = $ilDB->query($query);
285 $objectives = array();
286 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
287 $objectives['all_objectives'][(int) $row->ob] = (int) $row->ob;
288 $objectives['all_questions'][(int) $row->qid] = (int) $row->qid;
289 }
290 if (count($objectives) === 0) {
291 return [];
292 }
293 $objectives['objectives'] = self::_readAssignedObjectives($objectives['all_objectives']);
294 return $objectives;
295 }
static _readAssignedObjectives(array $a_all_objectives)

References $DIC, $ilDB, $objectives, $res, ilDBConstants\FETCHMODE_OBJECT, and ILIAS\Repository\int().

+ Here is the call graph for this function:

◆ _updateObjectiveResult()

static ilCourseObjectiveResult::_updateObjectiveResult ( int  $a_user_id,
int  $a_active_id,
int  $a_question_id 
)
static

Definition at line 261 of file class.ilCourseObjectiveResult.php.

261 : void
262 {
263 // find all objectives this question is assigned to
264 if (!$objectives = self::_readAssignedObjectivesOfQuestion($a_question_id)) {
265 // no objectives found. TODO user has passed a test. After that questions of that test are assigned to an objective.
266 // => User has not passed
267 return;
268 }
270 }
static _updateObjectiveStatus(int $a_user_id, array $objectives)

References $objectives.

Referenced by assQuestion\calculateResultsFromSolution().

+ Here is the caller graph for this function:

◆ _updateObjectiveStatus()

static ilCourseObjectiveResult::_updateObjectiveStatus ( int  $a_user_id,
array  $objectives 
)
static

Definition at line 320 of file class.ilCourseObjectiveResult.php.

320 : bool
321 {
322 global $DIC;
323
324 $ilDB = $DIC['ilDB'];
325 $ilUser = $DIC['ilUser'];
326
327 if (
328 !count($objectives['all_questions']) ||
329 !count($objectives['all_objectives'])) {
330 return false;
331 }
332 // Read reachable points
333 $query = "SELECT question_id,points FROM qpl_questions " .
334 "WHERE " . $ilDB->in('question_id', (array) $objectives['all_questions'], false, 'integer');
335 $res = $ilDB->query($query);
336 while ($row = $ilDB->fetchAssoc($res)) {
337 $objectives['all_question_points'][(int) $row['question_id']]['max_points'] = (float) $row['points'];
338 }
339 // Read reached points
340 $query = "SELECT question_fi, MAX(points) as reached FROM tst_test_result " .
341 "JOIN tst_active ON (active_id = active_fi) " .
342 "WHERE user_fi = " . $ilDB->quote($a_user_id, 'integer') . " " .
343 "AND " . $ilDB->in('question_fi', (array) $objectives['all_questions'], false, 'integer') . " " .
344 "GROUP BY question_fi,user_fi";
345 $res = $ilDB->query($query);
346 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
347 $objectives['all_question_points'][$row->question_fi]['reached_points'] = (float) $row->reached;
348 }
349
350 // Check accomplished
351 $fullfilled = array();
352 $pretest = array();
353 foreach ($objectives['objectives'] as $data) {
354 // objective does not allow to change status
355 if (ilCourseObjectiveResult::__isFullfilled($objectives['all_question_points'], $data)) {
356 // Status 0 means pretest fullfilled, status 1 means final test fullfilled
357 if ($data['tst_status']) {
358 $fullfilled[] = array($data['objective_id'], $ilUser->getId(), $data['tst_status']);
359 } else {
360 $pretest[] = array($data['objective_id'], $ilUser->getId());
361 }
362 }
363 }
364 if ($fullfilled !== []) {
365 foreach ($fullfilled as $fullfilled_arr) {
366 $ilDB->replace(
367 'crs_objective_status',
368 array(
369 'objective_id' => array('integer', $fullfilled_arr[0]),
370 'user_id' => array('integer', $fullfilled_arr[1])
371 ),
372 array(
373 'status' => array('integer', $fullfilled_arr[2])
374 )
375 );
376 }
377 ilCourseObjectiveResult::__updatePassed($a_user_id, $objectives['all_objectives']);
378 }
379 if ($pretest !== []) {
380 foreach ($pretest as $pretest_arr) {
381 $ilDB->replace(
382 'crs_objective_status_p',
383 array(
384 'objective_id' => array('integer', $pretest_arr[0]),
385 'user_id' => array('integer', $pretest_arr[1])
386 ),
387 array()
388 );
389 }
390 }
391 return true;
392 }
static __updatePassed(int $a_user_id, array $objective_ids)
static __isFullfilled(array $question_points, array $objective_data)

References $data, $DIC, $ilDB, $objectives, $res, __isFullfilled(), __updatePassed(), ilDBConstants\FETCHMODE_OBJECT, and ILIAS\Repository\int().

Referenced by readStatus().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getAccomplished()

ilCourseObjectiveResult::getAccomplished ( int  $a_crs_id)

Definition at line 54 of file class.ilCourseObjectiveResult.php.

54 : array
55 {
56 return ilCourseObjectiveResult::_getAccomplished($this->getUserId(), $a_crs_id);
57 }
static _getAccomplished(int $a_user_id, int $a_crs_id)

References _getAccomplished(), and getUserId().

+ Here is the call graph for this function:

◆ getStatus()

ilCourseObjectiveResult::getStatus ( int  $a_course_id)

Definition at line 204 of file class.ilCourseObjectiveResult.php.

204 : string
205 {
206 $objective_ids = ilCourseObjective::_getObjectiveIds($a_course_id, true);
208 $accomplished = $this->getAccomplished($a_course_id);
209 $suggested = $this->getSuggested($a_course_id);
210
211 if ($objective_ids === []) {
213 }
214
215 if (count($accomplished) == count($objective_ids)) {
217 }
218
219 $all_pretest_answered = false;
220 $all_final_answered = false;
221 foreach ($objectives as $data) {
222 if ($this->questioninfo->areQuestionsAnsweredByUser($this->getUserId(), $data['questions'])) {
223 if ($data['tst_status']) {
224 $all_final_answered = true;
225 } else {
226 $all_pretest_answered = true;
227 }
228 }
229 }
230 if ($all_final_answered) {
232 }
233 if ($all_pretest_answered && $suggested === []) {
235 } elseif ($all_pretest_answered) {
237 }
239 }
getSuggested(int $a_crs_id, string $a_status=self::IL_OBJECTIVE_STATUS_FINAL)

References $data, $objectives, ilCourseObjective\_getObjectiveIds(), and _readAssignedObjectives().

+ Here is the call graph for this function:

◆ getSuggested()

ilCourseObjectiveResult::getSuggested ( int  $a_crs_id,
string  $a_status = self::IL_OBJECTIVE_STATUS_FINAL 
)

Definition at line 80 of file class.ilCourseObjectiveResult.php.

80 : array
81 {
82 return ilCourseObjectiveResult::_getSuggested($this->getUserId(), $a_crs_id, $a_status);
83 }
static _getSuggested(int $a_user_id, int $a_crs_id, string $a_status=self::IL_OBJECTIVE_STATUS_FINAL)

References _getSuggested(), and getUserId().

+ Here is the call graph for this function:

◆ getSuggestedQuestions()

static ilCourseObjectiveResult::getSuggestedQuestions ( int  $a_usr_id,
int  $a_crs_id 
)
static

Definition at line 126 of file class.ilCourseObjectiveResult.php.

126 : array
127 {
128 $qsts = [];
129 foreach (self::_getSuggested($a_usr_id, $a_crs_id) as $objective_id) {
130 $obj = new ilCourseObjectiveQuestion($objective_id);
131 foreach ($obj->getFinalTestQuestions() as $qst) {
132 $qsts[] = $qst['question_id'];
133 }
134 }
135 return $qsts;
136 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...

◆ getUserId()

ilCourseObjectiveResult::getUserId ( )

Definition at line 49 of file class.ilCourseObjectiveResult.php.

49 : int
50 {
51 return $this->user_id;
52 }

References $user_id.

Referenced by getAccomplished(), and getSuggested().

+ Here is the caller graph for this function:

◆ hasAccomplishedObjective()

ilCourseObjectiveResult::hasAccomplishedObjective ( int  $a_objective_id)

Definition at line 241 of file class.ilCourseObjectiveResult.php.

241 : bool
242 {
243 $query = "SELECT status FROM crs_objective_status " .
244 "WHERE objective_id = " . $this->db->quote($a_objective_id, 'integer') . " " .
245 "AND user_id = " . $this->db->quote($this->getUserId(), 'integer') . "";
246
247 $res = $this->db->query($query);
248 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
249 return true;
250 }
251 return false;
252 }

References $res, and ilDBConstants\FETCHMODE_OBJECT.

◆ readStatus()

ilCourseObjectiveResult::readStatus ( int  $a_crs_id)

Definition at line 254 of file class.ilCourseObjectiveResult.php.

254 : void
255 {
256 $objective_ids = ilCourseObjective::_getObjectiveIds($a_crs_id, true);
259 }

References $objectives, ilCourseObjective\_getObjectiveIds(), _readAssignedObjectives(), and _updateObjectiveStatus().

+ Here is the call graph for this function:

◆ reset()

ilCourseObjectiveResult::reset ( int  $a_course_id)

Definition at line 151 of file class.ilCourseObjectiveResult.php.

151 : void
152 {
153 $assignments = ilLOTestAssignments::getInstance($a_course_id);
154 foreach (array_merge(
155 $assignments->getAssignmentsByType(ilLOSettings::TYPE_TEST_INITIAL),
156 $assignments->getAssignmentsByType(ilLOSettings::TYPE_TEST_QUALIFIED)
157 ) as $assignment) {
158 $tst = ilObjectFactory::getInstanceByRefId($assignment->getTestRefId(), false);
159 if ($tst instanceof ilObjTest) {
160 global $DIC;
161
162 $lng = $DIC['lng'];
163
164 $participantData = new ilTestParticipantData($this->db, $lng);
165 $participantData->setUserIdsFilter(array($this->getUserId()));
166 $participantData->load($tst->getTestId());
167 $tst->removeTestResults($participantData);
168 }
169 }
170
171 $initial = ilLOSettings::getInstanceByObjId($a_course_id)->getInitialTest();
172 $initial_tst = ilObjectFactory::getInstanceByRefId($initial, false);
173 if ($initial_tst instanceof ilObjTest) {
174 $this->resetTestForUser($initial_tst, $this->getUserId());
175 }
176
177 $qualified = ilLOSettings::getInstanceByObjId($a_course_id)->getQualifiedTest();
178 $qualified_tst = ilObjectFactory::getInstanceByRefId($qualified, false);
179 if ($qualified_tst instanceof ilObjTest) {
180 $this->resetTestForUser($qualified_tst, $this->getUserId());
181 }
182
184
185 if ($objectives !== []) {
186 $query = "DELETE FROM crs_objective_status " .
187 "WHERE " . $this->db->in('objective_id', $objectives, false, 'integer') . ' ' .
188 "AND user_id = " . $this->db->quote($this->getUserId(), 'integer') . " ";
189 $res = $this->db->manipulate($query);
190
191 $query = "DELETE FROM crs_objective_status_p " .
192 "WHERE " . $this->db->in('objective_id', $objectives, false, 'integer') . ' ' .
193 "AND user_id = " . $this->db->quote($this->getUserId(), ilDBConstants::T_INTEGER) . "";
194 $res = $this->db->manipulate($query);
195
196 $query = "DELETE FROM loc_user_results " .
197 "WHERE " . $this->db->in('objective_id', $objectives, false, 'integer') . ' ' .
198 "AND user_id = " . $this->db->quote($this->getUserId(), ilDBConstants::T_INTEGER) . "";
199 }
200 // update/reset LP for course
201 ilLPStatusWrapper::_updateStatus($a_course_id, $this->getUserId());
202 }
resetTestForUser(ilObjTest $a_test, int $a_user_id)
static getInstanceByObjId(int $a_obj_id)
static getInstance(int $a_container_id)
static getInstanceByRefId(int $ref_id, bool $stop_on_error=true)
get an instance of an Ilias object by reference id
global $lng
Definition: privfeed.php:26

References $DIC, $lng, $objectives, $res, ilCourseObjective\_getObjectiveIds(), ilLPStatusWrapper\_updateStatus(), ilLOTestAssignments\getInstance(), ilLOSettings\getInstanceByObjId(), ilObjectFactory\getInstanceByRefId(), ilDBConstants\T_INTEGER, ilLOSettings\TYPE_TEST_INITIAL, and ilLOSettings\TYPE_TEST_QUALIFIED.

+ Here is the call graph for this function:

◆ resetTestForUser()

ilCourseObjectiveResult::resetTestForUser ( ilObjTest  $a_test,
int  $a_user_id 
)
protected

Definition at line 138 of file class.ilCourseObjectiveResult.php.

138 : void
139 {
140 // #15038
141 $test_lp = ilTestLP::getInstance($a_test->getId());
142 $test_lp->resetLPDataForUserIds(array($a_user_id));
143
144 // #15205 - see ilObjTestGUI::confirmDeleteSelectedUserDataObject()
145 $active_id = $a_test->getActiveIdOfUser($a_user_id);
146 if ($active_id) {
147 $a_test->removeTestActives(array($active_id));
148 }
149 }
removeTestActives(array $active_ids)
getActiveIdOfUser($user_id="", $anonymous_id="")
Gets the active id of a given user.
static getInstance(int $obj_id)

References ilObjTest\getActiveIdOfUser(), ilObject\getId(), ilObjectLP\getInstance(), and ilObjTest\removeTestActives().

+ Here is the call graph for this function:

Field Documentation

◆ $db

ilDBInterface ilCourseObjectiveResult::$db
protected

Definition at line 36 of file class.ilCourseObjectiveResult.php.

◆ $questioninfo

ILIAS TestQuestionPool Questions PublicInterface ilCourseObjectiveResult::$questioninfo
protected

Definition at line 37 of file class.ilCourseObjectiveResult.php.

◆ $user_id

int ilCourseObjectiveResult::$user_id
private

Definition at line 34 of file class.ilCourseObjectiveResult.php.

Referenced by getUserId().

◆ IL_OBJECTIVE_STATUS_EMPTY

const ilCourseObjectiveResult::IL_OBJECTIVE_STATUS_EMPTY = 'empty'

Definition at line 27 of file class.ilCourseObjectiveResult.php.

◆ IL_OBJECTIVE_STATUS_FINAL

const ilCourseObjectiveResult::IL_OBJECTIVE_STATUS_FINAL = 'final'

◆ IL_OBJECTIVE_STATUS_FINISHED

const ilCourseObjectiveResult::IL_OBJECTIVE_STATUS_FINISHED = 'finished'

◆ IL_OBJECTIVE_STATUS_NONE

const ilCourseObjectiveResult::IL_OBJECTIVE_STATUS_NONE = 'none'

◆ IL_OBJECTIVE_STATUS_PRETEST

const ilCourseObjectiveResult::IL_OBJECTIVE_STATUS_PRETEST = 'pretest'

◆ IL_OBJECTIVE_STATUS_PRETEST_NON_SUGGEST

const ilCourseObjectiveResult::IL_OBJECTIVE_STATUS_PRETEST_NON_SUGGEST = 'pretest_non_suggest'

The documentation for this class was generated from the following file: