ILIAS  release_8 Revision v8.24
ilObjTestSettingsScoringResultsGUI Class Reference
+ Inheritance diagram for ilObjTestSettingsScoringResultsGUI:
+ Collaboration diagram for ilObjTestSettingsScoringResultsGUI:

Public Member Functions

 __construct (ilCtrlInterface $ctrl, ilAccessHandler $access, ilLanguage $lng, ilTree $tree, ilDBInterface $db, ilComponentRepository $component_repository, ilObjTestGUI $testGUI, \ilGlobalTemplateInterface $main_template, ilTabsGUI $tabs, ScoreSettingsRepository $score_settings_repo, int $test_id, UIFactory $ui_factory, UIRenderer $ui_renderer, Refinery $refinery, Request $request, ilObjUser $active_user)
 
 executeCommand ()
 Command Execution. More...
 
- Public Member Functions inherited from ilTestSettingsGUI
 __construct (ilObjTest $testOBJ)
 

Data Fields

const CMD_SHOW_FORM = 'showForm'
 command constants More...
 
const CMD_SAVE_FORM = 'saveForm'
 
const CMD_CONFIRMED_RECALC = 'saveFormAndRecalc'
 
const CMD_CANCEL_RECALC = 'cancelSaveForm'
 

Protected Member Functions

 loadScoreSettings ()
 
 storeScoreSettings (ilObjTestScoreSettings $score_settings)
 
 getTaxonomyOptions ()
 
 isScoreRecalculationRequired (ilObjTestSettingsScoring $new_settings, ilObjTestSettingsScoring $old_settings)
 
- Protected Member Functions inherited from ilTestSettingsGUI
 getTemplateSettingValue ($settingName)
 
 isHiddenFormItem ($formFieldId)
 
 isSectionHeaderRequired ($fields)
 
 formPropertyExists (ilPropertyFormGUI $form, $propertyId)
 
 removeHiddenItems (ilPropertyFormGUI $form)
 

Protected Attributes

ilCtrlInterface $ctrl
 
ilAccessHandler $access
 
ilLanguage $lng
 
ilGlobalTemplateInterface $tpl
 
ilTree $tree
 
ilDBInterface $db
 
ilComponentRepository $component_repository
 
ilObjTestGUI $testGUI
 
ScoreSettingsRepository $score_settings_repo
 
int $test_id
 
UIFactory $ui_factory
 
UIRenderer $ui_renderer
 
Refinery $refinery
 
ilTabsGUI $tabs
 
ilObjUser $active_user
 
- Protected Attributes inherited from ilTestSettingsGUI
ilObjTest $testOBJ
 
ilSettingsTemplate $settingsTemplate = null
 

Private Member Functions

 showForm (Form $form=null)
 
 saveForm ()
 
 getRelayedRequest ()
 
 buildForm ()
 
 areScoringSettingsWritable ()
 
 showConfirmation (Request $request)
 

Private Attributes

const F_CONFIRM_SETTINGS = 'f_settings'
 
ilTestQuestionSetConfigFactory $testQuestionSetConfigFactory
 

Detailed Description

Definition at line 38 of file class.ilObjTestSettingsScoringResultsGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ilObjTestSettingsScoringResultsGUI::__construct ( ilCtrlInterface  $ctrl,
ilAccessHandler  $access,
ilLanguage  $lng,
ilTree  $tree,
ilDBInterface  $db,
ilComponentRepository  $component_repository,
ilObjTestGUI  $testGUI,
\ilGlobalTemplateInterface  $main_template,
ilTabsGUI  $tabs,
ScoreSettingsRepository  $score_settings_repo,
int  $test_id,
UIFactory  $ui_factory,
UIRenderer  $ui_renderer,
Refinery  $refinery,
Request  $request,
ilObjUser  $active_user 
)

Definition at line 68 of file class.ilObjTestSettingsScoringResultsGUI.php.

