示例#1
0
 /**
  * Sends a notification to all the students studying the course
  * @param int $course_id Id of the course teacher is teaching
  * @param int $classroom_id Id of the classroom in which the teacher is teaching
  * @before _secure, _teacher
  */
 public function students($course_id, $classroom_id)
 {
     $this->JSONView();
     $view = $this->getActionView();
     $found = false;
     $teaches = TeacherService::$_teaches;
     foreach ($teaches as $t) {
         if ($t->course_id == $course_id && $t->classroom_id == $classroom_id) {
             $found = true;
             break;
         }
     }
     if (!$found) {
         self::redirect("/404");
     }
     if (RequestMethods::post("action") == "notifyStudents") {
         $classroom = TeacherService::$_classes[$classroom_id];
         $service = new Shared\Services\Classroom();
         $users = $service->enrollments($classroom, array('only_user' => true));
         $content = RequestMethods::post("message");
         $course = TeacherService::$_courses[$course_id];
         $content .= ' Subject: ' . $course->title . ', Teacher: ' . $this->user->name;
         $this->_save(array('type' => 'course', 'type_id' => $course_id, 'url' => ''), $content, $users);
         if (RequestMethods::post("redirect")) {
             Registry::get("session")->set('Notification\\Students:$sent', true);
             self::redirect($_SERVER['HTTP_REFERER']);
         }
         $view->set("message", "Notification sent to students!!");
     } else {
         $view->set("message", "Invalid Request! Something went wrong");
     }
 }
示例#2
0
 /**
  * Teacher can create a new conversation
  * @before _secure, _teacher
  */
 public function create()
 {
     $this->JSONView();
     $view = $this->getActionView();
     $classrooms = TeacherService::$_classes;
     $service = new Shared\Services\Classroom();
     $students = array();
     foreach ($classrooms as $c) {
         $s = $service->enrollments($c, array('conversation' => true));
         $students = array_merge($students, $s);
     }
     $view->set("students", $students);
     $this->_create();
 }
示例#3
0
 /**
  * @todo move to services
  * Grade the students for each week
  * @before _secure, _teacher
  */
 public function weeklyStudentsPerf($course_id, $classroom_id)
 {
     $this->setSEO(array("title" => "Grade Students Weekly Performance | Teacher"));
     $view = $this->getActionView();
     $session = Registry::get("session");
     if (!$course_id || !$classroom_id) {
         self::redirect("/404");
     }
     $teach = Teach::first(array("course_id = ?" => $course_id, "classroom_id = ?" => $classroom_id, "user_id = ?" => $this->user->id));
     if (!$teach) {
         self::redirect("/404");
     }
     $service = new Shared\Services\Classroom();
     $return = $service->weeklyPerformance($teach);
     $view->set($return);
     $classroom = TeacherService::$_classes[$teach->classroom_id];
     $course = TeacherService::$_courses[$teach->course_id];
     $enrollments = $service->enrollments($classroom, array('table' => 'performance', 'teach' => $teach));
     $scale = array();
     for ($i = 1; $i <= 10; $i++) {
         $scale[] = $i;
     }
     $view->set(array("students" => $enrollments, "class" => $classroom->grade . " - " . $classroom->section, "course" => $course->title, "scale" => $scale));
 }
示例#4
0
 /**
  * @before _secure, _teacher
  */
 public function gradeIt($assignment_id)
 {
     $this->setSEO(array("title" => "Grade assignments | Teacher"));
     $view = $this->getActionView();
     $assignment = Assignment::first(array("id = ?" => $assignment_id));
     if (!$assignment || $assignment->user_id != $this->user->id) {
         self::redirect("/404");
     }
     $classroom = TeacherService::$_classes[$assignment->classroom_id];
     $service = new Shared\Services\Classroom();
     $return = $this->_grade($assignment);
     $students = $service->enrollments($classroom, array('table' => 'submission', 'assignment_id' => $assignment->id));
     $view->set($return)->set("class", $classroom)->set("assignment", $assignment)->set('scale', array(0, 1, 2, 3, 4, 5))->set("students", $students);
 }