Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
gredu_labs
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
Σταύρος Παπαδάκης
gredu_labs
Commits
39d242de
Commit
39d242de
authored
Mar 03, 2016
by
gtsakalos
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #7 from kanellov/gtsakalos_dev
fixes after merge
parents
df6bd213
3cbe9d0f
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
121 additions
and
124 deletions
+121
-124
config/settings/acl.global.php
config/settings/acl.global.php
+1
-0
config/settings/schools.global.php
config/settings/schools.global.php
+0
-9
data/db/schema.mysql.sql
data/db/schema.mysql.sql
+59
-1
module/authentication/src/Adapter/RedBeanPHP.php
module/authentication/src/Adapter/RedBeanPHP.php
+1
-2
module/schools/data/schema.mysql.sql
module/schools/data/schema.mysql.sql
+22
-89
module/schools/src/Action/Software/ListAll.php
module/schools/src/Action/Software/ListAll.php
+4
-2
module/schools/src/InputFilter/Software.php
module/schools/src/InputFilter/Software.php
+1
-1
module/schools/src/Service/SoftwareService.php
module/schools/src/Service/SoftwareService.php
+32
-19
module/schools/src/Service/SoftwareServiceInterface.php
module/schools/src/Service/SoftwareServiceInterface.php
+0
-1
module/schools/templates/schools/software.twig
module/schools/templates/schools/software.twig
+1
-0
No files found.
config/settings/acl.global.php
View file @
39d242de
...
...
@@ -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'
]],
...
...
config/settings/schools.global.php
View file @
39d242de
...
...
@@ -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'
]],
],
],
],
];
data/db/schema.mysql.sql
View file @
39d242de
...
...
@@ -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 */
;
...
...
module/authentication/src/Adapter/RedBeanPHP.php
View file @
39d242de
...
...
@@ -21,8 +21,7 @@ class RedBeanPHP extends AbstractAdapter
* @var string
*/
private
static
$failMessage
=
'Δεν ήταν δυνατή η σύνδεση. Παρακαλώ ελέγξτε το '
.
'email και το συνθηματικό σας και δοκιμάστε ξανά.'
;
private
static
$failMessage
=
'Δεν ήταν δυνατή η σύνδεση. Παρακαλώ ελέγξτε το email και το συνθηματικό σας και δοκιμάστε ξανά.'
;
/**
* @var callable
*/
...
...
module/schools/data/schema.mysql.sql
View file @
39d242de
...
...
@@ -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
DEFAUL
T
NULL
,
`school_id`
int
(
11
)
unsigned
DEFAUL
T
NULL
,
`softwarecategory_id`
int
(
11
)
unsigned
NO
T
NULL
,
`school_id`
int
(
11
)
unsigned
NO
T
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 */
;
...
...
module/schools/src/Action/Software/ListAll.php
View file @
39d242de
...
...
@@ -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
),
]);
...
...
module/schools/src/InputFilter/Software.php
View file @
39d242de
...
...
@@ -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
()
...
...
module/schools/src/Service/SoftwareService.php
View file @
39d242de
...
...
@@ -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
);
}
}
module/schools/src/Service/SoftwareServiceInterface.php
View file @
39d242de
...
...
@@ -21,5 +21,4 @@ interface SoftwareServiceInterface
public
function
getSoftwareBySchoolId
(
$id
);
public
function
getSoftwareByLabId
(
$id
);
public
function
removeSoftware
(
$id
);
}
module/schools/templates/schools/software.twig
View file @
39d242de
...
...
@@ -17,6 +17,7 @@
{%
block
schoolContent
%}
<div
id=
"school-software"
>
<p></p>
<div
class=
"table-responsive"
>
<table
class=
"table table-hover table-striped"
>
<thead>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment