54        $this->
user = $DIC->user();
 
   56        $ilTabs = 
$DIC->tabs();
 
   61        $this->submission = $a_submission;
 
   65        $this->tabs_gui = $ilTabs;
 
   77        if (!$this->ass->getPeerReview()) {
 
   81        $class = 
$ilCtrl->getNextClass($this);
 
   82        $cmd = 
$ilCtrl->getCmd(
"showpeerreviewoverview");
 
   85            case "ilfilesystemgui":
 
   86                $ilCtrl->saveParameter($this, array(
"fu"));
 
   89                $parts = explode(
"__", 
$_GET[
"fu"]);
 
   90                $giver_id = $parts[0];
 
   98                $peer_items = $this->submission->getPeerReview()->getPeerReviewsByPeerId($peer_id, 
true);
 
   99                if (is_array($peer_items)) {
 
  100                    foreach ($peer_items as $item) {
 
  101                        if ($item[
"giver_id"] == $giver_id) {
 
  107                    $ilCtrl->redirect($this, 
"editPeerReview");
 
  110                $ilTabs->clearTargets();
 
  111                $ilTabs->setBackTarget(
 
  113                    $ilCtrl->getLinkTarget($this, 
"editPeerReview")
 
  116                include_once(
"./Modules/Exercise/classes/class.ilFSStorageExercise.php");
 
  120                include_once(
"./Services/FileSystem/classes/class.ilFileSystemGUI.php");
 
  121                $fs_gui = 
new ilFileSystemGUI($fstorage->getPeerReviewUploadPath($peer_id, $giver_id));
 
  122                $fs_gui->setTableId(
"excfbpeer");
 
  123                $fs_gui->setAllowDirectories(
false);
 
  124                $fs_gui->setTitle($this->ass->getTitle() . 
": " .
 
  125                    $lng->txt(
"exc_peer_review") . 
" - " .
 
  126                    $lng->txt(
"exc_peer_review_give"));
 
  127                $ret = $this->ctrl->forwardCommand($fs_gui);
 
  131                $this->ass->updatePeerReviewTimestamp((
int) $_REQUEST[
"peer_id"]);
 
  133                include_once(
"./Services/Rating/classes/class.ilRatingGUI.php");
 
  135                $rating_gui->setObject(
 
  138                    (
int) $_REQUEST[
"peer_id"],
 
  141                $this->ctrl->forwardCommand($rating_gui);
 
  142                $ilCtrl->redirect($this, 
"editPeerReview");
 
  145            case "ilexsubmissiontextgui":
 
  146                if (!$this->submission->isTutor()) {
 
  147                    $ilTabs->clearTargets();
 
  148                    $ilTabs->setBackTarget(
 
  150                        $ilCtrl->getLinkTarget($this, 
"editPeerReview")
 
  152                    $this->ctrl->setReturn($this, 
"editPeerReview");
 
  154                    $ilTabs->clearTargets();
 
  155                    $ilTabs->setBackTarget(
 
  157                        $ilCtrl->getLinkTarget($this, 
"showGivenPeerReview")
 
  159                    $this->ctrl->setReturn($this, 
"showGivenPeerReview");
 
  161                include_once 
"Modules/Exercise/classes/class.ilExSubmissionTextGUI.php";
 
  167                $this->{$cmd . 
"Object"}();
 
  174        $this->ctrl->returnToParent($this);
 
  184        include_once(
"./Modules/Exercise/classes/class.ilExcAssMemberState.php");
 
  194        if (
$state->hasSubmissionEndedForAllUsers() &&
 
  195            $ass->getPeerReview()) {
 
  196            $ilCtrl->setParameterByClass(
"ilExPeerReviewGUI", 
"ass_id", $a_submission->
getAssignment()->getId());
 
  198            $nr_missing_fb = $a_submission->
getPeerReview()->getNumberOfMissingFeedbacksForReceived();
 
  203            if (
$state->isPeerReviewAllowed()) {
 
  205                if (
$ass->getPeerReviewDeadline()) {
 
  206                    $dl_info = 
" (" . sprintf(
 
  207                        $lng->txt(
"exc_peer_review_deadline_info_button"),
 
  208                        $state->getPeerReviewDeadlinePresentation()
 
  213                $button->setPrimary($nr_missing_fb);
 
  214                $button->setCaption(
$lng->txt(
"exc_peer_review_give") . $dl_info, 
false);
 
  215                $button->setUrl(
$ilCtrl->getLinkTargetByClass(array(
"ilExSubmissionGUI", 
"ilExPeerReviewGUI"), 
"editPeerReview"));
 
  216                $edit_pc = $button->render();
 
  217            } elseif (
$ass->getPeerReviewDeadline()) {
 
  218                $edit_pc = 
$lng->txt(
"exc_peer_review_deadline_reached");
 
  222            if ((!
$ass->getPeerReviewDeadline() ||
 
  223                $ass->getPeerReviewDeadline() < time())) {
 
  225                if (
$ass->getPeerReviewDeadline() &&
 
  228                    $button->setCaption(
"exc_peer_review_given");
 
  229                    $button->setUrl(
$ilCtrl->getLinkTargetByClass(array(
"ilExSubmissionGUI", 
"ilExPeerReviewGUI"), 
"showGivenPeerReview"));
 
  230                    $view_pc = $button->render() . 
" ";
 
  234                if (!$nr_missing_fb) {
 
  236                    $received = (bool) 
sizeof($a_submission->
getPeerReview()->getPeerReviewsByPeerId($a_submission->
getUserId(), 
true));
 
  239                        $button->setCaption(
"exc_peer_review_show");
 
  240                        $button->setUrl(
$ilCtrl->getLinkTargetByClass(array(
"ilExSubmissionGUI", 
"ilExPeerReviewGUI"), 
"showReceivedPeerReview"));
 
  241                        $view_pc .= $button->render();
 
  245                        $view_pc .= 
$lng->txt(
"exc_peer_review_show_received_none");
 
  250                    $view_pc .= 
$lng->txt(
"exc_peer_review_show_missing");
 
  260            $sep = ($edit_pc != 
"" && $view_pc != 
"")
 
  264            $a_info->
addProperty(
$lng->txt(
"exc_peer_review"), $edit_pc . $sep . $view_pc);
 
  266            $ilCtrl->setParameterByClass(
"ilExPeerReviewGUI", 
"ass_id", 
"");
 
  272        return ($this->submission->isOwner() &&
 
  273            $this->ass->afterDeadlineStrict() &&
 
  274            (!$this->ass->getPeerReviewDeadline() ||
 
  275                $this->ass->getPeerReviewDeadline() > time()));
 
  280        return ($this->submission->isTutor() ||
 
  281            ($this->submission->isOwner() &&
 
  282            $this->ass->afterDeadlineStrict() &&
 
  283            (!$this->ass->getPeerReviewDeadline() ||
 
  284                $this->ass->getPeerReviewDeadline() < time())));
 
  296        $peer_items = $this->submission->getPeerReview()->getPeerReviewsByGiver($this->submission->getUserId());
 
  297        if (!
sizeof($peer_items)) {
 
  302        $tpl->setTitle($this->ass->getTitle() . 
": " . 
$lng->txt(
"exc_peer_review_given"));
 
  304        include_once 
"Services/InfoScreen/classes/class.ilInfoScreenGUI.php";
 
  309        $tpl->setContent($info_widget->getHTML());
 
  319            (!$this->submission->isTutor() &&
 
  320            $this->submission->getPeerReview()->getNumberOfMissingFeedbacksForReceived())) {
 
  324        $this->tabs_gui->clearTargets();
 
  325        $this->tabs_gui->setBackTarget($this->lng->txt(
"back"), $this->ctrl->getLinkTarget($this, 
"returnToParent"));
 
  327        $peer_items = $this->submission->getPeerReview()->getPeerReviewsByPeerId($this->submission->getUserId(), !$this->submission->isTutor());
 
  328        if (!
sizeof($peer_items)) {
 
  331            $ilCtrl->redirect($this, 
"returnToParent");
 
  334        $tpl->setTitle($this->ass->getTitle() . 
": " . 
$lng->txt(
"exc_peer_review_show"));
 
  336        include_once 
"Services/InfoScreen/classes/class.ilInfoScreenGUI.php";
 
  341        $tpl->setContent($info_widget->getHTML());
 
  348        include_once 
"Services/User/classes/class.ilUserUtil.php";
 
  350        if ($this->submission->isTutor()) {
 
  351            $user_title = $a_by_peer
 
  352                ? 
$lng->txt(
"exc_peer_review_recipient")
 
  353                : 
$lng->txt(
"exc_peer_review_giver");
 
  367            $file_info = 
$submission->getDownloadedFilesInfoForTableGUIS($this, 
"showReceivedPeerReview");
 
  370                $file_info[
"last_submission"][
"txt"],
 
  371                $file_info[
"last_submission"][
"value"] .
 
  377                $sub_data = 
'<a href="' . $file_info[
"files"][
"download_url"] . 
'">' . 
$lng->txt(
"download") . 
'</a>';
 
  382        foreach ($a_peer_items as $peer) {
 
  384                $giver_id = $this->submission->getUserId();
 
  385                $peer_id = $peer[
"peer_id"];
 
  386                $id_title = 
$lng->txt(
"exc_peer_review_recipient");
 
  389                $giver_id = $peer[
"giver_id"];
 
  390                $peer_id = $this->submission->getUserId();
 
  391                $id_title = 
$lng->txt(
"exc_peer_review_giver");
 
  392                $user_id = $giver_id;
 
  396            if ($this->submission->isTutor()) {
 
  398            } elseif (!$this->ass->hasPeerReviewPersonalized()) {
 
  399                $id_value = $peer[
"seq"];
 
  403            $a_info_widget->
addSection($id_title . 
": " . $id_value);
 
  410                $file_info = 
$submission->getDownloadedFilesInfoForTableGUIS($this, 
"editPeerReviewItem");
 
  413                    $file_info[
"last_submission"][
"txt"],
 
  414                    $file_info[
"last_submission"][
"value"] .
 
  420                    $sub_data = 
'<a href="' . $file_info[
"files"][
"download_url"] . 
'">' . 
$lng->txt(
"download") . 
'</a>';
 
  428            $values = $this->submission->getPeerReview()->getPeerReviewValues($giver_id, $peer_id);
 
  430            foreach ($this->ass->getPeerReviewCriteriaCatalogueItems() as $item) {
 
  431                $crit_id = $item->getId()
 
  435                $item->setPeerReviewContext(
 
  441                $title = $item->getTitle();
 
  453        foreach ($a_submission->
getFiles() as $file) {
 
  455                return '<div class="warning">' . 
$lng->txt(
"exc_late_submission") . 
'</div>';
 
  468        $peer_items = $this->submission->getPeerReview()->getPeerReviewsByGiver($this->submission->getUserId());
 
  469        if (!
sizeof($peer_items)) {
 
  474        $missing = $this->submission->getPeerReview()->getNumberOfMissingFeedbacksForReceived();
 
  476            $dl = $this->ass->getPeerReviewDeadline();
 
  477            if (!$dl || $dl < time()) {
 
  478                ilUtil::sendInfo(sprintf($this->lng->txt(
"exc_peer_review_missing_info"), $missing));
 
  481                    $this->lng->txt(
"exc_peer_review_missing_info_deadline"),
 
  488        include_once 
"Modules/Exercise/classes/class.ilExAssignmentPeerReviewTableGUI.php";
 
  493            $this->submission->getUserId(),
 
  513        $tpl->setContent($a_form->getHTML());
 
  518        $peer_items = $this->submission->getPeerReview()->getPeerReviewsByGiver($this->submission->getUserId());
 
  519        foreach ($peer_items as $item) {
 
  520            if ($item[
"peer_id"] == $a_peer_id) {
 
  536            if (trim(
$text[
"atext"])) {
 
  538                include_once 
"Services/RTE/classes/class.ilRTE.php";
 
  550        $peer_items = $this->submission->getPeerReview()->getPeerReviewsByGiver($this->submission->getUserId());
 
  551        foreach ($peer_items as $item) {
 
  552            if ($item[
"peer_id"] == $a_peer_id) {
 
  558        $ilCtrl->saveParameter($this, 
"peer_id");
 
  560        include_once 
"Services/Form/classes/class.ilPropertyFormGUI.php";
 
  562        $form->setFormAction(
$ilCtrl->getFormAction($this, 
"updatePeerReview"));
 
  564        $form->setTitle($this->ass->getTitle() . 
": " . 
$lng->txt(
"exc_peer_review_give"));
 
  567        if (!$this->ass->hasPeerReviewPersonalized()) {
 
  568            $id_title = 
$lng->txt(
"id");
 
  569            $id_value = $peer[
"seq"];
 
  571            include_once 
"Services/User/classes/class.ilUserUtil.php";
 
  572            $id_title = 
$lng->txt(
"exc_peer_review_recipient");
 
  576        $id->setValue($id_value);
 
  582        $file_info = 
$submission->getDownloadedFilesInfoForTableGUIS($this, 
"editPeerReviewItem");
 
  585        $last_sub->setValue($file_info[
"last_submission"][
"value"] .
 
  587        $form->addItem($last_sub);
 
  591            $sub_data = 
'<a href="' . $file_info[
"files"][
"download_url"] . 
'">' . 
$lng->txt(
"download") . 
'</a>';
 
  595        $sub->setValue($sub_data);
 
  596        $form->addItem($sub);
 
  601        $input->setTitle(
$lng->txt(
"exc_peer_review"));
 
  604        $values = $this->submission->getPeerReview()->getPeerReviewValues($this->submission->getUserId(), $a_peer_id);
 
  606        foreach ($this->ass->getPeerReviewCriteriaCatalogueItems() as $item) {
 
  607            $crit_id = $item->getId()
 
  611            $item->setPeerReviewContext(
 
  613                $this->submission->getUserId(),
 
  617            $item->addToPeerReviewForm(
$values[$crit_id]);
 
  620        $form->addCommandButton(
"updatePeerReview", 
$lng->txt(
"save"));
 
  621        $form->addCommandButton(
"editPeerReview", 
$lng->txt(
"cancel"));
 
  639        $peer_id = (int) 
$_POST[
"peer_id"];
 
  640        $crit_id = 
$_POST[
"crit_id"];
 
  643        include_once 
"Modules/Exercise/classes/class.ilExcCriteria.php";
 
  644        if (!is_numeric($crit_id)) {
 
  649        $crit->setPeerReviewContext($this->ass, $giver_id, $peer_id);
 
  650        $html = $crit->updateFromAjax();
 
  655        echo 
$tpl->getOnLoadCodeForAsynch();
 
  669        $peer_id = $_REQUEST[
"peer_id"];
 
  672        if (
$form->checkInput()) {
 
  676            foreach ($this->ass->getPeerReviewCriteriaCatalogueItems() as $item) {
 
  677                $item->setPeerReviewContext(
 
  679                    $this->submission->getUserId(),
 
  683                $value = $item->importFromPeerReviewForm();
 
  684                if ($value !== 
null) {
 
  685                    $crit_id = $item->getId()
 
  690                if (!$item->validate($value)) {
 
  696                $this->submission->getPeerReview()->updatePeerReview($peer_id, 
$values);
 
  700                ilUtil::sendSuccess($this->lng->txt(
"exc_peer_review_updated"), 
true);
 
  701                $ilCtrl->redirect($this, 
"editPeerReview");
 
  707        $form->setValuesByPost();
 
  717            $this->submission->getUserIds(),
 
  718            $this->submission->hasSubmitted(),
 
  719            $this->submission->validatePeerReviews()
 
  732        $parts = explode(
"__", 
$_GET[
"fu"]);
 
  733        $giver_id = $parts[0];
 
  734        $peer_id = $parts[1];
 
  735        $crit_id = $parts[2];
 
  737        include_once 
"Modules/Exercise/classes/class.ilExcCriteria.php";
 
  738        if (!is_numeric($crit_id)) {
 
  744        $crit->setPeerReviewContext($this->ass, $giver_id, $peer_id);
 
  745        $file = $crit->getFileByHash();
 
  750        $ilCtrl->redirect($this, 
"returnToParent");
 
  764            !$this->ass->getPeerReview()) {
 
  768        include_once 
"Modules/Exercise/classes/class.ilExAssignmentPeerReviewOverviewTableGUI.php";
 
  771            "showPeerReviewOverview",
 
  776        $panel_data = 
$tbl->getPanelInfo();
 
  777        if (is_array($panel_data) && count($panel_data) > 0) {
 
  778            $ptpl = 
new ilTemplate(
"tpl.exc_peer_review_overview_panel.html", 
true, 
true, 
"Modules/Exercise");
 
  779            foreach ($panel_data as $item) {
 
  780                $ptpl->setCurrentBlock(
"user_bl");
 
  781                foreach ($item[
"value"] as 
$user) {
 
  782                    $ptpl->setVariable(
"USER", 
$user);
 
  783                    $ptpl->parseCurrentBlock();
 
  786                $ptpl->setCurrentBlock(
"item_bl");
 
  787                $ptpl->setVariable(
"TITLE", $item[
"title"]);
 
  788                $ptpl->parseCurrentBlock();
 
  791            include_once 
"Services/UIComponent/Panel/classes/class.ilPanelGUI.php";
 
  793            $panel->setHeading($this->lng->txt(
"exc_peer_review_overview_invalid_users"));
 
  794            $panel->setBody($ptpl->get());
 
  795            $panel = $panel->getHTML();
 
  798        $tpl->setContent(
$tbl->getHTML() . $panel);
 
  808            !$this->ass->getPeerReview()) {
 
  812        $ilTabs->clearTargets();
 
  814        include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
 
  816        $cgui->setFormAction(
$ilCtrl->getFormAction($this));
 
  817        $cgui->setHeaderText(sprintf($this->lng->txt(
"exc_peer_review_reset_sure"), $this->ass->getTitle()));
 
  818        $cgui->setCancel($this->lng->txt(
"cancel"), 
"showPeerReviewOverview");
 
  819        $cgui->setConfirm($this->lng->txt(
"delete"), 
"resetPeerReview");
 
  821        $tpl->setContent($cgui->getHTML());
 
  829            !$this->ass->getPeerReview()) {
 
  833        include_once 
"Modules/Exercise/classes/class.ilExPeerReview.php";
 
  835        $all_giver_ids = $peer_review->resetPeerReviews();
 
  837        if (is_array($all_giver_ids)) {
 
  840            if (
$exercise->isCompletionBySubmissionEnabled() &&
 
  842                include_once 
"Modules/Exercise/classes/class.ilExSubmission.php";
 
  843                foreach ($all_giver_ids as $user_id) {
 
  846                    $pgui->handlePeerReviewChange();
 
  851        ilUtil::sendSuccess($this->lng->txt(
"exc_peer_review_reset_done"), 
true);
 
  852        $ilCtrl->redirect($this, 
"showPeerReviewOverview");
 
if(!array_key_exists('stateid', $_REQUEST)) $state
Handle linkback() response from LinkedIn.
An exception for terminatinating execution or to throw for unit testing.
Confirmation screen class.
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false, $include_seconds=false)
Format a date @access public.
@classDescription Date and time handling
List all peer groups for assignment.
List all peers to be reviewed for user.
const PEER_REVIEW_VALID_NONE
downloadPeerReviewObject()
static getOverviewContent(ilInfoScreenGUI $a_info, ilExSubmission $a_submission)
__construct(ilExAssignment $a_ass, ilExSubmission $a_submission=null)
Constructor.
confirmResetPeerReviewObject()
showReceivedPeerReviewObject()
showGivenPeerReviewObject()
initPeerReviewItemForm($a_peer_id)
renderInfoWidget(ilInfoScreenGUI $a_info_widget, array $a_peer_items, $a_by_peer=false)
getSubmissionContent(ilExSubmission $a_submission)
showPeerReviewOverviewObject()
editPeerReviewItemObject(ilPropertyFormGUI $a_form=null)
getLateSubmissionInfo(ilExSubmission $a_submission)
Object-based submissions (ends up as static file)
Exercise submission //TODO: This class has to much static methods related to delivered "files".
getFiles(array $a_file_ids=null, $a_only_valid=false, $a_min_timestamp=null)
Get submission items (not only files)
static getInstanceByIds($a_ass_id, $a_user_id=0)
Get instance by IDs (recommended for consumer code)
static getInstanceById($a_id)
static getInstanceByType($a_type)
File System Explorer GUI class.
addProperty($a_name, $a_value, $a_link="")
add a property to current section
addSection($a_title)
add a new section
This class represents a non editable value in a property form.
static getInstance()
Get instance.
static _replaceMediaObjectImageSrc($a_text, $a_direction=0, $nic=IL_INST_ID)
Replaces image source from mob image urls with the mob id or replaces mob id with the correct image s...
special template class to simplify handling of ITX/PEAR
static getNamePresentation( $a_user_id, $a_user_image=false, $a_profile_link=false, $a_profile_back_link="", $a_force_first_lastname=false, $a_omit_login=false, $a_sortable=true, $a_return_data_array=false, $a_ctrl_path="ilpublicuserprofilegui")
Default behaviour is:
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static deliverFile( $a_file, $a_filename, $a_mime='', $isInline=false, $removeAfterDelivery=false, $a_exit_after=true)
deliver file for download via browser.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
if(!array_key_exists('StateId', $_REQUEST)) $id
if(isset($_POST['submit'])) $form