Esempio n. 1
0
 public function __construct()
 {
     parent::__construct();
     //$this->storage = new Storage ('../private/materials');
     $this->storage = Resources::getInstance()->materials_storage;
     $this->attachObserver(Model_ControlWork::create());
     $this->_checkRightsObject = Model_CheckRigths::create();
 }
Esempio n. 2
0
 /**
  * Отображение списка слушателей, изучающих дисциплину.
  *
  * @params['discipline_id'] Идентификатор дисциплины.
  */
 public function action_discipline($params)
 {
     $modelEducationPrograms = Model_Education_Programs::create();
     $modelOpenSect = Model_OpenSection::create();
     $modelCredit = Model_Credit::create();
     $modelControlWork = Model_ControlWork::create();
     $modelUser = Model_User::create();
     $data = array();
     $userList = $modelEducationPrograms->getStudentsByDiscipline($params['discipline_id']);
     $openSections = $modelOpenSect->getOpenSectionsByDiscipline($params['discipline_id']);
     $creditSections = $modelCredit->getCreditsByDiscipline($params['discipline_id']);
     //print_r($creditSections); die();
     $modelEducationPrograms->getDiscipline($params['discipline_id'], $title, $labourIntensive, $coef);
     $sections = $modelEducationPrograms->getSectionsByDiscipline($params['discipline_id']);
     // вот чисто философский вопрос: а этот код действительно должн быть здесь?
     //print_r($userList); die();
     foreach ($userList as &$rec) {
         $userInfo = $modelUser->getUserInfo($rec['user_id']);
         $name = $userInfo['surname'] . ' ' . $userInfo['name'] . ' ' . $userInfo['patronymic'];
         $data[$rec['user_id']] = array('name' => $name, 'open_sections' => array(), 'credit_sections' => array('ids' => array(), 'dates' => array()));
         for ($i = 0; $i < count($openSections); $i++) {
             if ($openSections[$i]['student_id'] == $rec['user_id']) {
                 array_push($data[$rec['user_id']]['open_sections'], $openSections[$i]['section_id']);
                 unset($openSections[$i][$rec['user_id']]);
             }
         }
         $lastCreditedSection = -1;
         for ($i = 0; $i < count($creditSections); $i++) {
             if ($creditSections[$i]['student_id'] == $rec['user_id']) {
                 $lastCreditedSection = $creditSections[$i]['section_id'];
                 array_push($data[$rec['user_id']]['credit_sections']['ids'], $creditSections[$i]['section_id']);
                 array_push($data[$rec['user_id']]['credit_sections']['dates'], $creditSections[$i]['created_date']);
                 unset($creditSections[$i][$rec['user_id']]);
             }
         }
         if (!$modelCredit->isDisciplineCredited($params['discipline_id'], $rec['user_id'])) {
             if ($lastCreditedSection == -1) {
                 $firstSectAr = $modelEducationPrograms->getFirstSectionIdOfDiscipline($params['discipline_id']);
                 $data[$rec['user_id']]['first_uncredited_section'] = $firstSectAr;
             } else {
                 $data[$rec['user_id']]['first_uncredited_section'] = $modelEducationPrograms->getNextSectionOfDiscipline($params['discipline_id'], $lastCreditedSection);
             }
             $data[$rec['user_id']]['cur_control_works'] = $modelControlWork->getStudentMarksBySection($rec['user_id'], $data[$rec['user_id']]['first_uncredited_section']);
         }
     }
     //print_r($data); die();
     $this->set('discipline_id', $params['discipline_id']);
     $this->set('discipline_title', $title);
     $this->set('data', $data);
     $this->set('sections', $sections);
     $this->set('TYPE_NAMES', $modelControlWork->getControlNamesMap());
     $this->set('MARK_NAMES', $modelControlWork->getMarkNamesMap());
     $this->render('teacher_courses/discipline');
 }
Esempio n. 3
0
 /**
  * Отображение куратору успеваемости слушателя по дисциплине.
  *
  * @params['student_id'] Идентификатор студента.
  * @params['discipline_id'] Идентификатор дисциплины.
  */
 public function action_discipline($params)
 {
     $model_credit = Model_Credit::create();
     $model_control_work = Model_ControlWork::create();
     $model_education_programs = Model_Education_Programs::create();
     $model_user = Model_User::create();
     $model_education_programs->getDiscipline($params['discipline_id'], $title, $labourIntensive, $coef);
     $this->set('test_results', $model_control_work->getStudentTestResultsByDiscipline($params['student_id'], $params['discipline_id']));
     $this->set('credits', $model_credit->getStudentCreditsByDiscipline($params['student_id'], $params['discipline_id']));
     $this->set('control_works', $model_control_work->getStudentMarksByDiscipline($params['student_id'], $params['discipline_id']));
     $this->set('control_names_map', $model_control_work->getControlNamesMap());
     $this->set('mark_names_map', $model_control_work->getMarkNamesMap());
     $this->set('discipline_title', $title);
     $this->set('sections', $model_education_programs->getSectionsByDiscipline($params['discipline_id']));
     $this->set('user_id', $params['student_id']);
     $this->set('user_info', $model_user->getUserInfo($params['student_id']));
     $this->render('teacher_students/discipline');
 }
Esempio n. 4
0
 /**
  * Отображение доступных учебных материалов.
  */
 public function action_show(array $params = array())
 {
     $a = Model_Test::create();
     $a->test();
     $links = Resources::getInstance()->links;
     if (!isset($params['discipline_id']) || is_int($params['discipline_id'])) {
         $this->flash('Не указан идентификатор дисциплины', $links->get('student.programs'));
     }
     $discipline_id = intval($params['discipline_id']);
     $user = Model_User::create();
     $udata = (object) $user->getAuth();
     $session = Resources_Abstract::getInstance()->session;
     // если данных о доступных дисциплинах нет - вычислить
     if (!isset($session->availDisciplines)) {
         $student = Model_Education_Students::create();
         $avail_programs = $student->getAvailDisciplinesForPrograms($udata->user_id);
         $avail_disciplines = $student->getAvailDisciplinesSeparate($udata->user_id);
     }
     $discipline_open = in_array($discipline_id, $session->availDisciplines);
     if ($discipline_open) {
         // дисциплина доступна
         $disc = Model_Discipline::create();
         $discipline_data = $disc->get($discipline_id);
         $section = Model_Section::create();
         $sections = $section->getAllByDiscipline($discipline_id);
         $modelApps = Model_Application::create();
         $statuses = $modelApps->getAppsStatus($discipline_id, $udata->user_id);
         //== Model_Application::STATUS_FINISHED;
         $statusFinished = array_key_exists(Model_Application::STATUS_FINISHED, $statuses);
         $material = Model_Educational_Materials::create();
         $materials = $material->getAllByDiscipline($discipline_id, $statusFinished);
         $control_work = Model_ControlWork::create();
         $tests = $control_work->getTestsByDiscipline($discipline_id);
         $this->set('discipline', $discipline_data);
         $this->set('sections', $sections);
         $this->set('materials', $materials);
         $this->set('tests', $tests);
         $this->set('user_id', $udata->user_id);
         //print_r($materials);
         $this->render();
     } else {
         $this->flash('Данная дисциплина на данный Вам недоступна. Возможно Вы не полностью оплатили заявку по данной дисциплине или программе, содержащей данную дисциплину, либо вообще не подавали заявку на ее изучение.', $links->get('student.programs'), 5);
     }
 }
Esempio n. 5
0
 function __construct()
 {
     parent::__construct();
     $this->attachObserver(Model_ControlWork::create());
 }