19 declare(strict_types=0);
46 $this->
lng = $DIC->language();
47 $this->
ctrl = $DIC->ctrl();
48 $this->tree = $DIC->repositoryTree();
50 $this->container = $a_container_obj;
52 $this->type = $a_type;
78 $form->setTitle($this->
lng->txt(
'crs_loc_tst_assignment'));
79 $form->setFormAction($this->
ctrl->getFormAction($this->getGUI()));
81 if ($a_as_multi_assignment) {
82 $form->addCommandButton(
'saveMultiTestAssignment', $this->
lng->txt(
'save'));
84 $form->addCommandButton(
'saveTest', $this->
lng->txt(
'save'));
89 $form->setTitle($this->
lng->txt(
'crs_loc_settings_itest_tbl'));
93 $form->setTitle($this->
lng->txt(
'crs_loc_settings_qtest_tbl'));
101 $cr_mode->setValue((
string) self::TEST_NEW);
103 $new =
new ilRadioOption($this->
lng->txt(
'crs_loc_form_tst_new'), (string) self::TEST_NEW);
107 $new->setInfo($this->
lng->txt(
"crs_loc_form_tst_new_initial_info"));
111 $new->setInfo($this->
lng->txt(
"crs_loc_form_tst_new_qualified_info"));
117 $ti->setMaxLength(128);
119 $ti->setRequired(
true);
120 $new->addSubItem($ti);
126 $new->addSubItem($ta);
129 $this->
lng->loadLanguageModule(
'assessment');
134 $this->
lng->txt(
'tst_question_set_type_random'),
137 $qst->addOption($random);
140 $this->
lng->txt(
'tst_question_set_type_fixed'),
143 $qst->addOption($fixed);
145 $cr_mode->addOption($new);
148 $existing =
new ilRadioOption($this->
lng->txt(
'crs_loc_form_assign'), (string) self::TEST_ASSIGN);
152 $existing->setInfo($this->
lng->txt(
"crs_loc_form_assign_initial_info"));
156 $existing->setInfo($this->
lng->txt(
"crs_loc_form_assign_qualified_info"));
160 if ($assignable === []) {
161 $existing->setDisabled(
true);
163 $cr_mode->addOption($existing);
166 $options[
''] = $this->
lng->txt(
'select_one');
167 foreach ($assignable as $tst_ref_id) {
173 $selectable->setOptions($options);
174 $existing->addSubItem($selectable);
175 $form->addItem($cr_mode);
176 if ($a_as_multi_assignment) {
182 $options[
''] = $this->
lng->txt(
'select_one');
183 foreach ($objective_ids as $oid) {
184 $already_assigned_tst = $assignments->getTestByObjective($oid, $this->
getTestType());
185 if (!$already_assigned_tst) {
192 $objective->setOptions($options);
193 $form->addItem($objective);
203 foreach ($this->tree->getChildsByType($this->getContainer()->getRefId(),
'tst') as $tree_node) {
204 if (!in_array($tree_node[
'child'], $assignments->getTests())) {
205 $tests[] = $tree_node[
'child'];
This class represents an option in a radio group.
const QUESTION_SET_TYPE_RANDOM
static _getObjectiveIds(int $course_id, bool $a_activated_only=false)
static _lookupObjId(int $ref_id)
static _lookupTitle(int $obj_id)
static lookupObjectiveTitle(int $a_objective_id, bool $a_add_description=false)
static getInstanceByObjId(int $a_obj_id)
This class represents a text area property in a property form.
const QUESTION_SET_TYPE_FIXED
static getInstance(int $a_container_id)
const TYPE_TEST_QUALIFIED