85 {
86 $this->ctrl = $ctrl;
87 $this->access = $access;
88 $this->lng = $lng;
89 $this->tree = $tree;
90 $this->db = $db;
91 $this->component_repository = $component_repository;
92 $this->testGUI = $testGUI;
93 $this->testOBJ = $testGUI->getObject();
94 $this->tpl = $main_template;
95 $this->tabs = $tabs;
96 $this->active_user = $active_user;
97
98 $this->testQuestionSetConfigFactory = new ilTestQuestionSetConfigFactory(
99 $this->tree,
100 $this->db,
101 $this->component_repository,
102 $this->testOBJ
103 );
104
105 $templateId = $this->testOBJ->getTemplate();
106
107 if ($templateId) {
108 $this->settingsTemplate = new ilSettingsTemplate(
109 (int) $templateId,
111 );
112 }
113
114 $this->score_settings_repo = $score_settings_repo;
115 $this->test_id = $test_id;
116 $this->ui_factory = $ui_factory;
117 $this->ui_renderer = $ui_renderer;
118 $this->refinery = $refinery;
119 $this->request = $request;
120 }
Settings template application class.

References $access, $active_user, $component_repository, $ctrl, $db, $lng, $refinery, $score_settings_repo, $tabs, $test_id, $testGUI, $tree, $ui_factory, $ui_renderer, ILIAS\Repository\access(), ILIAS\Repository\ctrl(), ilObjectGUI\getObject(), ilObjAssessmentFolderGUI\getSettingsTemplateConfig(), ILIAS\Repository\lng(), ILIAS\Repository\refinery(), and ILIAS\Repository\tabs().

+ Here is the call graph for this function:

Member Function Documentation

◆ areScoringSettingsWritable()

ilObjTestSettingsScoringResultsGUI::areScoringSettingsWritable ( )
private

Definition at line 299 of file class.ilObjTestSettingsScoringResultsGUI.php.

299 : bool
300 {
301 if (!$this->testOBJ->participantDataExist()) {
302 return true;
303 }
304
305 if (!$this->isScoreReportingAvailable()) {
306 return true;
307 }
308
309 return false;
310 }

Referenced by buildForm().

+ Here is the caller graph for this function:

◆ buildForm()

ilObjTestSettingsScoringResultsGUI::buildForm ( )
private

Definition at line 228 of file class.ilObjTestSettingsScoringResultsGUI.php.

228 : Form
229 {
230 $ui_pack = [
232 $this->ui_factory->input()->field(),
234 ];
235
236 $environment = [];
237 $df = (new \ILIAS\Data\Factory())->dateFormat();
238 switch ($this->active_user->getDateFormat()) {
240 $date_format = $df->germanShort();
241 break;
243 //americanShort
244 $date_format = $df->custom()->month()->slash()->day()->slash()->year()->get();
245 break;
247 default:
248 $date_format = $df->standard();
249 }
250 $environment['user_date_format'] = $date_format;
251 $environment['user_time_zone'] = $this->active_user->getTimeZone();
252
253 $disabled_flag = ($this->areScoringSettingsWritable() === false);
254
255 $settings = $this->loadScoreSettings();
256 $sections = [
257 'scoring' => $settings->getScoringSettings()->toForm(...$ui_pack)
258 ->withDisabled($disabled_flag),
259 'summary' => $settings->getResultSummarySettings()->toForm(...array_merge($ui_pack, [$environment])),
260 'details' => $settings->getResultDetailsSettings()->toForm(
261 ...array_merge($ui_pack, [['taxonomy_options' => $this->getTaxonomyOptions()]])
262 ),
263 'gameification' => $settings->getGamificationSettings()->toForm(...$ui_pack)
264 ];
265
266 $action = $this->ctrl->getFormAction($this, self::CMD_SAVE_FORM);
267 $form = $this->ui_factory->input()->container()->form()
268 ->standard($action, $sections)
269 ->withAdditionalTransformation(
270 $this->refinery->custom()->transformation(
271 function ($v) use ($settings) {
272 return $settings
273 ->withScoringSettings($v['scoring'])
274 ->withResultSummarySettings($v['summary'])
275 ->withResultDetailsSettings($v['details'])
276 ->withGamificationSettings($v['gameification'])
277 ;
278 }
279 )
280 );
281 return $form;
282 }
static return function(ContainerConfigurator $containerConfigurator)
Definition: basic_rector.php:9
This describes commonalities between all forms.
Definition: Form.php:33
array $settings
Setting values (LTI parameters, custom parameters and local parameters).
Definition: System.php:200

References $lng, $refinery, ILIAS\LTI\ToolProvider\$settings, areScoringSettingsWritable(), ILIAS\Repository\ctrl(), ilCalendarSettings\DATE_FORMAT_DMY, ilCalendarSettings\DATE_FORMAT_MDY, ilCalendarSettings\DATE_FORMAT_YMD, function, getTaxonomyOptions(), loadScoreSettings(), and ILIAS\Repository\refinery().

