public function coursedetileAction()
 {
     if (Zend_Auth::getInstance()->hasIdentity()) {
         $courseid = $this->_getParam('iCourseId');
         $course = new Model_Course($courseid);
         if ($course->iCourseId) {
             $this->view->list = $course->getDetiles();
             $this->view->detiles = $course;
         }
     }
 }
Example #2
0
 /**
  * Method to get all users for an examgroup
  * @param int $examgroup_id
  * @param string $return_type (array|object)
  * @return array eg. (array(10 => 'Students Name') | array of user objects)
  */
 public static function get_students($examgroup_id, $return_type = 'array')
 {
     $exams = self::get_exams($examgroup_id);
     // handle the cas_e that no exam is added to this exam group yet
     if (!$exams->as_array()) {
         // echo 'No exams found for the examgroup #' . $examgroup_id;
         return array();
     }
     $course_assoc = $exams->as_array('id', 'course_id');
     // get the courses
     $courses = ORM::factory('course')->where('id', ' IN ', array_values($course_assoc))->find_all();
     $students = array();
     $students_object = array();
     foreach ($courses as $course) {
         $users = Model_Course::get_students($course);
         $course_students = array();
         foreach ($users as $user) {
             $course_students[$user->id] = $user->firstname . ' ' . $user->lastname;
             $students_object[] = $user;
         }
         // concat arrays with students instead of array_merge
         // so that re-indexing doesn't happen
         $students = $students + $course_students;
     }
     if ($return_type == 'array') {
         return $students;
     }
     return $students_object;
 }
Example #3
0
 /**
  * Generic function just to keep the code DRY
  */
 public static function notice_exam_email($exam, $subject, $template)
 {
     $users = Model_Course::get_users($exam->course_id);
     $recipients = Notice::email_recipients($users);
     $view = View::factory($template)->set('exam', $exam);
     $body = $view->render();
     $subject = 'Kodelearn Exam Notice: ' . $subject;
     Notice::email($recipients, $subject, $body);
 }
Example #4
0
 public function action_delete($id = null)
 {
     if ($course = Model_Course::find($id)) {
         $course->delete();
         Session::set_flash('success', e('Deleted course #' . $id));
     } else {
         Session::set_flash('error', e('Could not delete course #' . $id));
     }
     Response::redirect('site/courses');
 }
Example #5
0
 public function render()
 {
     $user = ORM::factory('user', $this->actor_id);
     $course = ORM::factory('course', $this->respective_id);
     if ($this->check_deleted($course)) {
         return View::factory('feed/unavaliable')->render();
     }
     $count_user = Model_Course::get_users_count($this->respective_id, 'student');
     $span = Date::fuzzy_span($this->time);
     $feed_id = $this->id;
     $comment = ORM::factory('feedcomment');
     $comment->where('feed_id', '=', $feed_id)->order_by('date', 'DESC');
     $comments = $comment->find_all();
     $curr_user = Auth::instance()->get_user();
     $role = $curr_user->role()->name;
     $url = Url::site('profile/view/id/');
     $view = View::factory('feed/' . $this->type . '_' . $this->action)->bind('user', $user)->bind('count_user', $count_user)->bind('course', $course)->bind('span', $span)->bind('role', $role)->bind('feed_id', $feed_id)->bind('comments', $comments)->bind('url', $url);
     return $view->render();
 }
Example #6
0
File: course.php Project: xXLXx/ddc
 public static function all_courses()
 {
     $students = Model_Course::count();
     return $students;
 }
