school info tab; first page lifting

parent eba04788
......@@ -30,6 +30,7 @@ return [
['/school/labs/attachment', ['school'], ['get', 'delete']],
['/application-form', ['school'], ['get', 'post'], 'GrEduLabs\ApplicationForm\Acl\Assertion\CanSubmit'],
['/application-form/submit-success', ['school'], ['get']],
['/#forum', ['guest', 'user'], ['get']],
],
],
],
......
......@@ -50,6 +50,10 @@ return [
'label' => 'Σχετικά με τη δράση',
'route' => 'about',
],
'forum' => [
'label' => 'Φόρουμ βοήθειας',
'href' => '/#forum',
],
],
],
......
{% extends "layout.twig" %}
{% block content %}
<h1>Σχετικά με τη δράση</h1>
<p>Στο πλαίσιο της προσπάθειας να διαμορφωθεί το σχολείο του αύριο, το Υπουργείο Παιδείας, Έρευνας και Θρησκευμάτων αναβαθμίζει τις ψηφιακές υποδομές των σχολείων της Πρωτοβάθμιας και Δευτεροβάθμιας Εκπαίδευσης.
</p><p>
Στόχος είναι η δημιουργία ενός σχολείου που με τη χρήση των Τεχνολογιών Πληροφορικής και Επικοινωνιών (ΤΠΕ) θα είναι πραγματιστικό αλλά και καινοτόμο, θα διέπεται από μία ολοκληρωμένη προσέγγιση, θα παρέχει πρόσβαση σε υψηλού επιπέδου εκπαίδευση για όλους, θα ενισχύει τους εκπαιδευτικούς να χρησιμοποιήσουν ένα σχολικό περιβάλλον αναβαθμισμένο με σύγχρονες υποδομές και παιδαγωγικές, ώστε να εκπαιδεύσουν μαθητές με τις δεξιότητες που απαιτούνται από τον κόσμο του αύριο, όπως αυτός διαμορφώνεται σε παγκόσμιο αλλά και εθνικό επίπεδο και θα συγκλίνει στην ευρύτερη πολιτική για την ανάπτυξη.
</p><p>
Η αναβάθμιση αφορά συγκεκριμένες παρεμβάσεις στις υποδομές Τεχνολογιών Πληροφορικής και Επικοινωνιών των Σχολείων, στις περιπτώσεις που κρίνεται απαραίτητη θα υλοποιείται με ανοιχτές τεχνολογίες και με νέο εξοπλισμό (υλικό και λογισμικό) όπου απαιτείται. Η επιλογή των σχολείων θα γίνεται σταδιακά και θα ξεκινήσει από τα σχολεία που θα καταθέσουν την πιο πλήρη εκπαιδευτική πρόταση για τον τρόπο αξιοποίησης των προτεινόμενων αναβαθμίσεων στη καθημερινή διδακτική διαδικασία.
</p><p>
Η αναβάθμιση των υποδομών θα γίνει και με την αξιοποίηση παλαιού εξοπλισμού ή/και την ανάπτυξη σύγχρονων εργαστηρίων χαμηλού κόστους και μεμονομένων θέσεων εργασίας, με την χρήση του <a href="http://ts.sch.gr/wiki/Linux/LTSP" target="_blank">LTSP</a>, του <a href="http://ts.sch.gr/wiki/Linux/epoptes" target="_blank">ΕΠΟΠΤΗ</a> και του λειτουργικού συστήματος Ubuntu Linux. Η τεχνολογία αυτή επιτρέπει, με την αναβάθμιση του εξυπηρετητή του εργαστηρίου πληροφορικής, να χρησιμοποιούνται και οι παλαιωμένοι σταθμοί εργασίας για την πρόσβαση στο διαδίκτυο και τη χρήση ψηφιακών εκπαιδευτικών εφαρμογών μέσα από ένα σύγχρονο περιβάλλον επικοινωνίας. Ο ήδη υπάρχων εξυπηρετητής του παλαιωμένου εργαστηρίου θα μπορεί, αν υπάρχει η δυνατότητα, να αναβαθμίζεται ή να αντικαθίσταται. Και στις δύο περιπτώσεις θα μπορεί να καλύψει τις ανάγκες πρόσβασης στο διαδίκτυο και της χρήσης των ψηφιακών υποδομών του σχολείου.
</p><p>
Θα υπάρχει δυνατότητα να αντικαθίσταται παλαιωμένος μη λειτουργικός εξοπλισμός όπως οθόνες, πληκτρολόγια, κάμερες, ακουστικά, κάρτες μνήμης κλπ, καθώς επίσης και να συμπληρώνεται ο υπάρχων εξοπλισμός όπως για παράδειγμα πολυμηχανήματα-εκτυπωτές, μεταγωγείς, δομημένη καλωδίωση, ασύρματη δικτύωση κλπ, καθώς και άλλος εξοπλισμός που διαλειτουργεί με υπολογιστές καθώς και εποπτικά εργαλεία για τα οποία, μέσω της αίτησης, θα αποδεικνύεται η ανάγκη προμήθειάς τους και θα τεκμηριώνετε η χρήσης τους από τη σχολική μονάδα.
</p><p>
Επιπλέον, θα υπάρχει η δυνατότητα αν υπάρχει η κατάλληλη υποδομή πχ κενή αίθουσα, να αναπτυχθεί στη σχολική μονάδα ένα επιπλέον εργαστήριο ψηφιακών μέσων και να εξοπλισθούν άλλα υπάρχοντα εργαστήρια όπως φυσικών επιστημών, τεχνολογίας κλπ με σύγχρονα ψηφιακά εργαλεία.
</p><p>
Η προσπάθεια θα στηριχθεί στη χρήση ανοικτών τεχνολογιών και περιεχομένου σε όλες τις βαθμίδες της εκπαίδευσης με εξασφαλισμένη διαλειτουργικότητα με τις κεντρικές υποδομές ΠΣΔ και ειδικότερα με τις υποδομές εγγραφής και πιστοποίησης σχολείων, εκπαιδευτικών και μαθητών.
</p><p>
Για την επιλογή του σχολείου σας σε αυτή τη πιλοτική δράση, θα αξιολογηθεί:
</p>
<ul>
<li>η παλαιότητα του υπάρχοντος εξοπλισμού, </li>
<li>η εμπειρία του σχολείου σε ψηφιακές εκπαιδευτικές δράσεις, </li>
<li>η εμπειρία και ο βαθμός γνώσης και χρήσης των ΤΠΕ από τους εκπαιδευτικούς του σχολείου, </li>
<li>καθώς και η αποτύπωση ενός σχεδίου ανάπτυξης των ΤΠΕ στην μαθησιακή διαδικασία της σχολικής μονάδας. </li>
</ul>
<p>Για αυτό παρακαλείσθε να συμπληρώσετε με προσοχή τις επόμενες καρτέλες όπου θα αποτυπώσετε τα παραπάνω στοιχεία.
</p><p>
Σε κάθε καρτέλα υπάρχει εισαγωγικό κείμενο με οδηγίες στα σημεία που χρειάζεται. Σε καθημερινή βάση θα εμπλουτίζεται σελίδα με απαντήσεις στις πιο συχνές ερωτήσεις την οποία μπορείτε να συμβουλεύεστε, ενώ θα διατίθεται τεχνική υποστήριξη από το <a href="#">φόρουμ</a> μέσω του οποίου θα απαντώνται τα ερωτήματα των σχολείων.
</p>
<div class="about">
<div class="row">
<h1 class="col-xs-12 col-sm-12 col-md-9">Σχετικά με τη δράση</h1>
<div class="col-xs-12 col-sm-12 col-md-3 text-center">
<a href="#/egkyklios" title="Η εγκύκλιος" class="btn btn-lg btn-primary">
<i class="fa fa-download"></i> Σχετική εγκύκλιος
</a>
<hr class="visible-xs visible-sm">
</div>
<div class="col-xs-12">
<p>Στο πλαίσιο της προσπάθειας να διαμορφωθεί το σχολείο του αύριο, το Υπουργείο Παιδείας, Έρευνας και Θρησκευμάτων αναβαθμίζει τις ψηφιακές υποδομές των σχολείων της Πρωτοβάθμιας και Δευτεροβάθμιας Εκπαίδευσης.
</p><p>
Στόχος είναι η δημιουργία ενός σχολείου που με τη χρήση των Τεχνολογιών Πληροφορικής και Επικοινωνιών (ΤΠΕ) θα είναι πραγματιστικό αλλά και καινοτόμο, θα διέπεται από μία ολοκληρωμένη προσέγγιση, θα παρέχει πρόσβαση σε υψηλού επιπέδου εκπαίδευση για όλους, θα ενισχύει τους εκπαιδευτικούς να χρησιμοποιήσουν ένα σχολικό περιβάλλον αναβαθμισμένο με σύγχρονες υποδομές και παιδαγωγικές, ώστε να εκπαιδεύσουν μαθητές με τις δεξιότητες που απαιτούνται από τον κόσμο του αύριο, όπως αυτός διαμορφώνεται σε παγκόσμιο αλλά και εθνικό επίπεδο και θα συγκλίνει στην ευρύτερη πολιτική για την ανάπτυξη.
</p><p>
Η αναβάθμιση αφορά συγκεκριμένες παρεμβάσεις στις υποδομές Τεχνολογιών Πληροφορικής και Επικοινωνιών των Σχολείων, στις περιπτώσεις που κρίνεται απαραίτητη θα υλοποιείται με ανοιχτές τεχνολογίες και με νέο εξοπλισμό (υλικό και λογισμικό) όπου απαιτείται. Η επιλογή των σχολείων θα γίνεται σταδιακά και θα ξεκινήσει από τα σχολεία που θα καταθέσουν την πιο πλήρη εκπαιδευτική πρόταση για τον τρόπο αξιοποίησης των προτεινόμενων αναβαθμίσεων στη καθημερινή διδακτική διαδικασία.
</p><p>
Η αναβάθμιση των υποδομών θα γίνει και με την αξιοποίηση παλαιού εξοπλισμού ή/και την ανάπτυξη σύγχρονων εργαστηρίων χαμηλού κόστους και μεμονομένων θέσεων εργασίας, με την χρήση του <a href="http://ts.sch.gr/wiki/Linux/LTSP" target="_blank">LTSP</a>, του <a href="http://ts.sch.gr/wiki/Linux/epoptes" target="_blank">ΕΠΟΠΤΗ</a> και του λειτουργικού συστήματος Ubuntu Linux. Η τεχνολογία αυτή επιτρέπει, με την αναβάθμιση του εξυπηρετητή του εργαστηρίου πληροφορικής, να χρησιμοποιούνται και οι παλαιωμένοι σταθμοί εργασίας για την πρόσβαση στο διαδίκτυο και τη χρήση ψηφιακών εκπαιδευτικών εφαρμογών μέσα από ένα σύγχρονο περιβάλλον επικοινωνίας. Ο ήδη υπάρχων εξυπηρετητής του παλαιωμένου εργαστηρίου θα μπορεί, αν υπάρχει η δυνατότητα, να αναβαθμίζεται ή να αντικαθίσταται. Και στις δύο περιπτώσεις θα μπορεί να καλύψει τις ανάγκες πρόσβασης στο διαδίκτυο και της χρήσης των ψηφιακών υποδομών του σχολείου.
</p><p>
Θα υπάρχει δυνατότητα να αντικαθίσταται παλαιωμένος μη λειτουργικός εξοπλισμός όπως οθόνες, πληκτρολόγια, κάμερες, ακουστικά, κάρτες μνήμης κλπ, καθώς επίσης και να συμπληρώνεται ο υπάρχων εξοπλισμός όπως για παράδειγμα πολυμηχανήματα-εκτυπωτές, μεταγωγείς, δομημένη καλωδίωση, ασύρματη δικτύωση κλπ, καθώς και άλλος εξοπλισμός που διαλειτουργεί με υπολογιστές καθώς και εποπτικά εργαλεία για τα οποία, μέσω της αίτησης, θα αποδεικνύεται η ανάγκη προμήθειάς τους και θα τεκμηριώνετε η χρήσης τους από τη σχολική μονάδα.
</p><p>
Επιπλέον, θα υπάρχει η δυνατότητα αν υπάρχει η κατάλληλη υποδομή πχ κενή αίθουσα, να αναπτυχθεί στη σχολική μονάδα ένα επιπλέον εργαστήριο ψηφιακών μέσων και να εξοπλισθούν άλλα υπάρχοντα εργαστήρια όπως φυσικών επιστημών, τεχνολογίας κλπ με σύγχρονα ψηφιακά εργαλεία.
</p><p>
Η προσπάθεια θα στηριχθεί στη χρήση ανοικτών τεχνολογιών και περιεχομένου σε όλες τις βαθμίδες της εκπαίδευσης με εξασφαλισμένη διαλειτουργικότητα με τις κεντρικές υποδομές ΠΣΔ και ειδικότερα με τις υποδομές εγγραφής και πιστοποίησης σχολείων, εκπαιδευτικών και μαθητών.
</p><p>
Για την επιλογή του σχολείου σας σε αυτή τη πιλοτική δράση, θα αξιολογηθεί:
</p>
<ul>
<li>η παλαιότητα του υπάρχοντος εξοπλισμού, </li>
<li>η εμπειρία του σχολείου σε ψηφιακές εκπαιδευτικές δράσεις, </li>
<li>η εμπειρία και ο βαθμός γνώσης και χρήσης των ΤΠΕ από τους εκπαιδευτικούς του σχολείου, </li>
<li>καθώς και η αποτύπωση ενός σχεδίου ανάπτυξης των ΤΠΕ στην μαθησιακή διαδικασία της σχολικής μονάδας. </li>
</ul>
<p>Για αυτό παρακαλείσθε να συμπληρώσετε με προσοχή τις επόμενες καρτέλες όπου θα αποτυπώσετε τα παραπάνω στοιχεία.
</p><p>
Σε κάθε καρτέλα υπάρχει εισαγωγικό κείμενο με οδηγίες στα σημεία που χρειάζεται. Σε καθημερινή βάση θα εμπλουτίζεται σελίδα με απαντήσεις στις πιο συχνές ερωτήσεις την οποία μπορείτε να συμβουλεύεστε, ενώ θα διατίθεται τεχνική υποστήριξη από το <a href="/#forum">φόρουμ</a> μέσω του οποίου θα απαντώνται τα ερωτήματα των σχολείων.
</p>
</div>
</div>
</div>
{% endblock %}
\ No newline at end of file
{% extends "layout.twig" %}
{% block content %}
<div class="jumbotron">
<div class="jumbotron home">
<h1>Καταγραφή και αναβάθμιση υποδομών πληροφορικής και επικοινωνιών των σχολείων </h1>
<p class="lead text-justify"> Η αναβάθμιση αφορά συγκεκριμένες παρεμβάσεις στις υποδομές
<p class="text-justify">
<img src="{{ base_url() }}/img/minedu_logo.jpg" class="img-responsive pull-left">
<span class="clearfix visible-xs"></span>
Η αναβάθμιση αφορά συγκεκριμένες παρεμβάσεις στις υποδομές
Τεχνολογιών Πληροφορικής και Επικοινωνιών των Σχολείων, στις περιπτώσεις
που κρίνεται απαραίτητη θα υλοποιείται με ανοιχτές τεχνολογίες και με
νέο εξοπλισμό (υλικό και λογισμικό) όπου απαιτείται. </p>
......
......@@ -7,8 +7,8 @@
<meta name="description" content="">
<meta name="author" content="">
<title>GrEduLabs</title>
<link href="{{ base_url }}/css/bootstrap.min.css" rel="stylesheet" rel="stylesheet" type="text/css">
<link href="{{ base_url }}/css/font-awesome.min.css" rel="stylesheet" type="text/css">
<link href="{{ base_url() }}/css/bootstrap.min.css" rel="stylesheet" rel="stylesheet" type="text/css">
<link href="{{ base_url() }}/css/font-awesome.min.css" rel="stylesheet" type="text/css">
<link href="{{ base_url() }}/css/style.css" rel="stylesheet" type="text/css">
<link rel="icon" href="{{ base_url }}/img/favicon.ico">
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
......@@ -35,8 +35,8 @@
</p>
</footer>
</div>
<script src="{{ base_url }}/js/jquery-2.2.0.min.js"></script>
<script src="{{ base_url }}/js/bootstrap.min.js"></script>
<script src="{{ base_url() }}/js/jquery-2.2.0.min.js"></script>
<script src="{{ base_url() }}/js/bootstrap.min.js"></script>
<script type="text/javascript" src="{{ base_url }}/js/utils.js"></script>
{% block inlinejs %}{% endblock %}
</body>
......
......@@ -68,10 +68,19 @@ return function (Slim\App $app) {
$c->get(GrEduLabs\ApplicationForm\Service\ApplicationFormServiceInterface::class)
);
};
$container[GrEduLabs\ApplicationForm\Middleware\SchoolApplicationForm::class] = function ($c) {
return new GrEduLabs\ApplicationForm\Middleware\SchoolApplicationForm(
$c->get('view'),
$c->get(GrEduLabs\ApplicationForm\Service\ApplicationFormServiceInterface::class)
);
};
});
$events('on', 'app.bootstrap', function ($stop, $app, $container) {
$container['view']->getEnvironment()->getLoader()->prependPath(__DIR__ . '/templates');
$container['router']->getNamedRoute('school')
->add(GrEduLabs\ApplicationForm\Middleware\SchoolApplicationForm::class);
$app->group('/application-form', function () {
$this->map(['get', 'post'], '', GrEduLabs\ApplicationForm\Action\ApplicationForm::class)
......
<?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\ApplicationForm\Middleware;
use GrEduLabs\ApplicationForm\Service\ApplicationFormServiceInterface;
use Slim\Http\Request;
use Slim\Http\Response;
use Slim\Views\Twig;
class SchoolApplicationForm
{
/**
*
* @var Twig
*/
protected $view;
/**
*
* @var ApplicationFormServiceInterface
*/
protected $appFormService;
public function __construct(Twig $view, ApplicationFormServiceInterface $appFormService)
{
$this->view = $view;
$this->appFormService = $appFormService;
}
public function __invoke(Request $req, Response $res, callable $next)
{
$school = $req->getAttribute('school');
$appForm = $this->appFormService->findSchoolApplicationForm($school->id);
if ($appForm) {
$appForm['items'] = array_reduce($appForm['items'], function ($aggr, $item) {
$category = $item['itemcategory_id'];
if (!isset($aggr[$category])) {
$aggr[$category] = [
'category' => $item['itemcategory'],
'count' => 0,
];
}
$aggr[$category]['count'] += $item['qty'];
return $aggr;
}, []);
}
$this->view['appForm'] = $appForm;
return $next($req, $res);
}
}
......@@ -14,7 +14,7 @@
<dl class="col-sm-12 col-md-6">
<dt>A/A αίτησης</dt>
<dd>{{ appForm.id }}</dd>
<dt>Ημερ. καταχώρησης</dt>
<dt>Ημερ. υποβολής</dt>
<dd>{{ appForm.submitted|date('d/m/Y') }}<dd>
<dt>Σχολείο</dt>
<dd>{{ school.name }}</dd>
......
{% extends "layout.twig" %}
{% macro input(name, label, value, type, attributes) %}
<div class="form-group">
<label class="control-label hidden-xs hidden-sm col-md-3" for="el-{{ name }}">{{ label|raw }}</label>
<div class="col-xs-12 col-sm-12 col-md-9">
<input placeholder="{{ label|striptags }}" class="form-control input-sm"
type="{{ type|default('text') }}" name="{{ name }}"
id="el-{{ name }}" value="{{ value|default('')|raw }}"
{% for attr_name, attr_value in attributes|default({}) %}
{{ attr_name }}="{{ attr_value }}"
{% endfor %}>
</div>
</div>
{% endmacro %}
{% macro checkbox(name, label, checked, attributes) %}
<div class="form-group">
<div class="col-xs-12 col-sm-12 col-md-9 col-md-offset-3">
<div class="checkbox">
<label for="el-{{ name }}">
<input type="checkbox" name="{{ name }}" id="el-{{ name }}"
{% for attr_name, attr_value in attributes|default({}) %}
{{ attr_name }}="{{ attr_value }}"
{% endfor %}
{% if checked %} checked{% endif %} value="asdasdasd">
{{ label|raw }}
</label>
</div>
</div>
</div>
{% endmacro %}
{% macro file(name, label, value, attributes) %}
<div class="form-group">
<label class="control-label hidden-xs hidden-sm col-md-3" for="el-{{ name }}">{{ label|raw }}</label>
<div class="col-xs-12 col-sm-12 col-md-9">
<div class="input-group">
<span class="input-group-btn">
<span class="btn btn-default btn-file">
Επιλέξτε&hellip; <input type="file" multiple name="{{ name }}" id="el-{{ name }}">
</span>
</span>
<input type="text" class="form-control" readonly placeholder="{{ label|striptags }}"
{% for attr_name, attr_value in attributes|default({}) %}
{{ attr_name }}="{{ attr_value }}"
{% endfor %}>
<span class="input-group-btn">
<span class="btn btn-default btn-file-remove">
<i class="fa fa-remove"></i>
</span>
</span>
</div>
{% if value %}
<div class="pull-right uploaded btn-group btn-group-sm" data-href="{{ value }}">
<a href="#" target="_blank" class="btn-download btn bnt-link btn-sm">
<i class="fa fa-download"></i> Λήψη</a>
<a href="#" class="btn-remove btn bnt-link btn-sm text-danger">
<i class="fa fa-remove"></i> Διαγραφή</a>
</div>
{% endif %}
</div>
</div>
{% endmacro %}
{% macro select(name, label, options, selected, attributes) %}
<div class="form-group">
<label class="control-label hidden-xs hidden-sm col-md-3" for="el-{{ name }}">{{ label|raw }}</label>
<div class="col-xs-12 col-sm-12 col-md-9">
<select class="form-control input-sm" name="{{ name }}" id="el-{{ name }}"
{% for attr_name, attr_value in attributes|default({}) %}
{{ attr_name }}="{{ attr_value }}"
{% endfor %}>
{% set multi = attributes.multiple is defined %}
{% if multi %}
<optgroup label="{{ label|striptags }}">
{% endif %}
{% if not multi %}
<option value="" disabled{% if selected is empty %} selected{% endif %}>{{ label|striptags }}</option>
{% endif %}
{% for option in options %}
<option value="{{ option.value|e }}"{% if selected == option.value %} selected{% endif %}>
{{ option.label }}
</option>
{% endfor %}
{% if multi %}
</optgroup>
{% endif %}
</select>
</div>
</div>
{% endmacro %}
{% macro select_year(name, label, selected, start, attributes) %}
<div class="form-group">
<label class="control-label hidden-xs hidden-sm col-md-3" for="el-{{ name }}">{{ label|raw }}</label>
<div class="col-xs-12 col-sm-12 col-md-9">
<select class="form-control input-sm" name="{{ name }}" id="el-{{ name }}"
{% for attr_name, attr_value in attributes|default({}) %}
{{ attr_name }}="{{ attr_value }}"
{% endfor %}>
<option value="" disabled{% if selected is empty %} selected{% endif %}>{{ label|striptags }}</option>
{% for option in range("now"|date("Y"), start|default(1980)) %}
<option value="{{ option|e }}"{% if selected == option %} selected{% endif %}>
{{ option }}
</option>
{% endfor %}
</select>
</div>
</div>
{% endmacro %}
{% macro text(name, label, value, attributes) %}
<div class="form-group">
<label for="el-{{ name }}" class="col-xs-12 pull-left">
{{ label|e }}
</label>
<div class="col-xs-12">
<textarea id="el-{{ name }}" name="{{ name }}" class="form-control" placeholder="{{ label|striptags }}"
{% for attr_name, attr_value in attributes|default({}) %}
{{ attr_name }}="{{ attr_value }}"
{% endfor %}>
{{ value|striptags }}
</textarea>
</div>
</div>
{% endmacro %}
{% block content %}
<div id="school">
<h1>
{% block schoolTitle %}
{{ school.name }}
{% endblock %}
</h1>
<ul class="nav nav-tabs">
{% for page in nav('main').school.pages %}
<li role="presentation" class="{% if page.active %}active{% endif %}">
<a href="{{ page.href }}" {% if page.id %}id="{{ page.id }}"{% endif %} title="{{ page.label }}">
<i class="visible-xs fa fa-{{ page.icon }}"></i>
<span class="hidden-xs">{{ page.label }}</span>
</a>
</li>
{% endfor %}
{% block navItems %}{% endblock %}
</ul>
<br>
<div class="row">
<div class="col-xs-12 school-container">
{% block schoolContent %}
<div id="school-info">
<p class="col-md-12">
Σε αυτή την καρτέλα θα καταχωρήσετε πληροφορίες που
αφορούν στο σχολείο σας, όπως τους εκπαιδευτικούς
που θα ασχοληθούν με την υλοποίηση του έργου,
τους χώρους που χρησιμοποιείτε για χρήση ΤΠΕ ή
τους επιπλέον χώρους που θα επιθυμούσατε να
χρησιμοποιήσετε για χρήση ΤΠΕ, τον εξοπλισμό
ΤΠΕ που διαθέτει το σχολείο και τον τρόπο που τον
χρησιμοποιείτε κλπ.
</p>
<div class="col-md-4">
<div class="panel panel-default">
<div class="panel-heading">
<h4>Εκπαιδευτικοί</h4>
</div>
<div class="panel-body">
<dl>
<dt>Διευθυντής</dt>
<dd>{{ staff.principle }}</dd>
<dt>Εκπαιδευτικοί</dt>
{% for teacher in staff.teachers %}
<dd>{{ teacher }}</dd>
{% endfor %}
</dl>
</div>
<div class="panel-footer text-center">
<a class="btn btn-sm btn-primary" href="{{ path_for('school.staff') }}#add">Καταχώρηση εκπαιδευτικού</a>
</div>
</div>
</div>
<div class="col-md-4">
<div class="panel panel-default">
<div class="panel-heading">
<h4>Καταχωρημένοι χώροι</h4>
</div>
<div class="panel-body">
<ul>
{% for lab in labs %}
<li>{{ lab.name }}</li>
{% endfor %}
</ul>
</div>
<div class="panel-footer text-center">
<a class="btn btn-sm btn-primary" href="{{ path_for('school.labs') }}#add">Καταχώρηση χώρου</a>
</div>
</div>
</div>
<div class="col-md-4">
<div class="panel panel-default">
<div class="panel-heading">
<h4>Εξοπλισμός</h4>
</div>
<div class="panel-body">
<dl class="dl-horizontal">
{% for asset in assets %}
<dt>{{ asset.category }}</dt>
<dd>{{ asset.count }}<dd>
{% endfor %}
</dl>
</div>
<div class="panel-footer text-center">
<a class="btn btn-sm btn-primary" href="{{ path_for('school.assets') }}#add">Καταχώρηση εξοπλισμού</a>
</div>
</div>
</div>
<div class="col-md-12">
<div class="panel panel-default">
<div class="panel-heading">
<h4>Στοιχεία αίτησης</h4>
</div>
<div class="panel-body">
{% if appForm %}
<div class="row">
<dl class="col-sm-12 col-md-6 dl-horizontal">
<dt>A/A αίτησης</dt>
<dd>{{ appForm.id }}</dd>
<dt>Ημερ. υποβολής</dt>
<dd>{{ appForm.submitted|date('d/m/Y') }}<dd>
<dt>Σχολείο</dt>
<dd>{{ school.name }}</dd>
<dt>Κωδικός Υπουργείου</dt>
<dd>{{ school.registry_no }}<dd>
</dl>
<dl class="col-sm-12 col-md-6 dl-horizontal">
<dt>Αίτημα του σχολείου για</dt>
<dd>{{ appForm.apply_for }}</dd>
<dt>Ύπαρξη - προοπτική αίθουσας για δημιουργία νέου εργαστηρίου</dt>
<dd>{{ appForm.new_lab_perspective }}<dd>
<dt>Σχόλια/Παρατηρήσεις</dt>
<dd>{{ appForm.comments }}</dd>
</dl>
</div>
<h5>Αιτούμενος εξοπλισμός</h5>
<dl class="dl-horizontal">
{% for item in appForm.items %}
<dt>{{ item.category }}</dt>
<dd>{{ item.count }}<dd>
{% endfor %}
</dl>
{% else %}
<p>Δεν έχετε υποβάλει αίτηση ακόμα.</p>
{% endif %}
</div>
<div class="panel-footer text-center">
{% if not appForm %}
<a class="btn btn-sm btn-primary" href="{{ path_for('application_form') }}">Υποβολή αίτησης</a>
{% endif %}
</div>
</div>
</div>
</div>
{% endblock %}
</div>
</div>
</div>
{% endblock %}
{% block inlinejs %}
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.2.3/backbone-min.js"></script>
<script type="text/javascript" src="{{ base_url }}/js/schools/index.js"></script>
{% endblock %}
\ No newline at end of file
......@@ -28,8 +28,10 @@ return function (Slim\App $app) {
$container[Action\Index::class] = function ($c) {
return new Action\Index(
$c->get('view'),
$c->get(Service\SchoolServiceInterface::class)
$c->get('view'),
$c->get(Service\StaffServiceInterface::class),
$c->get(Service\LabServiceInterface::class),
$c->get(Service\SchoolAssetsInterface::class)
);
};
......
......@@ -66,6 +66,7 @@ class ListAssets
$labs = $this->labService->getLabsBySchoolId($school->id);
return $this->view->render($res, 'schools/assets.twig', [
'school' => $school,
'assets' => $assets,
'item_categories' => array_map(function ($category) {
return ['value' => $category['id'], 'label' => $category['name'] ];
......
......@@ -10,17 +10,49 @@
namespace GrEduLabs\Schools\Action;
use GrEduLabs\Schools\Service\LabServiceInterface;
use GrEduLabs\Schools\Service\SchoolAssetsInterface;
use GrEduLabs\Schools\Service\StaffServiceInterface;
use Slim\Http\Request;
use Slim\Http\Response;
use Slim\Views\Twig;
class Index
{
/**
*
* @var Twig
*/
protected $view;
public function __construct(Twig $view)
{
$this->view = $view;
/**
*
* @var StaffServiceInterface
*/
protected $staffService;
/**
*
* @var LabServiceInterface
*/
protected $labService;
/**
*
* @var SchoolAssetsInterface
*/
protected $assetService;
public function __construct(
Twig $view,
StaffServiceInterface $staffService,
LabServiceInterface $labService,
SchoolAssetsInterface $assetService
) {
$this->view = $view;
$this->staffService = $staffService;
$this->labService = $labService;
$this->assetService = $assetService;
}
public function __invoke(Request $req, Response $res, array $args = [])
......@@ -29,6 +61,29 @@ class Index
return $this->view->render($res, 'schools/index.twig', [
'school' => $school,
'staff' => array_reduce($this->staffService->getTeachersBySchoolId($school->id), function ($aggr, $teacher) {
$name = sprintf('%s %s (%s)', $teacher['name'], $teacher['surname'], $teacher['branch']);
if ($teacher['is_principle']) {
$aggr['principle'] = $name;
} else {
$aggr['teachers'][] = $name;
}
return $aggr;
}, []),
'labs' => $this->labService->getLabsBySchoolId($school->id),
'assets' => array_reduce($this->assetService->getAssetsForSchool($school->id), function ($aggr, $asset) {
$assetType = $asset['itemcategory_id'];
if (!isset($aggr[$assetType])) {
$aggr[$assetType] = [
'category' => $asset['itemcategory'],
'count' => 0,
];
}
$aggr[$assetType]['count'] += $asset['qty'];
return $aggr;
}, []),
]);
}
}