form.twig 13.1 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, minvalue) %}
17 18
    <div class="form-group">
        <div class="col-xs-12 col-sm-12 col-md-9">
19
            <input placeholder="{{ label|striptags }}" class="form-control input-sm" min="{{ minvalue|default(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
        <textarea class="form-control" name="{{ name }}"
                  id="el-{{ name }}"
63
                  placeholder="{{ label|striptags }}">{{ value|default('') }}</textarea>
64 65 66
    </div>
{% endmacro %}

67 68 69 70 71 72 73
{% macro infoBox(boxtype, msg) %}
    <div class="alert alert-{{ boxtype }} alert-dismissible" role="alert">
        <button type="button" class="close" data-dismiss="alert" aria-label="Κλείσιμο"><span aria-hidden="true">&times;</span></button>
        <p class="text-{{ boxtype }}">{{ msg | raw }}</p>
    </div>
{% endmacro %}

74
{% block content %}
75
    {% import _self as macros %}
76

77 78 79 80 81 82
<div id="app-form">
    <h1>
    {% block title %}
        Αίτηση <small>για νέο εξοπλισμό</small>
    {% endblock %}
    </h1>
83 84
    <form method="post" action="" data-is-valid="{{ form.is_valid | default(true) ? '1' : '0' }}"
          data-messages="{{ form.messages|default({})|json_encode }}">
85
        <div class="form-group">
kanellov's avatar
kanellov committed
86
            <p>
87
                Σε αυτή την καρτέλα θα καταχωρήσετε πληροφορίες που αφορούν στον εξοπλισμό που ήδη υπάρχει στο σχολείο και είναι λειτουργικός ή/και στον νέο εξοπλισμό που θέλετε να αποκτήσετε, υποβάλλοντας και τη σχετική αίτηση. Αν ένα σχολείο είχε ήδη συμπληρώσει τη σχετική αίτηση μπορεί α) να διατηρήσει την αρχική αίτησή του, β) να επικαιροποιήσει την αρχική αίτησή του γ) να υποβάλει νέα αίτηση.
88 89
            </p>
            <p>
90 91
                Στο πεδίο <strong>«Σχόλια/Παρατηρήσεις»</strong> περιγράφεται το πως θα
                υποστηρίζονται οι εκπαιδευτικοί του σχολείου σας στην χρήση του
92
                συνόλου των νέων ψηφιακών υποδομών που θέλετε να αποκτήσετε και
93 94 95
                συνοπτικά το σχέδιο του σχολείου σας για την χρήση των νέων ψηφιακών
                υποδομών στην μαθησιακή διαδικασία με ενδοσχολικές δραστηριότητες
                αλλά και δράσεις ανοιχτές στην τοπική κοινωνία.
96 97
            </p>
            <p>
98
                Ελέγχετε προσεκτικά όλες τις καρτέλες και τα πεδία της αίτησης
99
                του σχολείου σας πριν την υποβάλετε και συνέχεια την εκτυπώνεται
100 101
                σε PDF αρχείο για να έχετε ένα πλήρες αντιγραφο για τα αρχεία
                σας.
102 103
            </p>
            <p>
104 105 106 107
                Θα ενημερωθείτε στο ηλεκτρονικό σας ταχυδρομείο εάν έχει επιλεγεί
                το σχολείο σας και με ποιον από τον προτεινόμενο εξοπλισμό να
                συμμετάσχει στην 1η φάση Αναβάθμισης Ψηφιακών Υποδομών των
                Σχολείων.
kanellov's avatar
kanellov committed
108
            </p>
109
        </div>
110

111 112 113
        <div class="table-responsive">
            <fieldset>
                <legend>Νέος εξοπλισμός</legend>
114
                <div id="items-list">
115
                    <table class="table table-hover table-striped table-condensed">
116 117
                        <thead>
                            <tr>
118 119 120 121 122
                                <th>Πλήθος αιτούμενων</th>
                                <th>Πλήθος υπαρχόντων που λειτουργούν</th>
                                <th class="col-xs-3">Τύπος</th>
                                <th class="col-xs-3">Χώρος</th>
                                <th class="col-xs-3">Αιτιολογία χρήσης</th>
123 124 125
                                <th></th>
                            </tr>
                        </thead>
126
                        <tbody>
127
                            {% for itemIndex,item in form.values.items %}
128 129
                                <tr>
                                    <td>{{ macros.itemCount('qty', 'Πλήθος', item.qty, loop.index0) }}</td>
