/** * @before _secure, _teacher */ public function manage($course_id = null) { $this->setSEO(array("title" => "Manage Your assignments | Teacher")); $view = $this->getActionView(); $where = array("user_id = ?" => $this->user->id); $fields = array("title", "created", "course_id", "classroom_id", "deadline", "live", "id"); $course_id = RequestMethods::post("course", $course_id); if ($course_id) { $assignments = \Assignment::all(array_merge($where, array("course_id = ?" => $course_id)), $fields); } else { $assignments = \Assignment::all($where, $fields); } $results = array(); $grades = Grade::all(array("organization_id = ?" => $this->organization->id), array("id", "title")); $storedGrades = array(); foreach ($grades as $g) { $storedGrades[$g->id] = $g->title; } $courses = TeacherService::$_courses; $classrooms = array(); $message = Registry::get("session")->get('$redirectMessage'); if ($message) { $view->set("message", $message); Registry::get("session")->erase('$redirectMessage'); } $notification = Registry::get("MongoDB")->notifications; foreach ($assignments as $a) { $course = $courses[$a->course_id]; $grade = $storedGrades[$course->grade_id]; if (!isset($classrooms[$a->classroom_id])) { $classroom = $classrooms[$a->classroom_id] = \Classroom::first(array("id = ?" => $a->classroom_id), array("section")); } else { $classroom = $classrooms[$a->classroom_id]; } $record = $notification->findOne(array('sender' => 'user', 'sender_id' => (int) $this->user->id, 'type' => 'assignment', 'type_id' => (int) $a->id)); if (isset($record)) { $notify = false; } else { $notify = true; } $data = array("id" => $a->id, "course" => $course->title, "title" => $a->title, "class" => $grade, "notified" => !$notify, "live" => $a->live, "section" => $classroom->section, "deadline" => $a->deadline, "created" => $a->created, "course_id" => $a->course_id, "classroom_id" => $a->classroom_id); $data = ArrayMethods::toObject($data); $results[] = $data; } $view->set("assignments", $results)->set("courses", $courses)->set("course_id", $course_id); }
/** * Finds assignments for the classroom * * @param int $course_id Finds assignments only for the given course (Optional) * else finds all assignments for the student's classroom * @before _secure, _student */ public function assignments($course_id = null) { $this->setSEO(array("title" => "Assignments | Student")); $view = $this->getActionView(); $session = Registry::get("session"); $classroom = StudentService::$_classroom; $courses = StudentService::$_courses; $course_id = RequestMethods::post("course", $course_id); if ($course_id) { $assignments = \Assignment::all(array("course_id = ?" => $course_id, "live = ?" => true)); } else { $assignments = \Assignment::all(array("classroom_id = ?" => $classroom->id, "live = ?" => true)); } $service = new Shared\Services\Assignment(); $result = $service->all($assignments, $courses); $view->set("assignments", $result)->set("courses", $courses); }
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)); }