30 protected \ILIAS\Exercise\Notification\NotificationManager
$notification;
32 protected \ILIAS\Notes\Service
$notes;
33 protected \ILIAS\Exercise\InternalGUIService
$gui;
34 protected \ILIAS\Exercise\InternalDomainService
$domain;
54 $service = $DIC->exercise()->internal();
57 $this->
user = $this->domain->user();
58 $this->
ctrl = $this->gui->ctrl();
59 $this->tabs_gui = $this->gui->tabs();
60 $this->
lng = $this->domain->lng();
61 $this->tpl = $this->gui->ui()->mainTemplate();
64 $this->submission = $a_submission;
66 $request = $DIC->exercise()->internal()->gui()->request();
67 $this->requested_review_giver_id = $request->getReviewGiverId();
68 $this->requested_review_peer_id = $request->getReviewPeerId();
69 $this->requested_review_crit_id = $request->getReviewCritId();
70 $this->requested_peer_id = $request->getPeerId();
71 $this->requested_giver_id = $request->getGiverId();
72 $this->requested_crit_id = $request->getCritId();
73 $this->gui = $DIC->exercise()->internal()->gui();
74 $this->notes = $DIC->notes();
75 $this->
ctrl->saveParameter($this, array(
"peer_id"));
76 $this->
notification = $this->domain->notification($request->getRefId());
88 if (!$this->ass->getPeerReview()) {
92 $class = $ilCtrl->getNextClass($this);
93 $cmd = $ilCtrl->getCmd(
"showpeerreviewoverview");
96 case "ilfilesystemgui":
97 $ilCtrl->saveParameter($this, array(
"fu"));
108 $peer_items = $this->submission->getPeerReview()->getPeerReviewsByPeerId($peer_id,
true);
109 if (is_array($peer_items)) {
110 foreach ($peer_items as $item) {
111 if ($item[
"giver_id"] == $giver_id) {
117 $ilCtrl->redirect($this,
"editPeerReview");
120 $ilTabs->clearTargets();
121 $ilTabs->setBackTarget(
123 $ilCtrl->getLinkTarget($this,
"editPeerReview")
131 $fs_gui->setAllowDirectories(
false);
132 $fs_gui->setTitle($this->ass->getTitle() .
": " .
133 $lng->
txt(
"exc_peer_review") .
" - " .
134 $lng->
txt(
"exc_peer_review_give"));
135 $this->
ctrl->forwardCommand($fs_gui);
140 $peer_review->updatePeerReviewTimestamp($this->requested_peer_id);
143 $rating_gui->setObject(
149 $this->
ctrl->forwardCommand($rating_gui);
150 $ilCtrl->redirect($this,
"editPeerReview");
153 case "ilexsubmissiontextgui":
154 $ilTabs->clearTargets();
155 if (!$this->submission->isTutor()) {
156 $ilTabs->setBackTarget(
158 $ilCtrl->getLinkTarget($this,
"editPeerReview")
160 $this->
ctrl->setReturn($this,
"editPeerReview");
162 $ilTabs->setBackTarget(
164 $ilCtrl->getLinkTarget($this,
"showGivenPeerReview")
166 $this->
ctrl->setReturn($this,
"showGivenPeerReview");
169 $ilCtrl->forwardCommand($gui);
174 $this->requested_giver_id,
175 $this->requested_peer_id
177 $ilCtrl->forwardCommand($gui);
181 $this->{$cmd .
"Object"}();
188 $this->
ctrl->returnToParent($this);
200 $lng = $DIC->language();
201 $ilCtrl = $DIC->ctrl();
202 $gui = $DIC->exercise()
216 if ($state->hasSubmissionEndedForAllUsers() &&
217 $ass->getPeerReview()) {
218 $ilCtrl->setParameterByClass(
"ilExPeerReviewGUI",
"ass_id", $a_submission->
getAssignment()->getId());
220 $nr_missing_fb = $a_submission->
getPeerReview()->getNumberOfMissingFeedbacksForReceived();
225 if ($state->isPeerReviewAllowed()) {
227 if ($ass->getPeerReviewDeadline()) {
228 $dl_info =
" (" . sprintf(
229 $lng->
txt(
"exc_peer_review_deadline_info_button"),
230 $state->getPeerReviewDeadlinePresentation()
235 $lng->
txt(
"exc_peer_review_give"),
236 $ilCtrl->getLinkTargetByClass(array(ilAssignmentPresentationGUI::class,
"ilExSubmissionGUI",
"ilExPeerReviewGUI"),
"editPeerReview")
238 if ($nr_missing_fb) {
241 $edit_pc = $b->render();
242 } elseif ($ass->getPeerReviewDeadline()) {
243 $edit_pc = $lng->
txt(
"exc_peer_review_deadline_reached");
247 if ((!$ass->getPeerReviewDeadline() ||
248 $ass->getPeerReviewDeadline() < time())) {
250 if ($ass->getPeerReviewDeadline() &&
253 $lng->
txt(
"exc_peer_review_given"),
254 $ilCtrl->getLinkTargetByClass(array(ilAssignmentPresentationGUI::class,
"ilExSubmissionGUI",
"ilExPeerReviewGUI"),
"showGivenPeerReview")
256 $view_pc =
$b->render() .
" ";
260 if (!$nr_missing_fb) {
262 $received = (bool)
sizeof($a_submission->
getPeerReview()->getPeerReviewsByPeerId($a_submission->
getUserId(),
true));
265 $lng->
txt(
"exc_peer_review_show"),
266 $ilCtrl->getLinkTargetByClass(array(ilAssignmentPresentationGUI::class,
"ilExSubmissionGUI",
"ilExPeerReviewGUI"),
"showReceivedPeerReview")
268 $view_pc .=
$b->render();
272 $view_pc .= $lng->
txt(
"exc_peer_review_show_received_none");
277 $view_pc .= $lng->
txt(
"exc_peer_review_show_missing");
287 $sep = ($edit_pc !=
"" && $view_pc !=
"")
291 $a_info->
addProperty($lng->
txt(
"exc_peer_review"), $edit_pc . $sep . $view_pc);
293 $ilCtrl->setParameterByClass(
"ilExPeerReviewGUI",
"ass_id",
"");
299 $f = $this->gui->ui()->factory();
304 $state = $this->domain->assignment()->state($ass->
getId(), $submission->
getUserId());
312 if ($state->hasSubmissionEndedForAllUsers() &&
314 $ilCtrl->setParameterByClass(
"ilExPeerReviewGUI",
"ass_id", $submission->
getAssignment()->getId());
316 $nr_missing_fb = $submission->
getPeerReview()->getNumberOfMissingFeedbacksForReceived();
318 $builder->addAdditionalHeadProperty(
319 $this->
lng->txt(
"exc_given_feedback"),
321 $this->
lng->txt(
"exc_x_of_y") .
" " .
325 $builder->addAdditionalHeadProperty(
326 $this->
lng->txt(
"exc_received_feedback"),
327 $submission->
getPeerReview()->countReceivedFeedbacks($submission->getUserid())
333 if ($state->isPeerReviewAllowed()) {
334 $url = $ilCtrl->getLinkTargetByClass(array(ilAssignmentPresentationGUI::class,
"ilExSubmissionGUI",
"ilExPeerReviewGUI"),
"editPeerReview");
335 $button =
$f->button()->primary(
336 $lng->
txt(
"exc_peer_review_give"),
341 $this->
lng->txt(
"exc_given_feedback"),
344 $builder->setMainAction(
345 $builder::SEC_PEER_FEEDBACK,
349 $deadline = $state->getPeerReviewDeadlinePresentation();
351 $deadline = $lng->
txt(
"exc_no_peer_feedback_deadline");
353 $builder->addProperty(
354 $builder::SEC_PEER_FEEDBACK,
355 $lng->
txt(
"exc_peer_review_deadline"),
359 $edit_pc = $lng->
txt(
"exc_peer_review_deadline_reached");
360 $builder->addProperty(
361 $builder::SEC_PEER_FEEDBACK,
362 $lng->
txt(
"exc_peer_review_deadline"),
363 $lng->
txt(
"exc_peer_review_deadline_reached")
367 $builder->addProperty(
368 $builder::SEC_SCHEDULE,
369 $lng->
txt(
"exc_peer_review_deadline"),
370 $state->getPeerReviewDeadlinePresentation()
380 $url = $ilCtrl->getLinkTargetByClass(array(ilAssignmentPresentationGUI::class,
"ilExSubmissionGUI",
"ilExPeerReviewGUI"),
"showGivenPeerReview");
381 $link =
$f->link()->standard(
382 $lng->
txt(
"exc_peer_review_given"),
386 $builder::SEC_PEER_FEEDBACK,
391 $this->
lng->txt(
"exc_given_feedback"),
396 if ($nr_missing_fb <= 0) {
398 $received = (bool)
sizeof($submission->
getPeerReview()->getPeerReviewsByPeerId($submission->
getUserId(),
true));
400 $url = $ilCtrl->getLinkTargetByClass(array(ilAssignmentPresentationGUI::class,
"ilExSubmissionGUI",
"ilExPeerReviewGUI"),
"showReceivedPeerReview");
401 $link =
$f->link()->standard(
402 $lng->
txt(
"exc_peer_review_show"),
406 $builder::SEC_PEER_FEEDBACK,
411 $this->
lng->txt(
"exc_received_feedback"),
417 $builder->addProperty(
418 $builder::SEC_PEER_FEEDBACK,
419 $lng->
txt(
"exc_received_peer_feedback"),
420 $lng->
txt(
"exc_peer_review_show_received_none")
426 $builder->addProperty(
427 $builder::SEC_PEER_FEEDBACK,
428 $lng->
txt(
"exc_peer_feedback_status"),
429 $lng->
txt(
"exc_peer_review_show_missing")
433 $ilCtrl->setParameterByClass(
"ilExPeerReviewGUI",
"ass_id",
"");
439 return ($this->submission->isOwner() &&
440 $this->ass->afterDeadlineStrict() &&
441 (!$this->ass->getPeerReviewDeadline() ||
442 $this->ass->getPeerReviewDeadline() > time()));
447 return ($this->submission->isTutor() ||
448 ($this->submission->isOwner() &&
449 $this->ass->afterDeadlineStrict() &&
450 (!$this->ass->getPeerReviewDeadline() ||
451 $this->ass->getPeerReviewDeadline() < time())));
465 $this->tabs_gui->activateTab(
"give_feedback");
471 $peer_items = $this->submission->getPeerReview()->getPeerReviewsByGiver($this->submission->getUserId());
472 if ($peer_items === []) {
473 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"exc_peer_review_no_peers"),
true);
477 $tpl->
setTitle($this->ass->getTitle() .
": " . $lng->
txt(
"exc_peer_review_given"));
479 $this->gui->permanentLink()->setGivenFeedbackPermanentLink();
483 $tpl->
setContent($this->gui->ui()->renderer()->render($panel));
497 $this->tabs_gui->activateTab(
"receive_feedback");
500 (!$this->submission->isTutor() &&
501 $this->submission->getPeerReview()->getNumberOfMissingFeedbacksForReceived())) {
505 $this->gui->permanentLink()->setReceivedFeedbackPermanentLink();
511 $peer_items = $this->submission->getPeerReview()->getPeerReviewsByPeerId($this->submission->getUserId(), !$this->submission->isTutor());
512 if ($peer_items === []) {
514 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"exc_peer_review_no_peers_reviewed_yet"),
true);
515 $ilCtrl->redirect($this,
"returnToParent");
518 $tpl->
setTitle($this->ass->getTitle() .
": " . $lng->
txt(
"exc_peer_review_show"));
524 $tpl->
setContent($this->gui->ui()->renderer()->render($panel));
529 bool $a_by_peer =
false 534 if ($this->submission->isTutor()) {
536 $user_title = $a_by_peer
537 ? $lng->
txt(
"exc_peer_review_recipient")
538 : $lng->
txt(
"exc_peer_review_giver");
540 "prop" => $lng->
txt(
"name"),
555 $submission =
new ilExSubmission($this->ass, $this->submission->getUserId());
559 "prop" => $file_info[
"last_submission"][
"txt"],
560 "value" => $file_info[
"last_submission"][
"value"] .
565 if ($sub_data ===
'' || $sub_data ===
'0') {
566 $sub_data =
'<a href="' . $file_info[
"files"][
"download_url"] .
'">' . $lng->
txt(
"download") .
'</a>';
569 "prop" => $lng->
txt(
"exc_submission"),
574 $lng->
txt(
"exc_your_submission"),
579 foreach ($a_peer_items as $peer) {
582 $giver_id = $this->submission->getUserId();
583 $peer_id = $peer[
"peer_id"];
584 $id_title = $lng->
txt(
"exc_peer_review_recipient");
590 $giver_id = $peer[
"giver_id"];
591 $peer_id = $this->submission->getUserId();
592 $id_title = $lng->
txt(
"exc_peer_review_giver");
593 $user_id = $giver_id;
597 if ($this->submission->isTutor()) {
599 } elseif (!$this->ass->hasPeerReviewPersonalized()) {
600 $id_value = $peer[
"seq"];
617 "prop" => $file_info[
"last_submission"][
"txt"],
618 "value" => $file_info[
"last_submission"][
"value"] .
623 if ($sub_data ===
'' || $sub_data ===
'0') {
624 if (isset($file_info[
"files"][
"download_url"])) {
625 $sub_data =
'<a href="' . $file_info[
"files"][
"download_url"] .
'">' . $lng->
txt(
"download") .
'</a>';
629 "prop" => $lng->
txt(
"exc_submission"),
637 $values = $this->submission->getPeerReview()->getPeerReviewValues($giver_id, $peer_id);
639 foreach ($this->ass->getPeerReviewCriteriaCatalogueItems() as $item) {
640 $crit_id = $item->getId()
644 $item->setPeerReviewContext(
650 $title = $item->getTitle();
651 $html = $item->getHTML($values[$crit_id] ?? null);
653 "prop" => $title ?:
" ",
654 "value" => $html ?:
" " 658 $id_title .
": " . $id_value,
663 return $this->gui->ui()->factory()->panel()->standard(
665 ? $this->
lng->txt(
"exc_received_feedback")
666 : $this->
lng->txt(
"exc_given_feedback"),
676 $f = $this->gui->ui()->factory();
677 $r = $this->gui->ui()->renderer();
678 $tpl = new \ilTemplate(
"tpl.panel_items.html",
true,
true,
"Modules/Exercise/PeerReview");
679 foreach ($props as $prop) {
687 $mess_html =
$r->render(
$f->divider()->horizontal()) .
688 $mess_gui->getWidget();
691 return $f->panel()->sub(
693 $f->legacy($tpl->
get() . $mess_html)
703 foreach ($a_submission->
getFiles() as $file) {
705 return '<div class="warning">' . $lng->
txt(
"exc_late_submission") .
'</div>';
718 $this->tabs_gui->activateTab(
"give_feedback");
723 $peer_items = $this->submission->getPeerReview()->getPeerReviewsByGiver($this->submission->getUserId());
724 if ($peer_items === []) {
725 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"exc_peer_review_no_peers"),
true);
729 $missing = $this->submission->getPeerReview()->getNumberOfMissingFeedbacksForReceived();
730 if ($missing !== 0) {
731 $dl = $this->ass->getPeerReviewDeadline();
732 if (!$dl || $dl < time()) {
733 $this->tpl->setOnScreenMessage(
'info', sprintf($this->
lng->txt(
"exc_peer_review_missing_info"), $missing));
735 $this->tpl->setOnScreenMessage(
'info', sprintf(
736 $this->
lng->txt(
"exc_peer_review_missing_info_deadline"),
752 $this->submission->getUserId(),
755 $tpl->
setContent($this->gui->ui()->renderer()->render($panel));
765 $this->fstorage->
create();
768 $f = $this->gui->ui()->factory();
771 foreach ($peer_data as $item) {
778 $row[
"giver_id"] = $item[
"giver_id"];
779 $row[
"peer_id"] = $item[
"peer_id"];
780 $row[
"tstamp"] = $item[
"tstamp"];
783 $row[
"seq"] = $item[
"seq"];
789 $row[
"valid"] = $all_empty =
true;
791 $values = $submission->
getPeerReview()->getPeerReviewValues($item[
"giver_id"], $item[
"peer_id"]);
792 foreach ($this->ass->getPeerReviewCriteriaCatalogueItems() as $crit) {
793 $crit_id = $crit->getId()
796 $crit->setPeerReviewContext(
801 if (!$crit->validate($values[$crit_id] ?? null)) {
802 $row[
"valid"] =
false;
804 if ($crit->hasValue($values[$crit_id] ?? null)) {
809 $row[
"valid"] =
false;
811 if (!$row[
"valid"]) {
817 if (isset($row[
"seq"])) {
818 $title = $this->
lng->txt(
"exc_peer_review_recipient") .
" " . $row[
"seq"];
820 $title = $row[
"name"];
823 if ($row[
"tstamp"]) {
827 $props[$lng->
txt(
"last_update")] = $row[
"tstamp"];
829 $props[$lng->
txt(
"valid")] = $row[
"valid"]
830 ? $this->
lng->txt(
"yes")
831 : $this->
lng->txt(
"no");
833 $ilCtrl->setParameter($this,
"peer_id", $row[
"peer_id"]);
836 $this->
lng->txt(
"edit"),
837 $ilCtrl->getLinkTarget($this,
"editPeerReviewItem")
840 $ilCtrl->setParameter($this,
"pid",
"");
842 $items[] =
$f->item()->standard(
844 )->withProperties($props)
845 ->withActions(
$f->dropdown()->standard($actions));
848 $group =
$f->item()->group(
"", $items);
849 return $f->panel()->listing()->standard(
850 $this->
lng->txt(
"exc_peer_review_give"),
860 $this->tabs_gui->activateTab(
"give_feedback");
863 $this->
ctrl->redirectByClass(self::class,
"showGivenPeerReview");
871 if ($a_form === null) {
875 $sep = $this->gui->ui()->renderer()->render($this->gui->ui()->factory()->divider()->horizontal());
880 if ($peer_state->isReceivedFeedbackAccessible()) {
882 $this->
user->getId(),
885 $message_html = $sep . $message_gui->getListHTML();
888 $this->gui->permanentLink()->setGivenFeedbackPermanentLink();
890 $tpl->
setContent($a_form->getHTML() . $message_html);
895 $this->
ctrl->setParameter($this,
"giver_id", $giver_id);
896 $this->
ctrl->setParameter($this,
"peer_id", $peer_id);
897 $pr = $this->domain->peerReview($this->ass);
898 $gui = $this->notes->gui()->getMessagesGUI(
900 $this->ass->getExerciseId(),
901 $pr->getReviewId($giver_id, $peer_id),
904 if (!$this->ass->hasPeerReviewPersonalized()) {
905 if ($giver_id === $this->
user->getId()) {
906 $counterpart_name = $this->
lng->txt(
"exc_peer_review_recipient");
908 $counterpart_name = $this->
lng->txt(
"exc_peer_review_giver");
910 $gui->setAnonymised(
true, $counterpart_name);
913 $gui->addObserver(
function (
919 ) use ($giver_id, $peer_id) {
937 if ($action !==
"new") {
940 $note = $this->notes->domain()->getById($note_id);
941 $text = $note->getText();
943 if ($note->getAuthor() === $giver_id) {
944 $this->
notification->sendMessageFromPeerfeedbackGiverNotification(
950 $this->
notification->sendMessageFromPeerfeedbackRecipientNotification(
962 $peer_items = $this->submission->getPeerReview()->getPeerReviewsByGiver($this->submission->getUserId());
963 foreach ($peer_items as $item) {
964 if ($item[
"peer_id"] == $a_peer_id) {
980 $text = array_shift($text);
981 if (trim($text[
"atext"]) !==
'' && trim($text[
"atext"]) !==
'0') {
999 $peer_items = $this->submission->getPeerReview()->getPeerReviewsByGiver($this->submission->getUserId());
1001 foreach ($peer_items as $item) {
1002 if ($item[
"peer_id"] == $a_peer_id) {
1008 $ilCtrl->saveParameter($this,
"peer_id");
1011 $form->setFormAction($ilCtrl->getFormAction($this,
"updatePeerReview"));
1013 $form->setTitle($this->ass->getTitle() .
": " . $lng->
txt(
"exc_peer_review_give"));
1016 if (!$this->ass->hasPeerReviewPersonalized()) {
1017 $id_title = $lng->
txt(
"id");
1018 $id_value = $peer[
"seq"];
1020 $id_title = $lng->
txt(
"exc_peer_review_recipient");
1024 $id->setValue($id_value);
1025 $form->addItem(
$id);
1033 $last_sub->setValue($file_info[
"last_submission"][
"value"] .
1035 $form->addItem($last_sub);
1038 if (($sub_data ===
'' || $sub_data ===
'0') && isset($file_info[
"files"][
"download_url"])) {
1039 $sub_data =
'<a href="' . $file_info[
"files"][
"download_url"] .
'">' . $lng->
txt(
"download") .
'</a>';
1043 $sub->setValue($sub_data);
1044 $form->addItem($sub);
1049 $input->setTitle($lng->
txt(
"exc_peer_review"));
1050 $form->addItem($input);
1052 $values = $this->submission->getPeerReview()->getPeerReviewValues($this->submission->getUserId(), $a_peer_id);
1054 foreach ($this->ass->getPeerReviewCriteriaCatalogueItems() as $item) {
1055 $crit_id = $item->getId()
1059 $item->setPeerReviewContext(
1061 $this->submission->getUserId(),
1065 $item->addToPeerReviewForm($values[$crit_id] ?? null);
1068 $form->addCommandButton(
"updatePeerReview", $lng->
txt(
"save"));
1069 $form->addCommandButton(
"editPeerReview", $lng->
txt(
"cancel"));
1081 !$this->requested_peer_id ||
1082 !$this->requested_crit_id ||
1083 !$ilCtrl->isAsynch()) {
1089 $giver_id = $ilUser->getId();
1091 if (!is_numeric($crit_id)) {
1096 $crit->setPeerReviewContext($this->ass, $giver_id, $peer_id);
1097 $html = $crit->updateFromAjax();
1119 if ($form->checkInput()) {
1123 foreach ($this->ass->getPeerReviewCriteriaCatalogueItems() as $item) {
1124 $item->setPeerReviewContext(
1126 $this->submission->getUserId(),
1130 $value = $item->importFromPeerReviewForm();
1131 if ($value !== null) {
1132 $crit_id = $item->getId()
1135 $values[$crit_id] = $value;
1137 if (!$item->validate($value)) {
1143 $this->submission->getPeerReview()->updatePeerReview($peer_id, $values);
1147 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"exc_peer_review_updated"),
true);
1148 $ilCtrl->redirect($this,
"editPeerReview");
1150 $this->tpl->setOnScreenMessage(
'failure', $lng->
txt(
"form_input_not_valid"));
1154 $form->setValuesByPost();
1164 $this->submission->getUserIds(),
1165 $this->submission->hasSubmitted(),
1166 $this->submission->validatePeerReviews()
1183 if (!is_numeric($crit_id)) {
1189 $crit->setPeerReviewContext($this->ass, $giver_id, $peer_id);
1190 $file = $crit->getFileByHash();
1195 $ilCtrl->redirect($this,
"returnToParent");
1209 !$this->ass->getPeerReview()) {
1215 "showPeerReviewOverview",
1220 $panel_data = $tbl->getPanelInfo();
1221 if (is_array($panel_data) && count($panel_data) > 0) {
1222 $ptpl =
new ilTemplate(
"tpl.exc_peer_review_overview_panel.html",
true,
true,
"Modules/Exercise");
1223 foreach ($panel_data as $item) {
1224 $ptpl->setCurrentBlock(
"user_bl");
1225 foreach ($item[
"value"] as $user) {
1226 $ptpl->setVariable(
"USER", $user);
1227 $ptpl->parseCurrentBlock();
1230 $ptpl->setCurrentBlock(
"item_bl");
1231 $ptpl->setVariable(
"TITLE", $item[
"title"]);
1232 $ptpl->parseCurrentBlock();
1235 $f = $this->gui->ui()->factory();
1236 $r = $this->gui->ui()->renderer();
1237 $p =
$f->panel()->standard(
1238 $this->
lng->txt(
"exc_peer_review_overview_invalid_users"),
1239 $f->legacy($ptpl->get())
1242 $panel =
$r->render($p);
1255 !$this->ass->getPeerReview()) {
1259 $ilTabs->clearTargets();
1262 $cgui->setFormAction($ilCtrl->getFormAction($this));
1263 $cgui->setHeaderText(sprintf($this->
lng->txt(
"exc_peer_review_reset_sure"), $this->ass->getTitle()));
1264 $cgui->setCancel($this->
lng->txt(
"cancel"),
"showPeerReviewOverview");
1265 $cgui->setConfirm($this->
lng->txt(
"delete"),
"resetPeerReview");
1275 !$this->ass->getPeerReview()) {
1280 $all_giver_ids = $peer_review->resetPeerReviews();
1282 if (is_array($all_giver_ids)) {
1285 if (
$exercise->isCompletionBySubmissionEnabled() &&
1287 foreach ($all_giver_ids as $user_id) {
1290 $pgui->handlePeerReviewChange();
1295 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"exc_peer_review_reset_done"),
true);
1296 $ilCtrl->redirect($this,
"showPeerReviewOverview");
static _replaceMediaObjectImageSrc(string $a_text, int $a_direction=0, string $nic='')
Replaces image source from mob image urls with the mob id or replaces mob id with the correct image s...
ILIAS Exercise InternalGUIService $gui
editPeerReviewItemObject(ilPropertyFormGUI $a_form=null)
static getOverviewContent(ilInfoScreenGUI $a_info, ilExSubmission $a_submission)
getFiles(array $a_file_ids=null, bool $a_only_valid=false, string $a_min_timestamp=null, bool $print_versions=false)
Get submission items (not only files)
setCurrentBlock(string $blockname=self::DEFAULT_BLOCK)
Sets the template to the given block.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
txt(string $a_topic, string $a_default_lang_fallback_mod="")
gets the text for a given topic if the topic is not in the list, the topic itself with "-" will be re...
getReceivedFeedbackPanel(array $a_peer_items, bool $a_by_peer=false)
ILIAS Exercise InternalDomainService $domain
setTitle(string $a_title, bool $hidden=false)
Sets title in standard template.
Class ChatMainBarProvider .
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
addProperty(string $a_name, string $a_value, string $a_link="")
add a property to current section
static formatDate(ilDateTime $date, bool $a_skip_day=false, bool $a_include_wd=false, bool $include_seconds=false)
string $requested_crit_id
parseCurrentBlock(string $blockname=self::DEFAULT_BLOCK)
Parses the given block.
ILIAS Notes Service $notes
getPeerReviewUploadPath(int $a_peer_id, int $a_giver_id, ?int $a_crit_id=null)
Get pear review upload path (each peer handled in a separate path)
static getInstanceByType(string $a_type)
isValidPeer(int $a_peer_id)
ilExSubmission $submission
static deliverFileLegacy(string $a_file, ?string $a_filename=null, ?string $a_mime=null, ?bool $isInline=false, ?bool $removeAfterDelivery=false, ?bool $a_exit_after=true)
confirmResetPeerReviewObject()
getMessagesGUI(int $giver_id, int $peer_id)
getSubPanel(string $title, array $props, ?ilMessageGUI $mess_gui=null)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
showPeerReviewOverviewObject()
get(string $part=self::DEFAULT_BLOCK)
Renders the given block and returns the html string.
static getNamePresentation( $a_user_id, bool $a_user_image=false, bool $a_profile_link=false, string $a_profile_back_link='', bool $a_force_first_lastname=false, bool $a_omit_login=false, bool $a_sortable=true, bool $a_return_data_array=false, $a_ctrl_path='ilpublicuserprofilegui')
Default behaviour is:
showReceivedPeerReviewObject()
getLateSubmissionInfo(ilExSubmission $a_submission)
hasPeerReviewPersonalized()
getDownloadedFilesInfoForTableGUIS()
string $requested_review_crit_id
int $requested_review_peer_id
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getInstanceByIds(int $a_ass_id, int $a_user_id=0)
showGivenPeerReviewObject()
getSubmissionContent(ilExSubmission $a_submission)
__construct(ilExAssignment $a_ass, ilExSubmission $a_submission=null)
getOnLoadCodeForAsynch()
Get js onload code for ajax calls.
buildSubmissionPropertiesAndActions(\ILIAS\Exercise\Assignment\PropertyAndActionBuilderUI $builder)
getPeerReviewReceiverPanel(ilExAssignment $ass, int $user_id, array $peer_data)
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...
create()
Create directory.
observeMessageAction(int $giver_id, int $peer_id, int $note_id, string $action)
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
int $requested_review_giver_id
const PEER_REVIEW_VALID_NONE
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
hasPeerReviewFileUpload()
File System Explorer GUI class.
downloadPeerReviewObject()
ilFSStorageExercise $fstorage
static _lookupType(int $id, bool $reference=false)
ILIAS Exercise Notification NotificationManager $notification
setVariable(string $variable, $value='')
Sets the given variable to the given value.
ilGlobalPageTemplate $tpl
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
setContent(string $a_html)
Sets content for standard template.
initPeerReviewItemForm(int $a_peer_id)
setTableId(string $a_val)
static getInstanceById(int $a_id)