Пример #1
0
 public static function getTeacherModules($teacher, $modules){
     $result = [];
     for($i = 0; $i < count($modules); $i++){
         if ($id = TeacherModule::model()->exists('idTeacher=:teacher AND idModule=:module', array(
             ':teacher' => $teacher,
             ':module' => $modules[$i],
         ))){
             array_push($result, $modules[$i]);
         }
     }
     return $result;
 }
Пример #2
0
    public function actionIndex($id){
        $this->initialize($id);
        $editMode = $this->checkEditMode($id, Yii::app()->user->getId());

        $lecture = Lecture::model()->findByPk($id);

        $criteria = new CDbCriteria();
        $criteria->addCondition('id_lecture='.$id);

        $dataProvider = new CActiveDataProvider('LectureElement');
        $dataProvider->criteria = $criteria;
        $criteria->order = 'block_order ASC';
        $dataProvider->setPagination(array(
                'pageSize' => '200',
            )
        );

        $owners = [];

        $criteria1 = new CDbCriteria();
        $criteria1->alias='teacher_module';
        $criteria1->select = 'idTeacher';
        $criteria1->addCondition('idModule='.$lecture->idModule);
        $criteria1->toArray();
        $temp = TeacherModule::model()->findAll($criteria1); //info about owners
        for($i = 0; $i < count($temp);$i++){
            array_push($owners, $temp[$i]->idTeacher);
        }
        $teachers = Teacher::model()->findAllByPk($owners);

        $countBlocks = LectureElement::model()->count('id_lecture = :id', array(':id' => $id));

        $this->render('index', array(
            'dataProvider' => $dataProvider,
            'lecture' => $lecture,
            'editMode' => $editMode,
            'countBlocks' => $countBlocks,
            'teachers' => $teachers,
        ));
    }
Пример #3
0
 public function actionNewTeacherPermission(){
     $teacher = Yii::app()->request->getPost('user');
     $module = Yii::app()->request->getPost('module');
     TeacherModule::addTeacherAccess($teacher, $module);
     //$this->actionIndex();
     $this->redirect(Yii::app()->request->urlReferrer);
 }
Пример #4
0
	/**
	 * Lists all models.
	 */
	public function actionIndex($idModule)
	{
        $model = Module::model()->findByPk($idModule);
        $owners = [];

        $criteria1 = new CDbCriteria();
        $criteria1->select = 'idTeacher';
        $criteria1->addCondition('idModule='.$idModule);
        $criteria1->toArray();
        $temp = TeacherModule::model()->findAll($criteria1); //info about owners
        for($i = 0; $i < count($temp);$i++){
            array_push($owners, $temp[$i]->idTeacher);
        }
        $teachers = Teacher::model()->findAllByPk($owners);

        $criteria=new CDbCriteria();
        $criteria->addCondition('idModule>0');
        $criteria->addCondition('idModule='.$idModule);

        $dataProvider = new CActiveDataProvider('Lecture', array(
            'criteria' =>$criteria,
            'pagination'=>false,
            'sort'=>array(
                'defaultOrder'=>array(
                    'order'=>CSort::SORT_ASC,
                )
            )
        ));

        $editMode = 0; //init editMode flag
        //find id teacher related to current user id
        if (Yii::app()->user->isGuest){ //if user guest
            $editMode = 0;
        } else {
            if (Teacher::model()->exists('user_id=:user_id', array(':user_id' => Yii::app()->user->getId()))) {
                if ($teacherId = Teacher::model()->findByAttributes(array('user_id' => Yii::app()->user->getId()))->teacher_id) {
                    //check edit mode
                    if (TeacherModule::model()->exists('idTeacher=:teacher AND idModule=:module', array(':teacher' => $teacherId, ':module' => $idModule))){
                        $editMode = 1;
                    } else {
                        $editMode = 0;
                    }
                } else{
                    $editMode = 0;
                }
            } else {
                $editMode = 0;
            }
        }

        $lecturesTitles = Lecture::model()->getLecturesTitles($idModule);

        $this->render('index', array(
            'post' => $model,
            'teachers' => $teachers,
            'editMode' => $editMode,
            'lecturesTitles' => $lecturesTitles,
            'dataProvider' => $dataProvider,
        ));
	}
Пример #5
0
 public static function isTeacherCanEdit($user, $modules){
     $criteria = new CDbCriteria();
     $criteria->addInCondition('idModule', $modules);
     $criteria->addCondition('idTeacher='.$user);
     return TeacherModule::model()->exists($criteria);
 }
Пример #6
0
    public function actionUnableModule(){
        $idModule = $_GET['idModule'];

        $idCourse =Module::model()->findByPk($idModule)->course;
        $order = Module::model()->findByPk($idModule)->order;

        //Module::model()->deleteByPk($idModule);
        TeacherModule::model()->deleteAllByAttributes(array('idModule' => $idModule));
        Module::model()->updateByPk($idModule, array('order' => 0));
        Module::model()->updateByPk($idModule, array('course' => 0));

        $count = Course::model()->findByPk($idCourse)->modules_count;
        for ($i = $order + 1; $i <= $count; $i++){
            $id = Module::model()->findByAttributes(array('course'=>$idCourse,'order'=>$i))->module_ID;
            Module::model()->updateByPk($id, array('order' => $i-1));
        }
        Course::model()->updateByPk($idCourse, array('modules_count' => ($count - 1)));

        // if AJAX request, we should not redirect the browser
        if(!isset($_GET['ajax']))
            $this->redirect(Yii::app()->request->urlReferrer);
    }
Пример #7
0
 public static function addTeacherAccess($teacher, $module){
     $model = new TeacherModule();
     $model->idTeacher = $teacher;
     $model->idModule = $module;
     if ($model->validate()){
         $model->save();
     }
 }