4include_once 
"Modules/Exercise/classes/class.ilExSubmission.php";
 
    5include_once 
"Modules/Exercise/classes/class.ilExSubmissionBaseGUI.php";
 
   37                $this->exercise = $a_exercise;
 
   38                $this->assignment = $a_ass;
 
   40                $ilCtrl->saveParameter($this, array(
"vw", 
"member_id"));
 
   44                $this->tabs_gui = $ilTabs;
 
   53                $class = 
$ilCtrl->getNextClass($this);
 
   58                        case "ilfilesystemgui":                                                 
 
   59                                $ilTabs->clearTargets();                                
 
   60                                $ilTabs->setBackTarget(
$lng->txt(
"back"),
 
   61                                        $ilCtrl->getLinkTarget($this, $this->getViewBack()));
 
   65                                include_once(
"./Modules/Exercise/classes/class.ilFSStorageExercise.php");
 
   70                                $feedback_id = $submission->getFeedbackId();
 
   71                                $noti_rec_ids = $submission->getUserIds();
 
   73                                include_once(
"./Services/User/classes/class.ilUserUtil.php");                                                                                                                                   
 
   75                                foreach($noti_rec_ids as $rec_id)
 
   79                                $fs_title = implode(
" / ", $fs_title);
 
   81                                include_once(
"./Services/FileSystem/classes/class.ilFileSystemGUI.php");
 
   82                                $fs_gui = 
