/** * Save status of selecte members */ function saveStatusObject($a_part_view = false, $a_force_all = false) { global $ilCtrl; $this->checkPermission("write"); include_once "./Modules/Exercise/classes/class.ilExAssignment.php"; // include_once 'Services/Tracking/classes/class.ilLPMarks.php'; $saved_for = array(); foreach ($_POST["id"] as $key => $value) { if (!$a_part_view) { if (!$a_force_all && $_POST["member"][$key] != "1") { continue; } else { $uname = ilObjUser::_lookupName($key); $saved_for[] = $uname["lastname"] . ", " . $uname["firstname"]; } } if (!$a_part_view) { $ass_id = (int) $_GET["ass_id"]; $user_id = (int) $key; } else { $ass_id = (int) $key; $user_id = (int) $_GET["part_id"]; } // team upload? if (is_object($this->ass) and $this->ass->getType() == ilExAssignment::TYPE_UPLOAD_TEAM) { $team_id = $this->ass->getTeamId($user_id); $user_ids = $this->ass->getTeamMembers($team_id); if (count($_POST["member"]) > 0) { foreach ($user_ids as $user_id) { if ($user_id != $key) { $uname = ilObjUser::_lookupName($user_id); $saved_for[] = $uname["lastname"] . ", " . $uname["firstname"]; } } } } else { $user_ids = array($user_id); } foreach ($user_ids as $user_id) { ilExAssignment::updateStatusOfUser($ass_id, $user_id, ilUtil::stripSlashes($_POST["status"][$key])); ilExAssignment::updateNoticeForUser($ass_id, $user_id, ilUtil::stripSlashes($_POST["notice"][$key])); if (ilUtil::stripSlashes($_POST['mark'][$key]) != ilExAssignment::lookupMarkOfUser($ass_id, $user_id)) { ilExAssignment::updateStatusTimeOfUser($ass_id, $user_id); } ilExAssignment::updateMarkOfUser($ass_id, $user_id, ilUtil::stripSlashes($_POST['mark'][$key])); /* ilExAssignment::updateCommentForUser($ass_id, $user_id, ilUtil::stripSlashes($_POST['lcomment'][$key])); */ } } if (count($saved_for) > 0) { $save_for_str = "(" . implode($saved_for, " - ") . ")"; } if ($save_for_str || $a_part_view) { ilUtil::sendSuccess($this->lng->txt("exc_status_saved") . " " . $save_for_str, true); } if (!$a_part_view) { $ilCtrl->redirect($this, "members"); } else { $ilCtrl->redirect($this, "showParticipant"); } }
function __updateUserRubric($user_id, $obj_id, $passing_grade_minimum) { $form = $this->initEditUserForm($user_id, $obj_id); if ($form->checkInput()) { include_once 'Services/Tracking/classes/class.ilLPMarks.php'; $marks = new ilLPMarks($obj_id, $user_id); $marks->setMark($form->getInput("mark")); $marks->setComment($form->getInput("comment")); $marks->setCompleted(1); $do_lp = true; $marks->update(); // if assignment, updated exc_mem_ass_status $obj_type = ilObject::_lookupType($obj_id); if ($obj_type == 'exc') { include_once "./Modules/Exercise/classes/class.ilExAssignment.php"; // do we have an ass id? $ass_id = 0; if (isset($_GET['ass_id'])) { // yes, came from submission and grades $ass_id = $_GET['ass_id']; } else { // no, we need to get it $ass_ids = ilExAssignment::getAssignmentDataOfExercise($obj_id); $ass_id = $ass_ids[0]['id']; } if ($marks->getMark() >= $passing_grade_minimum) { ilExAssignment::updateStatusOfUser($ass_id, $user_id, 'passed'); } else { ilExAssignment::updateStatusOfUser($ass_id, $user_id, 'failed'); } ilExAssignment::updateMarkOfUser($ass_id, $user_id, $marks->getMark()); } else { include_once "./Services/Tracking/classes/class.ilLPStatusWrapper.php"; ilLPStatusWrapper::_updateStatus($obj_id, $user_id); } include_once "./Services/Tracking/classes/class.ilLPStatus.php"; if ($marks->getMark() >= $passing_grade_minimum) { ilLPStatus::writeStatus($obj_id, $user_id, ilLPStatus::LP_STATUS_COMPLETED_NUM, false, true); } else { ilLPStatus::writeStatus($obj_id, $user_id, ilLPStatus::LP_STATUS_FAILED_NUM, false, true); } } }
/** * Prepare For a Regrade of a Rubric * @param $obj_id * @param $usr_id * @return bool */ public static function _prepareForRegrade($obj_id, $usr_id) { global $ilDB, $ilUser; $delete_date = date("Y-m-d H:i:s"); //try and set deleted on any criteria in rubric_data table where deleted is not null. $affected_rows = $ilDB->manipulate("UPDATE rubric_data d INNER JOIN rubric r on d.rubric_id = r.rubric_id SET d.deleted =\r\n " . $ilDB->quote($delete_date, "timestamp") . " WHERE d.deleted IS NULL AND d.usr_id = " . $ilDB->quote($usr_id, "integer") . " AND r.obj_id = " . $ilDB->quote($obj_id, "integer")); if ($affected_rows > 0) { //there was a mark prior, we should proceed with preparing things for a regrade. include_once 'Services/Tracking/classes/class.ilLPMarks.php'; include_once "./Modules/Exercise/classes/class.ilExAssignment.php"; include_once "./Services/Tracking/classes/class.ilLPStatus.php"; //grab everything from ut_lp_marks for the users obj_id and usr_id, that way we can save it for our own use. $marks = new ilLPMarks($obj_id, $usr_id); $status = ilLPStatus::_lookupStatus($obj_id, $usr_id); $completed = $marks->getCompleted(); $mark = $marks->getMark(); $comments = $marks->getComment(); //Save the UT LP marks for this object. We're using Delete Date for the Create Date so we can inner join to the delete up above so we have a //record of all marks. $id = $ilDB->nextID('rubric_grade_hist'); $ilDB->manipulateF("INSERT INTO rubric_grade_hist(rubric_history_id,rubric_id,obj_id,usr_id,status,mark,completed,comments,owner,create_date,last_update) VALUES " . " (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)", array("integer", "integer", "integer", "integer", "integer", "float", "integer", "text", "integer", "date", "date"), array($id, self::_lookupRubricId($obj_id), $obj_id, $usr_id, $status, $mark, $completed, $comments, $ilUser->getId(), $delete_date, $delete_date)); //now that a record is saved delete it from marks, status and exercise. $marks->_deleteForUsers($obj_id, array($usr_id)); ilLPStatus::writeStatus($obj_id, $usr_id, ilLPStatus::LP_STATUS_IN_PROGRESS_NUM); //Remove from Ex Assignment $ass_id = array_shift(ilExAssignment::getAssignmentDataOfExercise($obj_id)); $assignment = new ilExAssignment($ass_id['id']); $assignment->updateMarkOfUser($ass_id['id'], $usr_id, ''); $assignment->updateStatusOfUser($ass_id['id'], $usr_id, 'notgraded'); return true; } else { //there were no marks to begin with OR this was already marked for regrade, so go no further. return false; } }
/** * update marking of member * * @param int $usr_id */ private function updateMarking($usr_id) { if (isset($this->mark)) { ilExAssignment::updateMarkOfUser($this->assignment->getId(), $usr_id, ilUtil::stripSlashes($this->mark)); } if (isset($this->comment)) { ilExAssignment::updateCommentForUser($this->assignment->getId(), $usr_id, ilUtil::stripSlashes($this->comment)); } //$memberObject = $this->exercise->members_obj; if (isset($this->status)) { ilExAssignment::updateStatusOfUser($this->assignment->getId(), $usr_id, ilUtil::stripSlashes($this->status)); } if (isset($this->notice)) { ilExAssignment::updateNoticeForUser($this->assignment->getId(), $usr_id, ilUtil::stripSlashes($this->notice)); } // reset variables $this->mark = null; $this->status = null; $this->notice = null; $this->comment = null; }