19declare(strict_types=0);
38 $settings =
ilLOSettings::getInstanceByObjId($a_cont_oid);
41 if ($max_points === 0) {
44 return ($reached / $max_points * 100) >= $limit_perc;
54 if ($max_points === 0) {
57 return ($reached / $max_points * 100) >= $required_perc;
68 $settings =
ilLOSettings::getInstanceByObjId($a_container_id);
70 $a_test_type = $assignments->getTypeByTest($a_test_ref_id);
72 if ($assignments->isSeparateTest($a_test_ref_id)) {
74 $tst = $factory->getInstanceByRefId($a_test_ref_id,
false);
76 $schema = $tst->getMarkSchema();
77 foreach ($schema->getMarkSteps() as $mark) {
78 if ($mark->getPassed()) {
79 return (
int) $mark->getMinimumLevel();
84 $tst_ref_id = $a_test_ref_id;
92 public static function lookupMaxAttempts(
int $a_container_id,
int $a_objective_id,
int $a_test_ref_id):
int
99 if (!$assignments->isSeparateTest($a_test_ref_id)) {
104 $test_obj =
new ilObjTest($a_test_ref_id,
true);
105 return $test_obj->getNrOfTries();
116 public static function lookupQplBySequence(
int $a_test_ref_id,
int $a_sequence_id): string
121 if (!$a_sequence_id) {
137 $list->loadDefinitions();
140 $translator->loadLabels($list);
143 foreach ($list as $definition) {
144 if ($definition->getId() != $a_sequence_id) {
147 $title = self::buildQplTitleByDefinition($definition, $translator);
156 $title = $def->getPoolTitle();
157 $filterTitle = array();
160 if (!empty($filterTitle)) {
161 $title .=
' -> ' . implode(
' / ', $filterTitle);
166 public static function hasActiveRun(
int $a_container_id,
int $a_test_ref_id,
int $a_objective_id): bool
175 $ilCtrl =
$DIC->ctrl();
176 $ilUser =
$DIC->user();
177 $ilAccess =
$DIC->access();
184 if ($a_user_id == $ilUser->getId()) {
185 $valid = $ilAccess->checkAccess(
'read',
'', $a_test_ref_id);
188 $valid = $ilAccess->checkAccess(
'write',
'', $a_test_ref_id);
195 $ilCtrl->setParameterByClass(
'ilObjTestGUI',
'ref_id', $a_test_ref_id);
196 $ctrlClasses = array(
'ilRepositoryGUI',
'ilObjTestGUI',
'ilTestResultsGUI');
197 $link = $ilCtrl->getLinkTargetByClass($ctrlClasses);
198 $ilCtrl->setParameterByClass(
'ilObjTestGUI',
'ref_id',
'');
206 $ilCtrl->setParameterByClass(
'ilTestEvaluationGUI',
'ref_id', $a_test_ref_id);
207 $ilCtrl->setParameterByClass(
'ilTestEvaluationGUI',
'active_id', $userActiveId);
208 $link = $ilCtrl->getLinkTargetByClass(array(
'ilRepositoryGUI',
210 'ilTestEvaluationGUI'
211 ),
'outParticipantsResultsOverview');
212 $ilCtrl->setParameterByClass(
'ilTestEvaluationGUI',
'ref_id',
'');
213 $ilCtrl->setParameterByClass(
'ilTestEvaluationGUI',
'active_id',
'');
static loookupTestLimit(int $a_test_id, int $a_objective_id)
static lookupLimit(int $a_container_id, int $a_objective_id, int $a_test_type)
static getInstance(int $a_container_id)
static buildQplTitleByDefinition(ilTestRandomQuestionSetSourcePoolDefinition $def, ilTestQuestionFilterLabelTranslator $trans)
static lookupRandomTest(int $a_test_obj_id)
static hasActiveRun(int $a_container_id, int $a_test_ref_id, int $a_objective_id)
static lookupMaxAttempts(int $a_container_id, int $a_objective_id, int $a_test_ref_id)
static isCompleted(int $a_cont_oid, int $a_test_rid, int $a_objective_id, float $max_points, float $reached, int $limit_perc)
Check if objective is completed.
static getTestResultLinkForUser(int $a_test_ref_id, int $a_user_id)
static lookupObjectiveRequiredPercentage(int $a_container_id, int $a_objective_id, int $a_test_ref_id, float $a_max_points)
static visibleUserResultExists(int $test_obj_id, int $user_id)
static _getTestIDFromObjectID($object_id)
Returns the ILIAS test id for a given object id.
static _lookupRandomTest(int $obj_id)
static _getActiveIdOfUser($user_id="", $test_id="")
Class ilObjectFactory This class offers methods to get instances of the type-specific object classes ...
static getInstanceByRefId(int $ref_id, bool $stop_on_error=true)
get an instance of an Ilias object by reference id
static _lookupObjId(int $ref_id)
getTaxonomyFilterLabel(array $filter=[], string $filter_delimiter='+', string $tax_node_delimiter=':', string $nodes_delimiter=', ')
getTypeFilterLabel(array $filter=[])
getMappedTaxonomyFilter()
get the mapped taxonomy filter conditions