Ejemplo n.º 1
0
 public function createTeamObject()
 {
     global $ilCtrl, $ilUser, $ilTabs, $lng, $tpl;
     $this->checkPermission("read");
     if ($this->ass->getDeadline() == 0 || mktime() < $this->ass->getDeadline()) {
         $options = ilExAssignment::getAdoptableTeamAssignments($this->ass->getExerciseId(), $this->ass->getId(), $ilUser->getId());
         if (sizeof($options)) {
             $ilTabs->activateTab("content");
             $this->addContentSubTabs("content");
             include_once "Services/Form/classes/class.ilPropertyFormGUI.php";
             $form = new ilPropertyFormGUI();
             $form->setTitle($lng->txt("exc_team_assignment_adopt_user"));
             $form->setFormAction($ilCtrl->getFormAction($this, "createAdoptedTeam"));
             $teams = new ilRadioGroupInputGUI($lng->txt("exc_assignment"), "ass_adpt");
             $teams->setValue(-1);
             $teams->addOption(new ilRadioOption($lng->txt("exc_team_assignment_adopt_none_user"), -1));
             $current_map = ilExAssignment::getAssignmentTeamMap($this->ass->getId());
             include_once "Services/User/classes/class.ilUserUtil.php";
             foreach ($options as $id => $item) {
                 $members = array();
                 $free = false;
                 foreach ($item["user_team"] as $user_id) {
                     $members[$user_id] = ilUserUtil::getNamePresentation($user_id);
                     if (array_key_exists($user_id, $current_map)) {
                         $members[$user_id] .= " (" . $lng->txt("exc_team_assignment_adopt_already_assigned") . ")";
                     } else {
                         $free = true;
                     }
                 }
                 asort($members);
                 $members = implode("<br />", $members);
                 $option = new ilRadioOption($item["title"], $id);
                 $option->setInfo($members);
                 if (!$free) {
                     $option->setDisabled(true);
                 }
                 $teams->addOption($option);
             }
             $form->addItem($teams);
             $form->addCommandButton("createAdoptedTeam", $lng->txt("save"));
             $form->addCommandButton("showOverview", $lng->txt("cancel"));
             $tpl->setContent($form->getHTML());
             return;
         }
         $this->ass->getTeamId($ilUser->getId(), true);
         ilUtil::sendSuccess($this->lng->txt("settings_saved"), true);
     }
     $ilCtrl->redirect($this, "showOverview");
 }
