4 include_once
'./Modules/Course/classes/Objectives/class.ilLOSettings.php';
28 $this->user_id = $a_user_id;
29 $this->container_id = $a_course_id;
49 $adapter->initTestRun($a_test_session);
50 $adapter->updateQuestions($a_test_session, $a_test_sequence);
51 $adapter->hideQuestions($a_test_sequence);
52 $adapter->storeTestRun();
53 $adapter->initUserResult($a_test_session);
58 $GLOBALS[
'ilLog']->write(__METHOD__.
': '.print_r($a_test_sequence,
true));
74 $adapter->initTestRun($a_test_session);
75 $adapter->updateQuestionResult($a_test_session,$a_question);
126 $is_qualified_run =
false;
129 $is_qualified_run =
true;
132 foreach($this->run as $run)
134 include_once
'./Modules/Course/classes/Objectives/class.ilLOUserResults.php';
135 include_once
'./Modules/Course/classes/Objectives/class.ilLOUtils.php';
140 $run->getObjectiveId(),
146 include_once
'./Modules/Course/classes/Objectives/class.ilLOUtils.php';
150 $run->getObjectiveId(),
162 $GLOBALS[
'ilLog']->write(__METHOD__.
': check for qualified...');
163 if(!$is_qualified_run)
165 $GLOBALS[
'ilLog']->write(__METHOD__.
': and increase attempts');
166 ++$old_result[
'tries'];
168 $old_result[
'is_final'] = ($old_result[
'tries'] >= $max_attempts);
172 $ur->saveObjectiveResult(
173 $run->getObjectiveId(),
176 ilLOUserResults::TYPE_INITIAL,
177 $old_result[
'status'],
178 $old_result[
'result_perc'],
180 $old_result[
'tries'],
181 $old_result[
'is_final']
195 $GLOBALS[
'ilLog']->write(__METHOD__.
': is intial');
200 $GLOBALS[
'ilLog']->write(__METHOD__.
': is not qualified');
203 include_once
'./Services/Container/classes/class.ilContainerStartObjects.php';
206 $GLOBALS[
'ilLog']->write(__METHOD__.
': no start object');
212 $container_ref_id = end($container_ref_ids);
218 if($start->isFullfilled($this->getUserId(),$session->
getRefId()))
220 $GLOBALS[
'ilLog']->write(__METHOD__.
': is fullfilled');
224 $GLOBALS[
'ilLog']->write(__METHOD__.
': is not fullfilled');
235 foreach($this->run as $run)
237 if($run->questionExists($qst->
getId()))
240 $run->setQuestionResult(
246 $res = $run->getResult();
248 include_once
'./Modules/Course/classes/Objectives/class.ilLOUserResults.php';
249 include_once
'./Modules/Course/classes/Objectives/class.ilLOUtils.php';
254 $run->getObjectiveId(),
261 $ur->saveObjectiveResult(
262 $run->getObjectiveId(),
265 ilLOUserResults::TYPE_INITIAL,
269 $run->getObjectiveId(),
270 $res[
'max'],
$res[
'reached'],$old_result[
'limit_perc']) ?
273 (
int) $res[
'percentage'],
274 $old_result[
'limit_perc'],
275 $old_result[
'tries'],
276 $old_result[
'is_final']
278 $GLOBALS[
'ilLog']->write(__METHOD__.
': '.print_r($run->getResult(),
true));
280 include_once(
"./Services/Tracking/classes/class.ilLPStatusWrapper.php");
308 include_once
'./Modules/Course/classes/Objectives/class.ilLOTestRun.php';
314 #$GLOBALS['ilLog']->write(__METHOD__.': '.print_r($this->run,true)); 322 foreach ($this->run as $tst_run)
344 foreach ($this->run as $tst_run)
346 $tst_run->clearQuestions();
347 include_once
'./Modules/Course/classes/class.ilCourseObjectiveQuestion.php';
350 $tst_run->getObjectiveId()
352 $GLOBALS[
'ilLog']->write(__METHOD__.
': '.print_r($qst,
true));
356 $tst_run->addQuestion($id);
359 $tst_run->setMaxPoints($points);
365 include_once
'./Modules/Course/classes/Objectives/class.ilLORandomTestQuestionPools.php';
366 include_once
'./Modules/Course/classes/class.ilCourseObjectiveQuestion.php';
368 foreach($this->run as $tst_run)
371 $tst_run->clearQuestions();
374 $tst_run->getObjectiveId(),
379 $stored_sequence_id = $rnd->getQplSequence();
385 $tst_run->addQuestion($qst);
389 $tst_run->setMaxPoints($points);
395 foreach($this->run as $run)
397 if($run->questionExists($a_qid))
410 require_once
'Modules/TestQuestionPool/classes/class.ilAssQuestionList.php';
414 $questionList->setQuestionIdsFilter($questionIds);
416 $questionList->load();
418 return $questionList->getQuestionDataArray();
static isCompleted($a_cont_oid, $a_test_rid, $a_objective_id, $max_points, $reached, $limit_perc)
Check if objective is completed.
static getInstanceByObjId($a_obj_id)
get singleton instance
updateRandomQuestions(ilTestSession $session, ilTestSequenceRandomQuestionSet $seq)
getId()
Gets the id of the assQuestion object.
getResponsibleSourcePoolDefinitionId($questionId)
static _lookupMaximumPointsOfQuestion($a_question_id)
lookup maximimum point
storeTestRun()
Store test run in DB.
static _updateStatus($a_obj_id, $a_usr_id, $a_obj=null, $a_percentage=false, $a_no_raise=false, $a_force_raise=false)
Update status.
Abstract basic class which is to be extended by the concrete assessment question type classes...
static lookupResult($a_course_obj_id, $a_user_id, $a_objective_id, $a_tst_type)
Lookup user result.
static updateObjectiveStatus(ilTestSession $a_test_session, ilTestSequence $a_test_sequence, assQuestion $a_question)
Store result and update objective status.
getReachedPoints($active_id, $pass=NULL)
Returns the points, a learner has reached answering the question This is the fast way to get the poin...
getSettings()
Get loc settings.
const QUESTION_INSTANCE_TYPE_DUPLICATES
getObjectiveOrientedContainerId()
static getRun($a_container_id, $a_user_id, $a_test_id)
hideQuestion($question_id)
static _getAllReferences($a_id)
get all reference ids of object
hideQuestions(ilTestSequence $seq)
Hide questions.
saveToDb()
Saves the sequence data for a given pass to the database.
updateQuestions(ilTestSession $session, ilTestSequence $seq)
static filterQuestions(ilTestSession $a_test_session, ilTestSequence $a_test_sequence)
Called from learning objective test.
initTestRun(ilTestSession $session)
static lookupObjectiveRequiredPercentage($a_container_id, $a_objective_id, $a_test_type, $a_max_points)
updateFixedQuestions(ilTestSession $session, ilTestSequence $seq)
static _lookupObjId($a_id)
__construct($a_user_id, $a_course_id)
static lookupMaxAttempts($a_container_id, $a_objective_id)
updateQuestionResult(ilTestSession $session, assQuestion $qst)
update question result of run
isQualifiedStartRun(ilTestSession $session)
Check if current run is a start object run.
const TYPE_TEST_QUALIFIED
static lookupQuestionsByObjective($a_test_id, $a_objective)
static getQuestionData($testObjId, $questionIds)
initUserResult(ilTestSession $session)
init user result
static isStartObject($a_container_id, $a_item_ref_id)
Check if object is start object type $ilDB.