new ilFileSystemGUI($fstorage->getFeedbackPath($feedback_id));
 
   83                                $fs_gui->setTableId(
"excfbfil".$this->assignment->getId().
"_".$feedback_id);
 
   84                                $fs_gui->setAllowDirectories(
false);                                    
 
   85                                $fs_gui->setTitle(
$lng->txt(
"exc_fb_files").
" - ".
 
   86                                        $this->assignment->getTitle().
" - ".
 
   88                                $pcommand = $fs_gui->getLastPerformedCommand();                                 
 
   89                                if (is_array($pcommand) && $pcommand[
"cmd"] == 
"create_file")
 
   91                                        foreach($noti_rec_ids as $user_id)
 
   93                                                $member_status = $this->assignment->getMemberStatus($user_id);
 
   94                                                $member_status->setFeedback(
true);
 
   95                                                $member_status->update();
 
   98                                        $this->exercise->sendFeedbackFileNotification($pcommand[
"name"], 
 
   99                                                $noti_rec_ids, $this->assignment->getId());
 
  101                                $this->ctrl->forwardCommand($fs_gui);
 
  104                        case 'ilrepositorysearchgui':
 
  105                                include_once(
'./Services/Search/classes/class.ilRepositorySearchGUI.php');
 
  107                                $rep_search->setTitle($this->lng->txt(
"exc_add_participant"));
 
  108                                $rep_search->setCallback($this,
'addMembersObject');
 
  112                                $this->ctrl->setReturn($this,
'members');
 
  114                                $this->ctrl->forwardCommand($rep_search);
 
  117                        case "ilexsubmissionteamgui":                                                                           
 
  118                                include_once 
"Modules/Exercise/classes/class.ilExSubmissionTeamGUI.php";
 
  120                                $ilCtrl->forwardCommand($gui);                          
 
  123                        case "ilexsubmissionfilegui":                                                                                                   
 
  124                                include_once 
"Modules/Exercise/classes/class.ilExSubmissionFileGUI.php";
 
  126                                $ilCtrl->forwardCommand($gui);                          
 
  129                        case "ilexsubmissiontextgui":
 
  130                                $ilCtrl->saveParameter($this, array(
"part_id"));
 
  131                                include_once 
"Modules/Exercise/classes/class.ilExSubmissionTextGUI.php";
 
  133                                $ilCtrl->forwardCommand($gui);                          
 
  136                        case "ilexpeerreviewgui":                                                                                                                       
 
  137                                include_once 
"Modules/Exercise/classes/class.ilExPeerReviewGUI.php";
 
  139                                $ilCtrl->forwardCommand($gui);                          
 
  143                                $this->{
$cmd.
"Object"}();                               
 
  150                switch($_REQUEST[
"vw"])
 
  153                                $back_cmd = 
"showParticipant";
 
  157                                $back_cmd = 
"showGradesOverview";
 
  162                                $back_cmd = 
"members";
 
  171                $this->ctrl->setReturn($this, $back_cmd);
 
  173                $this->tabs_gui->clearTargets();                
 
  174                $this->tabs_gui->setBackTarget($this->lng->txt(
"back"), 
 
  175                        $this->ctrl->getLinkTarget($this, $back_cmd));  
 
  177                include_once 
"Modules/Exercise/classes/class.ilExSubmission.php";
 
  178                return new ilExSubmission($this->assignment, $_REQUEST[
"member_id"], 
null, 
true);               
 
  190                $ass_id = 
$_GET[
"ass_id"];
 
  191                $part_id = 
$_GET[
"part_id"];
 
  193                $ilCtrl->setParameter($this, 
"vw", 
"");
 
  194                $ilCtrl->setParameter($this, 
"member_id", 
"");
 
  195                $ilCtrl->setParameter($this, 
"ass_id", 
"");
 
  196                $ilCtrl->setParameter($this, 
"part_id", 
"");
 
  198                $ilTabs->addSubTab(
"assignment", 
$lng->txt(
"exc_assignment_view"),                              
 
  199                        $ilCtrl->getLinkTarget($this, 
"members"));      
 
  200                $ilTabs->addSubTab(
"participant", 
$lng->txt(
"exc_participant_view"),
 
  201                        $ilCtrl->getLinkTarget($this, 
"showParticipant"));              
 
  202                $ilTabs->addSubTab(
"grades", 
$lng->txt(
"exc_grades_overview"),
 
  203                        $ilCtrl->getLinkTarget($this, 
"showGradesOverview"));
 
  204                $ilTabs->activateSubTab($a_activate);
 
  206                $ilCtrl->setParameter($this, 
"ass_id", $ass_id);
 
  207                $ilCtrl->setParameter($this, 
"part_id", $part_id);              
 
  217                include_once 
'Services/Tracking/classes/class.ilLPMarks.php';
 
  222                include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
 
  225                if (!$this->assignment)
 
  227                        $this->assignment = current($ass);                              
 
  236                                $options[$a->getId()] = $a->getTitle();
 
  238                        include_once(
"./Services/Form/classes/class.ilSelectInputGUI.php");
 
  241                        $si->setValue($this->assignment->getId());
 
  242                        $ilToolbar->addStickyItem(
$si);
 
  244                        include_once(
"./Services/UIComponent/Button/classes/class.ilSubmitButton.php");
 
  246                        $button->setCaption(
"exc_select_ass");
 
  247                        $button->setCommand(
"selectAssignment");                        
 
  248                        $ilToolbar->addStickyItem($button);
 
  250                        $ilToolbar->addSeparator();
 
  253                else if($this->assignment)
 
  255                        $ilCtrl->setParameter($this, 
"ass_id", $this->assignment->getId());
 
  259                include_once 
'./Services/Search/classes/class.ilRepositorySearchGUI.php';
 
  264                                'auto_complete_name'    => 
$lng->txt(
'user'),
 
  265                                'submit_name'                   => 
$lng->txt(
'add'),
 
  266                                'add_search'                    => 
true,
 
  267                                'add_from_container'    => $this->exercise->getRefId()
 
  274                        $ilToolbar->addSeparator();
 
  277                        $ilToolbar->setFormAction(
$ilCtrl->getFormAction($this));
 
  279                        $ilCtrl->setParameter($this, 
"ass_id", $this->assignment->getId());
 
  283                                include_once(
"./Modules/Exercise/classes/class.ilExAssignmentTeam.php");
 
  286                                        $ilToolbar->addButton($this->lng->txt(
"exc_adopt_group_teams"),
 
  287                                                $this->ctrl->getLinkTarget($this, 
"adoptTeamsFromGroup"));
 
  289                                        $ilToolbar->addSeparator();                     
 
  292                        else if($this->exercise->hasTutorFeedbackFile())
 
  295                                $ilToolbar->addButton($this->lng->txt(
"exc_multi_feedback"),
 
  296                                        $this->ctrl->getLinkTarget($this, 
"showMultiFeedback"));
 
  298                                $ilToolbar->addSeparator();                     
 
  305                                        $ilToolbar->addFormButton(
$lng->txt(
"exc_list_text_assignment"), 
"listTextAssignment");                                 
 
  309                                        $ilToolbar->addFormButton(
$lng->txt(
"download_all_returned_files"), 
"downloadAll");                     
 
  312                        $this->ctrl->setParameter($this, 
"vw", self::VIEW_ASSIGNMENT);
 
  314                        include_once(
"./Modules/Exercise/classes/class.ilExerciseMemberTableGUI.php");
 
  318                                $this->initIndividualDeadlineModal()
 
  326                $ilCtrl->setParameter($this, 
"ass_id", 
"");
 
  334                include_once(
"./Modules/Exercise/classes/class.ilExerciseMemberTableGUI.php");
 
  336                $exc_tab->resetOffset();
 
  337                $exc_tab->writeFilterToSession();
 
  344                include_once(
"./Modules/Exercise/classes/class.ilExerciseMemberTableGUI.php");
 
  346                $exc_tab->resetOffset();
 
  347                $exc_tab->resetFilter();
 
  359                include_once 
'Services/Tracking/classes/class.ilLPMarks.php';
 
  361                if (is_array(
$_POST[
"lcomment"]))
 
  363                        foreach (
$_POST[
"lcomment"] as $k => $v)
 
  365                                $marks_obj = 
new ilLPMarks($this->exercise->getId(), (
int) $k);
 
  368                                $marks_obj->update();
 
  372                $ilCtrl->redirect($this, 
"showGradesOverview");
 
  389                        $ilCtrl->redirect($this, 
"members");
 
  392                $ilTabs->clearTargets();
 
  393                $ilTabs->setBackTarget(
$lng->txt(
"back"),
 
  394                        $ilCtrl->getLinkTarget($this, 
"members"));
 
  396                if($a_show_peer_review)
 
  398                        $cmd = 
"listTextAssignmentWithPeerReview";
 
  402                        $cmd = 
"listTextAssignment";
 
  404                include_once 
"Modules/Exercise/classes/class.ilExAssignmentListTextTableGUI.php";
 
  415                if(!strlen(trim(
$_POST[
'user_login'])))
 
  421                $users = explode(
',', 
$_POST[
'user_login']);
 
  424                foreach($users as $user)
 
  434                        $user_ids[] = $user_id;
 
  450                if(!count($a_user_ids))
 
  456                if(!$this->exercise->members_obj->assignMembers($a_user_ids))
 
  482                $this->ctrl->redirect($this, 
"members");
 
  504                $this->ctrl->setParameter($this, 
"ass_id", 
"");
 
  507                include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
 
  509                $members = $this->exercise->members_obj->getMembers();
 
  511                if (count($members) == 0)
 
  518                foreach ($members as $mem_id)
 
  522                                include_once(
"./Services/User/classes/class.ilObjUser.php");
 
  524                                if (trim($name[
"login"]) != 
"")         
 
  526                                        $mems[$mem_id] = $name;
 
  533                if (
$_GET[
"part_id"] == 
"" && count($mems) > 0)
 
  535                        $_GET[
"part_id"] = key($mems);
 
  538                $current_participant = 
$_GET[
"part_id"];
 
  541                if (count($mems) > 1)
 
  544                        foreach ($mems as $k => $m)
 
  547                                        $m[
"lastname"].
", ".$m[
"firstname"].
" [".$m[
"login"].
"]";
 
  549                        include_once(
"./Services/Form/classes/class.ilSelectInputGUI.php");
 
  552                        $si->setValue($current_participant);
 
  553                        $ilToolbar->addStickyItem(
$si);
 
  555                        include_once(
"./Services/UIComponent/Button/classes/class.ilSubmitButton.php");
 
  557                        $button->setCaption(
"exc_select_part");
 
  558                        $button->setCommand(
"selectParticipant");                       
 
  559                        $ilToolbar->addStickyItem($button);
 
  561                        $ilToolbar->setFormAction(
$ilCtrl->getFormAction($this));               
 
  564                if (count($mems) > 0)
 
  566                        $this->ctrl->setParameter($this, 
"vw", self::VIEW_PARTICIPANT);
 
  567                        $this->ctrl->setParameter($this, 
"part_id", $current_participant);
 
  569                        include_once(
"./Modules/Exercise/classes/class.ilExParticipantTableGUI.php");
 
  571                                $this->exercise, $current_participant);
 
  572                        $tpl->setContent($part_tab->getHTML().
 
  573                                $this->initIndividualDeadlineModal());
 
  583                include_once(
"./Modules/Exercise/classes/class.ilExParticipantTableGUI.php");
 
  585                $exc_tab->resetOffset();
 
  586                $exc_tab->writeFilterToSession();
 
  593                include_once(
"./Modules/Exercise/classes/class.ilExParticipantTableGUI.php");
 
  595                $exc_tab->resetOffset();
 
  596                $exc_tab->resetFilter();
 
  619                include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
 
  621                $mems = $mem_obj->getMembers();
 
  623                if (count($mems) > 0)
 
  625                        $ilToolbar->addButton(
$lng->txt(
"exc_export_excel"),
 
  626                                $ilCtrl->getLinkTarget($this, 
"exportExcel"));
 
  629                $this->ctrl->setParameter($this, 
"vw", self::VIEW_GRADES);
 
  631                include_once(
"./Modules/Exercise/classes/class.ilExGradesTableGUI.php");
 
  633                        $this->exercise, $mem_obj);
 
  634                $tpl->setContent($grades_tab->getHTML()); 
 
  644                if (
$_GET[
"member_id"] != 
"")
 
  647                        $members = $submission->getUserIds();                           
 
  651                        $members = array_keys($members);                        
 
  657                        foreach($members as $user_id)
 
  659                                $member_status = $this->assignment->getMemberStatus($user_id);
 
  660                                $member_status->setFeedback(
true);
 
  661                                $member_status->update();
 
  665                        $logins = implode($logins, 
",");
 
  668                        $sig = chr(13).chr(10).chr(13).chr(10);
 
  669                        $sig .= $this->lng->txt(
'exc_mail_permanent_link');
 
  670                        $sig .= chr(13).chr(10).chr(13).chr(10);
 
  671                        include_once 
