Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Σταύρος Παπαδάκης
gredu_labs
Commits
3cbe9d0f
Commit
3cbe9d0f
authored
Mar 03, 2016
by
Vassilis Kanellopoulos
Browse files
fixes after merge
parent
df6bd213
Changes
10
Hide whitespace changes
Inline
Side-by-side
config/settings/acl.global.php
View file @
3cbe9d0f
...
...
@@ -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 @
3cbe9d0f
...
...
@@ -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 @
3cbe9d0f
...
...
@@ -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 @
3cbe9d0f
...
...
@@ -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 @
3cbe9d0f
...
...
@@ -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 @
3cbe9d0f
...
...
@@ -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 @
3cbe9d0f
...
...
@@ -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 @
3cbe9d0f
...
...
@@ -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 @
3cbe9d0f
...
...
@@ -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 @
3cbe9d0f
...
...
@@ -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