ILIAS  release_8 Revision v8.19
All Data Structures Namespaces Files Functions Variables Modules Pages
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.

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().

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.
+ Here is the call graph for this function:

Member Function Documentation

◆ areScoringSettingsWritable()

ilObjTestSettingsScoringResultsGUI::areScoringSettingsWritable ( )
private

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

Referenced by buildForm(), and isScoreRecalculationRequired().

291  : bool
292  {
293  if (!$this->testOBJ->participantDataExist()) {
294  return true;
295  }
296 
297  if (!$this->isScoreReportingAvailable()) {
298  return true;
299  }
300 
301  return false;
302  }
+ Here is the caller graph for this function:

◆ buildForm()

ilObjTestSettingsScoringResultsGUI::buildForm ( )
private

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

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

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

220  : Form
221  {
222  $ui_pack = [
223  $this->lng,
224  $this->ui_factory->input()->field(),
226  ];
227 
228  $environment = [];
229  $df = (new \ILIAS\Data\Factory())->dateFormat();
230  switch ($this->active_user->getDateFormat()) {
232  $date_format = $df->germanShort();
233  break;
235  //americanShort
236  $date_format = $df->custom()->month()->slash()->day()->slash()->year()->get();
237  break;
239  default:
240  $date_format = $df->standard();
241  }
242  $environment['user_date_format'] = $date_format;
243  $environment['user_time_zone'] = $this->active_user->getTimeZone();
244 
245  $disabled_flag = ($this->areScoringSettingsWritable() === false);
246 
247  $settings = $this->loadScoreSettings();
248  $sections = [
249  'scoring' => $settings->getScoringSettings()->toForm(...$ui_pack)
250  ->withDisabled($disabled_flag),
251  'summary' => $settings->getResultSummarySettings()->toForm(...array_merge($ui_pack, [$environment])),
252  'details' => $settings->getResultDetailsSettings()->toForm(
253  ...array_merge($ui_pack, [['taxonomy_options' => $this->getTaxonomyOptions()]])
254  ),
255  'gameification' => $settings->getGamificationSettings()->toForm(...$ui_pack)
256  ];
257 
258  $action = $this->ctrl->getFormAction($this, self::CMD_SAVE_FORM);
259  $form = $this->ui_factory->input()->container()->form()
260  ->standard($action, $sections)
261  ->withAdditionalTransformation(
262  $this->refinery->custom()->transformation(
263  function ($v) use ($settings) {
264  return $settings
265  ->withScoringSettings($v['scoring'])
266  ->withResultSummarySettings($v['summary'])
267  ->withResultDetailsSettings($v['details'])
268  ->withGamificationSettings($v['gameification'])
269  ;
270  }
271  )
272  );
273  return $form;
274  }
array $settings
Setting values (LTI parameters, custom parameters and local parameters).
Definition: System.php:200
+ 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.

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

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) {
149  case self::CMD_SHOW_FORM:
150  $this->showForm();
151  break;
152  case self::CMD_SAVE_FORM:
153  $this->saveForm();
154  break;
155  case self::CMD_CONFIRMED_RECALC:
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;
165  case self::CMD_CANCEL_RECALC:
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  }
array $settings
Setting values (LTI parameters, custom parameters and local parameters).
Definition: System.php:200
storeScoreSettings(ilObjTestScoreSettings $score_settings)
+ Here is the call graph for this function:

◆ getRelayedRequest()

ilObjTestSettingsScoringResultsGUI::getRelayedRequest ( )
private

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

Referenced by executeCommand().

211  : Request
212  {
213  return unserialize(
214  base64_decode(
215  $this->request->getParsedBody()[self::F_CONFIRM_SETTINGS]
216  )
217  );
218  }
+ Here is the caller graph for this function:

◆ getTaxonomyOptions()

ilObjTestSettingsScoringResultsGUI::getTaxonomyOptions ( )
protected

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

References ilObjTaxonomy\getUsageOfObject().

Referenced by buildForm().

