Пример #1
0
 public static function createSemestersForGroup($group, $count, $beginYear)
 {
     $year = $beginYear;
     $date = new DateTime();
     $date->setDate($year, 1, 1);
     for ($i = 1; $i <= $count; $i++) {
         $GS = new GroupSemesters();
         if ($i % 2) {
             $date->setDate($date->format("Y"), 9, 1);
             $beginDate = $date->format('U');
             $date->setDate($date->format("Y") + 1, 2, 1);
             $endDate = $date->format('U');
         } else {
             $date->setDate($date->format("Y"), 2, 10);
             $beginDate = $date->format('U');
             $date->setDate($date->format("Y"), 7, 1);
             $endDate = $date->format('U');
         }
         $GS->begin_date = $beginDate;
         $GS->end_date = $endDate;
         $GS->group_id = $group;
         $GS->semester_number = $i;
         if (!GroupSemesters::find()->where(['group_id' => $group, 'semester_number' => $i])->count()) {
             $GS->save();
         }
     }
 }
Пример #2
0
 public function getSemester()
 {
     return $this->hasOne(GroupSemesters::className(), ['semester_number' => 'semester_number']);
 }
Пример #3
0
}
echo Html::beginTag('div', ['class' => 'list-group']);
foreach ($menuItems as $item) {
    echo Html::a($item['label'], $item['url'], ['class' => 'list-group-item']);
}
echo Html::endTag('div');
Pjax::end();
$this->endBlock('teachers');
//Архив
$this->beginBlock('archive');
$menuItems = [];
$formatter = Yii::$app->formatter;
$groups = Group::find()->all();
echo Html::beginTag('div', ['class' => 'list-group']);
foreach ($groups as $gr) {
    $count = \common\models\GroupSemesters::find()->where(['group_id' => $gr->id])->andWhere(['<=', 'end_date', date('U')])->count();
    if (!$count) {
        break;
    }
    echo Html::beginTag('div', ['class' => 'list-group-item']);
    echo "<span class='list-group-item'><i class='glyphicon glyphicon-chevron-right'></i>{$gr->name}</span>";
    echo "<div class='list-group'  style='display: none;'>";
    foreach ($gr->semesters as $semester) {
        if ($semester->end_date > date('U')) {
            break;
        }
        $link = Url::toRoute(['lesson/archive', 'group' => $gr->id, 'semester' => $semester->semester_number]);
        echo "<a href='{$link}' class='list-group-item'>Семестр: {$semester->semester_number}  " . "<span class='badge'>{$formatter->asDate($semester->begin_date)} — {$formatter->asDate($semester->end_date)}</span></a>";
    }
    echo "</div>";
    echo Html::endTag('div');
Пример #4
0
 public function getSemesters()
 {
     return $this->hasMany(GroupSemesters::className(), ['group_id' => 'id']);
 }
Пример #5
0
use yii\widgets\ActiveForm;
use common\models\Discipline;
use common\models\Group;
use yii\helpers\ArrayHelper;
use common\models\GroupSemesters;
use common\components\DateHelper;
use unclead\widgets\MultipleInput;
use kartik\depdrop\DepDrop;
use yii\helpers\Url;
/* @var $this yii\web\View */
/* @var $model common\models\GroupHasDiscipline */
/* @var $form yii\widgets\ActiveForm */
$semesterList = $model->group_id ? ArrayHelper::map(GroupSemesters::find()->where(['group_id' => $model->group_id])->all(), 'id', 'semester_number') : [];
if ($semesterList != []) {
    foreach ($semesterList as $key => $ar) {
        $semesterList[$key] = $ar . " - (" . Yii::$app->formatter->asDate(GroupSemesters::findOne($key)->begin_date) . ':' . Yii::$app->formatter->asDate(GroupSemesters::findOne($key)->end_date) . ')';
    }
}
?>

<div class="group-has-discipline-form">
    
    <?php 
$form = ActiveForm::begin(['id' => 'project-form', 'enableAjaxValidation' => true]);
?>
    
    <?php 
echo $form->field($model, 'teacherHasDiscipline')->widget(MultipleInput::className(), ['min' => 1, 'columns' => [['name' => 'teacher_id', 'type' => 'dropDownList', 'defaultValue' => 1, 'items' => ArrayHelper::map(\common\models\Teacher::find()->all(), 'id', 'user.fullname')]]]);
?>

    <?php 
Пример #6
0
 public static function getLessonsList($arr)
 {
     $group = isset($arr['group']) ? $arr['group'] : null;
     $teacher = isset($arr['teacher']) ? $arr['teacher'] : null;
     if ($group !== null) {
         if (!isset($arr['semester'])) {
             $semester = Group::findOne($group)->currentSemester;
         } else {
             $semester = GroupSemesters::find()->where(['group_id' => $arr['group'], 'semester_number' => $arr['semester']])->one();
         }
         if (!$semester) {
             return false;
         }
         $lessons = Lesson::find()->joinWith('groupHasDiscipline', true, "INNER JOIN")->where(['group_has_discipline.group_id' => $group])->andWhere(['group_has_discipline.semester_number' => $semester->semester_number])->orderBy('week ASC, day ASC, time ASC')->all();
         return $lessons;
     } elseif ($teacher !== null) {
         $lessons = Lesson::find()->select('lesson.*')->innerJoin("teacher_has_discipline thd", "`thd`.`id` = `lesson`.`thd_id`")->innerJoin("group_has_discipline ghd", '`ghd`.`id` = `lesson`.`ghd_id`')->innerJoin("group g", '`g`.`id` = `ghd`.`group_id`')->innerJoin("group_semesters gs", '`gs`.`group_id` = `g`.`id` AND `ghd`.`semester_number`  = `gs`.`semester_number`')->where(['<=', 'gs.begin_date', date('U')])->andWhere(['>=', 'gs.end_date', date('U')])->andWhere(['thd.teacher_id' => $teacher])->orderBy('week ASC, day ASC, time ASC, id ASC')->all();
         return $lessons;
     }
 }
 public function actionSemesters()
 {
     $out = [];
     if (isset($_POST['depdrop_parents'])) {
         $parents = $_POST['depdrop_parents'];
         if ($parents != null) {
             $cat_id = $parents[0];
             $semesters = \common\models\GroupSemesters::find()->where(['group_id' => $cat_id])->all();
             foreach ($semesters as $sem) {
                 $out[] = ['id' => $sem->semester_number, 'name' => $sem->semester_number . " - (" . Yii::$app->formatter->asDate($sem->begin_date) . ":" . Yii::$app->formatter->asDate($sem->end_date) . ")"];
             }
             // the getSubCatList function will query the database based on the
             // cat_id and return an array like below:
             // [
             //    ['id'=>'<sub-cat-id-1>', 'name'=>'<sub-cat-name1>'],
             //    ['id'=>'<sub-cat_id_2>', 'name'=>'<sub-cat-name2>']
             // ]
             echo Json::encode(['output' => $out, 'selected' => '']);
             return;
         }
     }
     echo Json::encode(['output' => '', 'selected' => '']);
 }
Пример #8
0
use yii\widgets\ListView;
use common\models\Lesson;
use common\models\GroupHasDiscipline;
use yii\helpers\Url;
use yii\web\NotFoundHttpException;
use yii\bootstrap\Tabs;
use yii\helpers\ArrayHelper;
use common\widgets\Schedule;
use common\models\Group;
use common\models\GroupSemesters;
use yii\bootstrap\Modal;
/* @var $this yii\web\View */
/* @var $dataProvider yii\data\ActiveDataProvider */
$formatter = Yii::$app->formatter;
$groupModel = \common\models\Group::find()->where(['id' => $group])->one();
$semesterModel = GroupSemesters::find()->where(['group_id' => $group, 'semester_number' => $semester])->one();
//$ghd = GroupHasDiscipline::find()->where(['group_id' => $group])->andWhere(['<=','start_date',$todayDate])->andWhere(['>=','end_Date',$todayDate])->all();
//if(!$ghd) {  throw new NotFoundHttpException('Страница не найдена.');}
$this->title = 'Архив. Расписание группы ' . $groupModel->name . ' ' . $semesterModel->semester_number . ' семестр.';
$this->params['breadcrumbs'][] = ['label' => 'Информация', 'url' => Url::to(['site/information'])];
$this->params['breadcrumbs'][] = ['label' => 'Расписание', 'url' => Url::to(['lesson/index'])];
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="lesson-index">
    
    <h3><?php 
echo "Архив расписания группы: " . Html::a($groupModel->name, ['//group/view', 'id' => $groupModel->id]);
?>
        <?php 
echo Html::encode($formatter->asDate($semesterModel->begin_date) . "-" . $formatter->asDate($semesterModel->end_date));
?>
Пример #9
0
 /**
  * Updates an existing Group model.
  * If update is successful, the browser will be redirected to the 'view' page.
  * @param integer $id
  * @return mixed
  */
 public function actionUpdate($id)
 {
     $model = $this->findModel($id);
     $modelGS = GroupSemesters::find()->where(['group_id' => $id])->all();
     if ($model->load(Yii::$app->request->post()) && $model->save()) {
         return $this->redirect(['manage']);
     } else {
         return $this->renderAjax('update', ['model' => $model, 'modelGS' => $modelGS]);
     }
 }