3 declare(strict_types=0);
40 if ($max_points === 0) {
43 return ($reached / $max_points * 100) >= $limit_perc;
46 $required_perc = self::lookupObjectiveRequiredPercentage(
53 if ($max_points === 0) {
56 return ($reached / $max_points * 100) >= $required_perc;
69 $a_test_type = $assignments->getTypeByTest($a_test_ref_id);
71 if ($assignments->isSeparateTest($a_test_ref_id)) {
73 $tst =
$factory->getInstanceByRefId($a_test_ref_id,
false);
75 $schema = $tst->getMarkSchema();
76 foreach ($schema->getMarkSteps() as $mark) {
77 if ($mark->getPassed()) {
78 return (
int) $mark->getMinimumLevel();
83 $tst_ref_id = $a_test_ref_id;
91 public static function lookupMaxAttempts(
int $a_container_id,
int $a_objective_id,
int $a_test_ref_id):
int 95 $ilDB = $DIC->database();
98 if (!$assignments->isSeparateTest($a_test_ref_id)) {
103 $query =
'SELECT nr_of_tries FROM tst_tests ' .
107 return (
int) $row->nr_of_tries;
124 if (!$a_sequence_id) {
140 $list->loadDefinitions();
143 $translator->loadLabels($list);
146 foreach ($list as $definition) {
147 if ($definition->getId() != $a_sequence_id) {
150 $title = self::buildQplTitleByDefinition($definition, $translator);
160 $filterTitle = array();
163 if (!empty($filterTitle)) {
164 $title .=
' -> ' . implode(
' / ', $filterTitle);
169 public static function hasActiveRun(
int $a_container_id,
int $a_test_ref_id,
int $a_objective_id): bool
178 $ilCtrl = $DIC->ctrl();
180 $ilAccess = $DIC->access();
187 if ($a_user_id ==
$ilUser->getId()) {
188 $valid = $ilAccess->checkAccess(
'read',
'', $a_test_ref_id);
191 $valid = $ilAccess->checkAccess(
'write',
'', $a_test_ref_id);
198 $ilCtrl->setParameterByClass(
'ilObjTestGUI',
'ref_id', $a_test_ref_id);
199 $ctrlClasses = array(
'ilRepositoryGUI',
'ilObjTestGUI',
'ilTestResultsGUI');
200 $link = $ilCtrl->getLinkTargetByClass($ctrlClasses);
201 $ilCtrl->setParameterByClass(
'ilObjTestGUI',
'ref_id',
'');
209 $ilCtrl->setParameterByClass(
'ilTestEvaluationGUI',
'ref_id', $a_test_ref_id);
210 $ilCtrl->setParameterByClass(
'ilTestEvaluationGUI',
'active_id', $userActiveId);
211 $link = $ilCtrl->getLinkTargetByClass(array(
'ilRepositoryGUI',
213 'ilTestEvaluationGUI' 214 ),
'outParticipantsResultsOverview');
215 $ilCtrl->setParameterByClass(
'ilTestEvaluationGUI',
'ref_id',
'');
216 $ilCtrl->setParameterByClass(
'ilTestEvaluationGUI',
'active_id',
'');
static hasActiveRun(int $a_container_id, int $a_test_ref_id, int $a_objective_id)
static lookupLimit(int $a_container_id, int $a_objective_id, int $a_test_type)
static lookupQplBySequence(int $a_test_ref_id, int $a_sequence_id)
Lookup assigned qpl name (including taxonomy) by sequence.
static _lookupRandomTest($a_obj_id)
Returns the fact wether the test with passed obj id is a random questions test or not...
getTaxonomyFilterLabel($filter=array(), $filterDelimiter='+', $taxNodeDelimiter=':', $nodesDelimiter=', ')
Get the label for a taxonomy filter.
static loookupTestLimit(int $a_test_id, int $a_objective_id)
static lookupObjectiveRequiredPercentage(int $a_container_id, int $a_objective_id, int $a_test_ref_id, int $a_max_points)
static _lookupObjId(int $ref_id)
static getTestResultLinkForUser(int $a_test_ref_id, int $a_user_id)
static visibleUserResultExists($testObjId, $userId)
static getInstanceByRefId(int $ref_id, bool $stop_on_error=true)
get an instance of an Ilias object by reference id
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
static _getTestIDFromObjectID($object_id)
Returns the ILIAS test id for a given object id.
getTypeFilterLabel($filter=array())
Get the label for a type filter.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static isCompleted(int $a_cont_oid, int $a_test_rid, int $a_objective_id, int $max_points, int $reached, int $limit_perc)
Check if objective is completed.
static getInstanceByObjId(int $a_obj_id)
static lookupRandomTest(int $a_test_obj_id)
static getInstance(int $a_container_id)
static lookupMaxAttempts(int $a_container_id, int $a_objective_id, int $a_test_ref_id)
getMappedTaxonomyFilter()
get the mapped taxonomy filter conditions
static _getActiveIdOfUser($user_id="", $test_id="")
static buildQplTitleByDefinition(ilTestRandomQuestionSetSourcePoolDefinition $def, ilTestTaxonomyFilterLabelTranslater $trans)