Referenced by executeCommand(), saveForm(), and showForm().

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

◆ executeCommand()

ilObjTestSettingsScoringResultsGUI::executeCommand ( )

Command Execution.

Definition at line 134 of file class.ilObjTestSettingsScoringResultsGUI.php.

135 {
136 if (!$this->access->checkAccess('write', '', $this->testGUI->getRefId())) {
137 $this->tpl->setOnScreenMessage('info', $this->lng->txt('cannot_edit_test'), true);
138 $this->ctrl->redirect($this->testGUI, 'infoScreen');
139 }
140
141 $this->tabs->activateTab(ilTestTabsManager::TAB_ID_SETTINGS);
142
143 $nextClass = $this->ctrl->getNextClass();
144 switch ($nextClass) {
145 default:
146 $cmd = $this->ctrl->getCmd(self::CMD_SHOW_FORM);
147
148 switch ($cmd) {
150 $this->showForm();
151 break;
153 $this->saveForm();
154 break;
156 $this->saveForm();
157 $settings = $this->buildForm()
158 ->withRequest($this->getRelayedRequest())
159 ->getData();
161 $this->testOBJ->recalculateScores(true);
162 $this->tpl->setOnScreenMessage('success', $this->lng->txt("msg_score_settings_modified_and_recalc"), true);
163 $this->ctrl->redirect($this, self::CMD_SHOW_FORM);
164 break;
166 $this->tpl->setOnScreenMessage('info', $this->lng->txt("msg_score_settings_not_modified"), true);
167 $form = $this->buildForm()->withRequest($this->getRelayedRequest());
168 $this->showForm($form);
169 break;
170 default:
171 throw new Exception('unknown command: ' . $cmd);
172 }
173 }
174 }
storeScoreSettings(ilObjTestScoreSettings $score_settings)

References ILIAS\LTI\ToolProvider\$settings, ILIAS\Repository\access(), buildForm(), CMD_CANCEL_RECALC, CMD_CONFIRMED_RECALC, CMD_SAVE_FORM, CMD_SHOW_FORM, ILIAS\Repository\ctrl(), getRelayedRequest(), ILIAS\Repository\lng(), saveForm(), showForm(), storeScoreSettings(), ilTestTabsManager\TAB_ID_SETTINGS, and ILIAS\Repository\tabs().

+ Here is the call graph for this function:

◆ getRelayedRequest()

ilObjTestSettingsScoringResultsGUI::getRelayedRequest ( )
private

Definition at line 211 of file class.ilObjTestSettingsScoringResultsGUI.php.

211 : Request
212 {
213 return unserialize(
214 base64_decode(
215 $this->request->getParsedBody()[self::F_CONFIRM_SETTINGS]
216 ),
217 [
218 'allowed_classes' => [
219 GuzzleHttp\Psr7\ServerRequest::class,
220 GuzzleHttp\Psr7\Uri::class,
221 GuzzleHttp\Psr7\UploadedFile::class,
222 GuzzleHttp\Psr7\Stream::class,
223 ]
224 ]
225 );
226 }

Referenced by executeCommand().

+ Here is the caller graph for this function:

◆ getTaxonomyOptions()

ilObjTestSettingsScoringResultsGUI::getTaxonomyOptions ( )
protected

Definition at line 312 of file class.ilObjTestSettingsScoringResultsGUI.php.

312 : array
313 {
314 $available_taxonomy_ids = ilObjTaxonomy::getUsageOfObject($this->testOBJ->getId());
315 $taxononmy_translator = new ilTestTaxonomyFilterLabelTranslater($this->db);
316 $taxononmy_translator->loadLabelsFromTaxonomyIds($available_taxonomy_ids);
317
318 $taxonomy_options = [];
319 foreach ($available_taxonomy_ids as $tax_id) {
320 $taxonomy_options[$tax_id] = $taxononmy_translator->getTaxonomyTreeLabel($tax_id);
321 }
322 return $taxonomy_options;
323 }
static getUsageOfObject(int $a_obj_id, bool $a_include_titles=false)

References ilObjTaxonomy\getUsageOfObject().

Referenced by buildForm().

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

◆ isScoreRecalculationRequired()

ilObjTestSettingsScoringResultsGUI::isScoreRecalculationRequired ( ilObjTestSettingsScoring  $new_settings,
ilObjTestSettingsScoring  $old_settings 
)
protected