Example #7
0
 /**
  * Method to save the user to course assignments
  * @param Model_Course $course
  * @param Array $user_ids - Array of user_ids
  * @return null
  */
 public static function assign_users($course, $user_ids)
 {
     if ($user_ids) {
         $feed_exists = ORM::factory('feed')->where('type', '=', 'course')->where('action', '=', 'student_add')->where('respective_id', '=', $course->id)->where('actor_id', '=', Auth::instance()->get_user()->id)->find();
         if ($feed_exists->id !== null) {
             $feed = new Feed_Course($feed_exists->id);
             $feed->streams(array('user_id' => $user_ids))->update_streams();
         } else {
             $feed = new Feed_Course();
             $feed->set_action('student_add');
             $feed->set_course_id('0');
             $feed->set_respective_id($course->id);
             $feed->set_actor_id(Auth::instance()->get_user()->id);
             $feed->streams(array('user_id' => $user_ids));
             $feed->save();
         }
         $course->remove('users');
         foreach ($user_ids as $user_id) {
             $course->add('users', ORM::factory('user', $user_id));
         }
     } else {
         $course->remove('users');
     }
 }
Example #8
0
 public function action_upload()
 {
     $submitted = FALSE;
     if ($this->request->method() === 'POST' && $this->request->post()) {
         if (Arr::get($this->request->post(), 'save') !== null) {
             $submitted = TRUE;
             $document = ORM::factory('document');
             $validator = $document->validator(array_merge($this->request->post(), $_FILES));
             $validator->bind(':files', $_FILES['name']);
             if ($validator->check()) {
                 $filename = Upload::save($_FILES['name'], NULL, UPLOAD_PATH);
                 $document = ORM::factory('document');
                 $document->values($this->request->post());
                 $document->name = basename($filename);
                 $document->time = time();
                 $document->save();
                 $document->add('courses', $this->request->post('course_id'));
                 $document->add('roles', $this->request->post('role'));
                 foreach ($this->request->post('course_id') as $course_id) {
                     $feed = new Feed_Document();
                     $feed->set_action('add');
                     $feed->set_course_id($course_id);
                     $feed->set_respective_id($document->id);
                     $feed->set_actor_id(Auth::instance()->get_user()->id);
                     $stream_data = array('course_id' => $course_id, 'role_id' => $this->request->post('role'));
                     $feed->streams($stream_data);
                     $feed->save();
                 }
                 Request::current()->redirect('document');
             } else {
                 $this->_errors = $validator->errors('document');
             }
         }
     }
     $courses = Model_Course::courses()->as_array('id', 'name');
     $course_id = Session::instance()->get('course_id');
     //remove the current course from the list
     unset($courses[$course_id]);
     $form = new Stickyform('document/upload', array('enctype' => "multipart/form-data"), $submitted ? $this->_errors : array());
     $form->default_data = array('title' => '', 'user_id' => Auth::instance()->get_user()->id, 'course_id' => 0, 'role' => 0);
     $form->posted_data = $submitted ? $this->request->post() : array();
     $form->append('Title', 'title', 'text');
     $form->append('Access To', 'role', 'text');
     $form->append('User', 'user_id', 'hidden');
     $form->append('File', 'name', 'file');
     $form->append('Also add to', 'course_id', 'select', array('options' => $courses, 'attributes' => array('multiple' => 'multiple', 'name' => 'course_id[]')));
     $form->append('Upload', 'save', 'submit', array('attributes' => array('class' => 'button')));
     $form->process();
     $course = ORM::factory('course', $course_id);
     $roles = ORM::factory('role')->find_all()->as_array('id', 'name');
     $view = View::factory('document/form')->bind('form', $form)->bind('course', $course)->bind('roles', $roles);
     Breadcrumbs::add(array('Courses', Url::site('course')));
     Breadcrumbs::add(array('Documents', Url::site('document')));
     Breadcrumbs::add(array('Upload', Url::site('document/upload')));
     $this->content = $view;
 }