130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
                                    <td>{{ macros.itemCount('qtyacquired', 'Πλήθος', item.qtyacquired, loop.index0, 0) }}</td>
                                    <td class="col-xs-3">
                                        {{ macros.itemSelect('itemcategory_id', 'Τύπος', type_choices, item.itemcategory_id, loop.index0) }}
                                        {% if item.prev_form_load == true %}
                                            {% if item.itemcategory_id_prev == -2 %}
                                                {{ macros.infoBox('warning', "<small>Τα είδη έχουν τροποποιηθεί. Παρακαλούμε επιλέξτε εκ νέου από τη λίστα το είδος #{ item.itemcategory } εφόσον είναι διαθέσιμο.</small>") }}
                                            {% elseif item.itemcategory_id_prev == -1 %}
                                                {{ macros.infoBox('danger', "Δεν είναι διαθέσιμο το είδος #{ item.itemcategory } στη νέα αίτηση. Θα πρέπει να το καταργήσετε ή να επιλέξετε νέο είδος εξοπλισμού.") }}
                                            {% else %}
                                                {{ macros.infoBox('info', "<small>Το είδος #{ item.itemcategory } έχει αντικατασταθεί στη νέα αίτηση.</small>") }}
                                            {% endif %}
                                            </div>
                                        {% endif %}
                                    </td>
                                    <td class="col-xs-3">{{ macros.itemSelect('lab_id', 'Χώρος', lab_choices, item.lab_id, loop.index0 ) }}</td>
                                    <td class="col-xs-3">{{ macros.itemReasons('reasons', 'Αιτιολογία χρήσης', item.reasons, loop.index0) }}</td>
146
                                    <td>
147 148
                                        {% if loop.index0 > 0 %}
                                        <button type="button" class="btn btn-xs text-danger remove-row">
149
                                        <i class="fa fa-remove"></i>
150
                                        {% endif %}
151 152
                                    </button</td>
                                </tr>
153 154 155
                            {% else %}
                                <tr>
                                    <td>{{ macros.itemCount('qty', 'Πλήθος', '', 0) }}</td>
156 157 158 159
                                    <td>{{ macros.itemCount('qtyacquired', 'Πλήθος', '', 0, 0) }}</td>
                                    <td class="col-xs-3">{{ macros.itemSelect('itemcategory_id', 'Τύπος', type_choices, '', 0) }}</td>
                                    <td class="col-xs-3">{{ macros.itemSelect('lab_id', 'Χώρος', lab_choices, '', 0 ) }}</td>
                                    <td class="col-xs-3">{{ macros.itemReasons('reasons', 'Αιτιολογία χρήσης', '', 0) }}</td>
160 161
                                    <td></td>
                                </tr>
162 163
                            {% endfor %}
                        </tbody>
164 165
                        <tfoot>
                            <tr>
166
                                <td colspan="5" class="text-right col-xs-12">
167 168 169 170 171 172 173 174 175
                                    <button type="button" class="btn btn-sm btn-primary add-row">
                                        <i class="fa fa-plus"></i>
                                        Προσθήκη εξοπλισμού
                                    </button>
                                </td>
                            </tr>
                        </tfoot>
                    </table>
                </div>
176
                {{ macros.text('comments', 'Σχόλια/Παρατηρήσεις', form.values.comments) }}
177 178
            </fieldset>
        </div>
179 180 181 182
        <hr>
        <div class="form-group text-center">
            <button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary">Υποβολή</button>
        </div>
183 184
        <input type="hidden" name="{{ csrf.name_key }}" value="{{ csrf.name }}">
        <input type="hidden" name="{{ csrf.value_key }}" value="{{ csrf.value }}">
185
    </form>
186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202
    {% if choose %}
    <div class="modal fade" id="app-form-load-modal" role="dialog">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-body">
                    <p>Επιθυμείτε η νέα αίτηση να βασιστεί στη τελευταία αίτησή σας;</p>
                    <div class="text-right">
                        <button type="button" class="btn btn-default" data-dismiss="modal" aria-label="Close">
                            Όχι
                        </button>
                        <a class="btn btn-primary" href="{{ path_for('application_form', {}, { load: 1 }) }}">Ναι</a>
                    </div>
                </div>
            </div>
        </div>
    </div>
    {% endif %}
203
    <script type="text/template" id="app-form-item-row-template">
204
        <td>{{ macros.itemCount('qty', 'Πλήθος') }}</td>
205
        <td>{{ macros.itemCount('qtyacquired', 'Πλήθος', '', '', 0) }}</td>
206 207 208
        <td>{{ macros.itemSelect('itemcategory_id', 'Τύπος', type_choices) }}</td>
        <td>{{ macros.itemSelect('lab_id', 'Χώρος', lab_choices) }}</td>
        <td>{{ macros.itemReasons('reasons', 'Αιτιολογία χρήσης') }}</td>
209 210 211 212 213 214 215 216 217 218 219
        <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>
220 221
    <script src="{{ base_url() }}/js/application_form/index.js"></script>
{% endblock %}