'./Services/Link/classes/class.ilLink.php';
 
  673                        $sig = rawurlencode(base64_encode($sig));
 
  675                        require_once 
'Services/Mail/classes/class.ilMailFormCall.php';
 
  696                foreach($this->exercise->members_obj->getMembers() as $member_id)
 
  699                        $submission->updateTutorDownloadTime();
 
  705                                foreach($submission->getFiles() as 
$file)
 
  711                                $members[$member_id][
"name"] = $tmp_obj->getFirstname() . 
" " . $tmp_obj->getLastname();
 
  722                if($this->assignment)
 
  727                                $this->ctrl->redirect($this, 
"members");
 
  730                        foreach(array_keys(
$_POST[
"member"]) as $user_id)
 
  733                                $tmembers = $submission->getUserIds();
 
  734                                if(!(
bool)$a_keep_teams)
 
  736                                        foreach($tmembers as $tuser_id)
 
  738                                                $members[$tuser_id] = 1;
 
  745                                                $members[] = $tmembers;
 
  750                                                $members[] = $user_id;
 
  761                                $this->ctrl->redirect($this, 
"showParticipant");
 
  764                        $user_id = 
$_GET[
"part_id"];
 
  766                        include_once 
"Modules/Exercise/classes/class.ilExAssignment.php";
 
  767                        foreach(array_keys(
$_POST[
"ass"]) as $ass_id)
 
  770                                $tmembers = $submission->getUserIds();
 
  771                                if(!(
bool)$a_keep_teams)
 
  773                                        foreach($tmembers as $tuser_id)
 
  775                                                $members[$ass_id][] = $tuser_id;
 
  782                                                $members[$ass_id][] = $tmembers;
 
  787                                                $members[$ass_id][] = $user_id;
 
  804                if($this->assignment)
 
  806                        $this->exercise->sendAssignment($this->assignment, array_keys($members));                       
 
  807                        $this->ctrl->redirect($this, 
"members");
 
  811                        foreach($members as $ass_id => $users)
 
  813                                $this->exercise->sendAssignment(
new ilExAssignment($ass_id), $users);   
 
  815                        $this->ctrl->setParameter($this, 
"part_id", 
$_GET[
"part_id"]); 
 
  816                        $this->ctrl->redirect($this, 
"showParticipant");
 
  829                include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
 
  831                $cgui->setFormAction(
$ilCtrl->getFormAction($this));
 
  832                $cgui->setHeaderText(
$lng->txt(
"exc_msg_sure_to_deassign_participant"));
 
  833                $cgui->setCancel(
$lng->txt(
"cancel"), 
"members");
 
  834                $cgui->setConfirm(
$lng->txt(
"remove"), 
"deassignMembers");
 
  836                include_once(
"./Services/User/classes/class.ilUserUtil.php");
 
  837                foreach ($members as $k => $m)
 
  839                        $cgui->addItem(
"member[$k]", $m,
 
  843                $tpl->setContent($cgui->getHTML());             
 
  855                foreach(array_keys($members) as $usr_id)
 
  857                        $this->exercise->members_obj->deassignMember((
int) $usr_id);
 
  860                $ilCtrl->redirect($this, 
"members");            
 
  865                if(!isset(
$_POST[
'comments_value']))
 
  870                $this->exercise->members_obj->setNoticeForMember(
$_GET[
"member_id"],
 
  883                $member_id = (int)
$_GET[
"part_id"];
 
  885                foreach(array_keys(
$_POST[
"id"]) as $ass_id)
 
  887                        if(is_array($a_selected) &&
 
  888                                !in_array($ass_id, $a_selected))
 
  893                        $data[$ass_id][$member_id] = array(
 
  897                        if(array_key_exists(
"mark", 
$_POST))
 
  901                        if(array_key_exists(
"notice", 
$_POST))
 
  907                $ilCtrl->setParameter($this, 
"part_id", $member_id); 
 
  914                if (is_array(
$_POST[
"id"]))
 
  916                        foreach (array_keys(
$_POST[
"id"]) as $user_id)
 
  918                                if (is_array($a_selected) &&
 
  919                                        !in_array($user_id, $a_selected))
 
  924                                $data[-1][$user_id] = array(
 
  928                                if (array_key_exists(
"mark", 
$_POST))
 
  932                                if (array_key_exists(
"notice", 
$_POST))
 
  945                if($this->assignment)
 
  958        protected function saveStatus(array $a_data, $a_redirect = 
true)
 
  962                include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
 
  964                $saved_for = array();           
 
  965                foreach($a_data as $ass_id => $users)
 
  970                        foreach($users as $user_id => $values)
 
  974                                foreach($submission->getUserIds() as $sub_user_id)
 
  977                                        $saved_for[$sub_user_id] = $uname[
"lastname"].
", ".$uname[
"firstname"];                                 
 
  979                                        $member_status = $ass->getMemberStatus($sub_user_id);
 
  982                                        $status = $values[
"status"];
 
  985                                                $status = 
"notgraded";
 
  987                                        $member_status->setStatus($status);
 
  988                                        if(array_key_exists(
"mark", $values))
 
  990                                                $member_status->setMark($values[
"mark"]);                                       
 
  992                                        if(array_key_exists(
"notice", $values))
 
  994                                                $member_status->setNotice($values[
"notice"]);                   
 
  996                                        $member_status->update();       
 
 1001                if (count($saved_for) > 0)
 
 1003                        $save_for_str = 
"(".implode($saved_for, 
" - ").
")";
 
 1018                $res = array(
"result"=>
false);
 
 1020                if($this->ctrl->isAsynch())
 
 1022                        $ass_id = (int)
$_POST[
"ass_id"];
 
 1023                        $user_id = (int)
$_POST[
"mem_id"];
 
 1026                        if($ass_id && $user_id)
 
 1029                                $user_ids = $submission->getUserIds();
 
 1032                                $all_members = $all_members->getMembers();
 
 1034                                $reci_ids = array();
 
 1035                                foreach($user_ids as $user_id)
 
 1037                                        if(in_array($user_id, $all_members))
 
 1039                                                $member_status = $this->assignment->getMemberStatus($user_id);
 
 1041                                                $member_status->setFeedback(
true);
 
 1042                                                $member_status->update();
 
 1046                                                        $reci_ids[] = $user_id;
 
 1051                                if(
sizeof($reci_ids))
 
 1054                                        $this->exercise->sendFeedbackFileNotification(
null, $reci_ids, 
 
 1058                                $res = array(
"result"=>
true, 
"snippet"=>nl2br(
$comment));
 
 1062                echo(json_encode(
$res));                
 
 1071                $this->exercise->exportGradesExcel();
 
 1086                $new_members = array();
 
 1088                include_once 
"Modules/Exercise/classes/class.ilExAssignmentTeam.php";
 
 1089                foreach($members as $group)
 
 1091                        if(is_array($group))
 
 1093                                $new_members = array_merge($new_members, $group);
 
 1095                                $first_user = $group;
 
 1096                                $first_user = array_shift($first_user);
 
 1098                                foreach($group as $user_id)
 
 1100                                        $team->removeTeamMember($user_id);
 
 1105                                $new_members[] = $group;
 
 1109                if(
sizeof($new_members))
 
 1113                        $first_user = array_shift($new_members);
 
 1115                        if(
sizeof($new_members))
 
 1117                                foreach($new_members as $user_id)
 
 1119                                        $team->addTeamMember($user_id);
 
 1124                        $submission = 
new ilExSubmission($this->assignment, $first_user);                               
 
 1125                        $this->exercise->processExerciseStatus(
 
 1127                                $team->getMembers(),
 
 1128                                $submission->hasSubmitted(),
 
 1129                                $submission->validatePeerReviews()
 
 1134                $ilCtrl->redirect($this, 
"members");                                    
 
 1143                include_once 
"Modules/Exercise/classes/class.ilExAssignmentTeam.php";
 
 1144                foreach($members as $group)
 
 1147                        if(is_array($group))
 
 1151                                $first_user = $group;
 
 1152                                $first_user = array_shift($first_user);
 
 1154                                foreach($group as $user_id)
 
 1156                                        $team->removeTeamMember($user_id);
 
 1160                                $this->exercise->processExerciseStatus(
 
 1169                $ilCtrl->redirect($this, 
"members");            
 
 1176                $ilTabs->clearTargets();                                
 
 1177                $ilTabs->setBackTarget(
$lng->txt(
"back"),
 
 1178                        $ilCtrl->getLinkTarget($this, $this->getViewBack()));
 
 1184                $tpl->setContent($a_form->getHTML());           
 
 1191                include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
 
 1193                $form->setTitle(
$lng->txt(
"exc_adopt_group_teams").
" - ".$this->assignment->getTitle());
 
 1194                $form->setFormAction($this->ctrl->getFormAction($this, 
"createTeamsFromGroups"));               
 
 1196                include_once 
"Modules/Exercise/classes/class.ilExAssignmentTeam.php";
 
 1197                include_once 
"Services/User/classes/class.ilUserUtil.php";
 
 1198                $all_members = array();
 
 1201                        if(
sizeof($group[
"members"]))
 
 1205                                foreach($group[
"members"] as $user_id)
 
 1209                                        if(!in_array($user_id, $all_members))
 
 1211                                                $grp_value[] = $user_id;
 
 1212                                                $all_members[] = $user_id;
 
 1216                                foreach(
$options as $user_id => $user_name)
 
 1220                                $grp_team->setValue($grp_value);
 
 1221                                $form->addItem($grp_team);
 
 1226                                $grp_team->setValue(
$lng->txt(
"exc_adopt_group_teams_no_members"));
 
 1227                                $form->addItem($grp_team);
 
 1231                if(
sizeof($all_members))
 
 1233                        $form->addCommandButton(
"createTeamsFromGroups", 
$lng->txt(
"save"));
 
 1235                $form->addCommandButton(
"members", 
$lng->txt(
"cancel"));
 
 1245                if($form->checkInput())
 
 1247                        include_once 
"Services/User/classes/class.ilUserUtil.php";
 
 1249                        $all_members = $teams = array();
 
 1251                        foreach(array_keys($map) as $grp_id)
 
 1253                                $postvar = 
"grpt_".$grp_id;
 
 1254                                $members = 
$_POST[$postvar];
 
 1255                                if(is_array($members))
 
 1257                                        $teams[] = $members;
 
 1258                                        $invalid_team_members = array();
 
 1260                                        foreach($members as $user_id)
 
 1262                                                if(!array_key_exists($user_id, $all_members))
 
 1264                                                        $all_members[$user_id] = $grp_id;
 
 1269                                                        $invalid_team_members[] = $user_id;                                                     
 
 1273                                        if(
sizeof($invalid_team_members))
 
 1278                                                foreach($invalid_team_members as $user_id)
 
 1281                                                        $grp_title = $map[$all_members[$user_id]][
"title"];
 
 1282                                                        $alert[] = 
sprintf(
$lng->txt(
"exc_adopt_group_teams_conflict"), $user_name, $grp_title);
 
 1284                                                $input = $form->getItemByPostVar($postvar);
 
 1285                                                $input->setAlert(implode(
"<br/>", $alert));
 
 1296                                        $sum = array(
"added"=>0, 
"blocked"=>0);                                                                         
 
 1297                                        foreach($teams as $members)
 
 1299                                                foreach($members as $user_id)
 
 1301                                                        if(!$this->exercise->members_obj->isAssigned($user_id))
 
 1303                                                                $this->exercise->members_obj->assignMember($user_id);
 
 1306                                                        if(!in_array($user_id, $existing_users))
 
 1316                                                $first = array_shift($members);
 
 1322                                                if(
sizeof($members))
 
 1324                                                        foreach($members as $user_id)
 
 1326                                                                $team->addTeamMember($user_id);                                                         
 
 1334                                                $mess[] = 
sprintf(
$lng->txt(
"exc_adopt_group_teams_added"), $sum[
"added"]);
 
 1338                                                $mess[] = 
sprintf(
$lng->txt(
"exc_adopt_group_teams_blocked"), $sum[
"blocked"]);
 
 1349                                $this->ctrl->redirect($this, 
"members");
 
 1357                $form->setValuesByPost();
 
 1370                include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
 
 1372                $form->addCommandButton(
"uploadMultiFeedback", 
$lng->txt(
"upload"));
 
 1373                $form->addCommandButton(
"members", 
$lng->txt(
"cancel"));
 
 1377                $fi->setSuffixes(array(
"zip"));
 
 1378                $fi->setRequired(
true);
 
 1379                $form->addItem($fi);
 
 1382                $form->setFormAction($this->ctrl->getFormAction($this, 
"uploadMultiFeedback"));         
 
 1402                include_once(
"./Services/UIComponent/Button/classes/class.ilLinkButton.php");
 
 1404                $button->setCaption(
"exc_download_zip_structure");
 
 1405                $button->setUrl($this->ctrl->getLinkTarget($this, 
"downloadMultiFeedbackZip"));                                                 
 
 1406                $button->setOmitPreventDoubleSubmission(
true);
 
 1407                $ilToolbar->addButtonInstance($button);
 
 1414                $tpl->setContent($a_form->getHTML());
 
 1422                $this->assignment->sendMultiFeedbackStructureFile($this->exercise);
 
 1432                if($form->checkInput())
 
 1437                                $this->ctrl->redirect($this, 
"showMultiFeedbackConfirmationTable");
 
 1442                                $this->ctrl->redirect($this, 
"showMultiFeedback");
 
 1446                $form->setValuesByPost();
 
 1462                include_once(
"./Modules/Exercise/classes/class.ilFeedbackConfirmationTable2GUI.php");
 
 1472                $this->assignment->clearMultiFeedbackDirectory();               
 
 1473                $this->ctrl->redirect($this, 
"members");
 
 1481                $this->assignment->saveMultiFeedbackFiles(
$_POST[
"file"], $this->exercise);
 
 1484                $this->ctrl->redirect($this, 
"members");
 
 1497                include_once 
"./Services/UIComponent/Modal/classes/class.ilModalGUI.php";
 
 1499                $modal->setHeading(
$lng->txt(
"exc_individual_deadline"));
 
 1500                $modal->setId(
"ilExcIDl");
 
 1501                $modal->setBody(
'<div id="ilExcIDlBody"></div>');
 
 1502                $modal = $modal->getHTML();
 
 1504                $ajax_url = $this->ctrl->getLinkTarget($this, 
"handleIndividualDeadlineCalls", 
"", 
true, 
false);
 
 1506                $tpl->addJavaScript(
"./Modules/Exercise/js/ilExcIDl.js", 
true, 3);                                                      
 
 1507                $tpl->addOnloadCode(
'il.ExcIDl.init("'.$ajax_url.
'");');
 
 1509                include_once 
"Services/Calendar/classes/class.ilCalendarUtil.php";      
 
 1521                        foreach($a_data as $item)
 
 1523                                $item = explode(
"_", $item);
 
 1525                                $user_id = $item[1];
 
 1527                                if(!array_key_exists($ass_id, $ass_tmp))
 
 1529                                        if($this->assignment && 
 
 1530                                                $ass_id == $this->assignment->getId())
 
 1540                                $map[$ass_id][] = $user_id;
 
 1543                        return array($map, $ass_tmp);                   
 
 1551                $this->ctrl->saveParameter($this, 
"part_id");                   
 
 1554                if((
bool)
$_GET[
"dn"])
 
 1557                        $this->ctrl->redirect($this, $this->assignment
 
 1559                                : 
"showParticipant");   
 
 1562                include_once 
"Modules/Exercise/classes/class.ilExAssignment.php";
 
 1571                                echo $form->getHTML().
 
 1572                                        $tpl->getOnLoadCodeForAsynch();         
 
 1579                        foreach(array_keys(
$_POST) as $id)
 
 1581                                if(substr($id, 0, 3) == 
"dl_")
 
 1583                                        $tmp[] = substr($id, 3);
 
 1593                        if(
$valid = $form->checkInput())
 
 1595                                foreach($users as $ass_id => $users)
 
 1597                                        $ass = $ass_map[$ass_id];
 
 1602                                        foreach($users as $user_id)
 
 1604                                                $date_field = $form->getItemByPostVar(
"dl_".$ass_id.
"_".$user_id);
 
 1612                                                        $res[$ass_id][$user_id] = $date_field->getDate();
 
 1620                                $form->setValuesByPost();
 
 1621                                echo $form->getHTML().
 
 1622                                        $tpl->getOnLoadCodeForAsynch();
 
 1626                                foreach(
$res as $ass_id => $users)
 
 1628                                        $ass = $ass_map[$ass_id];
 
 1630                                        foreach($users as $id => $date)
 
 1632                                                $ass->setIndividualDeadline($id, $date);
 
 1635                                        $ass->recalculateLateSubmissions();
 
 1647                include_once 
"Services/Form/classes/class.ilPropertyFormGUI.php";
 
 1649                $form->setFormAction($this->ctrl->getFormAction($this));
 
 1650                $form->setName(
"ilExcIDlForm");
 
 1652                include_once 
"Services/User/classes/class.ilUserUtil.php";
 
 1653                foreach($ids as $ass_id => $users)
 
 1655                        $ass = $a_ass_map[$ass_id];
 
 1658                        $section->setTitle($ass->getTitle());
 
 1661                        include_once(
"./Modules/Exercise/classes/class.ilExAssignmentTeam.php");
 
 1664                        $values = $ass->getIndividualDeadlines();
 
 1666                        foreach($users as $id)
 
 1672                                        $name = $name[
"lastname"].
", ".$name[
"firstname"];
 
 1678                                        $team_id = (int)substr($id, 1);
 
 1679                                        if(array_key_exists($team_id, $teams))
 
 1682                                                foreach($teams[$team_id]->getMembers() as $member_id)
 
 1685                                                        $name[] = $uname[
"lastname"].
", ".$uname[
"firstname"];
 
 1688                                                $name = implode(
"<br />", $name);
 
 1693                                $dl->setShowTime(
true);
 
 1694                                $dl->setRequired(
true);
 
 1695                                $form->addItem($dl);
 
 1697                                if(array_key_exists($id, $values))
 
 1704                $form->addCommandButton(
"", $this->lng->txt(
"save"));
 
 1714                if($this->assignment)
 
sprintf('%.4f', $callTime)
An exception for terminatinating execution or to throw for unit testing.
static initDateTimePicker()
This class represents an option in a checkbox group.
Confirmation screen class.
static formatDate(ilDateTime $date)
Format a date @access public.
@classDescription Date and time handling
static _before(ilDateTime $start, ilDateTime $end, $a_compare_field='', $a_tz='')
compare two dates and check start is before end This method does not consider tz offsets.
static getAdoptableGroups($a_exc_ref_id)
static getGroupMembersMap($a_exc_ref_id)
static getAssignmentTeamMap($a_ass_id)
Get team structure for assignment.
static getInstanceByUserId($a_assignment_id, $a_user_id, $a_create_on_demand=false)
static getInstancesFromMap($a_assignment_id)
static getInstancesByExercise($a_exc_id)
static getAssignmentDataOfExercise($a_exc_id)
Get assignments data of an exercise in an array.
static lookupTitle($a_id)
Lookup title.
Exercise participant table.
Exercise participant table.
Object-based submissions (ends up as static file)
static hasAnySubmissions($a_ass_id)
static downloadAllAssignmentFiles(ilExAssignment $a_ass, array $members)
Download all submitted files of an assignment (all user)
Class to report exception.
Class ilExerciseManagementGUI.
initIndividualDeadlineModal()
initIndividualDeadlineForm(array $a_ass_map, array $ids)
selectAssignmentObject()
Select assignment.
exportExcelObject()
Export as excel.
listTextAssignmentObject($a_show_peer_review=false)
redirectFeedbackMailObject()
set feedback status for member and redirect to mail screen
showParticipantResetObject()
confirmDeassignMembersObject()
Confirm deassigning members.
addSubTabs($a_activate)
adds tabs to tab gui object
initMultiFeedbackForm($a_ass_id)
uploadMultiFeedbackObject()
Upload multi feedback file.
getMultiActionUserIds($a_keep_teams=false)
sendMembersObject()
Send assignment per mail to participants.
saveStatusAllObject(array $a_selected=null, $a_redirect=true)
showMultiFeedbackObject(ilPropertyFormGUI $a_form=null)
Show multi-feedback screen.
saveStatusParticipantObject(array $a_selected=null)
Save assignment status (participant view)
adoptTeamsFromGroupObject(ilPropertyFormGUI $a_form=null)
deassignMembersObject()
Deassign members from exercise.
saveStatusSelectedObject()
showMultiFeedbackConfirmationTableObject()
Show multi feedback confirmation table.
saveMultiFeedbackObject()
Save multi feedback.
setIndividualDeadlineObject()
cancelMultiFeedbackObject()
Cancel Multi Feedback.
membersObject()
All participants and submission of one assignment.
parseIndividualDeadlineData(array $a_data)
showGradesOverviewObject()
Show grades overview.
addUserFromAutoCompleteObject()
Add user as member.
selectParticipantObject()
Select participant.
showParticipantObject()
Show Participant.
listTextAssignmentWithPeerReviewObject()
saveGradesObject()
Save grades.
downloadAllObject()
Download all submitted files (of all members).
downloadMultiFeedbackZipObject()
Download multi-feedback structrue file.
handleIndividualDeadlineCallsObject()
addMembersObject($a_user_ids=array())
Add new partipant.
showParticipantApplyObject()
saveStatus(array $a_data, $a_redirect=true)
Save status of selecte members.
__construct(ilObjExercise $a_exercise, ilExAssignment $a_ass=null)
Constructor.
saveCommentForLearnersObject()
Save comment for learner (asynch)
createTeamsFromGroupsObject()
File System Explorer GUI class.
static _getLink($a_ref_id, $a_type='', $a_params=array(), $append="")
static getInstance()
Get instance.
This class represents a non editable value in a property form.
static _lookupLogin($a_user_id)
lookup login
static _lookupId($a_user_str)
Lookup id by login.
static _lookupName($a_user_id)
lookup user name
static getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
static _exists($a_id, $a_reference=false, $a_type=null)
checks if an object exists in object_data@access public
static _lookupType($a_id, $a_reference=false)
lookup object type
static fillAutoCompleteToolbar($parent_object, ilToolbarGUI $toolbar=null, $a_options=array(), $a_sticky=false)
fill toolbar with
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 sortArray($array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static redirect($a_script)
http redirect to other script
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
static stripSlashesArray($a_arr, $a_strip_html=true, $a_allow="")
Strip slashes from array.
if(!file_exists("$old.txt")) if( $old===$new) if(file_exists("$new.txt")) $file
if(!is_array($argv)) $options