Example #9
0
 public function action_edit($id = null)
 {
     $where = ['id' => $id];
     if (Model_User::is_current_user('teacher')) {
         $where['user_id'] = Auth::get('id');
     }
     $subject = Model_Subject::find('first', ['where' => $where]);
     if (empty($subject)) {
         Session::set_flash('error', 'Subject does not exist.');
         Response::redirect('site/subject');
     }
     $val = Model_Subject::validate('edit');
     if ($val->run()) {
         $subject->subject_code = Input::post('subject_code');
         $subject->subject_desc = Input::post('subject_desc');
         $subject->semester = Input::post('semester');
         $subject->year = Input::post('year');
         $subject->user_id = Input::post('user_id');
         $subject->course_id = Input::post('course_id');
         if ($subject->save()) {
             Session::set_flash('success', e('Updated subject #' . $id));
             Response::redirect('site/subject');
         } else {
             Session::set_flash('error', e('Could not update subject #' . $id));
         }
     } else {
         if (Input::method() == 'POST') {
             $subject->subject_code = $val->validated('subject_code');
             $subject->subject_desc = $val->validated('subject_desc');
             $subject->semester = $val->validated('semester');
             $subject->year = $val->validated('year');
             $subject->user_id = $val->validated('user_id');
             $subject->course_id = $val->validated('course_id');
             Session::set_flash('error', $val->error());
         }
         $this->template->set_global('subject', $subject, false);
     }
     $courses = Model_Course::getCoursesOptions();
     $this->template->set_global('courses', $courses, false);
     // Global variables
     $teachers = Model_User::get_list_of_teachers();
     $this->template->set_global('teachers', $teachers, false);
     $this->template->title = "Subjects";
     $this->template->content = View::forge('site/subject/edit');
 }
Example #10
0
?>
</h1>
			    </div>
			</div>
 		</div>
 	</div> 
 </div>

  <div class="row">
 	<div class="col-md-12">
 		<div class="col-md-4">
 			<div class="panel panel-default">
 			 	<div class="panel-heading">All Courses</div>
			    <div class="panel-body">
			    	<h1 class="text-muted text-center"><?php 
echo Model_Course::all_courses();
?>
</h1>
			    </div>
			</div>
 		</div>
 		<div class="col-md-4">
 			<div class="panel panel-default">
 			 	<div class="panel-heading">All Subjects</div>
			    <div class="panel-body">
			    	<h1 class="text-muted text-center"><?php 
echo Model_Subject::all_subjects();
?>
</h1>
			    </div>
			</div>
Example #11
0
 public static function getCourseName($course_id)
 {
     $courses = Model_Course::find('first', array('where' => array(array('id', $course_id))));
     return $courses ? $courses->course_name : '';
 }
Example #12
0
 public function action_get_students()
 {
     if (!$this->request->post('course_id')) {
         $response = '<p>No Course Selected</p>';
         echo json_encode(array('html' => $response));
         exit;
     }
     $course = ORM::factory('course', $this->request->post('course_id'));
     $users = Model_Course::get_students($course);
     $cacheimage = CacheImage::instance();
     $view = View::factory('course/ajax_show_students')->bind('cacheimage', $cacheimage)->bind('course', $course)->bind('users', $users);
     $response = $this->response->body($view)->body();
     echo json_encode(array('html' => $response));
 }
