add admin timetable

This commit is contained in:
2019-10-23 08:49:40 +02:00
committed by Roland Schneider
parent 1300bfc752
commit bf85c737d5
32 changed files with 1037 additions and 120 deletions

View File

@@ -0,0 +1,30 @@
<?php
namespace common\modules\event\widgets\day;
use common\modules\event\models\timetable\TimeTableMonthDay;
use yii\base\Widget;
/** @noinspection PhpUnused */
/**
* Class TimeTableMonthDayView
* @package common\modules\event\widgets
*
* @property TimeTableMonthDay $day
*/
class TimeTableMonthDayView extends \yii\bootstrap\Widget
{
public $day;
public function init(){
parent::init();
}
public function run(){
return $this->render('_day', [ 'day' => $this->day]);
}
}

View File

@@ -0,0 +1,20 @@
<?php
/* @var $day TimeTableMonthDay */
use common\models\Event;
use common\modules\event\models\timetable\TimeTableMonthDay;
use common\modules\event\widgets\event\EventView;
?>
<h3>
<?= $day->date->format('d') ?>
</h3>
<?php if (count($day->events) === 0) {
echo EventView::widget(['event' => null]);
} else {
/** @var Event $event */
foreach ($day->events as $event) {
echo EventView::widget(['event' => $event]);
}
} ?>

View File

@@ -0,0 +1,45 @@
<?php
namespace common\modules\event\widgets\event;
use common\models\Event;
use common\modules\event\models\timetable\TimeTableMonthDay;
use yii\base\Widget;
/** @noinspection PhpUnused */
/**
* Class TimeTableMonthDayView
* @package common\modules\event\widgets
*
* @property Event $event
*/
class EventView extends \yii\bootstrap\Widget
{
public $event;
public $start;
public $end;
public function init(){
parent::init();
if ( isset($this->event )){
$this->start = new \DateTime();
$this->start->setTimestamp($this->event->start);
$this->end = new \DateTime();
$this->end->setTimestamp($this->event->end);
}
}
public function run(){
return $this->render('_event',
[
'event' => $this->event,
'start' => $this->start,
'end' => $this->end
]
);
}
}

View File

@@ -0,0 +1,33 @@
<?php
/* @var $event Event */
/* @var $start DateTime */
/* @var $end DateTime */
use common\models\Event;
use common\modules\event\models\timetable\TimeTableMonthDay;
use yii\helpers\Html;
use yii\helpers\Url;
if (!isset($event)) {
?>
<div class="alert alert-info">Nincs esemény</div>
<?php
} else {
?>
<div class="alert alert-success">
<?= Html::a( $start->format('H:i') .'-' . $end->format('H:i') , Url::toRoute(['event/update', 'id' => $event->id ] ) ) ?>
<br>
<?= Html::a( $event->eventType->name , Url::toRoute(['/event-type/view', 'id'=> $event->eventType->id])) ?>
<br>
<?= Html::a( $event->room->name , Url::toRoute(['/room/view', 'id' => $event->room->id]) )?>
<br>
<?= Html::a( $event->trainer->name , Url::toRoute(['/trainer/view', 'id' => $event->trainer->id]) )?>
<br>
<?= $event->eventRegistrationCount ?>
/
<?= $event->seat_count ?>
</div>
<?php
}

View File

@@ -0,0 +1,39 @@
<?php
namespace common\modules\event\widgets\timetable;
use common\modules\event\models\timetable\TimeTableMonthDay;
use common\modules\event\models\timetable\TimeTableMonthWeek;
use common\modules\event\widgets\day\TimeTableMonthDayView;
use yii\bootstrap\Widget;
/** @noinspection PhpUnused */
/**
* Class TimeTableMonthDayView
* @package common\modules\event\widgets
*
* @property TimeTableMonthDay $day
*/
class TimeTableMonthView extends Widget
{
public $timeTable;
public function run() {
return $this->render('_timetable', [ 'timeTable' => $this->timeTable]);
}
public static function renderDay($weekDay ){
/**
* @param TimeTableMonthWeek $week
* @return string
*/
return static function ($week) use ($weekDay) {
return TimeTableMonthDayView::widget(['day' => $week->getWeekDay($weekDay)]);
};
}
}

View File

@@ -0,0 +1,79 @@
<?php
/* @var $timeTable TimeTableMonth */
use common\models\Event;
use common\modules\event\models\timetable\TimeTableMonth;
use common\modules\event\models\timetable\TimeTableMonthDay;
use common\modules\event\models\timetable\TimeTableMonthWeek;
use common\modules\event\widgets\day\TimeTableMonthDayView;
use common\modules\event\widgets\event\EventView;
use common\modules\event\widgets\timetable\TimeTableMonthView;
use yii\grid\ActionColumn;
use yii\grid\GridView;
?>
<?php
?>
<?= GridView::widget([
'dataProvider' => $timeTable->getWeeksArrayDataProvider(),
'columns' => [
[
'attribute' => 'weekNumber',
'label' => '',
'value' => static function ($model,$key){
return $model->weekNumber;
}
],
[
'attribute' => 'monday',
'label' => 'Hétfő',
'format' => 'raw',
'value' => TimeTableMonthView::renderDay('monday')
],
[
'attribute' => 'tuesday',
'label' => 'Kedd',
'format' => 'raw',
'value' => TimeTableMonthView::renderDay('tuesday')
],
[
'attribute' => 'wednesday',
'label' => 'Szerda',
'format' => 'raw',
'value' => TimeTableMonthView::renderDay('wednesday')
],
[
'attribute' => 'thursday',
'label' => 'Csütörtök',
'format' => 'raw',
'value' => TimeTableMonthView::renderDay('thursday')
],
[
'attribute' => 'friday',
'label' => 'Péntek',
'format' => 'raw',
'value' => TimeTableMonthView::renderDay('friday')
],
[
'attribute' => 'saturday',
'format' => 'raw',
'label' => 'Szombat',
'value' => TimeTableMonthView::renderDay('saturday')
],
[
'attribute' => 'Sunday',
'label' => 'Vasárnap',
'format' => 'raw',
'value' => TimeTableMonthView::renderDay('sunday')
],
[
'class' => ActionColumn::class,
'template' => '{view} {update}',
],
],
]) ?>