19 declare(strict_types=1);
62 protected ServerRequest $request,
78 $cmd = $this->
ctrl->getCmd();
82 case self::CMD_UPDATE:
84 case self::CMD_FINALIZE:
85 case self::CMD_FINALIZE_CONFIRMATION:
87 case self::CMD_SAVE_AMEND:
88 case self::CMD_DOWNLOAD_FILE:
91 case AbstractCtrlAwareUploadHandler::CMD_UPLOAD:
92 case AbstractCtrlAwareUploadHandler::CMD_REMOVE:
93 case AbstractCtrlAwareUploadHandler::CMD_INFO:
94 parent::executeCommand();
101 protected function view(): void
108 $this->tpl->setContent($this->
renderer->render($form));
111 protected function edit(): void
120 $this->tpl->setContent($this->
renderer->render($form));
123 protected function update():
void 127 ->withRequest($this->request)
131 $grading = $form->getData();
132 if (is_null($grading)) {
133 $this->tpl->setContent($this->
renderer->render($form));
137 if ($grading->isFinalized()) {
138 $not_finalized_grading = $grading->withFinalized(
false);
150 $this->tpl->setOnScreenMessage(
"success", $this->
lng->txt(
'iass_membership_saved'),
true);
151 $this->
ctrl->redirectByClass(ilIndividualAssessmentMembersGUI::class,
'view');
163 $form->withSubmitLabel($this->
lng->txt(
"save_amend"));
164 $this->tpl->setContent($this->
renderer->render($form));
170 $action = $this->
ctrl->getFormAction($this, $cmd);
171 $this->
ctrl->clearParameterByClass(self::class,
'usr_id');
178 $identifier = $this->
getMember()->getGrading()->getFile();
179 $resource_id = $this->irss->manage()->find($identifier);
181 $this->irss->consume()->download($resource_id)->run();
193 ->buildForm($this->
ctrl->getFormAction($this, self::CMD_AMEND),
true,
true)
194 ->withRequest($this->request)
197 $grading = $form->getData();
199 if (!is_null($grading)) {
206 $this->tpl->setOnScreenMessage(
"success", $this->
lng->txt(
'iass_amend_saved'),
true);
207 $this->
ctrl->redirectByClass(ilIndividualAssessmentMembersGUI::class,
'view');
216 $section = $this->
getMember()->getGrading()->toFormInput(
217 $this->input_factory->field(),
220 $this->refinery_factory,
222 $this->
user->getDateFormat(),
223 $this->
getObject()->getSettings()->getRecordTemplate(),
226 $this->
getObject()->getSettings()->isEventTimePlaceRequired(),
227 $this->
getObject()->getSettings()->isFileRequired(),
231 $form = $this->input_factory->container()->form()->standard($form_action, [$section]);
232 return $form->withAdditionalTransformation(
233 $this->refinery_factory->custom()->transformation(
234 function ($values) use ($amend) {
235 return array_shift($values);
249 if (!$member->mayBeFinalized()) {
250 $this->tpl->setOnScreenMessage(
"failure", $this->
lng->txt(
'iass_may_not_finalize'),
true);
256 $grading = $member->getGrading()->withFinalized(
true);
257 $member = $member->withGrading($grading);
258 $this->
getObject()->membersStorage()->updateMember($member);
260 $this->tpl->setOnScreenMessage(
"failure", $e->getMessage(),
true);
265 if ($this->
object->isActiveLP()) {
270 $member->maybeSendNotification($this->notificator);
271 $this->
ctrl->redirectByClass(ilIndividualAssessmentMembersGUI::class,
'view');
273 $this->tpl->setOnScreenMessage(
"failure", $e->getMessage(),
true);
278 $this->tpl->setOnScreenMessage(
"success", $this->
lng->txt(
'iass_membership_finalized'),
true);
289 $message = $this->
lng->txt(
'iass_finalize_user_qst');
291 $finalize = $this->
ctrl->getFormActionByClass(self::class, self::CMD_FINALIZE);
292 $cancel = $this->
ctrl->getFormActionByClass(self::class, self::CMD_EDIT);
293 $this->
ctrl->clearParameterByClass(self::class,
'usr_id');
296 $this->button_factory->standard($this->
lng->txt(
'iass_confirm_finalize'), $finalize),
297 $this->button_factory->standard($this->lng->txt(
'iass_cancel'), $cancel)
300 $message_box = $this->messagebox_factory->confirmation(
$message)->withButtons($buttons);
302 $this->tpl->setContent($this->
renderer->render($message_box));
307 bool $keep_examiner =
false,
311 ->withGrading($grading)
315 $member = $member->withChangerId($this->
user->getId());
318 if (!$keep_examiner) {
319 $member = $member->withExaminerId($this->
user->getId());
321 $this->
getObject()->membersStorage()->updateMember($member);
336 $array = $this->
upload->getResults();
337 $result = end($array);
341 $resource_id = $this->irss->manage()->upload($result, $this->stakeholder);
342 $identifier = $resource_id->serialize();
343 $status = HandlerResult::STATUS_OK;
346 $status = HandlerResult::STATUS_FAILED;
348 $message = $result->getStatus()->getMessage();
356 $resource_id = $this->irss->manage()->find($identifier);
358 $this->irss->manage()->remove($resource_id, $this->stakeholder);
359 $status = HandlerResult::STATUS_OK;
362 $status = HandlerResult::STATUS_FAILED;
371 $resource_id = $this->irss->manage()->find($identifier);
375 $resource = $this->irss->manage()->getResource($resource_id);
376 $info = $resource->getCurrentRevision()->getInformation();
389 $file_ids = array_filter($file_ids, fn(
$id) =>
$id !==
"");
391 $resource_id = $this->irss->manage()->find($identifier);
395 $resource = $this->irss->manage()->getResource($resource_id);
396 $info = $resource->getCurrentRevision()->getInformation();
415 $link = $this->
ctrl->getLinkTarget($this, self::CMD_UPLOAD);
416 $this->
ctrl->setParameter($this,
'usr_id',
null);
424 $link = $this->
ctrl->getLinkTarget($this, self::CMD_INFO);
425 $this->
ctrl->setParameter($this,
'usr_id',
null);
433 $this->
ctrl->redirect($this, $cmd);
438 $this->
object = $object;
443 return $this->object;
448 $this->parent_gui = $parent_gui;
453 return $this->parent_gui;
458 if (is_null($this->iass_access)) {
459 $this->iass_access = $this->
getObject()->accessHandler();
466 return new ilObjUser($this->request_wrapper->retrieve(
'usr_id', $this->refinery->kindlyTo()->int()));
471 return $this->
getObject()->membersStorage()->loadMember(
480 if ($member->fileName() !=
'') {
482 $url = $this->
ctrl->getLinkTarget($this, self::CMD_DOWNLOAD_FILE,
"",
false,
true);
483 $this->
ctrl->setParameter($this,
'usr_id',
null);
484 $btn = $this->link_factory->standard(
485 $this->
lng->txt(
'download_assessment_paper'),
488 $this->
toolbar->addComponent($btn);
543 $this->error_object->raiseError($this->
lng->txt(
"msg_no_perm_read"), $this->error_object->WARNING);
Deal with ilias rbac-system.
getInfoResult(string $identifier)
getFileIdentifierParameterName()
getInfoForExistingFiles(array $file_ids)
For the purpose of streamlining the grading and learning-process status definition outside of tests...
getRemoveResult(string $identifier)
ilIndividualAssessmentAccessHandler $iass_access
buildForm(string $form_action, bool $may_be_edited, bool $amend=false)
Interface Observer Contains several chained tasks and infos about them.
getFormActionForCommand(string $cmd)
static updateLPStatusOfMember(ilIndividualAssessmentMember $member)
setParentGUI(ilIndividualAssessmentMembersGUI $parent_gui)
Builds a Color from either hex- or rgb values.
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
Notifies user, using internal mail system.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
const CMD_FINALIZE_CONFIRMATION
targetWasEditedByOtherUser(ilIndividualAssessmentMember $member)
Class BasicHandlerResult.
Interface FileInfoResult.
saveMember(ilIndividualAssessmentUserGrading $grading, bool $keep_examiner=false, bool $amend=false)
Class ilCtrlAwareUploadHandler.
setObject(ilObjIndividualAssessment $object)
Edit the record of a user, set LP.
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
__construct(Container $dic, ilPlugin $plugin)
executeCommand()
Since this is a ilCtrl aware UploadHandler executeCommand MUST be implemented.
__construct(protected ilCtrl $ctrl, protected ilLanguage $lng, protected ilGlobalPageTemplate $tpl, protected ilObjUser $user, protected Input\Factory $input_factory, protected MessageBox\Factory $messagebox_factory, protected Button\Factory $button_factory, protected Link\Factory $link_factory, protected Refinery\Factory $refinery_factory, protected Data\Factory $data_factory, protected Renderer $renderer, protected ServerRequest $request, protected ilIndividualAssessmentPrimitiveInternalNotificator $notificator, protected ilToolbarGUI $toolbar, protected ilObjIndividualAssessment $object, protected ilErrorHandling $error_object, protected ILIAS\Refinery\Factory $refinery, protected ILIAS\HTTP\Wrapper\RequestWrapper $request_wrapper, protected ilIndividualAssessmentDateFormatter $date_formatter, protected IRSS $irss, protected ilIndividualAssessmentGradingStakeholder $stakeholder,)
For the purpose of streamlining the grading and learning-process status definition outside of tests...
Class BasicFileInfoResult.