Ejemplo n.º 2
0
 public static function getAdoptableTeamAssignments($a_exercise_id, $a_exclude_ass_id = null, $a_user_id = null)
 {
     $res = array();
     $data = ilExAssignment::getAssignmentDataOfExercise($a_exercise_id);
     foreach ($data as $row) {
         if ($a_exclude_ass_id && $row["id"] == $a_exclude_ass_id) {
             continue;
         }
         if ($row["type"] == ilExAssignment::TYPE_UPLOAD_TEAM) {
             $map = ilExAssignment::getAssignmentTeamMap($row["id"]);
             if ($a_user_id && !array_key_exists($a_user_id, $map)) {
                 continue;
             }
             if (sizeof($map)) {
                 $user_team = null;
                 if ($a_user_id) {
                     $user_team_id = $map[$a_user_id];
                     $user_team = array();
                     foreach ($map as $user_id => $team_id) {
                         if ($user_id != $a_user_id && $user_team_id == $team_id) {
                             $user_team[] = $user_id;
                         }
                     }
                 }
                 if (!$a_user_id || sizeof($user_team)) {
                     $res[$row["id"]] = array("title" => $row["title"], "teams" => sizeof(array_flip($map)));
                     if ($a_user_id) {
                         $res[$row["id"]]["user_team"] = $user_team;
                     }
                 }
             }
         }
     }
     return ilUtil::sortArray($res, "title", "asc", false, true);
 }
 /**
  * Constructor
  */
 function __construct($a_parent_obj, $a_parent_cmd, $a_exc, $a_ass_id)
 {
     global $ilCtrl, $lng, $ilAccess, $lng;
     $this->exc = $a_exc;
     $this->exc_id = $this->exc->getId();
     $this->setId("exc_mem_" . $a_ass_id);
     include_once "./Modules/Exercise/classes/class.ilFSStorageExercise.php";
     $this->storage = new ilFSStorageExercise($this->exc_id, $a_ass_id);
     include_once "./Modules/Exercise/classes/class.ilExAssignment.php";
     $this->ass_id = $a_ass_id;
     parent::__construct($a_parent_obj, $a_parent_cmd);
     $this->setTitle($lng->txt("exc_assignment") . ": " . ilExAssignment::lookupTitle($a_ass_id));
     $this->setTopCommands(true);
     //$this->setLimit(9999);
     $this->type = ilExAssignment::lookupType($this->ass_id);
     $data = ilExAssignment::getMemberListData($this->exc_id, $this->ass_id);
     // team upload?  (1 row == 1 team)
     if ($this->type == ilExAssignment::TYPE_UPLOAD_TEAM) {
         $ass_obj = new ilExAssignment($this->ass_id);
         $team_map = ilExAssignment::getAssignmentTeamMap($this->ass_id);
         $tmp = array();
         foreach ($data as $item) {
             $team_id = $team_map[$item["usr_id"]];
             // #11058
             if (!$team_id) {
                 $team_id = $ass_obj->getTeamId($item["usr_id"], true);
             }
             if (!isset($tmp[$team_id])) {
                 $tmp[$team_id] = $item;
             }
             $tmp[$team_id]["team"][$item["usr_id"]] = $item["name"];
             $tmp[$team_id]["team_id"] = $team_id;
         }
         $data = $tmp;
         unset($tmp);
     }
     $this->setData($data);
     $this->addColumn("", "", "1", true);
     if ($this->type != ilExAssignment::TYPE_UPLOAD_TEAM) {
         $this->addColumn($this->lng->txt("image"), "", "1");
         $this->addColumn($this->lng->txt("name"), "name");
         $this->addColumn($this->lng->txt("login"), "login");
     } else {
         $this->addColumn($this->lng->txt("exc_team"));
     }
     $this->sent_col = ilExAssignment::lookupAnyExerciseSent($this->exc->getId(), $this->ass_id);
     if ($this->sent_col) {
         $this->addColumn($this->lng->txt("exc_exercise_sent"), "sent_time");
     }
     $this->addColumn($this->lng->txt("exc_submission"), "submission");
     $this->addColumn($this->lng->txt("exc_grading"), "solved_time");
     $this->addColumn($this->lng->txt("feedback"), "feedback_time");
     $this->setDefaultOrderField("name");
     $this->setDefaultOrderDirection("asc");
     $this->setEnableHeader(true);
     $this->setFormAction($ilCtrl->getFormAction($a_parent_obj));
     $this->setRowTemplate("tpl.exc_members_row.html", "Modules/Exercise");
     //$this->disable("footer");
     $this->setEnableTitle(true);
     $this->setSelectAllCheckbox("member");
     $this->addMultiCommand("saveStatus", $lng->txt("exc_save_changes"));
     $this->addMultiCommand("redirectFeedbackMail", $lng->txt("exc_send_mail"));
     $this->addMultiCommand("sendMembers", $lng->txt("exc_send_assignment"));
     $this->addMultiCommand("confirmDeassignMembers", $lng->txt("exc_deassign_members"));
     //if(count($this->exc->members_obj->getAllDeliveredFiles()))
     if (count(ilExAssignment::getAllDeliveredFiles($this->exc_id, $this->ass_id))) {
         $this->addCommandButton("downloadAll", $lng->txt("download_all_returned_files"));
     }
 }
 /**
  * Constructor
  */
 function __construct($a_parent_obj, $a_parent_cmd, $a_exc, $a_ass_id)
 {
     global $ilCtrl, $lng;
     $this->exc = $a_exc;
     $this->exc_id = $this->exc->getId();
     $this->setId("exc_mem_" . $a_ass_id);
     include_once "./Modules/Exercise/classes/class.ilFSStorageExercise.php";
     $this->storage = new ilFSStorageExercise($this->exc_id, $a_ass_id);
     include_once "./Modules/Exercise/classes/class.ilExAssignment.php";
     $this->ass_id = $a_ass_id;
     parent::__construct($a_parent_obj, $a_parent_cmd);
     $this->setTitle($lng->txt("exc_assignment") . ": " . ilExAssignment::lookupTitle($a_ass_id));
     $this->setTopCommands(true);
     //$this->setLimit(9999);
     $this->type = ilExAssignment::lookupType($this->ass_id);
     $data = ilExAssignment::getMemberListData($this->exc_id, $this->ass_id);
     // team upload?  (1 row == 1 team)
     if ($this->type == ilExAssignment::TYPE_UPLOAD_TEAM) {
         $ass_obj = new ilExAssignment($this->ass_id);
         $team_map = ilExAssignment::getAssignmentTeamMap($this->ass_id);
         $tmp = array();
         foreach ($data as $item) {
             $team_id = $team_map[$item["usr_id"]];
             if (!$team_id) {
                 // #11058
                 // $team_id = $ass_obj->getTeamId($item["usr_id"], true);
                 // #11957
                 $team_id = "nty" . $item["usr_id"];
             }
             if (!isset($tmp[$team_id])) {
                 $tmp[$team_id] = $item;
             }
             $tmp[$team_id]["team"][$item["usr_id"]] = $item["name"];
             $tmp[$team_id]["team_id"] = $team_id;
         }
         $data = $tmp;
         unset($tmp);
     } else {
         // peer review / rating
         $ass_obj = new ilExAssignment($this->ass_id);
         $this->peer_review = $ass_obj->getPeerReview();
         if ($this->peer_review) {
             include_once './Services/Rating/classes/class.ilRatingGUI.php';
         }
     }
     $this->setData($data);
     $this->addColumn("", "", "1", true);
     if ($this->type != ilExAssignment::TYPE_UPLOAD_TEAM) {
         $this->selected = $this->getSelectedColumns();
         if (in_array("image", $this->selected)) {
             $this->addColumn($this->lng->txt("image"), "", "1");
         }
         $this->addColumn($this->lng->txt("name"), "name");
         if (in_array("login", $this->selected)) {
             $this->addColumn($this->lng->txt("login"), "login");
         }
     } else {
         $this->addColumn($this->lng->txt("exc_team"));
     }
     $this->sent_col = ilExAssignment::lookupAnyExerciseSent($this->exc->getId(), $this->ass_id);
     if ($this->sent_col) {
         $this->addColumn($this->lng->txt("exc_exercise_sent"), "sent_time");
     }
     $this->addColumn($this->lng->txt("exc_submission"), "submission");
     $this->addColumn($this->lng->txt("exc_grading"), "solved_time");
     $this->addColumn($this->lng->txt("feedback"), "feedback_time");
     $this->setDefaultOrderField("name");
     $this->setDefaultOrderDirection("asc");
     $this->setEnableHeader(true);
     $this->setFormAction($ilCtrl->getFormAction($a_parent_obj));
     $this->setRowTemplate("tpl.exc_members_row.html", "Modules/Exercise");
     //$this->disable("footer");
     $this->setEnableTitle(true);
     $this->setSelectAllCheckbox("member");
     $this->addMultiCommand("saveStatus", $lng->txt("exc_save_selected"));
     $this->addMultiCommand("redirectFeedbackMail", $lng->txt("exc_send_mail"));
     $this->addMultiCommand("sendMembers", $lng->txt("exc_send_assignment"));
     $this->addMultiCommand("confirmDeassignMembers", $lng->txt("exc_deassign_members"));
     $this->addCommandButton("saveStatusAll", $lng->txt("exc_save_all"));
     include_once "Services/Form/classes/class.ilPropertyFormGUI.php";
     include_once "Services/UIComponent/Overlay/classes/class.ilOverlayGUI.php";
     $this->overlay_tpl = new ilTemplate("tpl.exc_learner_comment_overlay.html", true, true, "Modules/Exercise");
 }