30                $this->submission = $a_submission;
 
   34                $this->tabs_gui = $ilTabs;
 
   43                if(!$this->ass->getPeerReview())
 
   48                $class = 
$ilCtrl->getNextClass($this);
 
   53                        case "ilfilesystemgui":                                                 
 
   54                                $ilCtrl->saveParameter($this, array(
"fu"));                                                                             
 
   57                                $parts = explode(
"__", 
$_GET[
"fu"]);
 
   58                                $giver_id = $parts[0];
 
   67                                $peer_items = $this->submission->getPeerReview()->getPeerReviewsByPeerId($peer_id, 
true);                               
 
   68                                if(
sizeof($peer_items))
 
   70                                        foreach($peer_items as $item)
 
   72                                                if($item[
"giver_id"] == $giver_id)
 
   80                                        $ilCtrl->redirect($this, 
"editPeerReview");
 
   83                                $ilTabs->clearTargets();
 
   84                                $ilTabs->setBackTarget(
$lng->txt(
"back"),
 
   85                                        $ilCtrl->getLinkTarget($this, 
"editPeerReview"));
 
   87                                include_once(
"./Modules/Exercise/classes/class.ilFSStorageExercise.php");
 
   91                                include_once(
"./Services/FileSystem/classes/class.ilFileSystemGUI.php");
 
   92                                $fs_gui = 