304  : array
305  {
306  $available_taxonomy_ids = ilObjTaxonomy::getUsageOfObject($this->testOBJ->getId());
307  $taxononmy_translator = new ilTestTaxonomyFilterLabelTranslater($this->db);
308  $taxononmy_translator->loadLabelsFromTaxonomyIds($available_taxonomy_ids);
309 
310  $taxonomy_options = [];
311  foreach ($available_taxonomy_ids as $tax_id) {
312  $taxonomy_options[$tax_id] = $taxononmy_translator->getTaxonomyTreeLabel($tax_id);
313  }
314  return $taxonomy_options;
315  }
static getUsageOfObject(int $a_obj_id, bool $a_include_titles=false)
+ 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 317 of file class.ilObjTestSettingsScoringResultsGUI.php.

References areScoringSettingsWritable(), ilObjTestSettingsScoring\getCountSystem(), ilObjTestSettingsScoring\getPassScoring(), and ilObjTestSettingsScoring\getScoreCutting().

Referenced by saveForm().

320  : bool {
321  $settings_changed = (
322  $new_settings->getCountSystem() !== $old_settings->getCountSystem() ||
323  $new_settings->getScoreCutting() !== $old_settings->getScoreCutting() ||
324  $new_settings->getPassScoring() !== $old_settings->getPassScoring()
325  );
326 
327  return
328  $this->testOBJ->participantDataExist() &&
329  $this->areScoringSettingsWritable() &&
330  $settings_changed;
331  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ loadScoreSettings()

ilObjTestSettingsScoringResultsGUI::loadScoreSettings ( )
protected

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

Referenced by buildForm(), and saveForm().

123  {
124  return $this->score_settings_repo->getFor($this->test_id);
125  }
+ Here is the caller graph for this function:

◆ saveForm()

ilObjTestSettingsScoringResultsGUI::saveForm ( )
private

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

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

Referenced by executeCommand().

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 
198  if ($this->isScoreRecalculationRequired(
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  }
array $settings
Setting values (LTI parameters, custom parameters and local parameters).
Definition: System.php:200
storeScoreSettings(ilObjTestScoreSettings $score_settings)
isScoreRecalculationRequired(ilObjTestSettingsScoring $new_settings, ilObjTestSettingsScoring $old_settings)
+ 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 334 of file class.ilObjTestSettingsScoringResultsGUI.php.

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

Referenced by saveForm().

335  {
336  $confirmation = new ilConfirmationGUI();
337  $confirmation->setHeaderText($this->lng->txt('tst_trigger_result_refreshing'));
338  $confirmation->setFormAction($this->ctrl->getFormAction($this));
339  $confirmation->setCancel($this->lng->txt('cancel'), self::CMD_CANCEL_RECALC);
340  $confirmation->setConfirm($this->lng->txt('confirm'), self::CMD_CONFIRMED_RECALC);
341  $confirmation->addHiddenItem(self::F_CONFIRM_SETTINGS, base64_encode(serialize($request)));
342  $this->tpl->setContent($this->ctrl->getHTML($confirmation));
343  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
+ 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.

References buildForm().

Referenced by executeCommand(), and saveForm().

176  : void
177  {
178  if ($form === null) {
179  $form = $this->buildForm();
180  }
181 
182  $this->tpl->setContent($this->ui_renderer->render($form));
183  }
+ 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.

Referenced by executeCommand(), and saveForm().

126  : void
127  {
128  $this->score_settings_repo->store($score_settings);
129  }
+ 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.

◆ CMD_CONFIRMED_RECALC

const ilObjTestSettingsScoringResultsGUI::CMD_CONFIRMED_RECALC = 'saveFormAndRecalc'

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

◆ CMD_SAVE_FORM

const ilObjTestSettingsScoringResultsGUI::CMD_SAVE_FORM = 'saveForm'

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

◆ CMD_SHOW_FORM

const ilObjTestSettingsScoringResultsGUI::CMD_SHOW_FORM = 'showForm'

command constants

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

◆ 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: