diff --git a/config/settings/acl.global.php b/config/settings/acl.global.php
index 59dc8338bf1a4ffd21650e19d89b62cb7a396861..8a9f2914f16469fe8a420dd08b0e5cda832a0d3b 100644
--- a/config/settings/acl.global.php
+++ b/config/settings/acl.global.php
@@ -31,6 +31,7 @@ return [
['/application-form', ['school'], ['get', 'post']],
['/application-form/submit-success', ['school'], ['get']],
['/application-form/report', ['school'], ['get']],
+ ['/application-form/approved', ['guest'], ['get']],
['/receive-equip', ['school'], ['get', 'post'], GrEduLabs\ReceiveEquip\Acl\Assertion\CanSubmit::class],
['/receive-equip/submit-success', ['school'], ['get']],
['/receive-equip/report', ['school'], ['get']],
diff --git a/config/settings/nav.global.php b/config/settings/nav.global.php
index a74aad5601131147f95376ece4b22bb16002cce6..b32cb21bd394c0263a3385a62e7526bf34dfe560 100644
--- a/config/settings/nav.global.php
+++ b/config/settings/nav.global.php
@@ -7,7 +7,6 @@
* @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
*/
-
return [
'navigation' => [
'main' => [
@@ -23,27 +22,27 @@ return [
'info' => [
'label' => 'Πληροφορίες',
'route' => 'school',
- 'icon' => 'info',
+ 'icon' => 'info',
],
'staff' => [
'label' => 'Εκπαιδευτικοί',
'route' => 'school.staff',
- 'icon' => 'users',
+ 'icon' => 'users',
],
'labs' => [
'label' => 'Χώροι',
'route' => 'school.labs',
- 'icon' => 'building-o',
+ 'icon' => 'building-o',
],
'assets' => [
'label' => 'Εξοπλισμός',
'route' => 'school.assets',
- 'icon' => 'tv',
+ 'icon' => 'tv',
],
'software' => [
'label' => 'Λογισμικό',
'route' => 'school.software',
- 'icon' => 'th',
+ 'icon' => 'th',
],
],
],
@@ -59,7 +58,7 @@ return [
'label' => 'Ανοικτά δεδομένα',
'route' => 'open_data',
],
- 'university_form' => [
+ 'university_form' => [
'label' => 'Ιδρύματα',
'route' => 'university_form',
],
@@ -67,17 +66,20 @@ return [
'label' => 'Εκπαιδευτικοί',
'route' => 'teacher_form',
],
+ 'approved-applications' => [
+ 'label' => 'Αιτήσεις που εγκρίθηκαν',
+ 'route' => 'application_form.approved',
+ ],
'about' => [
'label' => 'Σχετικά με τη δράση',
'route' => 'about',
],
'forum' => [
- 'label' => 'Φόρουμ βοήθειας',
- 'href' => '/#forum',
+ 'label' => 'Φόρουμ βοήθειας',
+ 'href' => '/#forum',
'external' => true,
- 'target' => '_blank',
+ 'target' => '_blank',
],
-
],
'admin' => [
'adminhome' => [
diff --git a/data/db/schema.mysql.sql b/data/db/schema.mysql.sql
index ac9ae77ecff5cd55c7537ffc2fc3b5f0f1b056f9..5caeb3acbed8b51255ed698420bcebb5149c24bf 100644
--- a/data/db/schema.mysql.sql
+++ b/data/db/schema.mysql.sql
@@ -25,6 +25,8 @@ CREATE TABLE `applicationform` (
`received_ts` timestamp NULL,
`received_by` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`received_document` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT '',
+ `approved` int(11) unsigned NOT NULL DEFAULT 0,
+ `approved_date` int(11) unsigned NULL,
PRIMARY KEY (`id`),
KEY `index_foreignkey_applicationform_school` (`school_id`),
CONSTRAINT `c_fk_applicationform_school_id` FOREIGN KEY (`school_id`) REFERENCES `school` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE
diff --git a/module/application/templates/about.twig b/module/application/templates/about.twig
index 509ed1fa1232d2244082f32ff35172c8e77496c6..d82a349da59139b3fec5e6457f3fcfe7efc0fcd9 100644
--- a/module/application/templates/about.twig
+++ b/module/application/templates/about.twig
@@ -83,6 +83,13 @@
ΑΝΑΛΥΤΙΚΕΣ ΠΡΟΔΙΑΓΡΑΦΕΣ ΕΞΟΠΛΙΣΜΟΥ
ΔΙΑΔΙΚΑΣΙΕΣ ΕΞΟΠΛΙΣΜΟΥ ΣΧΟΛΕΙΩΝ
+
+ Tεύχος του διαγωνισμού προμήθειας (Α' φάση)
+ Στο παρακάτω αρχείο μπορείτε να βρείτε τη διακήρυξη του διαγωνισμού για την "Προμήθεια, εγκατάσταση εξοπλισμού
+ για την αναβάθμιση ψηφιακών υποδομών Τεχνολογίας Πληροφορικής και Επικοινωνιών σε επιλεγμένες σχολικές μονάδες Πρωτοβάθμιας και Δευτεροβάθμιας Εκπαίδευσης"
+
+ ΑΡΧΕΙΟ ΔΙΑΚΗΡΥΞΗΣ
+
diff --git a/module/application_form/bootstrap.php b/module/application_form/bootstrap.php
index c8b9cb8744a4953b7a759f62a3766c0297b222ea..46f8ebf0f5f24d876188040988a1f8d9a9eff4eb 100644
--- a/module/application_form/bootstrap.php
+++ b/module/application_form/bootstrap.php
@@ -87,6 +87,16 @@ return function (Slim\App $app) {
$c
);
};
+
+ $container[GrEduLabs\ApplicationForm\Action\Approved::class] = function ($c) {
+ return new GrEduLabs\ApplicationForm\Action\Approved(
+ $c->get('view'),
+ $c->get(GrEduLabs\Schools\Service\AssetServiceInterface::class),
+ $c->get(GrEduLabs\Schools\Service\LabServiceInterface::class),
+ $c->get(GrEduLabs\ApplicationForm\Service\ApplicationFormServiceInterface::class)
+ );
+ };
+
});
$events('on', 'app.bootstrap', function ($app, $container) {
@@ -104,5 +114,8 @@ return function (Slim\App $app) {
$this->get('/report', GrEduLabs\ApplicationForm\Action\ApplicationFormPdf::class)
->setName('application_form.report');
})->add(GrEduLabs\Schools\Middleware\FetchSchoolFromIdentity::class);
+
+ $app->get('/application-form/approved', GrEduLabs\ApplicationForm\Action\Approved::class)
+ ->setName('application_form.approved');
});
};
diff --git a/module/application_form/data/schema.mysql.sql b/module/application_form/data/schema.mysql.sql
index 5c9aeee5718db95e43e077167a0ef05a5fa16c8c..4b307aadb0e7c5b468cb29474d4d14b04793acc1 100644
--- a/module/application_form/data/schema.mysql.sql
+++ b/module/application_form/data/schema.mysql.sql
@@ -25,6 +25,8 @@ CREATE TABLE `applicationform` (
`received_ts` timestamp NULL,
`received_by` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`received_document` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT '',
+ `approved` int(11) unsigned NOT NULL DEFAULT 0,
+ `approved_date` int(11) unsigned NULL,
PRIMARY KEY (`id`),
KEY `index_foreignkey_applicationform_school` (`school_id`),
CONSTRAINT `c_fk_applicationform_school_id` FOREIGN KEY (`school_id`) REFERENCES `school` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE
diff --git a/module/application_form/src/Action/Approved.php b/module/application_form/src/Action/Approved.php
new file mode 100644
index 0000000000000000000000000000000000000000..e9f2aa93f07983e6ff9ac8d41699df95aac62a64
--- /dev/null
+++ b/module/application_form/src/Action/Approved.php
@@ -0,0 +1,59 @@
+view = $view;
+ $this->assetsService = $assetsService;
+ $this->labService = $labService;
+ $this->appFormService = $appFormService;
+ }
+
+ public function __invoke(Request $req, Response $res) {
+ $appForms = $this->appFormService->findApprovedSchoolApplicationForms();
+ return $this->view->render($res, 'application_form/approved.twig', [
+ 'approved_forms' => $appForms
+ ]);
+ }
+
+}
diff --git a/module/application_form/src/Service/ApplicationFormService.php b/module/application_form/src/Service/ApplicationFormService.php
index 31866cb82fb0e0326769149ba3f9db9d373503a0..43771b340f6937d0c33caf9fc698e0b9ca7ca51c 100644
--- a/module/application_form/src/Service/ApplicationFormService.php
+++ b/module/application_form/src/Service/ApplicationFormService.php
@@ -51,10 +51,21 @@ class ApplicationFormService implements ApplicationFormServiceInterface
return $this->exportApplicationForm($appForm);
}
- private function exportApplicationForm(OODBBean $bean)
+ /**
+ *
+ * @param OODBBean $bean the application form bean
+ * @param boolean $with_school_info if true, the name, eduadmin and regionadmin properties of the school are provided with the exported bean info
+ * @return array
+ */
+ private function exportApplicationForm(OODBBean $bean, $with_school_info = false)
{
$appForm = $bean->export();
- $appForm['items'] = array_map(function ($itemBean) {
+ if ($with_school_info === true) {
+ $appForm['school'] = $bean->school->name;
+ $appForm['eduadmin'] = $bean->school->eduadmin->name;
+ $appForm['regioneduadmin'] = $bean->school->eduadmin->regioneduadmin->name;
+ }
+ $appForm['items'] = array_map(function ($itemBean) use ($with_school_info) {
return array_merge($itemBean->export(), [
'lab' => $itemBean->lab->name,
'itemcategory' => $itemBean->itemcategory->name,
@@ -64,4 +75,28 @@ class ApplicationFormService implements ApplicationFormServiceInterface
return $appForm;
}
+
+ /**
+ * Get all the approved applications
+ *
+ * @return array The exported bean info from retrieved data
+ */
+ public function findApprovedSchoolApplicationForms()
+ {
+ $selectedAppForms = R::getAll('SELECT applicationform.* '
+ . 'FROM applicationform '
+ . 'JOIN school ON applicationform.school_id=school.id '
+ . 'JOIN eduadmin ON school.eduadmin_id=eduadmin.id '
+ . 'JOIN regioneduadmin ON eduadmin.regioneduadmin_id=regioneduadmin.id '
+ . 'WHERE applicationform.approved=1 '
+ . 'ORDER BY regioneduadmin.name, eduadmin.name, school.name');
+ $appForms = R::convertToBeans('applicationform', $selectedAppForms);
+
+ return array_map(function ($c) {
+ return $this->exportApplicationForm($c, true);
+ },
+ $appForms
+ );
+ }
+
}
diff --git a/module/application_form/templates/application_form/approved.twig b/module/application_form/templates/application_form/approved.twig
new file mode 100644
index 0000000000000000000000000000000000000000..8c16446fa16830245ff890c310622deba6896756
--- /dev/null
+++ b/module/application_form/templates/application_form/approved.twig
@@ -0,0 +1,38 @@
+{% extends "layout.twig" %}
+{% block content %}
+
+
Αιτήσεις που εγκρίθηκαν
+
Στο παρακάτω αρχείο μπορείτε να βρείτε τη διακήρυξη του διαγωνισμού για την "Προμήθεια, εγκατάσταση εξοπλισμού
+για την αναβάθμιση ψηφιακών υποδομών Τεχνολογίας Πληροφορικής και Επικοινωνιών σε επιλεγμένες σχολικές μονάδες Πρωτοβάθμιας και Δευτεροβάθμιας Εκπαίδευσης"
+
+ ΑΡΧΕΙΟ ΔΙΑΚΗΡΥΞΗΣ
+
+
Ακολουθεί κατάλογος των αιτήσεων οι οποίες εγκρίθηκαν στην πρώτη φάση διεξαγωγής του προγράμματος.
+ {% if approved_forms %}
+
+
+ Συνολικά {{ approved_forms | length }} εγκεκριμένες αιτήσεις.
+
+
+ # |
+ Σχολείο |
+ Διεύθυνση όπου ανήκει |
+
+
+
+ {% for form in approved_forms %}
+
+ {{ loop.index }} |
+ {{ form.school }} |
+ {{ form.eduadmin }} {{ form.regioneduadmin }} |
+
+ {% endfor %}
+
+
+
+ {% else %}
+
Δεν υπάρχουν διαθέσιμα στοιχεία
+ {% endif %}
+
+{% endblock %}
+
diff --git a/module/csv_export/bootstrap.php b/module/csv_export/bootstrap.php
index c003b8c17120dc2c0b1eb6efd8ec25bb485cb5e6..abaa1b078829f1c1084f313cb28a0436dc9bbd3e 100644
--- a/module/csv_export/bootstrap.php
+++ b/module/csv_export/bootstrap.php
@@ -130,6 +130,7 @@ return function (App $app) {
'Αιτιολογία χρήσης',
],
],
+
'newapplication' => [
'data_callback' => 'csv_export_newapplication',
'headers' => [
@@ -147,6 +148,7 @@ return function (App $app) {
'Αιτιολογία χρήσης',
],
],
+
'volunteer_teachers' => [
'data_callback' => 'csv_export_volunteer_teachers',
'headers' => [
@@ -204,6 +206,15 @@ return function (App $app) {
'Έργο 10',
],
],
+
+ 'sch_approved' => [
+ 'data_callback' => 'csv_export_sch_approved',
+ 'headers' => [
+ 'ID',
+ 'Κωδικός σχολείου',
+ 'Ονομασία σχολείου',
+ ],
+ ]
];
};
@@ -620,6 +631,26 @@ return function (App $app) {
return $appForms;
};
};
+
+
+ $c['csv_export_sch_approved'] = function ($c) {
+
+ return function () {
+ $sql = 'SELECT applicationform.id AS id, '
+ . ' school.registry_no AS school_registry_no, '
+ . ' school.name AS school_name '
+ . ' FROM applicationform'
+ . ' LEFT JOIN school ON applicationform.school_id = school.id '
+ . ' WHERE applicationform.approved = 1';
+
+ $sch_appr = R::getAll($sql);
+
+ return $sch_appr;
+ };
+ };
+
+
+
});
$events('on', 'app.bootstrap', function (App $app, Container $c) {
diff --git a/module/open_data/templates/open_data/index.twig b/module/open_data/templates/open_data/index.twig
index 29b7a395a834f5366fb994b0f2c3ac4fc548b535..feef48379c87f4e5ba19ffe7694a06651a72775b 100644
--- a/module/open_data/templates/open_data/index.twig
+++ b/module/open_data/templates/open_data/index.twig
@@ -85,6 +85,15 @@
+
+ Σχολεία των οποίων οι αιτήσεις εγκρίθηκαν |
+
+
+
+ Αρχείο .csv
+
+ |
+
|
---|