new ilFileSystemGUI($fstorage->getPeerReviewUploadPath($peer_id, $giver_id));
 
   93                                $fs_gui->setTableId(
"excfbpeer");
 
   94                                $fs_gui->setAllowDirectories(
false);                                    
 
   95                                $fs_gui->setTitle($this->ass->getTitle().
": ".
 
   96                                        $lng->txt(
"exc_peer_review").
" - ".
 
   97                                        $lng->txt(
"exc_peer_review_give"));                                              
 
   98                                $ret = $this->ctrl->forwardCommand($fs_gui);
 
  102                                $this->ass->updatePeerReviewTimestamp((
int)
$_REQUEST[
"peer_id"]);
 
  104                                include_once(
"./Services/Rating/classes/class.ilRatingGUI.php");
 
  106                                $rating_gui->setObject($this->ass->getId(), 
"ass",
 
  108                                $this->ctrl->forwardCommand($rating_gui);
 
  109                                $ilCtrl->redirect($this, 
"editPeerReview");
 
  112                        case "ilexsubmissiontextgui":                           
 
  113                                if(!$this->submission->isTutor())
 
  115                                        $ilTabs->clearTargets();                                
 
  116                                        $ilTabs->setBackTarget(
$lng->txt(
"back"),
 
  117                                                $ilCtrl->getLinkTarget($this, 
"editPeerReview"));
 
  118                                        $this->ctrl->setReturn($this, 
"editPeerReview");
 
  122                                        $ilTabs->clearTargets();                                
 
  123                                        $ilTabs->setBackTarget(
$lng->txt(
"back"),
 
  124                                                $ilCtrl->getLinkTarget($this, 
"showGivenPeerReview"));
 
  125                                        $this->ctrl->setReturn($this, 
"showGivenPeerReview");
 
  127                                include_once 
"Modules/Exercise/classes/class.ilExSubmissionTextGUI.php";
 
  133                                $this->{
$cmd.
"Object"}();                               
 
  140                $this->ctrl->returnToParent($this);
 
  149                if(
$ass->afterDeadlineStrict() && 
 
  150                        $ass->getPeerReview())
 
  152                        $ilCtrl->setParameterByClass(
"ilExPeerReviewGUI", 
"ass_id", $a_submission->
getAssignment()->getId());
 
  154                        $nr_missing_fb = $a_submission->
getPeerReview()->getNumberOfMissingFeedbacksForReceived(
$ass->getId(), 
$ass->getPeerReviewMin());
 
  157                        if(!
$ass->getPeerReviewDeadline() || 
 
  158                                $ass->getPeerReviewDeadline() > time())
 
  161                                if(
$ass->getPeerReviewDeadline())
 
  163                                        $dl_info = 
" (".sprintf(
$lng->txt(
"exc_peer_review_deadline_info_button"), 
 
  168                                $button->setPrimary($nr_missing_fb);
 
  169                                $button->setCaption(
$lng->txt(
"exc_peer_review_give").$dl_info, 
false);
 
  170                                $button->setUrl(
$ilCtrl->getLinkTargetByClass(array(
"ilExSubmissionGUI", 
"ilExPeerReviewGUI"), 
"editPeerReview"));                                                      
 
  171                                $edit_pc = $button->render();                                                                                                   
 
  173                        else if(
$ass->getPeerReviewDeadline())
 
  175                                $edit_pc = 
$lng->txt(
"exc_peer_review_deadline_reached");
 
  179                        if((!
$ass->getPeerReviewDeadline() || 
 
  180                                $ass->getPeerReviewDeadline() < time()))
 
  183                                if(
$ass->getPeerReviewDeadline() &&
 
  187                                        $button->setCaption(
"exc_peer_review_given");
 
  188                                        $button->setUrl(
$ilCtrl->getLinkTargetByClass(array(
"ilExSubmissionGUI", 
"ilExPeerReviewGUI"), 
"showGivenPeerReview"));                                                 
 
  189                                        $view_pc = $button->render().
" ";
 
  196                                        $received = (bool)
sizeof($a_submission->
getPeerReview()->getPeerReviewsByPeerId($a_submission->
getUserId(), 
true));                             
 
  200                                                $button->setCaption(
"exc_peer_review_show");
 
  201                                                $button->setUrl(
$ilCtrl->getLinkTargetByClass(array(
"ilExSubmissionGUI", 
"ilExPeerReviewGUI"), 
"showReceivedPeerReview"));                                                      
 
  202                                                $view_pc .= $button->render();
 
  207                                                $view_pc .= 
$lng->txt(
"exc_peer_review_show_received_none");
 
  213                                        $view_pc .= 
$lng->txt(
"exc_peer_review_show_missing");
 
  223                        $a_info->
addProperty(
$lng->txt(
"exc_peer_review"), $edit_pc.
" ".$view_pc);      
 
  225                        $ilCtrl->setParameterByClass(
"ilExPeerReviewGUI", 
"ass_id", 
"");
 
  231                return ($this->submission->isOwner() &&
 
  232                        $this->ass->afterDeadlineStrict() &&
 
  233                        (!$this->ass->getPeerReviewDeadline() ||
 
  234                                $this->ass->getPeerReviewDeadline() > time()));
 
  239                return ($this->submission->isTutor() ||
 
  240                        ($this->submission->isOwner() &&
 
  241                        $this->ass->afterDeadlineStrict() &&
 
  242                        (!$this->ass->getPeerReviewDeadline() ||
 
  243                                $this->ass->getPeerReviewDeadline() < time())));
 
  255                $peer_items = $this->submission->getPeerReview()->getPeerReviewsByGiver($this->submission->getUserId());
 
  256                if(!
sizeof($peer_items))
 
  262                $tpl->setTitle($this->ass->getTitle().
": ".
$lng->txt(
"exc_peer_review_given"));
 
  264                include_once 
"Services/InfoScreen/classes/class.ilInfoScreenGUI.php";
 
  269                $tpl->setContent($info_widget->getHTML());
 
  277                        (!$this->submission->isTutor() &&
 
  278                        $this->submission->getPeerReview()->getNumberOfMissingFeedbacksForReceived()))
 
  283                $this->tabs_gui->clearTargets();
 
  284                $this->tabs_gui->setBackTarget($this->lng->txt(
"back"), $this->ctrl->getLinkTarget($this, 
"returnToParent"));                           
 
  286                $peer_items = $this->submission->getPeerReview()->getPeerReviewsByPeerId($this->submission->getUserId(), !$this->submission->isTutor());
 
  287                if(!
sizeof($peer_items))
 
  291                        $ilCtrl->redirect($this, 
"returnToParent");
 
  294                $tpl->setTitle($this->ass->getTitle().
": ".
$lng->txt(
"exc_peer_review_show"));
 
  296                include_once 
"Services/InfoScreen/classes/class.ilInfoScreenGUI.php";
 
  301                $tpl->setContent($info_widget->getHTML());                      
 
  308                include_once 
"Services/User/classes/class.ilUserUtil.php";              
 
  310                if($this->submission->isTutor())
 
  312                        $user_title = $a_by_peer
 
  313                                ? 
$lng->txt(
"exc_peer_review_recipient")
 
  314                                : 
$lng->txt(
"exc_peer_review_giver");                   
 
  327                        $file_info = 
$submission->getDownloadedFilesInfoForTableGUIS($this, 
"showReceivedPeerReview");
 
  329                        $a_info_widget->
addProperty($file_info[
"last_submission"][
"txt"], $file_info[
"last_submission"][
"value"]);
 
  334                                $sub_data = 
'<a href="'.$file_info[
"files"][
"download_url"].
'">'.
$lng->txt(
"download").
'</a>';
 
  339                foreach($a_peer_items as $peer)
 
  343                                $giver_id = $this->submission->getUserId();
 
  344                                $peer_id = $peer[
"peer_id"];                                                            
 
  345                                $id_title = 
$lng->txt(
"exc_peer_review_recipient");
 
  350                                $giver_id = $peer[
"giver_id"];
 
  351                                $peer_id = $this->submission->getUserId();      
 
  352                                $id_title = 
$lng->txt(
"exc_peer_review_giver");
 
  353                                $user_id = $giver_id;
 
  357                        if($this->submission->isTutor())
 
  361                        else if(!$this->ass->hasPeerReviewPersonalized())                               
 
  363                                $id_value = $peer[
"seq"];
 
  369                        $a_info_widget->
addSection($id_title.
": ".$id_value);
 
  377                                $file_info = 
$submission->getDownloadedFilesInfoForTableGUIS($this, 
"editPeerReviewItem");
 
  379                                $a_info_widget->
addProperty($file_info[
"last_submission"][
"txt"], $file_info[
"last_submission"][
"value"]);
 
  384                                        $sub_data = 
'<a href="'.$file_info[
"files"][
"download_url"].
'">'.
$lng->txt(
"download").
'</a>';
 
  392                        $values = $this->submission->getPeerReview()->getPeerReviewValues($giver_id, $peer_id);
 
  394                        foreach($this->ass->getPeerReviewCriteriaCatalogueItems() as $item)             
 
  396                                $crit_id = $item->getId()
 
  400                                $item->setPeerReviewContext(                            
 
  406                                $title = $item->getTitle();
 
  407                                $html = $item->getHTML($values[$crit_id]);                              
 
  422                $peer_items = $this->submission->getPeerReview()->getPeerReviewsByGiver($this->submission->getUserId());
 
  423                if(!
sizeof($peer_items))
 
  429                $missing = $this->submission->getPeerReview()->getNumberOfMissingFeedbacksForReceived();
 
  432                        $dl = $this->ass->getPeerReviewDeadline();
 
  433                        if(!$dl || $dl < time())
 
  435                                ilUtil::sendInfo(sprintf($this->lng->txt(
"exc_peer_review_missing_info"), $missing));
 
  439                                ilUtil::sendInfo(sprintf($this->lng->txt(
"exc_peer_review_missing_info_deadline"), $missing, 
 
  444                include_once 
"Modules/Exercise/classes/class.ilExAssignmentPeerReviewTableGUI.php";             
 
  446                        $peer_items, 
"returnToParent");         
 
  465                $tpl->setContent($a_form->getHTML());
 
  470                $peer_items = $this->submission->getPeerReview()->getPeerReviewsByGiver($this->submission->getUserId());
 
  471                foreach($peer_items as $item)
 
  473                        if($item[
"peer_id"] == $a_peer_id)
 
  492                        if(trim(
$text[
"atext"]))
 
  495                                include_once 
"Services/RTE/classes/class.ilRTE.php";
 
  506                $peer_items = $this->submission->getPeerReview()->getPeerReviewsByGiver($this->submission->getUserId());
 
  507                foreach($peer_items as $item)
 
  509                        if($item[
"peer_id"] == $a_peer_id)
 
  516                $ilCtrl->saveParameter($this, 
"peer_id");
 
  518                include_once 
"Services/Form/classes/class.ilPropertyFormGUI.php";               
 
  520                $form->setFormAction(
$ilCtrl->getFormAction($this, 
"updatePeerReview"));
 
  522                $form->setTitle($this->ass->getTitle().
": ".
$lng->txt(
"exc_peer_review_give"));
 
  525                if(!$this->ass->hasPeerReviewPersonalized())
 
  527                        $id_title = 
$lng->txt(
"id");
 
  528                        $id_value = $peer[
"seq"];
 
  532                        include_once 
"Services/User/classes/class.ilUserUtil.php";
 
  533                        $id_title = 
$lng->txt(
"exc_peer_review_recipient");
 
  537                $id->setValue($id_value);
 
  543                $file_info = 
$submission->getDownloadedFilesInfoForTableGUIS($this, 
"editPeerReviewItem");
 
  546                $last_sub->setValue($file_info[
"last_submission"][
"value"]);
 
  547                $form->addItem($last_sub);
 
  552                        $sub_data = 
'<a href="'.$file_info[
"files"][
"download_url"].
'">'.
$lng->txt(
"download").
'</a>';
 
  556                $sub->setValue($sub_data);
 
  557                $form->addItem($sub);
 
  562                $input->setTitle(
$lng->txt(
"exc_peer_review"));
 
  563                $form->addItem($input);
 
  565                $values = $this->submission->getPeerReview()->getPeerReviewValues($this->submission->getUserId(), $a_peer_id);
 
  567                foreach($this->ass->getPeerReviewCriteriaCatalogueItems() as $item)             
 
  569                        $crit_id = $item->getId()
 
  573                        $item->setPeerReviewContext(                            
 
  575                                $this->submission->getUserId(),
 
  579                        $item->addToPeerReviewForm($values[$crit_id]);
 
  582                $form->addCommandButton(
"updatePeerReview", 
$lng->txt(
"save"));
 
  583                $form->addCommandButton(
"editPeerReview", 
$lng->txt(
"cancel"));
 
  595                        !$ilCtrl->isAsynch())                           
 
  600                $peer_id = (int)
$_POST[
"peer_id"];
 
  601                $crit_id = 
$_POST[
"crit_id"];
 
  604                include_once 
"Modules/Exercise/classes/class.ilExcCriteria.php";                
 
  605                if(!is_numeric($crit_id))
 
  613                $crit->setPeerReviewContext($this->ass, $giver_id, $peer_id);
 
  614                $html = $crit->updateFromAjax();
 
  619                echo 
$tpl->getOnLoadCodeForAsynch();
 
  636                if($form->checkInput())
 
  641                        foreach($this->ass->getPeerReviewCriteriaCatalogueItems() as $item)             
 
  643                                $item->setPeerReviewContext(                            
 
  645                                        $this->submission->getUserId(),
 
  649                                $value = $item->importFromPeerReviewForm();                                             
 
  652                                        $crit_id = $item->getId()
 
  655                                        $values[$crit_id] = $value;
 
  657                                if(!$item->validate($value))
 
  665                                $this->submission->getPeerReview()->updatePeerReview($peer_id, $values);                
 
  670                                $ilCtrl->redirect($this, 
"editPeerReview");     
 
  678                $form->setValuesByPost();
 
  685                $exercise = 
new ilObjExercise($this->ass->getExerciseId(), 
false);
 
  686                $exercise->processExerciseStatus($this->ass, 
 
  687                        $this->submission->getUserIds(),
 
  688                        $this->submission->hasSubmitted(),
 
  689                        $this->submission->validatePeerReviews()
 
  703                $parts = explode(
"__", 
$_GET[
"fu"]);
 
  704                $giver_id = $parts[0];
 
  705                $peer_id = $parts[1];
 
  706                $crit_id = $parts[2];
 
  708                include_once 
"Modules/Exercise/classes/class.ilExcCriteria.php";                
 
  709                if(!is_numeric($crit_id))
 
  718                $crit->setPeerReviewContext($this->ass, $giver_id, $peer_id);   
 
  719                $file = $crit->getFileByHash();
 
  726                $ilCtrl->redirect($this, 
"returnToParent");             
 
  740                        !$this->ass->getPeerReview())                           
 
  745                include_once 
"Modules/Exercise/classes/class.ilExAssignmentPeerReviewOverviewTableGUI.php";
 
  750                $panel_data = 
$tbl->getPanelInfo();
 
  751                if(
sizeof($panel_data))
 
  753                        $ptpl = 
new ilTemplate(
"tpl.exc_peer_review_overview_panel.html", 
true, 
true, 
"Modules/Exercise");
 
  754                        foreach($panel_data as $item)
 
  756                                $ptpl->setCurrentBlock(
"user_bl");
 
  757                                foreach($item[
"value"] as $user)
 
  759                                        $ptpl->setVariable(
"USER", $user);
 
  760                                        $ptpl->parseCurrentBlock();
 
  763                                $ptpl->setCurrentBlock(
"item_bl");
 
  764                                $ptpl->setVariable(
"TITLE", $item[
"title"]);
 
  765                                $ptpl->parseCurrentBlock();
 
  768                        include_once 
"Services/UIComponent/Panel/classes/class.ilPanelGUI.php";
 
  770                        $panel->setHeading($this->lng->txt(
"exc_peer_review_overview_invalid_users"));
 
  771                        $panel->setBody($ptpl->get());
 
  772                        $panel = $panel->getHTML();
 
  775                $tpl->setContent(
$tbl->getHTML().$panel);
 
  783                        !$this->ass->getPeerReview())                           
 
  788                $ilTabs->clearTargets();
 
  790                include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
 
  792                $cgui->setFormAction(
$ilCtrl->getFormAction($this));
 
  793                $cgui->setHeaderText(sprintf($this->lng->txt(
"exc_peer_review_reset_sure"), $this->ass->getTitle()));
 
  794                $cgui->setCancel($this->lng->txt(
"cancel"), 
"showPeerReviewOverview");
 
  795                $cgui->setConfirm($this->lng->txt(
"delete"), 
"resetPeerReview");
 
  797                $tpl->setContent($cgui->getHTML());             
 
  805                        !$this->ass->getPeerReview())                           
 
  810                include_once 
"Modules/Exercise/classes/class.ilExPeerReview.php";
 
  812                $all_giver_ids = $peer_review->resetPeerReviews();
 
  814                if(is_array($all_giver_ids))
 
  817                        $exercise = 
new ilObjExercise($this->ass->getExerciseId(), 
false);
 
  818                        if($exercise->isCompletionBySubmissionEnabled() &&
 
  821                                include_once 
"Modules/Exercise/classes/class.ilExSubmission.php";
 
  822                                foreach($all_giver_ids as $user_id)
 
  826                                        $pgui->handlePeerReviewChange();
 
  832                $ilCtrl->redirect($this, 
"showPeerReviewOverview");
 
Confirmation screen class.
static formatDate(ilDateTime $date)
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)
Object-based submissions (ends up as static file)
getFiles(array $a_file_ids=null, $a_only_valid=false, $a_min_timestamp=null)
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)
Default behaviour is:
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static sendInfo($a_info="", $a_keep=false)
Send Info 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.
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']