Definition at line 325 of file class.ilObjTestSettingsScoringResultsGUI.php.

328 : bool {
329 $settings_changed = (
330 $new_settings->getCountSystem() !== $old_settings->getCountSystem() ||
331 $new_settings->getScoreCutting() !== $old_settings->getScoreCutting() ||
332 $new_settings->getPassScoring() !== $old_settings->getPassScoring()
333 );
334
335 return
336 $this->testOBJ->participantDataExist() &&
338 $settings_changed;
339 }

Referenced by saveForm().

+ Here is the caller graph for this function:

◆ loadScoreSettings()

ilObjTestSettingsScoringResultsGUI::loadScoreSettings ( )
protected

Definition at line 122 of file class.ilObjTestSettingsScoringResultsGUI.php.

123 {
124 return $this->score_settings_repo->getFor($this->test_id);
125 }

Referenced by buildForm().

+ Here is the caller graph for this function:

◆ saveForm()

ilObjTestSettingsScoringResultsGUI::saveForm ( )
private

Definition at line 185 of file class.ilObjTestSettingsScoringResultsGUI.php.

185 : void
186 {
187 $form = $this->buildForm()
188 ->withRequest($this->request);
189
190 $settings = $form->getData();
191
192 if (is_null($settings)) {
193 $this->tpl->setOnScreenMessage('failure', $this->lng->txt('form_input_not_valid'));
194 $this->showForm($form);
195 return;
196 }
197
199 $settings->getScoringSettings(),
200 $this->loadScoreSettings()->getScoringSettings()
201 )) {
202 $this->showConfirmation($this->request);
203 return;
204 }
205
207 $this->tpl->setOnScreenMessage('success', $this->lng->txt("msg_obj_modified"), true);
208 $this->ctrl->redirect($this, self::CMD_SHOW_FORM);
209 }
isScoreRecalculationRequired(ilObjTestSettingsScoring $new_settings, ilObjTestSettingsScoring $old_settings)

References ILIAS\LTI\ToolProvider\$settings, buildForm(), ILIAS\Repository\ctrl(), isScoreRecalculationRequired(), ILIAS\Repository\lng(), showConfirmation(), showForm(), and storeScoreSettings().

Referenced by executeCommand().

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

◆ showConfirmation()

ilObjTestSettingsScoringResultsGUI::showConfirmation ( Request  $request)
private

Definition at line 342 of file class.ilObjTestSettingsScoringResultsGUI.php.

