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"); }
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"); }