form.twig 9.84 KB
Newer Older
1
2
{% extends "layout.twig" %}

3
{% macro itemSelect(name, label, options, selected, index) %}
4
5
6
7
8
9
10
11
12
13
    <div class="form-group">
        <select class="form-control input-sm" name="items[{{ index | default('<%= index %>') | raw }}][{{ name }}]">
        <option value="" disabled selected>{{ label|striptags }}</option>
        {% for option in options %}
            <option value="{{ option.value|e }}"{% if selected == option.value %} selected{% endif %}>
                {{ option.label }}
            </option>
        {% endfor %}
        </select>
    </div>
14
15
{% endmacro %}

16
{% macro itemCount(name, label, value, index) %}
17
18
    <div class="form-group">
        <div class="col-xs-12 col-sm-12 col-md-9">
kanellov's avatar
fix #27    
kanellov committed
19
            <input placeholder="{{ label|striptags }}" class="form-control input-sm" min="1"
20
                type="number" name="items[{{ index | default('<%= index %>') | raw }}][{{ name }}]" value="{{ value|default('')|raw }}">
21
22
23
24
        </div>
    </div>
{% endmacro %}

25
26
27
28
29
30
31
32
{% macro itemReasons(name, label, value, index) %}
    <div class="form-group">
        <textarea class="form-control input-sm" name="items[{{ index | default('<%= index %>') | raw }}][{{ name }}]"
                  placeholder="{{ label|striptags }}"
                  rows="1" cols="20">{{ value|default('') }}</textarea>
    </div>
{% endmacro %}

33
34
35
36
37
38
39
40
41
42
43
44
45
46
{% macro select(name, label, options, selected) %}
    <div class="form-group">
        <label class="control-label hidden-xs hidden-sm" for="el-{{ name }}">{{ label|raw }}</label>
        <select class="form-control" name="{{ name }}" id="el-{{ name }}">
            <option value="" disabled selected>{{ label|striptags }}</option>
            {% for option in options %}
            <option value="{{ option.value|e }}"{% if selected == option.value %} selected{% endif %}>
                {{ option.label }}
            </option>
            {% endfor %}
        </select>
    </div>
{% endmacro %}

47
{% macro yesno(name, label, selected) %}
48
49
50
51
    <div class="form-group">
        <label class="control-label hidden-xs hidden-sm" for="el-{{ name }}">{{ label|raw }}</label>
        <select class="form-control" name="{{ name }}" id="el-{{ name }}">
            <option value="" disabled selected>{{ label|striptags }}</option>
52
53
            <option value="ΝΑΙ"{% if selected == 'ΝΑΙ' %} selected{% endif %}>Ναι</option>
            <option value="ΟΧΙ"{% if selected == 'ΟΧΙ' %} selected{% endif %}>Όχι</option>
54
55
56
57
58
59
60
        </select>
    </div>
{% endmacro %}

{% macro text(name, label, value) %}
    <div class="form-group">
        <label class="control-label hidden-xs hidden-sm" for="el-{{ name }}">{{ label|raw }}</label>
61
62
63
        <textarea class="form-control" name="{{ name }}" 
                  id="el-{{ name }}" 
                  placeholder="{{ label|striptags }}">{{ value|default('') }}</textarea>
64
65
66
67
    </div>
{% endmacro %}

{% block content %}
Vassilis Kanellopoulos's avatar
Vassilis Kanellopoulos committed
68
69
    {% import _self as macros %}
    
70
71
72
73
74
75
<div id="app-form">
    <h1>
    {% block title %}
        Αίτηση <small>για νέο εξοπλισμό</small>
    {% endblock %}
    </h1>
76
77
    <form method="post" action="" data-is-valid="{{ form.is_valid | default(true) ? '1' : '0' }}"
          data-messages="{{ form.messages|default({})|json_encode }}">
78
        <div class="form-group">
kanellov's avatar
kanellov committed
79
80
            <p>
                Σε αυτή την καρτέλα θα καταχωρήσετε πληροφορίες που αφορούν στον 
Vassilis Kanellopoulos's avatar
Vassilis Kanellopoulos committed
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
                εξοπλισμό που θέλετε να αναβαθμίσετε ή/και στον νέο εξοπλισμό που 
                θέλετε να αποκτήσετε, στο πεδίο <strong>«Αιτιολογία χρήσης»</strong> περιγράφεται 
                συνοπτικά την εκπαιδευτική χρήση του προτεινόμενου εξοπλισμού.
            </p>
            <p>
                Στο πεδίο <strong>«Σχόλια/Παρατηρήσεις»</strong> περιγράφεται το πως θα 
                υποστηρίζονται οι εκπαιδευτικοί του σχολείου σας στην χρήση του 
                συνόλου των νέων ψηφιακών υποδομών που θέλετε να αποκτήσετε και
                συνοπτικά το σχέδιο του σχολείου σας για την χρήση των νέων ψηφιακών 
                υποδομών στην μαθησιακή διαδικασία με ενδοσχολικές δραστηριότητες 
                αλλά και δράσεις ανοιχτές στην τοπική κοινωνία. 
            </p>
            <p>
                Ελέγχετε προσεκτικά όλες τις καρτέλες και τα πεδία της αίτησης 
                του σχολείου σας πριν την υποβάλετε και συνέχεια την εκτυπώνεται
                σε PDF αρχείο για να έχετε ένα πλήρες αντιγραφο για τα αρχεία 
                σας. 
            </p>
            <p>
                Θα ενημερωθείτε στο ηλεκτρονικό σας ταχυδρομείο εάν έχει επιλεγεί 
                το σχολείο σας και με ποιον από τον προτεινόμενο εξοπλισμό να 
                συμμετάσχει στην 1η φάση Αναβάθμισης Ψηφιακών Υποδομών των 
                Σχολείων. 
