diff --git a/config/settings/acl.global.php b/config/settings/acl.global.php index 6058d1007e7ab8275ba6704f28565f0b4b9dd723..f9412570868ad5c38270ec612dd5a9fd7af7a010 100644 --- a/config/settings/acl.global.php +++ b/config/settings/acl.global.php @@ -28,6 +28,7 @@ return [ ['/school/staff', ['school'], ['get', 'post', 'delete']], ['/school/assets', ['school'], ['get', 'post', 'delete']], ['/school/labs/attachment', ['school'], ['get', 'delete']], + ['/school/software', ['school'], ['get', 'post', 'delete']], ['/application-form', ['school'], ['get', 'post'], 'GrEduLabs\ApplicationForm\Acl\Assertion\CanSubmit'], ['/application-form/submit-success', ['school'], ['get']], ['/#forum', ['guest', 'user'], ['get']], diff --git a/config/settings/schools.global.php b/config/settings/schools.global.php index 35bbb9e155ca0a8312a6e545b82c5ecce7e0c3c7..01dfb4452b33a3232cf60ba1bc61e3b1e9cd1cbb 100644 --- a/config/settings/schools.global.php +++ b/config/settings/schools.global.php @@ -12,15 +12,6 @@ return [ 'file_upload' => [ 'tmp_path' => 'data/tmp', 'target_path' => 'data/uploads', - 'acl' => [ - 'guards' => [ - 'routes' => [ - ['/school', ['school'], ['get']], - ['/school/labs', ['school'], ['get', 'post']], - ['/school/staff', ['school'], ['get', 'post', 'delete']], - ['/school/assets', ['school'], ['get', 'post', 'delete']], - ['/school/software', ['school'], ['get', 'post', 'delete']], - ], ], ], ]; diff --git a/data/db/schema.mysql.sql b/data/db/schema.mysql.sql index 32562ae1a507a79ace69a4c9c56edc876eedd6e1..7486c5d78cb283b5751e363a454dd534f4e87f4b 100644 --- a/data/db/schema.mysql.sql +++ b/data/db/schema.mysql.sql @@ -460,7 +460,7 @@ CREATE TABLE `teacher` ( `school_id` int(11) unsigned NOT NULL, `name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, `surname` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, - `telephone` int(11) unsigned NOT NULL, + `telephone` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL, `email` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, `branch_id` int(11) unsigned NOT NULL, `is_principle` tinyint(1) unsigned DEFAULT '0', @@ -516,6 +516,64 @@ LOCK TABLES `user` WRITE; /*!40000 ALTER TABLE `user` DISABLE KEYS */; /*!40000 ALTER TABLE `user` ENABLE KEYS */; UNLOCK TABLES; + +-- +-- Table structure for table `softwarecategory` +-- + +DROP TABLE IF EXISTS `softwarecategory`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `softwarecategory` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + + +-- +-- Dumping data for table `softwarecategory` +-- + +LOCK TABLES `softwarecategory` WRITE; +/*!40000 ALTER TABLE `softwarecategory` DISABLE KEYS */; +INSERT INTO `softwarecategory` VALUES (1,'ΕΦΑΡΜΟΓΕΣ ΟΙΚΟΝΟΜΙΚΗΣ ΔΙΑΧΕΙΡΙΣΗΣ'),(2,'ΕΦΑΡΜΟΓΕΣ ΔΙΑΧΕΙΡΙΣΗΣ ΣΧΟΛΙΚΗΣ ΜΟΝΑΔΑΣ'),(3,'ΕΦΑΡΜΟΓΕΣ ΑΥΤΟΜΑΤΙΣΜΟΥ ΓΡΑΦΕΙΟΥ (OFFICE)'),(4,'ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ'),(5,'ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ'),(6,'ΕΚΠΑΙΔΕΥΤΙΚΟ ΛΟΓΙΣΜΙΚΟ'),(7,'ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ'),(8,'ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ'),(9,'ΑΣΦΑΛΕΙΑ ΚΑΙ ΠΡΟΣΤΑΣΙΑ'),(10,'ΒΟΗΘΗΜΑΤΑ'); +/*!40000 ALTER TABLE `softwarecategory` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `schoolasset` +-- + +DROP TABLE IF EXISTS `software`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; + CREATE TABLE `software` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `softwarecategory_id` int(11) unsigned NOT NULL, + `school_id` int(11) unsigned NOT NULL, + `lab_id` int(11) unsigned DEFAULT NULL, + `title` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `vendor` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `url` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `index_foreignkey_software_softwarecategory` (`softwarecategory_id`), + KEY `index_foreignkey_software_school` (`school_id`), + CONSTRAINT `c_fk_software_lab_id` FOREIGN KEY (`lab_id`) REFERENCES `lab` (`id`) ON DELETE SET NULL ON UPDATE SET NULL, + CONSTRAINT `c_fk_software_school_id` FOREIGN KEY (`school_id`) REFERENCES `school` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `c_fk_software_softwarecategory_id` FOREIGN KEY (`softwarecategory_id`) REFERENCES `softwarecategory` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `software` +-- + +LOCK TABLES `software` WRITE; +/*!40000 ALTER TABLE `software` DISABLE KEYS */; +/*!40000 ALTER TABLE `software` ENABLE KEYS */; +UNLOCK TABLES; + /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; diff --git a/module/authentication/src/Adapter/RedBeanPHP.php b/module/authentication/src/Adapter/RedBeanPHP.php index f585143a55a7d69783542b56b173859d81f87d27..0f177847f55a829ce70fcf15a56db74ae13eb0e0 100644 --- a/module/authentication/src/Adapter/RedBeanPHP.php +++ b/module/authentication/src/Adapter/RedBeanPHP.php @@ -21,8 +21,7 @@ class RedBeanPHP extends AbstractAdapter * @var string */ - private static $failMessage = 'Δεν ήταν δυνατή η σύνδεση. Παρακαλώ ελέγξτε το ' . - 'email και το συνθηματικό σας και δοκιμάστε ξανά.'; + private static $failMessage = 'Δεν ήταν δυνατή η σύνδεση. Παρακαλώ ελέγξτε το email και το συνθηματικό σας και δοκιμάστε ξανά.'; /** * @var callable */ diff --git a/module/schools/data/schema.mysql.sql b/module/schools/data/schema.mysql.sql index 75acca3937169e54fa2566b9b1b5c03144271caf..40f2fdea934f4881938b94fa591332d745c4ffbb 100644 --- a/module/schools/data/schema.mysql.sql +++ b/module/schools/data/schema.mysql.sql @@ -397,7 +397,7 @@ CREATE TABLE `teacher` ( `school_id` int(11) unsigned NOT NULL, `name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, `surname` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, - `telephone` int(11) unsigned NOT NULL, + `telephone` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL, `email` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, `branch_id` int(11) unsigned NOT NULL, `is_principle` tinyint(1) unsigned DEFAULT '0', @@ -419,69 +419,6 @@ LOCK TABLES `teacher` WRITE; /*!40000 ALTER TABLE `teacher` ENABLE KEYS */; UNLOCK TABLES; --- --- Table structure for table `lesson` --- - -DROP TABLE IF EXISTS `lesson`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lesson` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `name` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lab` --- - -DROP TABLE IF EXISTS `lab`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lab` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `name` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `type` int(11) unsigned DEFAULT NULL, - `area` int(11) unsigned DEFAULT NULL, - `use_ext_program` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `use_in_program` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `attachment` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `has_network` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `has_server` tinyint(1) unsigned DEFAULT NULL, - `school_id` int(11) unsigned DEFAULT NULL, - `teacher_id` int(11) unsigned DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `index_foreignkey_lab_school` (`school_id`), - KEY `index_foreignkey_lab_teacher` (`teacher_id`), - CONSTRAINT `c_fk_lab_school_id` FOREIGN KEY (`school_id`) REFERENCES `school` (`id`) ON DELETE SET NULL ON UPDATE SET NULL -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 -COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - - --- --- Table structure for table `lesson_lab` --- - -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; - -CREATE TABLE `lab_lesson` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `lesson_id` int(11) unsigned DEFAULT NULL, - `lab_id` int(11) unsigned DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `UQ_82ac3a020f1d21984f224331fbd99880f89b2e71` (`lab_id`,`lesson_id`), - KEY `index_foreignkey_lab_lesson_lesson` (`lesson_id`), - KEY `index_foreignkey_lab_lesson_lab` (`lab_id`), - CONSTRAINT `c_fk_lab_lesson_lab_id` FOREIGN KEY (`lab_id`) REFERENCES `lab` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT `c_fk_lab_lesson_lesson_id` FOREIGN KEY (`lesson_id`) REFERENCES `lesson` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - - -- -- Table structure for table `softwarecategory` -- @@ -493,31 +430,18 @@ CREATE TABLE `softwarecategory` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- --- Table structure for table `schoolasset` +-- Dumping data for table `softwarecategory` -- -DROP TABLE IF EXISTS `schoolasset`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `schoolasset` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `itemcategory_id` int(11) unsigned NOT NULL, - `school_id` int(11) unsigned NOT NULL, - `qty` int(11) unsigned NOT NULL, - `lab_id` int(11) unsigned NOT NULL, - `acquisition_year` char(4) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `comments` text COLLATE utf8mb4_unicode_ci, - PRIMARY KEY (`id`), - KEY `index_foreignkey_schoolasset_itemcategory` (`itemcategory_id`), - KEY `index_foreignkey_schoolasset_school` (`school_id`), - KEY `index_foreignkey_schoolasset_lab` (`lab_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - +LOCK TABLES `softwarecategory` WRITE; +/*!40000 ALTER TABLE `softwarecategory` DISABLE KEYS */; +INSERT INTO `softwarecategory` VALUES (1,'ΕΦΑΡΜΟΓΕΣ ΟΙΚΟΝΟΜΙΚΗΣ ΔΙΑΧΕΙΡΙΣΗΣ'),(2,'ΕΦΑΡΜΟΓΕΣ ΔΙΑΧΕΙΡΙΣΗΣ ΣΧΟΛΙΚΗΣ ΜΟΝΑΔΑΣ'),(3,'ΕΦΑΡΜΟΓΕΣ ΑΥΤΟΜΑΤΙΣΜΟΥ ΓΡΑΦΕΙΟΥ (OFFICE)'),(4,'ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ'),(5,'ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ'),(6,'ΕΚΠΑΙΔΕΥΤΙΚΟ ΛΟΓΙΣΜΙΚΟ'),(7,'ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ'),(8,'ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ'),(9,'ΑΣΦΑΛΕΙΑ ΚΑΙ ΠΡΟΣΤΑΣΙΑ'),(10,'ΒΟΗΘΗΜΑΤΑ'); +/*!40000 ALTER TABLE `softwarecategory` ENABLE KEYS */; +UNLOCK TABLES; -- -- Table structure for table `schoolasset` @@ -528,8 +452,8 @@ DROP TABLE IF EXISTS `software`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `software` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `softwarecategory_id` int(11) unsigned DEFAULT NULL, - `school_id` int(11) unsigned DEFAULT NULL, + `softwarecategory_id` int(11) unsigned NOT NULL, + `school_id` int(11) unsigned NOT NULL, `lab_id` int(11) unsigned DEFAULT NULL, `title` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, `vendor` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, @@ -538,11 +462,20 @@ DROP TABLE IF EXISTS `software`; KEY `index_foreignkey_software_softwarecategory` (`softwarecategory_id`), KEY `index_foreignkey_software_school` (`school_id`), CONSTRAINT `c_fk_software_lab_id` FOREIGN KEY (`lab_id`) REFERENCES `lab` (`id`) ON DELETE SET NULL ON UPDATE SET NULL, - CONSTRAINT `c_fk_software_school_id` FOREIGN KEY (`school_id`) REFERENCES `school` (`id`) ON DELETE SET NULL ON UPDATE SET NULL, - CONSTRAINT `c_fk_software_softwarecategory_id` FOREIGN KEY (`softwarecategory_id`) REFERENCES `softwarecategory` (`id`) ON DELETE SET NULL ON UPDATE SET NULL -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + CONSTRAINT `c_fk_software_school_id` FOREIGN KEY (`school_id`) REFERENCES `school` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `c_fk_software_softwarecategory_id` FOREIGN KEY (`softwarecategory_id`) REFERENCES `softwarecategory` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; +-- +-- Dumping data for table `software` +-- + +LOCK TABLES `software` WRITE; +/*!40000 ALTER TABLE `software` DISABLE KEYS */; +/*!40000 ALTER TABLE `software` ENABLE KEYS */; +UNLOCK TABLES; + /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; diff --git a/module/schools/src/Action/Software/ListAll.php b/module/schools/src/Action/Software/ListAll.php index 8969c85b0dc24c59308f197f49872778eb26114f..011c6c9c662437d65d8a388c3ddd0f22b214cb90 100644 --- a/module/schools/src/Action/Software/ListAll.php +++ b/module/schools/src/Action/Software/ListAll.php @@ -22,7 +22,7 @@ class ListAll public function __construct(Twig $view, SoftwareServiceInterface $softwareService) { - $this->view = $view; + $this->view = $view; $this->softwareService = $softwareService; } @@ -34,9 +34,11 @@ class ListAll } $software = $this->softwareService->getSoftwareBySchoolId($school->id); $categories = $this->softwareService->getSoftwareCategories(); + return $this->view->render($res, 'schools/software.twig', [ + 'school' => $school, 'softwareArray' => $software, - 'categories' => array_map(function ($category) { + 'categories' => array_map(function ($category) { return ['value' => $category['id'], 'label' => $category['name']]; }, $categories), ]); diff --git a/module/schools/src/InputFilter/Software.php b/module/schools/src/InputFilter/Software.php index 8dad024b7a11a674e3b66e5890070e5a2a493959..f560f8f599b5d6749ef7455d2462b8b861c7ce89 100644 --- a/module/schools/src/InputFilter/Software.php +++ b/module/schools/src/InputFilter/Software.php @@ -42,7 +42,7 @@ class Software $school_id->setRequired(true) ->getValidatorChain() ->attach(new Validator\Digits()); - + $lab_id = new Input('lab_id'); $lab_id->setRequired(false) ->getValidatorChain() diff --git a/module/schools/src/Service/SoftwareService.php b/module/schools/src/Service/SoftwareService.php index b96f1d339eb9fd128592ba10436012add0fd679c..6feb5e033593412e9463ff9dc18cc9dfc85cbac3 100644 --- a/module/schools/src/Service/SoftwareService.php +++ b/module/schools/src/Service/SoftwareService.php @@ -9,7 +9,6 @@ namespace GrEduLabs\Schools\Service; -use InvalidArgumentException; use RedBeanPHP\R; class SoftwareService implements SoftwareServiceInterface @@ -17,7 +16,7 @@ class SoftwareService implements SoftwareServiceInterface public function createSoftwareCategory($name) { - $software_category = R::dispense('softwarecategory'); + $software_category = R::dispense('softwarecategory'); $software_category->name = $name; R::store($software_category); } @@ -25,18 +24,22 @@ class SoftwareService implements SoftwareServiceInterface public function getSoftwareCategoryById($id) { $software_category = R::load('softwarecategory', $id); + return $software_category->export(); } public function getSoftwareCategories() { $software_categories = R::findAll('softwarecategory'); - return $this->exportAll($software_categories); + + return array_map(function ($bean) { + return $bean->export(); + }, $software_categories); } public function updateSoftwareCategory($id, $data) { - $software_category = R::load('softwarecategory'); + $software_category = R::load('softwarecategory'); $software_category->name = $name; R::store($software_category); } @@ -46,7 +49,8 @@ class SoftwareService implements SoftwareServiceInterface unset($data['id']); $software = R::dispense('software'); $this->persistSoftware($software, $data); - return $software->export(); + + return $this->export($software); } public function updateSoftware(array $data, $id) @@ -56,40 +60,44 @@ class SoftwareService implements SoftwareServiceInterface throw new \InvalidArgumentException('No software found'); } $this->persistSoftware($software, $data); - return $software->export(); + + return $this->export($software); } private function persistSoftware($software, array $data) { - if (!$data['lab_id']){ + if (!$data['lab_id']) { $data['lab_id'] = NULL; } - + $software->softwarecategory_id = $data['softwarecategory_id']; $software->school_id = $data['school_id']; $software->lab_id = $data['lab_id']; $software->title = $data['title']; $software->vendor = $data['vendor']; $software->url = $data['url']; - + R::store($software); } public function getSoftwareById($id) { $software = R::load('software', $id); - return $software->export(); + + return $this->export($software); } public function getSoftwareBySchoolId($id) { $software = R::findAll('software', 'school_id = ?', [$id]); + return $this->exportAll($software); } public function getSoftwareByLabId($id) { $software = R::findAll('software', 'lab_id = ?', [$id]); + return $software->exportAll(); } @@ -98,16 +106,21 @@ class SoftwareService implements SoftwareServiceInterface R::trash('software', $id); } + private function export($bean) + { + $softwareCategory = $bean->softwarecategory; + $softwareCategoryName = ($softwareCategory) ? $softwareCategory->name : ''; + $lab = $bean->lab; + $labName = ($lab) ? $lab->name : ''; + + return array_merge($bean->export(), [ + 'softwarecategory' => $softwareCategoryName, + 'lab' => $labName, + ]); + } + private function exportAll($beans) { - $exported = []; - foreach($beans as $bean) - { - $cat = $this->getSoftwareCategoryById($bean->id); - $exported_bean = $bean->export(); - $exported_bean['softwarecategory'] = $cat['name']; - $exported[] = $exported_bean; - } - return $exported; + return array_map([$this, 'export'], $beans); } } diff --git a/module/schools/src/Service/SoftwareServiceInterface.php b/module/schools/src/Service/SoftwareServiceInterface.php index 09a48c7f7e284019d10073dbf1fad232a26fe6ee..4d70edff657322b543c6294aa59fc36bd41b4379 100644 --- a/module/schools/src/Service/SoftwareServiceInterface.php +++ b/module/schools/src/Service/SoftwareServiceInterface.php @@ -21,5 +21,4 @@ interface SoftwareServiceInterface public function getSoftwareBySchoolId($id); public function getSoftwareByLabId($id); public function removeSoftware($id); - } diff --git a/module/schools/templates/schools/software.twig b/module/schools/templates/schools/software.twig index 0ed1f30c3d38a0c6b8d28cd31eb05507eafa22bf..263b20c07e4620591ebd32440d78a1d5ecfa5dc3 100644 --- a/module/schools/templates/schools/software.twig +++ b/module/schools/templates/schools/software.twig @@ -17,6 +17,7 @@ {% block schoolContent %}