19 declare(strict_types=1);
60 protected Data\
Factory $data_factory,
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(),
225 $this->
getObject()->getSettings()->isEventTimePlaceRequired(),
226 $this->
getObject()->getSettings()->isFileRequired(),
230 $form = $this->input_factory->container()->form()->standard($form_action, [$section]);
231 return $form->withAdditionalTransformation(
232 $this->refinery_factory->custom()->transformation(
233 function ($values) use ($amend) {
234 return array_shift($values);
248 if (!$member->mayBeFinalized()) {
249 $this->tpl->setOnScreenMessage(
"failure", $this->
lng->txt(
'iass_may_not_finalize'),
true);
255 $grading = $member->getGrading()->withFinalized(
true);
256 $member = $member->withGrading($grading);
257 $this->
getObject()->membersStorage()->updateMember($member);
259 $this->tpl->setOnScreenMessage(
"failure", $e->getMessage(),
true);
264 if ($this->
object->isActiveLP()) {
269 $member->maybeSendNotification($this->notificator);
270 $this->
ctrl->redirectByClass(ilIndividualAssessmentMembersGUI::class,
'view');
272 $this->tpl->setOnScreenMessage(
"failure", $e->getMessage(),
true);
277 $this->tpl->setOnScreenMessage(
"success", $this->
lng->txt(
'iass_membership_finalized'),
true);
288 $message = $this->
lng->txt(
'iass_finalize_user_qst');
290 $finalize = $this->
ctrl->getFormActionByClass(self::class, self::CMD_FINALIZE);
291 $cancel = $this->
ctrl->getFormActionByClass(self::class, self::CMD_EDIT);
292 $this->
ctrl->clearParameterByClass(self::class,
'usr_id');
295 $this->button_factory->standard($this->
lng->txt(
'iass_confirm_finalize'), $finalize),
296 $this->button_factory->standard($this->lng->txt(
'iass_cancel'), $cancel)
299 $message_box = $this->messagebox_factory->confirmation(
$message)->withButtons($buttons);
301 $this->tpl->setContent($this->renderer->render($message_box));
306 bool $keep_examiner =
false,
310 ->withGrading($grading)
314 $member = $member->withChangerId($this->
user->getId());
317 if (!$keep_examiner) {
318 $member = $member->withExaminerId($this->
user->getId());
320 $this->
getObject()->membersStorage()->updateMember($member);
335 $array = $this->
upload->getResults();
336 $result = end($array);
340 $resource_id = $this->irss->manage()->upload($result, $this->stakeholder);
341 $identifier = $resource_id->serialize();
342 $status = HandlerResult::STATUS_OK;
345 $status = HandlerResult::STATUS_FAILED;
347 $message = $result->getStatus()->getMessage();
355 $resource_id = $this->irss->manage()->find($identifier);
357 $this->irss->manage()->remove($resource_id, $this->stakeholder);
358 $status = HandlerResult::STATUS_OK;
361 $status = HandlerResult::STATUS_FAILED;
370 $resource_id = $this->irss->manage()->find($identifier);
374 $resource = $this->irss->manage()->getResource($resource_id);
375 $info = $resource->getCurrentRevision()->getInformation();
388 $file_ids = array_filter($file_ids, fn(
$id) =>
$id !==
"");
389 return array_map(
function (
$id) {
390 $resource_id = $this->irss->manage()->find($identifier);
394 $resource = $this->irss->manage()->getResource($resource_id);
395 $info = $resource->getCurrentRevision()->getInformation();
414 $link = $this->
ctrl->getLinkTarget($this, self::CMD_UPLOAD);
415 $this->
ctrl->setParameter($this,
'usr_id', null);
423 $link = $this->
ctrl->getLinkTarget($this, self::CMD_INFO);
424 $this->
ctrl->setParameter($this,
'usr_id', null);
432 $this->
ctrl->redirect($this, $cmd);
437 $this->
object = $object;
442 return $this->object;
447 $this->parent_gui = $parent_gui;
452 return $this->parent_gui;
457 if (is_null($this->iass_access)) {
458 $this->iass_access = $this->
getObject()->accessHandler();
465 return new ilObjUser($this->request_wrapper->retrieve(
'usr_id', $this->refinery->kindlyTo()->int()));
470 return $this->
getObject()->membersStorage()->loadMember(
479 if ($member->fileName() !=
'') {
481 $url = $this->
ctrl->getLinkTarget($this, self::CMD_DOWNLOAD_FILE,
"",
false,
true);
482 $this->
ctrl->setParameter($this,
'usr_id', null);
483 $btn = $this->link_factory->standard(
484 $this->
lng->txt(
'download_assessment_paper'),
487 $this->
toolbar->addComponent($btn);
542 $this->error_object->raiseError($this->
lng->txt(
"msg_no_perm_read"), $this->error_object->WARNING);
Deal with ilias rbac-system.
getInfoResult(string $identifier)
An entity that renders components to a string output.
A Link is the often used combination of a label and an URL.
getFileIdentifierParameterName()
getInfoForExistingFiles(array $file_ids)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
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)
Class ChatMainBarProvider .
getFormActionForCommand(string $cmd)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static updateLPStatusOfMember(ilIndividualAssessmentMember $member)
setParentGUI(ilIndividualAssessmentMembersGUI $parent_gui)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
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)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Error Handling & global info handling.
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
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...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Class BasicFileInfoResult.
Refinery Factory $refinery