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
c5933dbd
Commit
c5933dbd
authored
Mar 08, 2016
by
Vassilis Kanellopoulos
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
override view, action and service implementation
parent
bc182d79
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
582 additions
and
5 deletions
+582
-5
config/app.config.php
config/app.config.php
+1
-0
config/settings/acl.global.php
config/settings/acl.global.php
+1
-0
config/settings/assets_manager.global.php
config/settings/assets_manager.global.php
+1
-0
module/schools/public/js/schools/staff.js
module/schools/public/js/schools/staff.js
+9
-4
module/tpe_survey/bootstrap.php
module/tpe_survey/bootstrap.php
+53
-0
module/tpe_survey/public/js/schools/tpe_survey.js
module/tpe_survey/public/js/schools/tpe_survey.js
+112
-0
module/tpe_survey/src/Action/SurveyForm.php
module/tpe_survey/src/Action/SurveyForm.php
+42
-0
module/tpe_survey/src/Middleware/SurveyFormDefaults.php
module/tpe_survey/src/Middleware/SurveyFormDefaults.php
+86
-0
module/tpe_survey/src/Service/SurveyService.php
module/tpe_survey/src/Service/SurveyService.php
+51
-0
module/tpe_survey/src/Service/SurveyServiceInterface.php
module/tpe_survey/src/Service/SurveyServiceInterface.php
+29
-0
module/tpe_survey/templates/schools/staff.twig
module/tpe_survey/templates/schools/staff.twig
+126
-0
module/tpe_survey/templates/tpe_survey/form.twig
module/tpe_survey/templates/tpe_survey/form.twig
+45
-0
module/tpe_survey/templates/tpe_survey/macros/form.twig
module/tpe_survey/templates/tpe_survey/macros/form.twig
+21
-0
public/js/utils.js
public/js/utils.js
+5
-1
No files found.
config/app.config.php
View file @
c5933dbd
...
...
@@ -20,6 +20,7 @@ return [
'module/sch_sync/bootstrap.php'
,
'module/schools/bootstrap.php'
,
'module/application_form/bootstrap.php'
,
'module/tpe_survey/bootstrap.php'
,
],
'cache_config'
=>
'data/cache/config/settings.php'
,
];
config/settings/acl.global.php
View file @
c5933dbd
...
...
@@ -31,6 +31,7 @@ return [
[
'/school/software'
,
[
'school'
],
[
'get'
,
'post'
,
'delete'
]],
[
'/application-form'
,
[
'school'
],
[
'get'
,
'post'
],
'GrEduLabs\ApplicationForm\Acl\Assertion\CanSubmit'
],
[
'/application-form/submit-success'
,
[
'school'
],
[
'get'
]],
[
'/tpe_survey'
,
[
'school'
],
[
'get'
,
'post'
]],
],
],
],
...
...
config/settings/assets_manager.global.php
View file @
c5933dbd
...
...
@@ -13,6 +13,7 @@ return [
'paths'
=>
[
__DIR__
.
'/../../module/schools/public'
,
__DIR__
.
'/../../module/application_form/public'
,
__DIR__
.
'/../../module/tpe_survey/public'
,
],
],
];
module/schools/public/js/schools/staff.js
View file @
c5933dbd
...
...
@@ -6,7 +6,8 @@
StaffRow
,
StaffView
,
TeacherView
,
teacherTemplate
;
teacherTemplate
,
staffModel
;
Teacher
=
Backbone
.
Model
.
extend
({
idAttribute
:
'
id
'
});
...
...
@@ -63,7 +64,7 @@
},
editEmployee
:
function
(
evt
)
{
var
teacherId
;
if
(
$
(
evt
.
target
).
is
(
'
a
'
))
return
;
if
(
!
$
(
evt
.
target
).
is
(
'
td
'
))
return
;
teacherId
=
$
(
evt
.
target
).
closest
(
'
tr
'
).
data
(
'
id
'
);
this
.
teacherView
.
render
(
teacherId
);
return
this
;
...
...
@@ -176,6 +177,10 @@
});
}
});
new
StaffView
({
model
:
new
Staff
()
});
staffModel
=
new
Staff
();
new
StaffView
({
model
:
staffModel
});
window
.
EDULABS
.
models
=
window
.
EDULABS
.
models
||
{};
window
.
EDULABS
.
models
.
staff
=
staffModel
;
}(
window
.
EDULABS
.
utils
));
module/tpe_survey/bootstrap.php
0 → 100644
View file @
c5933dbd
<?php
use
GrEduLabs\TpeSurvey\Action\SurveyForm
;
use
GrEduLabs\TpeSurvey\Middleware\SurveyFormDefaults
;
use
GrEduLabs\TpeSurvey\Service\SurveyService
;
use
GrEduLabs\TpeSurvey\Service\SurveyServiceInterface
;
use
Slim\App
;
use
Slim\Container
;
/**
* 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
*/
return
function
(
App
$app
)
{
$container
=
$app
->
getContainer
();
$events
=
$container
->
get
(
'events'
);
$events
(
'on'
,
'app.autoload'
,
function
(
$autoloader
)
{
$autoloader
->
addPsr4
(
'GrEduLabs\\TpeSurvey\\'
,
__DIR__
.
'/src/'
);
});
$events
(
'on'
,
'app.services'
,
function
(
Container
$c
)
{
$c
[
SurveyServiceInterface
::
class
]
=
function
(
$c
)
{
return
new
SurveyService
();
};
$c
[
SurveyFormDefaults
::
class
]
=
function
(
$c
)
{
return
new
SurveyFormDefaults
(
$c
->
get
(
'view'
));
};
$c
[
SurveyForm
::
class
]
=
function
(
$c
)
{
return
new
SurveyForm
(
$c
->
get
(
SurveyServiceInterface
::
class
));
};
});
$events
(
'on'
,
'app.bootstrap'
,
function
(
App
$app
,
Container
$c
)
{
$c
->
get
(
'view'
)
->
getEnvironment
()
->
getLoader
()
->
prependPath
(
__DIR__
.
'/templates'
);
$app
->
group
(
'/tpe_survey'
,
function
()
{
$this
->
map
([
'GET'
,
'POST'
],
''
,
SurveyForm
::
class
)
->
setName
(
'tpe_survey'
);
});
});
$events
(
'on'
,
'app.bootstrap'
,
function
(
App
$app
,
Container
$c
)
{
$c
->
get
(
'router'
)
->
getNamedRoute
(
'school.staff'
)
->
add
(
SurveyFormDefaults
::
class
);
},
-
10
);
};
module/tpe_survey/public/js/schools/tpe_survey.js
0 → 100644
View file @
c5933dbd
/**
* 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
*/
(
function
(
$
,
_
,
utils
)
{
'
use strict
'
;
var
ModalView
;
ModalView
=
Backbone
.
View
.
extend
({
el
:
'
#tpe_survey-form-modal
'
,
model
:
null
,
template
:
null
,
events
:
{
'
submit
'
:
'
submitForm
'
},
initialize
:
function
()
{
this
.
model
=
null
,
this
.
template
=
_
.
template
(
this
.
$el
.
find
(
'
.modal-content script[type="text/template"]
'
).
html
());
},
render
:
function
()
{
var
that
=
this
,
html
,
url
;
if
(
!
this
.
model
)
return
this
;
html
=
this
.
template
({
teacher
:
this
.
model
.
toJSON
()});
url
=
this
.
$el
.
find
(
'
form
'
).
attr
(
'
action
'
);
this
.
$el
.
find
(
'
.modal-content
'
).
html
(
html
);
$
.
ajax
({
url
:
url
,
type
:
'
get
'
,
dataType
:
'
json
'
,
data
:
{
teacher_id
:
that
.
model
.
get
(
'
id
'
)
}
}).
done
(
function
(
response
)
{
var
elements
=
$
(
that
.
$el
.
find
(
'
form
'
)[
0
].
elements
),
prop
,
element
;
for
(
prop
in
response
)
{
if
(
response
.
hasOwnProperty
(
prop
))
{
elements
.
closest
(
'
[name^="
'
+
prop
+
'
"]
'
).
each
(
function
(
i
,
element
){
element
=
$
(
element
);
if
(
'
text
'
===
element
.
attr
(
'
type
'
)
&&
/^assets_in_use/
.
test
(
element
.
attr
(
'
name
'
)))
{
element
.
val
(
response
[
prop
][
response
[
prop
].
length
-
1
]);
}
else
if
(
'
checkbox
'
===
element
.
attr
(
'
type
'
))
{
element
.
prop
(
'
checked
'
,
-
1
!==
_
.
indexOf
(
response
[
prop
],
element
.
val
()));
}
else
{
element
.
val
(
response
[
prop
]
||
''
);
}
});
}
}
}).
always
(
function
(
response
)
{
that
.
show
();
});
return
this
;
},
show
:
function
()
{
this
.
$el
.
modal
(
'
show
'
);
return
this
;
},
hide
:
function
()
{
this
.
$el
.
modal
(
'
hide
'
);
return
this
;
},
submitForm
:
function
(
evt
)
{
var
that
=
this
,
form
=
this
.
$el
.
find
(
'
form
'
),
url
=
form
.
attr
(
'
action
'
),
data
=
utils
.
serializeObject
(
form
);
evt
.
preventDefault
();
$
.
ajax
({
url
:
url
,
type
:
'
post
'
,
dataType
:
'
json
'
,
data
:
data
,
}).
done
(
function
(
response
)
{
that
.
hide
();
}).
fail
(
function
(
xhr
,
err
)
{
alert
(
'
Προέκυψε κάποιο σφάλμα
'
);
});
return
false
;
}
});
var
modal
=
new
ModalView
(),
staffModel
=
window
.
EDULABS
.
models
.
staff
||
{};
$
(
'
#school-staff table tbody
'
).
on
(
'
click
'
,
'
td.tpe_survey a
'
,
function
(
evt
)
{
var
target
=
$
(
evt
.
target
).
closest
(
'
a
'
),
id
=
target
.
data
(
'
id
'
),
teacher
=
typeof
staffModel
.
get
===
'
function
'
&&
staffModel
.
get
(
id
);
evt
.
preventDefault
();
if
(
!
teacher
)
{
return
;
}
modal
.
model
=
teacher
;
modal
.
render
();
});
}(
jQuery
,
_
,
window
.
EDULABS
.
utils
));
module/tpe_survey/src/Action/SurveyForm.php
0 → 100644
View file @
c5933dbd
<?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\TpeSurvey\Action
;
use
GrEduLabs\TpeSurvey\Service\SurveyServiceInterface
;
use
Slim\Http\Request
;
use
Slim\Http\Response
;
class
SurveyForm
{
/**
*
* @var SurveyServiceInterface
*/
private
$service
;
public
function
__construct
(
SurveyServiceInterface
$service
)
{
$this
->
service
=
$service
;
}
public
function
__invoke
(
Request
$req
,
Response
$res
)
{
$teacherId
=
$req
->
getParam
(
'teacher_id'
);
if
(
$req
->
isPost
())
{
$this
->
service
->
saveAnswers
(
$teacherId
,
$req
->
getParams
());
}
$data
=
$this
->
service
->
getAnswers
(
$teacherId
);
$res
=
$res
->
withJson
(
$data
);
return
$res
;
}
}
module/tpe_survey/src/Middleware/SurveyFormDefaults.php
0 → 100644
View file @
c5933dbd
<?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\TpeSurvey\Middleware
;
use
Slim\Http\Request
;
use
Slim\Http\Response
;
use
Slim\Views\Twig
;
class
SurveyFormDefaults
{
private
static
$knowledgeLevels
=
[
'ΜΕΤΡΙΑ'
,
'ΚΑΛΑ'
,
'ΠΟΛΥ ΚΑΛΑ'
,
'ΑΡΙΣΤΑ'
];
private
static
$assetsInUse
=
[
'Η/Υ'
,
'TABLET'
,
'ΔΣΔ (Διαδραστικό Σύστημα Διδασκαλίας)'
,
'ΒΙΝΤΕΟΠΡΟΒΟΛΕΑΣ'
,
'ΚΙΤ ΡΟΜΠΟΤΙΚΗΣ'
];
private
static
$softwareInUse
=
[
'sw_web2'
=>
[
'label'
=>
'WEB 2.0 ΕΡΓΑΛΕΙΑ'
,
'desc'
=>
'Περιγράψτε, πχ socrative, padlet, wiki κλπ'
,
],
'sw_packages'
=>
[
'label'
=>
'ΕΚΠΑΙΔΕΥΤΙΚΑ ΠΑΚΕΤΑ ΛΟΓΙΣΜΙΚΟΥ'
,
'desc'
=>
'Περιγράψτε, πχ interactive physics, modelus, geogebra κλπ'
,
],
'sw_digitalschool'
=>
[
'label'
=>
'ΦΩΤΟΔΕΝΤΡΟ/ΨΗΦΙΑΚΟ ΣΧΟΛΕΙΟ'
,
'desc'
=>
'Περιγράψτε, πχ εμπλουτισμένα βιβλία, εφαρμογές φωτόδενδρου (ποιές), υπηρεσίες (ποιές)'
,
],
'sw_other'
=>
[
'label'
=>
'ΑΛΛΟ'
,
'desc'
=>
'Περιγράψτε'
,
],
];
private
static
$useCase
=
[
'uc_eduprograms'
=>
[
'label'
=>
'ΣΥΜΜΕΤΟΧΗ ΣΕ ΠΡΟΓΡΑΜΜΑΤΑ'
,
'desc'
=>
'Περιγράψτε, πχ eTwinning, Scientix, Erasmus+, άλλο'
,
],
'uc_digitaldesign'
=>
[
'label'
=>
'ΨΗΦΙΑΚΑ ΣΧΕΔΙΑ ΜΑΘΗΜΑΤΩΝ'
,
'desc'
=>
'Περιγράψτε'
,
],
'uc_asyncedu'
=>
[
'label'
=>
'ΑΣΥΓΧΡΟΝΗ ΔΙΔΑΣΚΑΛΙΑ'
,
'desc'
=>
'Περιγράψτε, πχ moodle, η-τάξη, άλλο'
,
],
'uc_other'
=>
[
'label'
=>
'ΑΛΛΟ'
,
'desc'
=>
'Περιγράψτε'
,
],
];
/**
*
* @var Twig
*/
private
$view
;
public
function
__construct
(
Twig
$view
)
{
$this
->
view
=
$view
;
}
public
function
__invoke
(
Request
$req
,
Response
$res
,
callable
$next
)
{
$map
=
function
(
$value
)
{
return
[
'value'
=>
$value
,
'label'
=>
$value
];
};
if
(
$req
->
isGet
())
{
$this
->
view
[
'tpe_survey'
]
=
[
'knowledge_levels'
=>
array_map
(
$map
,
self
::
$knowledgeLevels
),
'assets_in_use'
=>
array_map
(
$map
,
self
::
$assetsInUse
),
'software_in_use'
=>
self
::
$softwareInUse
,
'use_case'
=>
self
::
$useCase
,
];
}
return
$next
(
$req
,
$res
);
}
}
module/tpe_survey/src/Service/SurveyService.php
0 → 100644
View file @
c5933dbd
<?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\TpeSurvey\Service
;
use
RedBeanPHP\R
;
class
SurveyService
implements
SurveyServiceInterface
{
public
function
getAnswers
(
$teacherId
)
{
$bean
=
R
::
findOne
(
'tpesurvey'
,
'teacher_id = ?'
,
[
$teacherId
]);
$data
=
$bean
->
export
();
$data
[
'assets_in_use'
]
=
explode
(
'|'
,
$data
[
'assets_in_use'
]);
return
$data
;
}
public
function
saveAnswers
(
$teacherId
,
array
$data
)
{
if
(
isset
(
$data
[
'assets_in_use'
]))
{
$data
[
'assets_in_use'
]
=
implode
(
'|'
,
$data
[
'assets_in_use'
]);
}
$bean
=
R
::
findOne
(
'tpesurvey'
,
'teacher_id = ?'
,
[
$teacherId
]);
if
(
null
===
$bean
)
{
$bean
=
R
::
dispense
(
'tpesurvey'
);
}
$bean
->
teacher_id
=
(
int
)
$teacherId
;
$bean
->
import
(
$data
,
[
'knowledge_level'
,
'assets_in_use'
,
'sw_web2'
,
'sw_packages'
,
'sw_digitalschool'
,
'sw_other'
,
'uc_eduprograms'
,
'uc_digitaldesign'
,
'uc_asyncedu'
,
'uc_other'
,
]);
R
::
store
(
$bean
);
}
}
module/tpe_survey/src/Service/SurveyServiceInterface.php
0 → 100644
View file @
c5933dbd
<?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\TpeSurvey\Service
;
interface
SurveyServiceInterface
{
/**
*
* @param int $teacherId
* @return array
*/
public
function
getAnswers
(
$teacherId
);
/**
*
* @param int $teacherId
* @param array $data
*/
public
function
saveAnswers
(
$teacherId
,
array
$data
);
}
module/tpe_survey/templates/schools/staff.twig
0 → 100644
View file @
c5933dbd
{%
extends
"schools/index.twig"
%}
{%
import
"schools/index.twig"
as
macros
%}
{%
block
schoolTitle
%}
{{
parent
()
}}
<small>
Εκπαιδευτικοί
</small>
{%
endblock
%}
{%
block
navItems
%}
<li
role=
"presentation"
class=
"pull-right"
>
<a
href=
"#"
class=
"btn btn-primary btn-add-teacher"
title=
"Καταχώρηση εκπαιδευτικού"
>
<i
class=
"visible-xs fa fa-plus"
></i>
<span
class=
"hidden-xs"
>
Καταχώρηση εκπαιδευτικού
</span>
</a>
</li>
{%
endblock
%}
{%
block
schoolContent
%}
<div
id=
"school-staff"
>
<p>
Σε αυτή τη καρτέλα καταχωρούνται ο Δ/ντης του σχολείου, οι Υπεύθυνοι
σχολικών εργαστηρίων, καθώς και εκείνοι οι εκπαιδευτικοί που χρησιμοποιούν
ή πρόκειται να χρησιμοποιήσουν ΤΠΕ στο σχολείο.
</p>
<div
class=
"table-responsive"
>
<table
class=
"table table-hover table-striped"
>
<thead>
<tr>
<th>
Όνομα
</th>
<th>
Επώνυμο
</th>
<th>
Τηλέφωνο
</th>
<th>
Email
</th>
<th>
Ειδικότητα
</th>
<th>
Θέση
</th>
<th>
Χρήση ΤΠΕ
</th>
</tr>
</thead>
<tbody>
{%
for
teacher
in
staff
%}
<tr
data-teacher=
"
{{
teacher
|
json_encode
}}
"
data-id=
"
{{
teacher.id
}}
"
>
<td
class=
"name"
>
{{
teacher.name
}}
</td>
<td
class=
"surname"
>
{{
teacher.surname
}}
</td>
<td
class=
"telephone"
>
{{
teacher.telephone
}}
</td>
<td
class=
"email"
>
<a
href=
"mailto:
{{
teacher.email
}}
"
>
{{
teacher.email
}}
</a>
</td>
<td
class=
"branch"
>
{{
teacher.branch
}}
</td>
<td
class=
"position"
>
{{
teacher.position
}}
</td>
<td
class=
"tpe_survey"
>
<a
href=
"#tpe_survey"
class=
"btn btn-primary btn-xs"
type=
"button"
data-id=
"
{{
teacher.id
}}
"
>
<i
class=
"fa fa-file-text-o"
></i>
Ερωτηματολόγιο
</a>
</td>
</tr>
{%
else
%}
<tr
class=
"no-records"
>
<td
colspan=
"7"
class=
"text-center text-muted"
>
Δεν έχουν καταχωρηθεί εκπαιδευτικοί.
</td>
</tr>
{%
endfor
%}
</tbody>
<tfoot>
<tr>
<th
colspan=
"7"
></th>
</tr>
</tfoot>
</table>
</div>
<div
class=
"modal fade"
id=
"teacher-form-modal"
tabindex=
"-1"
role=
"dialog"
aria-labelledby=
"teacher-from"
>
<form
class=
"form-horizontal"
data-url=
"
{{
path_for
(
'school.staff'
)
}}
"
>
<div
class=
"modal-dialog"
role=
"form"
>
<div
class=
"modal-content"
>
<div
class=
"modal-header"
>
<button
type=
"button"
class=
"close"
data-dismiss=
"modal"
aria-label=
"Close"
>
<span
aria-hidden=
"true"
>
×
</span>
</button>
<h4
class=
"modal-title"
>
Στοιχεία εκπαιδευτικού
</h4>
</div>
<div
class=
"modal-body"
>
{{
macros.input
(
'name'
,
'Όνομα'
,
''
,
'text'
,
{
'required'
:
''
}
)
}}
{{
macros.input
(
'surname'
,
'Επώνυμο'
,
''
,
'text'
,
{
'required'
:
''
}
)
}}
{{
macros.input
(
'telephone'
,
'Τηλέφωνο'
,
''
,
'tel'
,
{
'required'
:
''
}
)
}}
{{
macros.input
(
'email'
,
'Email'
,
''
,
'email'
,
{
'required'
:
''
}
)
}}
{{
macros.select
(
'branch_id'
,
'Ειδικότητα'
,
branches
,
''
,
{
'required'
:
''
}
)
}}
{{
macros.checkbox
(
'is_principle'
,
'Διευθυντής'
)
}}
{{
macros.checkbox
(
'is_responsible'
,
'Υπεύθυνος εργαστηρίου'
)
}}
<input
type=
"hidden"
name=
"id"
value=
""
>
</div>
<div
class=
"modal-footer"
>
<button
type=
"button"
class=
"btn btn-danger pull-left remove"
>
Διαγραφή
</button>
<button
type=
"button"
class=
"btn btn-default"
data-dismiss=
"modal"
>
Κλείσιμο
</button>
<button
type=
"submit"
class=
"btn btn-primary"
>
Αποθήκευση
</button>
</div>
</div>
</div>
</form>
</div>
{%
include
"tpe_survey/form.twig"
%}
<script
type=
"text/template"
id=
"teacher-row"
>
<
td
class
=
"
name
"
><%=
teacher
.
name
%><
/td
>
<
td
class
=
"
surname
"
><%=
teacher
.
surname
%><
/td
>
<
td
class
=
"
telephone
"
><%=
teacher
.
telephone
%><
/td
>
<
td
class
=
"
email
"
>
<
a
href
=
"
mailto:<%= teacher.email %>
"
><%=
teacher
.
email
%><
/a
>
<
/td
>
<
td
class
=
"
branch
"
><%=
teacher
.
branch
%><
/td
>
<
td
class
=
"
positionLabel
"
><%=
teacher
.
position
%><
/td
>
<
td
class
=
"
tpe_survey
"
>
<
a
href
=
"
#tpe_survey
"
class
=
"
btn btn-primary btn-xs
"
type
=
"
button
"
data
-
id
=
"
<%= teacher.id %>
"
>
<
i
class
=
"
fa fa-file-text-o
"
><
/i
>
&
nbsp
;
Ερωτηματολόγιο
<
/a
>
<
/td
>
</script>
</div>
{%
endblock
%}
{%
block
inlinejs
%}
{{
parent
()
}}
<script
src=
"
{{
base_url
}}
/js/schools/staff.js"
></script>
<script
src=
"
{{
base_url
}}
/js/schools/tpe_survey.js"
></script>
{%
endblock
%}
\ No newline at end of file
module/tpe_survey/templates/tpe_survey/form.twig
0 → 100644
View file @
c5933dbd
{%
import
"tpe_survey/macros/form.twig"
as
form
%}
<div
class=
"modal fade"
id=
"tpe_survey-form-modal"
tabindex=
"-1"
role=
"dialog"
aria-labelledby=
"tpe_survey-from"
>
<form
class=
"form-horizontal"
action=
"
{{
path_for
(
'tpe_survey'
)
}}
"
method=
"post"
>
<div
class=
"modal-dialog modal-lg"
role=
"form"
>
<div
class=
"modal-content"
>
<script
type=
"text/template"
>
<
div
class
=
"
modal-header
"
>
<
button
type
=
"
button
"
class
=
"
close
"
data
-
dismiss
=
"
modal
"
aria
-
label
=
"
Close
"
>
<
span
aria
-
hidden
=
"
true
"
>&
times
;
<
/span
>
<
/button
>
<
h4
class
=
"
modal-title
"
><%=
teacher
.
fullname
%>
:
Χρήση
ΤΠΕ
<
/h4
>
<
/div
>
<
div
class
=
"
modal-body
"
>
{{
macros.select
(
'knowledge_level'
,
'Γνώση ΤΠΕ'
,
tpe_survey.knowledge_levels
,
''
,
{
'required'
:
''
}
)
}}
{{
form.multicheckbox
(
'assets_in_use'
,
'Υλικό που χρησιμοποιεί'
,
tpe_survey.assets_in_use
,
''
,
{
freeText
:
true
,
required
:
''
}
)
}}
<
div
class
=
"
form-group
"
>
<
label
class
=
"
control-label hidden-xs hidden-sm col-md-3
"
>
Λογισμικό
που
χρησιμοποιεί
<
/label
>
<
div
class
=
"
col-xs-12 col-sm-12 col-md-9 text-left
"
>
{%
for
swKey
,
sw
in
tpe_survey.software_in_use
%}
<
label
class
=
"
control-label
"
>
{{
sw.label
}}
<
/label
>
<
input
class
=
"
form-control
"
type
=
"
text
"
name
=
"
{{
swKey
}}
"
placeholder
=
"
{{
sw.desc
}}
"
>
{%
endfor
%}
<
/div
>
<
/div
>
<
div
class
=
"
form-group
"
>
<
label
class
=
"
control-label hidden-xs hidden-sm col-md-3
"
>
Τρόπος
χρήσης
<
/label
>
<
div
class
=
"
col-xs-12 col-sm-12 col-md-9 text-left
"
>
{%
for
ucKey
,
uc
in
tpe_survey.use_case
%}
<
label
class
=
"
control-label
"
>
{{
uc.label
}}
<
/label
>
<
input
class
=
"
form-control
"
type
=
"
text
"
name
=
"
{{
ucKey
}}
"
placeholder
=
"
{{
uc.desc
}}
"
>
{%
endfor
%}
<
/div
>
<
/div
>
<
input
type
=
"
hidden
"
name
=
"
teacher_id
"
value
=
"
<%= teacher.id %>
"
>
<
input
type
=
"
hidden
"
name
=
"
id
"
value
=
""
>
<
/div
>
<
div
class
=
"
modal-footer
"
>
<
button
type
=
"
button
"
class
=
"
btn btn-default
"
data
-
dismiss
=
"
modal
"
>
Κλείσιμο
<
/button
>
<
button
type
=
"
submit
"
class
=
"
btn btn-primary
"
>
Αποθήκευση
<
/button
>
<
/div
>
</script>
</div>
</div>
</form>
</div>
\ No newline at end of file
module/tpe_survey/templates/tpe_survey/macros/form.twig
0 → 100644
View file @
c5933dbd
{%
macro
multicheckbox
(
name
,
label
,
options
,
checked
,
attributes
=
{
freeText
:
false
}
)
%}
<div
class=
"form-group"
>