343 {
344 $confirmation = new ilConfirmationGUI();
345 $confirmation->setHeaderText($this->lng->txt('tst_trigger_result_refreshing'));
346 $confirmation->setFormAction($this->ctrl->getFormAction($this));
347 $confirmation->setCancel($this->lng->txt('cancel'), self::CMD_CANCEL_RECALC);
348 $confirmation->setConfirm($this->lng->txt('confirm'), self::CMD_CONFIRMED_RECALC);
349 $confirmation->addHiddenItem(self::F_CONFIRM_SETTINGS, base64_encode(serialize($request)));
350 $this->tpl->setContent($this->ctrl->getHTML($confirmation));
351 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...

References ILIAS\Repository\ctrl(), and ILIAS\Repository\lng().

Referenced by saveForm().

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

◆ showForm()

ilObjTestSettingsScoringResultsGUI::showForm ( Form  $form = null)
private

Definition at line 176 of file class.ilObjTestSettingsScoringResultsGUI.php.

176 : void
177 {
178 if ($form === null) {
179 $form = $this->buildForm();
180 }
181
182 $this->tpl->setContent($this->ui_renderer->render($form));
183 }

References buildForm().

Referenced by executeCommand(), and saveForm().

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

◆ storeScoreSettings()

ilObjTestSettingsScoringResultsGUI::storeScoreSettings ( ilObjTestScoreSettings  $score_settings)
protected

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

126 : void
127 {
128 $this->score_settings_repo->store($score_settings);
129 }

Referenced by executeCommand(), and saveForm().

+ Here is the caller graph for this function:

Field Documentation

◆ $access

ilAccessHandler ilObjTestSettingsScoringResultsGUI::$access
protected

Definition at line 50 of file class.ilObjTestSettingsScoringResultsGUI.php.

Referenced by __construct().

◆ $active_user

ilObjUser ilObjTestSettingsScoringResultsGUI::$active_user
protected

Definition at line 65 of file class.ilObjTestSettingsScoringResultsGUI.php.

Referenced by __construct().

◆ $component_repository

ilComponentRepository ilObjTestSettingsScoringResultsGUI::$component_repository
protected

Definition at line 55 of file class.ilObjTestSettingsScoringResultsGUI.php.

Referenced by __construct().

◆ $ctrl

ilCtrlInterface ilObjTestSettingsScoringResultsGUI::$ctrl
protected

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

Referenced by __construct().

◆ $db

ilDBInterface ilObjTestSettingsScoringResultsGUI::$db
protected

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

Referenced by __construct().

◆ $lng

ilLanguage ilObjTestSettingsScoringResultsGUI::$lng
protected

Definition at line 51 of file class.ilObjTestSettingsScoringResultsGUI.php.

Referenced by __construct(), and buildForm().

◆ $refinery

Refinery ilObjTestSettingsScoringResultsGUI::$refinery
protected

Definition at line 63 of file class.ilObjTestSettingsScoringResultsGUI.php.

Referenced by __construct(), and buildForm().

◆ $score_settings_repo

ScoreSettingsRepository ilObjTestSettingsScoringResultsGUI::$score_settings_repo
protected

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

Referenced by __construct().

◆ $tabs

ilTabsGUI ilObjTestSettingsScoringResultsGUI::$tabs
protected

Definition at line 64 of file class.ilObjTestSettingsScoringResultsGUI.php.

Referenced by __construct().

◆ $test_id

int ilObjTestSettingsScoringResultsGUI::$test_id
protected

Definition at line 60 of file class.ilObjTestSettingsScoringResultsGUI.php.

Referenced by __construct().

◆ $testGUI

ilObjTestGUI ilObjTestSettingsScoringResultsGUI::$testGUI
protected

Definition at line 56 of file class.ilObjTestSettingsScoringResultsGUI.php.

Referenced by __construct().

◆ $testQuestionSetConfigFactory

ilTestQuestionSetConfigFactory ilObjTestSettingsScoringResultsGUI::$testQuestionSetConfigFactory
private

Definition at line 57 of file class.ilObjTestSettingsScoringResultsGUI.php.

◆ $tpl

ilGlobalTemplateInterface ilObjTestSettingsScoringResultsGUI::$tpl
protected

Definition at line 52 of file class.ilObjTestSettingsScoringResultsGUI.php.

◆ $tree

ilTree ilObjTestSettingsScoringResultsGUI::$tree
protected

Definition at line 53 of file class.ilObjTestSettingsScoringResultsGUI.php.

Referenced by __construct().

◆ $ui_factory

UIFactory ilObjTestSettingsScoringResultsGUI::$ui_factory
protected

Definition at line 61 of file class.ilObjTestSettingsScoringResultsGUI.php.

Referenced by __construct().

◆ $ui_renderer

UIRenderer ilObjTestSettingsScoringResultsGUI::$ui_renderer
protected

Definition at line 62 of file class.ilObjTestSettingsScoringResultsGUI.php.

Referenced by __construct().

◆ CMD_CANCEL_RECALC

const ilObjTestSettingsScoringResultsGUI::CMD_CANCEL_RECALC = 'cancelSaveForm'

Definition at line 46 of file class.ilObjTestSettingsScoringResultsGUI.php.

Referenced by executeCommand().

◆ CMD_CONFIRMED_RECALC

const ilObjTestSettingsScoringResultsGUI::CMD_CONFIRMED_RECALC = 'saveFormAndRecalc'

Definition at line 45 of file class.ilObjTestSettingsScoringResultsGUI.php.

Referenced by executeCommand().

◆ CMD_SAVE_FORM

const ilObjTestSettingsScoringResultsGUI::CMD_SAVE_FORM = 'saveForm'

Definition at line 44 of file class.ilObjTestSettingsScoringResultsGUI.php.

Referenced by executeCommand().

◆ CMD_SHOW_FORM

const ilObjTestSettingsScoringResultsGUI::CMD_SHOW_FORM = 'showForm'

command constants

Definition at line 43 of file class.ilObjTestSettingsScoringResultsGUI.php.

Referenced by executeCommand().

◆ F_CONFIRM_SETTINGS

const ilObjTestSettingsScoringResultsGUI::F_CONFIRM_SETTINGS = 'f_settings'
private

Definition at line 47 of file class.ilObjTestSettingsScoringResultsGUI.php.


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