Example #13
0
File: book.php Project: xXLXx/ddc
 public function action_edit($id = null)
 {
     $where = ['id' => $id];
     if (Model_User::is_current_user('teacher')) {
         $where['subject.user_id'] = Auth::get('id');
     }
     $book = Model_Book::find('first', ['where' => $where, 'related' => ['subject']]);
     if (empty($book)) {
         Session::set_flash('error', 'Book does not exist.');
         Response::redirect('site/book');
     }
     $val = Model_Book::validate('edit');
     if ($val->run()) {
         $bookUploadConfig = Config::get('upload_book_url');
         $bookUploadConfig['base_path'] = $bookUploadConfig['path'];
         $bookUploadConfig['path'] = $this->getFilePath($bookUploadConfig['path'], Input::post('sub_folder'), Input::post('course_id'));
         $isReuploaded = false;
         $book->book_name = Input::post('book_name');
         $book->subject_id = Input::post('subject_id');
         $book->course_id = Input::post('course_id');
         $book->is_institutional = Input::post('is_institutional');
         $book->sub_folder = Input::post('sub_folder');
         Upload::process(Config::get('upload_profile_picture'));
         if (empty(Upload::get_files()) || Upload::is_valid()) {
             if (!empty(Upload::get_files())) {
                 Upload::save();
                 $value = Upload::get_files();
                 foreach ($value as $files) {
                     $book->cover_photo = $value[0]['saved_as'];
                 }
             }
             Upload::process($bookUploadConfig);
             if (Upload::get_files() || empty(Upload::is_valid())) {
                 if (!empty(Upload::get_files())) {
                     Upload::save();
                     $value = Upload::get_files();
                     foreach ($value as $files) {
                         unlink($bookUploadConfig['base_path'] . '/' . $book->book_url);
                         $book->book_url = str_replace($bookUploadConfig['base_path'] . '/', '', $bookUploadConfig['path']) . '/' . $value[0]['saved_as'];
                         $isReuploaded = true;
                     }
                 }
                 $tmpPath = str_replace($bookUploadConfig['base_path'] . '/', '', $bookUploadConfig['path']);
                 if (!$isReuploaded && strpos($book->book_url, $tmpPath) == false) {
                     rename($bookUploadConfig['base_path'] . '/' . $book->book_url, $bookUploadConfig['path'] . '/' . preg_replace('/^.+\\//', '', $book->book_url));
                     $book->book_url = $tmpPath . '/' . preg_replace('/^.+\\//', '', $book->book_url);
                 }
                 if ($book->save()) {
                     Session::set_flash('success', e('Updated book #' . $id));
                     Response::redirect('site/book');
                 } else {
                     Session::set_flash('error', e('Could not update book #' . $id));
                 }
             } else {
                 Session::set_flash('error', 'Uploaded book is invalid.');
                 $this->template->set_global('book', $book, false);
             }
         } else {
             Session::set_flash('error', 'Cover photo is invalid.');
             $this->template->set_global('book', $book, false);
         }
     } else {
         if (Input::method() == 'POST') {
             $book->book_url = $val->validated('book_url');
             $book->book_name = $val->validated('book_name');
             $book->subject_id = $val->validated('subject_id');
             $book->cover_photo = $val->validated('cover_photo');
             $book->course_id = $val->validated('course_id');
             $book->is_institutional = $val->validated('is_institutional');
             $book->sub_folder = $val->validated('sub_folder');
             Session::set_flash('error', $val->error());
         }
         $this->template->set_global('book', $book, false);
     }
     $subjects = Model_Subject::getSubjectOptions();
     $courses = Model_Course::getCoursesOptions();
     $this->template->set_global('subjects', $subjects, false);
     $this->template->set_global('courses', $courses, false);
     $this->template->title = "Books";
     $this->template->content = View::forge('site/book/edit');
 }
Example #14
0
 /**
  * Zwraca skladniki w tablicy asocjacyjnej pogrupowane wzgledem typu
  *
  */
 protected function getSortedCourses()
 {
     $aResult = array();
     $oType = new Model_Type();
     $oCourse = new Model_Course();
     //		$aTypes = $oType->where( 'account_id', (int) $this->oCurrentUser->account_id )->
     $aCourses = $oCourse->getCoursesForAccount((int) $this->oCurrentUser->account_id);
     foreach ($aCourses as $aCourse) {
         $aResult[$aCourse['type']][] = array('course_id' => $aCourse['course_id'], 'name' => $aCourse['name'], 'price' => $aCourse['price']);
     }
     return $aResult;
 }
Example #15
0
 protected function getCoursesOfTheme($themeId)
 {
     $modelCourse = new Model_Course();
     return $modelCourse->getAll(array('ManagementThemeId = ?' => $themeId));
 }
