public static function get_NumAssignments($cid = "") { if (empty($cid)) { $cid = Auth::consoleuser()->get()->cid; } $assignmentscount = Assignment::where('auditors', 'like', '%' . $cid . ',%')->count(); return $assignmentscount; }
public static function getDataGantt($groups) { $arrayData = array(); $arrayLink = array(); $count = count($groups) + 1; foreach ($groups as $item => $group) { $dataGroup = array(); $dataGroup['id'] = $item + 1; $dataGroup['text'] = $group->name; $dataGroup['type'] = 'gantt.config.types.project'; $dataGroup['open'] = true; $dataLink = array(); $dataLink['id'] = $item + 1; $dataLink['source'] = $item + 1; $dataLink['target'] = $count; $assignments = Assignment::where('group_id', new MongoId($group->_id))->orderBy('date_assigned', 'asc')->get(); $progress = array(); foreach ($assignments as $index => $assignment) { if ($index == 0) { $dataLink['type'] = 1; array_push($arrayLink, json_encode($dataLink)); } $dataAssignment = array(); $dataAssignment['id'] = $count; $dataAssignment['text'] = $assignment->description; $dataAssignment['start_date'] = date('d-m-Y', $assignment->date_assigned->sec); $dataAssignment['parent'] = $item + 1; $dataAssignment['open'] = true; $dataLink = array(); $dataLink['id'] = $count; $dataLink['source'] = $count; $dataLink['target'] = $count + 1; $dataLink['type'] = 0; array_push($arrayLink, json_encode($dataLink)); $pg = strcasecmp($assignment->state, 'c') === 0 ? 1 : 0; $dataAssignment['progress'] = $pg; if ($pg === 1) { $dataAssignment['type'] = 'gantt.config.types.milestone'; } array_push($progress, $pg); $date_assigned = new DateTime(date('Y-m-d', $assignment->date_assigned->sec)); $deadline = new DateTime(date('Y-m-d', $assignment->deadline->sec)); $date_assigned = $date_assigned->diff($deadline); $dataAssignment['duration'] = $date_assigned->days; array_push($arrayData, json_encode($dataAssignment)); $count += 1; } $dataGroup['progress'] = count($progress) > 0 ? array_sum($progress) / count($progress) : 0; array_push($arrayData, json_encode($dataGroup)); } return array('data' => $arrayData, 'link' => $arrayLink); }
public function evaluateAssignments($group_id) { $assignments = Assignment::where('group_id', new MongoId($group_id))->get(); $array = array(); foreach ($assignments as $assignment) { $deadline = new DateTime(date('Y-m-d', $assignment->deadline->sec)); $date = new DateTime(date('Y-m-d')); if ($deadline < $date && is_null($assignment->rated)) { $assignment->rated = 0; $assignment->state = 'n'; $assignment->save(); } array_push($array, $assignment); } return $array; }
public function getFarmReport() { $group_id = Input::get('group_id'); $group = Group::where('_id', new MongoId($group_id))->first(); $students = Student::whereIn('_id', $group->students_id)->get(); $total_assignments = Assignment::where('group_id', new MongoId($group_id))->count(); $total_completed = Assignment::where('group_id', new MongoId($group_id))->where('state', 'c')->count(); $total_incompleted = Assignment::where('group_id', new MongoId($group_id))->whereIn('state', array('n', 'nc'))->count(); $total_pending = Assignment::where('group_id', new MongoId($group_id))->whereIn('state', array('a', 'r', 'p'))->count(); $student_task = TeacherController::getStatStudents($group->students_id, $group_id); $assignments = Assignment::where('group_id', new MongoId($group_id))->get(); return View::make('teacher.farm_report')->with(array('students' => $students, 'total_assignments' => $total_assignments, 'total_completed' => $total_completed, 'total_incompleted' => $total_incompleted, 'total_pending' => $total_pending, 'student_task' => $student_task, 'colors' => $this->colors, 'assignments' => $assignments, 'group' => $group)); }
public static function getStatGroupByTags($arrayGroups, $arrayTags, $subject = null, $sectionCode = null, $attach = null) { $array = array(); foreach ($arrayGroups as $group) { foreach ($arrayTags as $tag) { $arrayAux = array(); $arrayAux['group_name'] = $group->name; $arrayAux['project_name'] = $group->project_name; $arrayAux['tag'] = $tag; if (!is_null($subject)) { $arrayAux['subject'] = $subject; } if (!is_null($sectionCode)) { $arrayAux['sectionCode'] = $sectionCode; } $total_task = Assignment::where('group_id', new MongoId($group->_id))->whereIn('tags', array($tag)); $total_task_pending = Assignment::where('group_id', new MongoId($group->_id))->where('state', 'p')->whereIn('tags', array($tag)); $total_task_current = Assignment::where('group_id', new MongoId($group->_id))->whereIn('state', array('a', 'r'))->whereIn('tags', array($tag)); $total_task_not_completed = Assignment::where('group_id', new MongoId($group->_id))->whereIn('state', array('n', 'nc'))->whereIn('tags', array($tag)); $total_task_completed = Assignment::where('group_id', new MongoId($group->_id))->where('state', 'c')->whereIn('tags', array($tag)); $total_score = Assignment::where('group_id', new MongoId($group->_id))->whereIn('tags', array($tag)); $total_rated = Assignment::where('group_id', new MongoId($group->_id))->whereIn('tags', array($tag)); $arrayValidate = TeacherController::validateAttach($attach, $total_task, $total_task_pending, $total_task_current, $total_task_not_completed, $total_task_completed, $total_score, $total_rated); if (!is_null($arrayValidate)) { $arrayAux['total_task'] = $arrayValidate['total_task']; $arrayAux['total_task_pending'] = $arrayValidate['total_task_pending']; $arrayAux['total_task_current'] = $arrayValidate['total_task_current']; $arrayAux['total_task_not_completed'] = $arrayValidate['total_task_not_completed']; $arrayAux['total_task_completed'] = $arrayValidate['total_task_completed']; $arrayAux['total_score'] = $arrayValidate['total_score']; $arrayAux['total_rated'] = $arrayValidate['total_rated']; array_push($array, $arrayAux); } } } return $array; }
public function get_assignments() { //Just declare this here since laravel get's mad if it is empty $othersassignments = ''; //Pull our assignments for the current user $assignments = Assignment::where('auditors', 'like', '%' . Auth::consoleuser()->get()->cid . ',%')->get(); //Create an array of each VA that needs to be auditted $vaslist = array(); foreach ($assignments as $assignment) { $vas = $assignment->vas; $vas = explode(',', $vas); //Remove the last empty value $vascount = count($vas) - 1; unset($vas[$vascount]); //Get our current VAs in progress into an array $vasInProgress = explode(',', $assignment->vas_in_progress); $vasInProgressCount = count($vas) - 1; unset($vasInProgress[$vasInProgressCount]); foreach ($vas as $va) { $result = User::findOrFail($va); $status = 0; if (in_array($va, $vasInProgress)) { $status = 1; } $vaslist[] = array('cid' => $va, 'vaname' => $result->vaname, 'assignmentid' => $assignment->id, 'status' => $status); } } //Is our user an administrator? if (Auth::consoleuser()->get()->access > 0) { //Yes, ok let's query for all of the assignments other than their own $othersassignments = Assignment::where('auditors', 'not like', '%' . Auth::consoleuser()->get()->cid . ',%')->get(); } //Pull a list of all of the categories $categories = Category::all(); //Create an array of categories with the key as the cat id and the value the name $catnames = array(); foreach ($categories as $category) { $catnames[$category->id] = $category->name; } //Pull all assignments $allassignments = Assignment::all(); $categoriesPerAssignment = array(); $auditorsPerAssignment = array(); foreach ($allassignments as $allassignment) { //Create a list of other auditors per assignment $auditors = explode(',', $allassignment->auditors); //Get rid of the last empty value $auditorscount = count($auditors) - 1; unset($auditors[$auditorscount]); $auditorsPerAssignment[$allassignment->id] = ''; foreach ($auditors as $auditor) { $auditorsPerAssignment[$allassignment->id] = $auditorsPerAssignment[$allassignment->id] . '<span class="label label-danger"><i class="fa fa-bookmark fa-fw"></i> ' . ConsoleUser::getName($auditor) . '</span> '; } $categoriesPerAssignment[$allassignment->id] = ''; $cats = $allassignment->categories; $cats = explode(',', $cats); //Remove the last empty value $catscount = count($cats) - 1; unset($cats[$catscount]); foreach ($cats as $cat) { $categoriesPerAssignment[$allassignment->id] = $categoriesPerAssignment[$allassignment->id] . '<span class="label label-default">' . $catnames[$cat] . '</span> '; } } return View::make('console.assignments')->with(array('assignments' => $assignments, 'othersAssignments' => $othersassignments, 'categoriesPerAssignment' => $categoriesPerAssignment, 'auditorsPerAssignment' => $auditorsPerAssignment, 'vasList' => $vaslist)); }