ListAll.php 2.3 KB
Newer Older
Georgios Tsakalos's avatar
Georgios Tsakalos committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
/**
 * gredu_labs.
 *
 * @link https://github.com/eellak/gredu_labs for the canonical source repository
 *
 * @copyright Copyright (c) 2008-2015 Greek Free/Open Source Software Society (https://gfoss.ellak.gr/)
 * @license GNU GPLv3 http://www.gnu.org/licenses/gpl-3.0-standalone.html
 */

namespace GrEduLabs\Schools\Action\Lab;

use GrEduLabs\Schools\Service\LabServiceInterface;
use GrEduLabs\Schools\Service\StaffServiceInterface;
use Slim\Http\Request;
use Slim\Http\Response;
use Slim\Views\Twig;
use RedBeanPHP\R;

class ListAll
{
    protected $view;

    public function __construct(
        Twig $view, 
        LabServiceInterface $labservice,
        StaffServiceInterface $staffservice
    )
    {
        $this->view         = $view;
        $this->labservice   = $labservice;
        $this->staffservice = $staffservice;
    }

    public function __invoke(Request $req, Response $res, array $args = [])
    {
        $school = $req->getAttribute('school', false);
        if (!$school) {
            return $res->withStatus(403, 'No school');
        }

        $labs = $this->labservice->getLabsBySchoolId($school->id);
        $staff = $this->staffservice->getTeachersBySchoolId($school->id);
        $clean_staff = [];
        foreach ($staff as $obj) {
Georgios Tsakalos's avatar
Georgios Tsakalos committed
46
47
48
49
50
51
            if ($obj['is_responsible']){
                $clean_staff[] = [
                    'value' => $obj['id'],
                    'label' => $obj['name']." ".$obj['surname']
                    ];
            }
Georgios Tsakalos's avatar
Georgios Tsakalos committed
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
        }

        return $this->view->render($res, 'schools/labs.twig', [
            'labs' => $labs ,
            'staff' => $clean_staff,
            'lab_types' => [
                [
                    'value' => 1,
                    'label' => 'ΕΡΓΑΣΤΗΡΙΟ',
                ],
                [
                    'value' => 2,
                    'label' => 'ΑΙΘΟΥΣΑ',
                ],
                [
                    'value' => 3,
                    'label' => 'ΓΡΑΦΕΙΟ',
                ],
            ],
            'lessons' => [
                [
                    'value' => 1,
                    'label' => 'ΦΥΣΙΚΗ',
                ],
                [
                    'value' => 2,
                    'label' => 'ΠΛΗΡΟΦΟΡΙΚΗ',
                ],
            ],
        ]);
    }
}