Example #16
0
 public function action_add()
 {
     if ($this->request->method() === 'POST' && $this->request->post('selected')) {
         $event_id = $this->request->post('id');
         $course_id = $this->request->post('course_id');
         $users = Model_Course::get_users($course_id, 'student');
         $marked_users = $this->request->post('selected');
         DB::delete('attendances')->where('event_id', '=', $event_id)->execute(Database::instance());
         foreach ($users as $user) {
             $attendance = ORM::factory('attendance');
             if (in_array($user->id, $this->request->post('selected'))) {
                 $attendance->user_id = $user->id;
                 $attendance->event_id = $event_id;
                 $attendance->present = '1';
                 $attendance->save();
             } else {
                 $attendance->user_id = $user->id;
                 $attendance->event_id = $event_id;
                 $attendance->present = '0';
                 $attendance->save();
             }
         }
         // find an existing feed
         $feed_exists = ORM::factory('feed')->where('type', '=', 'attendance')->where('action', '=', 'mark')->where('respective_id', '=', $event_id)->where('actor_id', '=', Auth::instance()->get_user()->id)->find();
         if ($feed_exists->id !== null) {
             $feed = new Feed_Attendance($feed_exists->id);
             $feed->streams(array('user_id' => $marked_users))->update_streams();
         } else {
             $feed = new Feed_Attendance();
             $feed->set_action('mark');
             $feed->set_respective_id($event_id);
             $feed->set_actor_id(Auth::instance()->get_user()->id);
             $feed->streams(array('user_id' => $marked_users));
             $feed->save();
         }
         Session::instance()->set('success', 'Attendance marked successfully.');
     }
     $id = $this->request->param('id');
     $type = $this->request->param('type');
     $param_event_id = $this->request->param('event_id');
     if (!$id || !$type || !$param_event_id) {
         Request::current()->redirect('attendance');
     }
     if ($type == 'exam') {
         $exam = ORM::factory('exam', $id);
         $cid = $exam->course_id;
         $event = $exam->name;
     }
     if ($type == 'lecture') {
         $lecture = ORM::factory('lecture', $id);
         $cid = $lecture->course_id;
         $event = $lecture->name;
     }
     $course = ORM::factory('course', $cid);
     $users = Model_Course::get_students($course);
     /*
             $user = ORM::factory('user');
             $user->join('courses_users','left')
                  ->on('courses_users.user_id','=','id');
             $user->where('courses_users.course_id','=',$cid); 
             $users = $user->find_all();*/
     $page_title = Kohana::message('page_title', 'attendance_add.title');
     $page_title = str_replace('{event}', $event, $page_title);
     $assigned_attendance = ORM::factory('attendance');
     $assigned_attendance->where('event_id', '=', $param_event_id);
     $assigned_attendances = $assigned_attendance->find_all()->as_array('user_id', 'present');
     $data = array('add' => URL::site('/attendance/add'), 'id' => $id, 'course_id' => $cid, 'event_id' => $param_event_id);
     $view = View::factory('attendance/form')->bind('users', $users)->bind('page_title', $page_title)->bind('assigned_attendances', $assigned_attendances)->bind('data', $data);
     Breadcrumbs::add(array('Attendance', Url::site('attendance')));
     $this->content = $view;
 }
Example #17
0
File: _form.php Project: xXLXx/ddc
			<div class="form-group">
				<?php 
echo Form::label('Year Level', 'year_level', array('class' => 'control-label'));
?>
				
		         <?php 
echo Form::select('year_level', Input::post('year_level', isset($student) ? $student->year_level : ''), Config::get('year_level'), array('class' => 'form-control'));
?>
			</div>
			<div class="form-group">
				<?php 
echo Form::label('Courses', 'course_id', array('class' => 'control-label'));
?>
				
		         <?php 
echo Form::select('course_id', Input::post('course_id', isset($student) ? $student->course_id : ''), Model_Course::getCoursesOptions(), array('class' => 'form-control'));
?>
			</div>
			<?php 
echo Form::hidden('user_id', Input::post('user_id', $student->user_id, array('class' => 'col-md-4 form-control')));
?>
			<br/><br/>
			<div class="form-group text-center">
				<label class='control-label'>&nbsp;</label>
				<?php 
echo Form::submit('submit', 'Save', array('class' => 'btn btn-primary'));
?>
				<?php 
echo Html::anchor('site/student', 'Back', array('class' => 'btn btn-primary'));
?>