29 protected \ILIAS\Exercise\PeerReview\Criteria\CriteriaFileManager
$criteria_file;
30 protected \ILIAS\Exercise\Submission\SubmissionManager
$subm;
32 protected \ILIAS\Exercise\Notification\NotificationManager
$notification;
33 protected \ILIAS\Notes\Service
$notes;
34 protected \ILIAS\Exercise\InternalGUIService
$gui;
35 protected \ILIAS\Exercise\InternalDomainService
$domain;
55 $service = $DIC->exercise()->internal();
58 $this->
user = $this->domain->user();
59 $this->
ctrl = $this->gui->ctrl();
60 $this->tabs_gui = $this->gui->tabs();
61 $this->
lng = $this->domain->lng();
62 $this->tpl = $this->gui->ui()->mainTemplate();
65 $this->submission = $a_submission;
67 $request = $DIC->exercise()->internal()->gui()->request();
68 $this->requested_review_giver_id = $request->getReviewGiverId();
69 $this->requested_review_peer_id = $request->getReviewPeerId();
70 $this->requested_review_crit_id = $request->getReviewCritId();
71 $this->requested_peer_id = $request->getPeerId();
72 $this->requested_giver_id = $request->getGiverId();
73 $this->requested_crit_id = $request->getCritId();
74 $this->gui = $DIC->exercise()->internal()->gui();
75 $this->notes = $DIC->notes();
76 $this->
ctrl->saveParameter($this, array(
"peer_id"));
77 $this->
notification = $this->domain->notification($request->getRefId());
78 $this->subm = $this->domain->submission($a_ass->
getId());
79 $this->criteria_file = $this->domain->peerReview()->criteriaFile($a_ass->
getId());
91 if (!$this->ass->getPeerReview()) {
95 $class = $ilCtrl->getNextClass($this);
96 $cmd = $ilCtrl->getCmd(
"showpeerreviewoverview");
102 $peer_review->updatePeerReviewTimestamp($this->requested_peer_id);
105 $rating_gui->setObject(
111 $this->
ctrl->forwardCommand($rating_gui);
112 $ilCtrl->redirect($this,
"editPeerReview");
115 case "ilexsubmissiontextgui":
116 $ilTabs->clearTargets();
117 if (!$this->submission->isTutor()) {
118 $ilTabs->setBackTarget(
120 $ilCtrl->getLinkTarget($this,
"editPeerReview")
122 $this->
ctrl->setReturn($this,
"editPeerReview");
124 $ilTabs->setBackTarget(
126 $ilCtrl->getLinkTarget($this,
"showGivenPeerReview")
128 $this->
ctrl->setReturn($this,
"showGivenPeerReview");
131 $ilCtrl->forwardCommand($gui);
136 $this->requested_giver_id,
137 $this->requested_peer_id
139 $ilCtrl->forwardCommand($gui);
143 $this->{$cmd .
"Object"}();
150 $this->
ctrl->returnToParent($this);
162 $lng = $DIC->language();
163 $ilCtrl = $DIC->ctrl();
164 $gui = $DIC->exercise()
178 if ($state->hasSubmissionEndedForAllUsers() &&
179 $ass->getPeerReview()) {
180 $ilCtrl->setParameterByClass(
"ilExPeerReviewGUI",
"ass_id", $a_submission->
getAssignment()->getId());
182 $nr_missing_fb = $a_submission->
getPeerReview()->getNumberOfMissingFeedbacksForReceived();
187 if ($state->isPeerReviewAllowed()) {
189 if ($ass->getPeerReviewDeadline()) {
190 $dl_info =
" (" . sprintf(
191 $lng->
txt(
"exc_peer_review_deadline_info_button"),
192 $state->getPeerReviewDeadlinePresentation()
197 $lng->
txt(
"exc_peer_review_give"),
198 $ilCtrl->getLinkTargetByClass(array(ilAssignmentPresentationGUI::class,
"ilExSubmissionGUI",
"ilExPeerReviewGUI"),
"editPeerReview")
200 if ($nr_missing_fb) {
203 $edit_pc = $b->render();
204 } elseif ($ass->getPeerReviewDeadline()) {
205 $edit_pc = $lng->
txt(
"exc_peer_review_deadline_reached");
209 if ((!$ass->getPeerReviewDeadline() ||
210 $ass->getPeerReviewDeadline() < time())) {
212 if ($ass->getPeerReviewDeadline() &&
215 $lng->
txt(
"exc_peer_review_given"),
216 $ilCtrl->getLinkTargetByClass(array(ilAssignmentPresentationGUI::class,
"ilExSubmissionGUI",
"ilExPeerReviewGUI"),
"showGivenPeerReview")
218 $view_pc =
$b->render() .
" ";
222 if (!$nr_missing_fb) {
224 $received = (bool)
sizeof($a_submission->
getPeerReview()->getPeerReviewsByPeerId($a_submission->
getUserId(),
true));
227 $lng->
txt(
"exc_peer_review_show"),
228 $ilCtrl->getLinkTargetByClass(array(ilAssignmentPresentationGUI::class,
"ilExSubmissionGUI",
"ilExPeerReviewGUI"),
"showReceivedPeerReview")
230 $view_pc .=
$b->render();
234 $view_pc .= $lng->
txt(
"exc_peer_review_show_received_none");
239 $view_pc .= $lng->
txt(
"exc_peer_review_show_missing");
249 $sep = ($edit_pc !=
"" && $view_pc !=
"")
253 $a_info->
addProperty($lng->
txt(
"exc_peer_review"), $edit_pc . $sep . $view_pc);
255 $ilCtrl->setParameterByClass(
"ilExPeerReviewGUI",
"ass_id",
"");
261 $f = $this->gui->ui()->factory();
266 $state = $this->domain->assignment()->state($ass->
getId(), $submission->
getUserId());
274 if ($state->hasSubmissionEndedForAllUsers() &&
276 $ilCtrl->setParameterByClass(
"ilExPeerReviewGUI",
"ass_id", $submission->
getAssignment()->getId());
278 $nr_missing_fb = $submission->
getPeerReview()->getNumberOfMissingFeedbacksForReceived();
280 $builder->addAdditionalHeadProperty(
281 $this->
lng->txt(
"exc_given_feedback"),
283 $this->
lng->txt(
"exc_x_of_y") .
" " .
287 $builder->addAdditionalHeadProperty(
288 $this->
lng->txt(
"exc_received_feedback"),
289 $submission->
getPeerReview()->countReceivedFeedbacks($submission->getUserid())
295 if ($state->isPeerReviewAllowed()) {
296 $url = $ilCtrl->getLinkTargetByClass(array(ilAssignmentPresentationGUI::class,
"ilExSubmissionGUI",
"ilExPeerReviewGUI"),
"editPeerReview");
297 $button =
$f->button()->primary(
298 $lng->
txt(
"exc_peer_review_give"),
303 $this->
lng->txt(
"exc_given_feedback"),
306 $builder->setMainAction(
307 $builder::SEC_PEER_FEEDBACK,
311 $deadline = $state->getPeerReviewDeadlinePresentation();
313 $deadline = $lng->
txt(
"exc_no_peer_feedback_deadline");
315 $builder->addProperty(
316 $builder::SEC_PEER_FEEDBACK,
317 $lng->
txt(
"exc_peer_review_deadline"),
321 $edit_pc = $lng->
txt(
"exc_peer_review_deadline_reached");
322 $builder->addProperty(
323 $builder::SEC_PEER_FEEDBACK,
324 $lng->
txt(
"exc_peer_review_deadline"),
325 $lng->
txt(
"exc_peer_review_deadline_reached")
329 $builder->addProperty(
330 $builder::SEC_SCHEDULE,
331 $lng->
txt(
"exc_peer_review_deadline"),
332 $state->getPeerReviewDeadlinePresentation()
342 $url = $ilCtrl->getLinkTargetByClass(array(ilAssignmentPresentationGUI::class,
"ilExSubmissionGUI",
"ilExPeerReviewGUI"),
"showGivenPeerReview");
343 $link =
$f->link()->standard(
344 $lng->
txt(
"exc_peer_review_given"),
348 $builder::SEC_PEER_FEEDBACK,
353 $this->
lng->txt(
"exc_given_feedback"),
358 if ($nr_missing_fb <= 0) {
360 $received = (bool)
sizeof($submission->
getPeerReview()->getPeerReviewsByPeerId($submission->
getUserId(),
true));
362 $url = $ilCtrl->getLinkTargetByClass(array(ilAssignmentPresentationGUI::class,
"ilExSubmissionGUI",
"ilExPeerReviewGUI"),
"showReceivedPeerReview");
363 $link =
$f->link()->standard(
364 $lng->
txt(
"exc_peer_review_show"),
368 $builder::SEC_PEER_FEEDBACK,
373 $this->
lng->txt(
"exc_received_feedback"),
379 $builder->addProperty(
380 $builder::SEC_PEER_FEEDBACK,
381 $lng->
txt(
"exc_received_peer_feedback"),
382 $lng->
txt(
"exc_peer_review_show_received_none")
388 $builder->addProperty(
389 $builder::SEC_PEER_FEEDBACK,
390 $lng->
txt(
"exc_peer_feedback_status"),
391 $lng->
txt(
"exc_peer_review_show_missing")
395 $ilCtrl->setParameterByClass(
"ilExPeerReviewGUI",
"ass_id",
"");
401 return ($this->submission->isOwner() &&
402 $this->ass->afterDeadlineStrict() &&
403 (!$this->ass->getPeerReviewDeadline() ||
404 $this->ass->getPeerReviewDeadline() > time()));
409 return ($this->submission->isTutor() ||
410 ($this->submission->isOwner() &&
411 $this->ass->afterDeadlineStrict() &&
412 (!$this->ass->getPeerReviewDeadline() ||
413 $this->ass->getPeerReviewDeadline() < time())));
427 $this->tabs_gui->activateTab(
"give_feedback");
433 $peer_items = $this->submission->getPeerReview()->getPeerReviewsByGiver($this->submission->getUserId());
434 if ($peer_items === []) {
435 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"exc_peer_review_no_peers"),
true);
439 $tpl->
setTitle($this->ass->getTitle() .
": " . $lng->
txt(
"exc_peer_review_given"));
441 $this->gui->permanentLink()->setGivenFeedbackPermanentLink();
445 $tpl->
setContent($this->gui->ui()->renderer()->render($panel));
459 $this->tabs_gui->activateTab(
"receive_feedback");
462 (!$this->submission->isTutor() &&
463 $this->submission->getPeerReview()->getNumberOfMissingFeedbacksForReceived())) {
467 $this->gui->permanentLink()->setReceivedFeedbackPermanentLink();
473 $peer_items = $this->submission->getPeerReview()->getPeerReviewsByPeerId($this->submission->getUserId(), !$this->submission->isTutor());
474 if ($peer_items === []) {
476 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"exc_peer_review_no_peers_reviewed_yet"),
true);
477 $ilCtrl->redirect($this,
"returnToParent");
480 $tpl->
setTitle($this->ass->getTitle() .
": " . $lng->
txt(
"exc_peer_review_show"));
486 $tpl->
setContent($this->gui->ui()->renderer()->render($panel));
491 bool $a_by_peer =
false 496 if ($this->submission->isTutor()) {
498 $user_title = $a_by_peer
499 ? $lng->
txt(
"exc_peer_review_recipient")
500 : $lng->
txt(
"exc_peer_review_giver");
502 "prop" => $lng->
txt(
"name"),
517 $submission =
new ilExSubmission($this->ass, $this->submission->getUserId());
518 $file_info = $submission->getDownloadedFilesInfoForTableGUIS();
521 "prop" => $file_info[
"last_submission"][
"txt"],
522 "value" => $file_info[
"last_submission"][
"value"] .
527 if ($sub_data ===
'' || $sub_data ===
'0') {
528 $sub_data =
'<a href="' . $file_info[
"files"][
"download_url"] .
'">' . $lng->
txt(
"download") .
'</a>';
531 "prop" => $lng->
txt(
"exc_submission"),
536 $lng->
txt(
"exc_your_submission"),
541 foreach ($a_peer_items as $peer) {
544 $giver_id = $this->submission->getUserId();
545 $peer_id = $peer[
"peer_id"];
546 $id_title = $lng->
txt(
"exc_peer_review_recipient");
552 $giver_id = $peer[
"giver_id"];
553 $peer_id = $this->submission->getUserId();
554 $id_title = $lng->
txt(
"exc_peer_review_giver");
559 if ($this->submission->isTutor()) {
561 } elseif (!$this->ass->hasPeerReviewPersonalized()) {
562 $id_value = $peer[
"seq"];
576 $file_info = $submission->getDownloadedFilesInfoForTableGUIS();
579 "prop" => $file_info[
"last_submission"][
"txt"],
580 "value" => $file_info[
"last_submission"][
"value"] .
585 if ($sub_data ===
'' || $sub_data ===
'0') {
586 if (isset($file_info[
"files"][
"download_url"])) {
587 $sub_data =
'<a href="' . $file_info[
"files"][
"download_url"] .
'">' . $lng->
txt(
"download") .
'</a>';
591 "prop" => $lng->
txt(
"exc_submission"),
599 $values = $this->submission->getPeerReview()->getPeerReviewValues($giver_id, $peer_id);
601 foreach ($this->ass->getPeerReviewCriteriaCatalogueItems() as $item) {
602 $crit_id = $item->getId()
606 $item->setPeerReviewContext(
612 $title = $item->getTitle();
613 $html = $item->getHTML($values[$crit_id] ??
null);
615 "prop" => $title ?:
" ",
616 "value" => $html ?:
" " 620 $id_title .
": " . $id_value,
625 return $this->gui->ui()->factory()->panel()->standard(
627 ? $this->
lng->txt(
"exc_received_feedback")
628 : $this->
lng->txt(
"exc_given_feedback"),
638 $f = $this->gui->ui()->factory();
639 $r = $this->gui->ui()->renderer();
640 $tpl = new \ilTemplate(
"tpl.panel_items.html",
true,
true,
"components/ILIAS/Exercise/PeerReview");
641 foreach ($props as $prop) {
649 $mess_html =
$r->render(
$f->divider()->horizontal()) .
650 $mess_gui->getWidget();
653 return $f->panel()->sub(
655 $f->legacy()->content($tpl->
get() . $mess_html)
665 foreach ($this->subm->getSubmissionsOfUser($a_submission->
getUserId()) as $sub) {
666 if ($sub->getLate()) {
667 return '<div class="warning">' . $lng->
txt(
"exc_late_submission") .
'</div>';
680 $this->tabs_gui->activateTab(
"give_feedback");
685 $peer_items = $this->submission->getPeerReview()->getPeerReviewsByGiver($this->submission->getUserId());
686 if ($peer_items === []) {
687 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"exc_peer_review_no_peers"),
true);
691 $missing = $this->submission->getPeerReview()->getNumberOfMissingFeedbacksForReceived();
692 if ($missing !== 0) {
693 $dl = $this->ass->getPeerReviewDeadline();
694 if (!$dl || $dl < time()) {
695 $this->tpl->setOnScreenMessage(
'info', sprintf($this->
lng->txt(
"exc_peer_review_missing_info"), $missing));
697 $this->tpl->setOnScreenMessage(
'info', sprintf(
698 $this->
lng->txt(
"exc_peer_review_missing_info_deadline"),
707 $this->submission->getUserId(),
710 $tpl->
setContent($this->gui->ui()->renderer()->render($panel));
719 $f = $this->gui->ui()->factory();
722 foreach ($peer_data as $item) {
729 $row[
"giver_id"] = $item[
"giver_id"];
730 $row[
"peer_id"] = $item[
"peer_id"];
731 $row[
"tstamp"] = $item[
"tstamp"];
734 $row[
"seq"] = $item[
"seq"];
740 $row[
"valid"] = $all_empty =
true;
742 $values = $submission->
getPeerReview()->getPeerReviewValues($item[
"giver_id"], $item[
"peer_id"]);
743 foreach ($this->ass->getPeerReviewCriteriaCatalogueItems() as $crit) {
744 $crit_id = $crit->getId()
747 $crit->setPeerReviewContext(
752 if (!$crit->validate($values[$crit_id] ??
null)) {
753 $row[
"valid"] =
false;
755 if ($crit->hasValue($values[$crit_id] ?? null)) {
760 $row[
"valid"] =
false;
762 if (!$row[
"valid"]) {
768 if (isset($row[
"seq"])) {
769 $title = $this->
lng->txt(
"exc_peer_review_recipient") .
" " . $row[
"seq"];
771 $title = $row[
"name"];
774 if ($row[
"tstamp"]) {
778 $props[$lng->
txt(
"last_update")] = $row[
"tstamp"];
780 $props[$lng->
txt(
"valid")] = $row[
"valid"]
781 ? $this->
lng->txt(
"yes")
782 : $this->
lng->txt(
"no");
784 $ilCtrl->setParameter($this,
"peer_id", $row[
"peer_id"]);
787 $this->
lng->txt(
"edit"),
788 $ilCtrl->getLinkTarget($this,
"editPeerReviewItem")
791 $ilCtrl->setParameter($this,
"pid",
"");
793 $items[] =
$f->item()->standard(
795 )->withProperties($props)
796 ->withActions(
$f->dropdown()->standard($actions));
799 $group =
$f->item()->group(
"", $items);
800 return $f->panel()->listing()->standard(
801 $this->
lng->txt(
"exc_peer_review_give"),
811 $this->tabs_gui->activateTab(
"give_feedback");
814 $this->
ctrl->redirectByClass(self::class,
"showGivenPeerReview");
822 if ($a_form ===
null) {
826 $sep = $this->gui->ui()->renderer()->render($this->gui->ui()->factory()->divider()->horizontal());
831 if ($peer_state->isReceivedFeedbackAccessible()) {
833 $this->
user->getId(),
836 $message_html = $sep . $message_gui->getListHTML();
839 $this->gui->permanentLink()->setGivenFeedbackPermanentLink();
841 $tpl->
setContent($a_form->getHTML() . $message_html);
846 $this->
ctrl->setParameter($this,
"giver_id", $giver_id);
847 $this->
ctrl->setParameter($this,
"peer_id", $peer_id);
848 $pr = $this->domain->peerReview()->exPeerReview($this->ass);
849 $gui = $this->notes->gui()->getMessagesGUI(
851 $this->ass->getExerciseId(),
852 $pr->getReviewId($giver_id, $peer_id),
855 if (!$this->ass->hasPeerReviewPersonalized()) {
856 if ($giver_id === $this->
user->getId()) {
857 $counterpart_name = $this->
lng->txt(
"exc_peer_review_recipient");
859 $counterpart_name = $this->
lng->txt(
"exc_peer_review_giver");
861 $gui->setAnonymised(
true, $counterpart_name);
864 $gui->addObserver(
function (
870 ) use ($giver_id, $peer_id) {
888 if ($action !==
"new") {
891 $note = $this->notes->domain()->getById($note_id);
892 $text = $note->getText();
894 if ($note->getAuthor() === $giver_id) {
895 $this->
notification->sendMessageFromPeerfeedbackGiverNotification(
901 $this->
notification->sendMessageFromPeerfeedbackRecipientNotification(
913 $peer_items = $this->submission->getPeerReview()->getPeerReviewsByGiver($this->submission->getUserId());
914 foreach ($peer_items as $item) {
915 if ($item[
"peer_id"] == $a_peer_id) {
929 $sub = $this->subm->getSubmissionsOfUser($a_submission->
getUserId())->current();
931 if (trim($sub->getText()) !==
'' && trim($sub->getText()) !==
'0') {
949 $peer_items = $this->submission->getPeerReview()->getPeerReviewsByGiver($this->submission->getUserId());
951 foreach ($peer_items as $item) {
952 if ($item[
"peer_id"] == $a_peer_id) {
958 $ilCtrl->saveParameter($this,
"peer_id");
961 $form->setFormAction($ilCtrl->getFormAction($this,
"updatePeerReview"));
963 $form->setTitle($this->ass->getTitle() .
": " . $lng->
txt(
"exc_peer_review_give"));
966 if (!$this->ass->hasPeerReviewPersonalized()) {
967 $id_title = $lng->
txt(
"id");
968 $id_value = $peer[
"seq"];
970 $id_title = $lng->
txt(
"exc_peer_review_recipient");
974 $id->setValue($id_value);
980 $file_info = $submission->getDownloadedFilesInfoForTableGUIS();
983 $last_sub->setValue($file_info[
"last_submission"][
"value"] .
985 $form->addItem($last_sub);
988 if (($sub_data ===
'' || $sub_data ===
'0') && isset($file_info[
"files"][
"download_url"])) {
989 $sub_data =
'<a href="' . $file_info[
"files"][
"download_url"] .
'">' . $lng->
txt(
"download") .
'</a>';
993 $sub->setValue($sub_data);
994 $form->addItem($sub);
999 $input->setTitle($lng->
txt(
"exc_peer_review"));
1000 $form->addItem($input);
1002 $values = $this->submission->getPeerReview()->getPeerReviewValues($this->submission->getUserId(), $a_peer_id);
1005 foreach ($this->ass->getPeerReviewCriteriaCatalogueItems() as $item) {
1006 $crit_id = $item->getId()
1010 $item->setPeerReviewContext(
1012 $this->submission->getUserId(),
1016 $item->addToPeerReviewForm($values[$crit_id] ??
null);
1019 $form->addCommandButton(
"updatePeerReview", $lng->
txt(
"save"));
1020 $form->addCommandButton(
"editPeerReview", $lng->
txt(
"cancel"));
1032 !$this->requested_peer_id ||
1033 !$this->requested_crit_id ||
1034 !$ilCtrl->isAsynch()) {
1040 $giver_id = $ilUser->getId();
1042 if (!is_numeric($crit_id)) {
1047 $crit->setPeerReviewContext($this->ass, $giver_id, $peer_id);
1048 $html = $crit->updateFromAjax();
1070 if ($form->checkInput()) {
1074 foreach ($this->ass->getPeerReviewCriteriaCatalogueItems() as $item) {
1075 $item->setPeerReviewContext(
1077 $this->submission->getUserId(),
1081 $value = $item->importFromPeerReviewForm();
1082 if ($value !==
null) {
1083 $crit_id = $item->getId()
1086 $values[$crit_id] = $value;
1088 if (!$item->validate($value)) {
1094 $this->submission->getPeerReview()->updatePeerReview($peer_id, $values);
1098 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"exc_peer_review_updated"),
true);
1099 $ilCtrl->redirect($this,
"editPeerReview");
1101 $this->tpl->setOnScreenMessage(
'failure', $lng->
txt(
"form_input_not_valid"));
1105 $form->setValuesByPost();
1115 $this->submission->getUserIds(),
1116 $this->submission->hasSubmitted(),
1117 $this->submission->validatePeerReviews()
1133 if (!is_numeric($crit_id)) {
1138 $file_crit_id = $crit_id;
1141 $crit->setPeerReviewContext($this->ass, $giver_id, $peer_id);
1142 $file = $crit->getFileByHash();
1144 $this->criteria_file->deliverFileOfReview(
1151 $ilCtrl->redirect($this,
"returnToParent");
1165 !$this->ass->getPeerReview()) {
1171 "showPeerReviewOverview",
1176 $panel_data = $tbl->getPanelInfo();
1177 if (is_array($panel_data) && count($panel_data) > 0) {
1178 $ptpl =
new ilTemplate(
"tpl.exc_peer_review_overview_panel.html",
true,
true,
"components/ILIAS/Exercise");
1179 foreach ($panel_data as $item) {
1180 $ptpl->setCurrentBlock(
"user_bl");
1181 foreach ($item[
"value"] as $user) {
1182 $ptpl->setVariable(
"USER", $user);
1183 $ptpl->parseCurrentBlock();
1186 $ptpl->setCurrentBlock(
"item_bl");
1187 $ptpl->setVariable(
"TITLE", $item[
"title"]);
1188 $ptpl->parseCurrentBlock();
1191 $f = $this->gui->ui()->factory();
1192 $r = $this->gui->ui()->renderer();
1193 $p =
$f->panel()->standard(
1194 $this->
lng->txt(
"exc_peer_review_overview_invalid_users"),
1195 $f->legacy()->content($ptpl->get())
1198 $panel =
$r->render($p);
1211 !$this->ass->getPeerReview()) {
1215 $ilTabs->clearTargets();
1218 $cgui->setFormAction($ilCtrl->getFormAction($this));
1219 $cgui->setHeaderText(sprintf($this->
lng->txt(
"exc_peer_review_reset_sure"), $this->ass->getTitle()));
1220 $cgui->setCancel($this->
lng->txt(
"cancel"),
"showPeerReviewOverview");
1221 $cgui->setConfirm($this->
lng->txt(
"delete"),
"resetPeerReview");
1231 !$this->ass->getPeerReview()) {
1236 $all_giver_ids = $peer_review->resetPeerReviews();
1238 if (is_array($all_giver_ids)) {
1241 if (
$exercise->isCompletionBySubmissionEnabled() &&
1243 foreach ($all_giver_ids as
$user_id) {
1246 $pgui->handlePeerReviewChange();
1251 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"exc_peer_review_reset_done"),
true);
1252 $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
static getOverviewContent(ilInfoScreenGUI $a_info, ilExSubmission $a_submission)
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.
Interface Observer Contains several chained tasks and infos about them.
__construct(ilExAssignment $a_ass, ?ilExSubmission $a_submission=null)
addProperty(string $a_name, string $a_value, string $a_link="")
add a property to current section
string $requested_crit_id
parseCurrentBlock(string $blockname=self::DEFAULT_BLOCK)
Parses the given block.
ILIAS Notes Service $notes
static getInstanceByType(string $a_type)
isValidPeer(int $a_peer_id)
ilExSubmission $submission
editPeerReviewItemObject(?ilPropertyFormGUI $a_form=null)
notification()
description: > Example for rendring a notification glyph.
confirmResetPeerReviewObject()
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
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()
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)
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...
ILIAS Exercise PeerReview Criteria CriteriaFileManager $criteria_file
observeMessageAction(int $giver_id, int $peer_id, int $note_id, string $action)
ILIAS Exercise Submission SubmissionManager $subm
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
static formatDate(ilDateTime $date, bool $a_skip_day=false, bool $a_include_wd=false, bool $include_seconds=false, ?ilObjUser $user=null,)
int $requested_review_giver_id
const PEER_REVIEW_VALID_NONE
Exercise submission //TODO: This class has many static methods related to delivered "files"...
downloadPeerReviewObject()
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)
static getInstanceById(int $a_id)