kanellov's avatar
kanellov committed
104
            </p>
Vassilis Kanellopoulos's avatar
Vassilis Kanellopoulos committed
105
        </div>
kanellov's avatar
kanellov committed
106
        
Vassilis Kanellopoulos's avatar
Vassilis Kanellopoulos committed
107
108
109
        <div class="table-responsive">
            <fieldset>
                <legend>Νέος εξοπλισμός</legend>
110
                <div id="items-list">
111
112
113
114
                    <table class="table table-hover table-striped">
                        <thead>
                            <tr>
                                <th>Πλήθος</th>
115
116
                                <th>Τύπος</th>
                                <th>Χώρος</th>
117
118
119
120
                                <th>Αιτιολογία χρήσης</th>
                                <th></th>
                            </tr>
                        </thead>
121
                        <tbody>
122
                            {% for itemIndex,item in form.values.items %}
123
124
                                <tr>
                                    <td>{{ macros.itemCount('qty', 'Πλήθος', item.qty, loop.index0) }}</td>
125
126
127
                                    <td>{{ macros.itemSelect('itemcategory_id', 'Τύπος', type_choices, item.itemcategory_id, loop.index0) }}</td>
                                    <td>{{ macros.itemSelect('lab_id', 'Χώρος', lab_choices, item.lab_id, loop.index0 ) }}</td>
                                    <td>{{ macros.itemReasons('reasons', 'Αιτιολογία χρήσης', item.reasons, loop.index0) }}</td>
128
                                    <td>
129
130
                                        {% if loop.index0 > 0 %}
                                        <button type="button" class="btn btn-xs text-danger remove-row">
131
                                        <i class="fa fa-remove"></i>
132
                                        {% endif %}
133
134
                                    </button</td>
                                </tr>
135
136
137
138
139
140
141
142
                            {% else %}
                                <tr>
                                    <td>{{ macros.itemCount('qty', 'Πλήθος', '', 0) }}</td>
                                    <td>{{ macros.itemSelect('itemcategory_id', 'Τύπος', type_choices, '', 0) }}</td>
                                    <td>{{ macros.itemSelect('lab_id', 'Χώρος', lab_choices, '', 0 ) }}</td>
                                    <td>{{ macros.itemReasons('reasons', 'Αιτιολογία χρήσης', '', 0) }}</td>
                                    <td></td>
                                </tr>
143
144
                            {% endfor %}
                        </tbody>
145
146
147
148
149
150
151
152
153
154
155
156
                        <tfoot>
                            <tr>
                                <td colspan="5" class="text-right">
                                    <button type="button" class="btn btn-sm btn-primary add-row">
                                        <i class="fa fa-plus"></i>
                                        Προσθήκη εξοπλισμού
                                    </button>
                                </td>
                            </tr>
                        </tfoot>
                    </table>
                </div>
Vassilis Kanellopoulos's avatar
Vassilis Kanellopoulos committed
157
                {{ macros.text('comments', 'Σχόλια/Παρατηρήσεις', form.value.comments) }}
Vassilis Kanellopoulos's avatar
Vassilis Kanellopoulos committed
158
159
            </fieldset>
        </div>
160
161
162
163
        <hr>
        <div class="form-group text-center">
            <button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary">Υποβολή</button>
        </div>
Vassilis Kanellopoulos's avatar
Vassilis Kanellopoulos committed
164
165
        <input type="hidden" name="{{ csrf.name_key }}" value="{{ csrf.name }}">
        <input type="hidden" name="{{ csrf.value_key }}" value="{{ csrf.value }}">
166
167
    </form>
    <script type="text/template" id="app-form-item-row-template">
Vassilis Kanellopoulos's avatar
Vassilis Kanellopoulos committed
168
        <td>{{ macros.itemCount('qty', 'Πλήθος') }}</td>
169
170
171
        <td>{{ macros.itemSelect('itemcategory_id', 'Τύπος', type_choices) }}</td>
        <td>{{ macros.itemSelect('lab_id', 'Χώρος', lab_choices) }}</td>
        <td>{{ macros.itemReasons('reasons', 'Αιτιολογία χρήσης') }}</td>
172
173
174
175
176
177
178
179
180
181
182
        <td><button type="button" class="btn btn-xs text-danger remove-row">
            <i class="fa fa-remove"></i>
        </button</td>
    </script>
</div>
{% endblock %}

{% block inlinejs %}
    {{ parent() }}
    <script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.2.3/backbone-min.js"></script>
Vassilis Kanellopoulos's avatar
Vassilis Kanellopoulos committed
183
    <script src="{{ base_url }}/js/application_form/index.js"></script>
184
{% endblock %}