4 declare(strict_types=1);
154 $cmd = $this->ctrl->getCmd();
158 case self::CMD_UPDATE:
160 case self::CMD_FINALIZE:
161 case self::CMD_FINALIZE_CONFIRMATION:
162 case self::CMD_AMEND:
163 case self::CMD_SAVE_AMEND:
164 case self::CMD_DOWNLOAD_FILE:
167 case AbstractCtrlAwareUploadHandler::CMD_UPLOAD:
168 case AbstractCtrlAwareUploadHandler::CMD_REMOVE:
169 case AbstractCtrlAwareUploadHandler::CMD_INFO:
170 parent::executeCommand();
184 $this->tpl->setContent($this->renderer->render($form));
194 $this->ctrl->setParameterByClass(self::class,
'usr_id', $this->
getExaminee()->getId());
195 $action = $this->ctrl->getFormAction($this,
'update');
196 $this->ctrl->clearParameterByClass(self::class,
'usr_id');
200 $this->tpl->setContent($this->renderer->render($form));
203 protected function update()
206 ->buildForm($this->ctrl->getFormAction($this, self::CMD_UPDATE),
true)
207 ->withRequest($this->request)
211 $grading = $form->getData();
212 if (!is_null($grading)) {
213 if ($grading->getFile() ==
'') {
215 $storage->deleteCurrentFile();
218 if ($grading->isFinalized()) {
219 $not_finalized_grading = $grading->withFinalized(
false);
231 ilUtil::sendSuccess($this->lng->txt(
'iass_membership_saved'),
true);
243 $this->ctrl->setParameterByClass(self::class,
'usr_id', $this->
getExaminee()->getId());
244 $action = $this->ctrl->getFormAction($this, self::CMD_SAVE_AMEND);
245 $this->ctrl->clearParameterByClass(self::class,
'usr_id');
248 $form = $this->
buildForm($action,
true,
true);
249 $this->tpl->setContent($this->renderer->render($form));
255 $file_name = $this->
getMember()->fileName();
267 ->buildForm($this->ctrl->getFormAction($this, self::CMD_AMEND),
true,
true)
268 ->withRequest($this->request)
271 $grading = $form->getData();
273 if (!is_null($grading)) {
274 if ($grading->getFile() ==
'') {
276 $storage->deleteCurrentFile();
285 ilUtil::sendSuccess($this->lng->txt(
'iass_amend_saved'),
true);
296 $this->input_factory->field(),
301 (bool) $this->
getObject()->getSettings()->isEventTimePlaceRequired(),
306 $form = $this->input_factory->container()->form()->standard($form_action, [
$section]);
307 $form = $form->withAdditionalTransformation(
308 $this->refinery_factory->custom()->transformation(
309 function ($values) use ($amend) {
310 return array_shift($values);
325 if (!$member->mayBeFinalized()) {
332 $grading = $member->getGrading()->withFinalized(
true);
333 $member = $member->withGrading($grading);
334 $this->
getObject()->membersStorage()->updateMember($member);
341 if ($this->object->isActiveLP()) {
346 $member->maybeSendNotification($this->notificator);
353 ilUtil::sendSuccess($this->lng->txt(
'iass_membership_finalized'),
true);
364 $message = $this->lng->txt(
'iass_finalize_user_qst');
365 $this->ctrl->setParameterByClass(self::class,
'usr_id', $this->
getExaminee()->getId());
366 $finalize = $this->ctrl->getFormActionByClass(self::class, self::CMD_FINALIZE);
367 $cancel = $this->ctrl->getFormActionByClass(self::class, self::CMD_EDIT);
368 $this->ctrl->clearParameterByClass(self::class,
'usr_id');
371 $this->button_factory->standard($this->lng->txt(
'iass_confirm_finalize'), $finalize),
372 $this->button_factory->standard($this->lng->txt(
'iass_cancel'), $cancel)
375 $message_box = $this->messagebox_factory->confirmation(
$message)->withButtons($buttons);
377 $this->tpl->setContent($this->renderer->render($message_box));
382 bool $keep_examiner =
false,
386 ->withGrading($grading)
390 $member = $member->withChangerId($this->
user->getId());
393 if (!$keep_examiner) {
394 $member = $member->withExaminerId($this->
user->getId());
396 $this->
getObject()->membersStorage()->updateMember($member);
410 $this->upload->process();
411 $array = $this->upload->getResults();
416 $status = HandlerResult::STATUS_OK;
419 $status = HandlerResult::STATUS_FAILED;
429 $status = HandlerResult::STATUS_FAILED;
430 $message = $this->lng->txt(
'iass_file_deleted');
435 $grading = $member->getGrading()->withFile(null);
436 $member = $member->withGrading($grading);
437 $this->
getObject()->membersStorage()->updateMember($member);
438 $status = HandlerResult::STATUS_OK;
472 $ids = array_filter($file_ids,
function ($id) {
479 if (is_null(
$name) || count($ids) === 0) {
483 if (!in_array(
$name, $file_ids)) {
511 $this->ctrl->setParameter($this,
'usr_id', $this->
getExaminee()->getId());
512 $link = $this->ctrl->getLinkTarget($this, self::CMD_UPLOAD);
513 $this->ctrl->setParameter($this,
'usr_id', null);
523 $this->ctrl->setParameter($this,
'usr_id', $this->
getExaminee()->getId());
524 $link = $this->ctrl->getLinkTarget($this, self::CMD_INFO);
525 $this->ctrl->setParameter($this,
'usr_id', null);
535 $this->ctrl->setParameter($this,
'usr_id', $this->
getExaminee()->getId());
537 $link = $this->ctrl->getLinkTarget($this, self::CMD_REMOVE);
538 $this->ctrl->setParameter($this,
'usr_id', null);
548 $storage->deleteCurrentFile();
549 $storage->uploadFile($result);
557 $storage->deleteCurrentFile();
563 if (is_null($path)) {
567 return end(explode(
'/', $path));
573 if ($storage->isEmpty()) {
577 return $storage->getFilePath();
582 $this->ctrl->setParameterByClass(self::class,
'usr_id', $this->
getExaminee()->getId());
583 $this->ctrl->redirect($this, $cmd);
608 if (is_null($this->iass_access)) {
609 $this->iass_access = $this->
getObject()->accessHandler();
621 $storage = $this->
getObject()->getFileStorage();
622 $storage->setUserId($this->
getExaminee()->getId());
628 return $this->
getObject()->membersStorage()->loadMember(
637 if ($member->fileName() !=
'') {
639 $btn->setCaption(
'download_assessment_paper');
640 $this->ctrl->setParameter($this,
'usr_id', $this->
getExaminee()->getId());
641 $btn->setUrl($this->ctrl->getLinkTarget($this, self::CMD_DOWNLOAD_FILE,
false,
true));
642 $this->ctrl->setParameter($this,
'usr_id', null);
643 $this->toolbar->addButtonInstance($btn);
698 $this->error_object->raiseError($this->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.
This class provides processing control methods.
getFileIdentifierParameterName()
getInfoForExistingFiles(array $file_ids)
For the purpose of streamlining the grading and learning-process status definition outside of tests...
getRemoveResult(string $identifier)
buildForm(string $form_action, bool $may_be_edited, bool $amend=false)
Class ChatMainBarProvider .
static updateLPStatusOfMember(ilIndividualAssessmentMember $member)
__construct(ilCtrl $ctrl, ilLanguage $lng, ilGlobalPageTemplate $tpl, ilObjUser $user, Input\Factory $input_factory, MessageBox\Factory $messagebox_factory, Button\Factory $button_factory, Refinery\Factory $refinery_factory, Data\Factory $data_factory, Renderer $renderer, ServerRequest $request, ilIndividualAssessmentPrimitiveInternalNotificator $notificator, ilToolbarGUI $toolbar, ilObjIndividualAssessment $object, ilErrorHandling $error_object)
setParentGUI(ilIndividualAssessmentMembersGUI $parent_gui)
Notificate user using internal mail system.
Class ilGlobalPageTemplate.
const CMD_FINALIZE_CONFIRMATION
targetWasEditedByOtherUser(ilIndividualAssessmentMember $member)
Class BasicHandlerResult.
Interface FileInfoResult.
saveMember(ilIndividualAssessmentUserGrading $grading, bool $keep_examiner=false, bool $amend=false)
Class ilCtrlAwareUploadHandler.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
setObject(ilObjIndividualAssessment $object)
Edit the record of a user, set LP.
__construct(Container $dic, ilPlugin $plugin)
Handles the fileupload and folder creation for files uploaded in grading form.
uploadFile(UploadResult $result)
executeCommand()
Since this is a ilCtrl aware UploadHandler executeCommand MUST be implemented.
For the purpose of streamlining the grading and learning-process status definition outside of tests...
static deliverFile( $a_file, $a_filename, $a_mime='', $isInline=false, $removeAfterDelivery=false, $a_exit_after=true)
deliver file for download via browser.
Class BasicFileInfoResult.