Beispiel #1
0
 /**
  * @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);
 }
Beispiel #2
0
 /**
  * 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));
 }