]> git.immae.eu Git - perso/Denise/oms.git/blame - templates/index.html
bug corrigé sur les courbes multiples
[perso/Denise/oms.git] / templates / index.html
CommitLineData
5679dfd0
DL
1{% extends "base.html" %}
2{% block contenu %}
21c5bd57 3<p>Bienvenue sur ce petit outil qui permet de tracer les courbes de poids et de taille selon les standards OMS (Organisation Mondiale de la Santé) des enfants jusqu'à 5 ans.</p>
5679dfd0
DL
4<hr>
5
6
be2bf515 7<h2>Données de l'enfant</h2>
5679dfd0 8
be2bf515 9<div id="import_donnees">
93ba28a7 10 <form action="/" method="post" enctype="multipart/form-data" id="form_import_donnees">
be2bf515
DL
11
12
13
442a69cb 14 <label for="fichier_donnees" class="icon_button">
93ba28a7 15 <img src="static/icons/import.png">
d5af53b5 16 <span class="icon_legend">Importer un fichier</span>
93ba28a7 17 </label>
ca61f310 18 <input type="file" name="fichier_donnees" id="fichier_donnees" oninput="upload_file('form_import_donnees')">
5679dfd0 19</form>
2dc9eb43 20
d2f41e86 21{% if "fichier_importe" in valform %}
2dc9eb43
DL
22{% if "version" in valform %}
23<p>Version du fichier de sauvegarde : {{ valform.version }}.</p>{% endif %}
24{% if "version" not in valform or valform.version < CONFIG.version %}
25<p class="petit">Note : La version du fichier de sauvegarde est inférieure à la version du site ({{ CONFIG.version}}), mais cela ne devrait pas générer de bug (normalement).
26</p>{% endif %}
d2f41e86 27{% endif %}
2dc9eb43 28
be2bf515 29</div>
5679dfd0
DL
30
31<form id="donnees_enfant">
32
d03279e7 33<!-- saisie des données -->
61020126
DL
34
35<h3>Informations sur l'enfant</h3>
442a69cb
SC
36<div>
37 <label for="reset_donnees" class="icon_button">
38 <img src="static/icons/trash.png">
39 <span class="icon_legend">Effacer les données du formulaire</span>
40 </label>
30158504 41 <input type="reset" id="reset_donnees" value="Effacer les données du formulaire">
be2bf515 42</div>
5679dfd0 43<ul>
be2bf515 44<li><label>Nom de l'enfant&nbsp;:</label> <input type="text" name="nom" value="{{ valform.nom }}"></li>
915e90bb
DL
45<li><label>Sexe&nbsp;:</label> <label><input type="radio" name="sexe" value="F" {%if valform.sexe == "F" %}checked{% endif %}> féminin </label>
46| <label><input type="radio" name="sexe" value="M" {%if valform.sexe == "M"%} checked {% endif %}> masculin</label> | <label><input type="radio" name="sexe" value="N" {%if valform.sexe == "N"%} checked {% endif %}> neutre (expérimental)</label></li>
bc1faf7c
DL
47<li><label>Date de naissance&nbsp;: </label> <input type="date" name="naissance" value="{{ valform.naissance }}">
48 <p id="changemode" class="petit"><span onclick="change_mode_dates('text')" class="bouton">Cliquer ici</span> pour saisir les dates comme du texte.</p> </li>
85e9aa73
DL
49<li>Prématuré ? <span class="petit">(expérimental)</span> <span class="bouton" onclick="affiche_cache('prema',this)">Afficher</span>
50<div id="prema"><p class="petit">Si l'enfant est né prématuré (avant 37 semaines d'aménorrhée), indiquer de « combien » en durée (même syntaxe que pour les âges, voir plus bas). Sinon, laisser 0j.</p>
cf0d4c8c 51<label>Prématurité</label> <input type="text" name="prematurite" value="{{ valform.prematurite }}"> <input type="checkbox" name="agecorrige"{% if valform.agecorrige == "oui"%} checked{%endif%}> Afficher l'âge corrigé sur la courbe (plutôt que l'âge réel).
85e9aa73 52</div></li>
b5ac625b 53
5679dfd0
DL
54</ul>
55
56
5679dfd0
DL
57
58
59
cf0d4c8c 60<h3>Saisir les données</h3>
d5687a7f 61<p><span id="bouton_afficher_donneesplus" class="bouton" onclick="affiche_cache_classe('donneesplus')">Afficher</span> la saisie des tailles.</p>
be2bf515 62<p>Syntaxe pour l'âge&nbsp;: utiliser j, s, m, a comme des "unités" (jours, semaines, mois, années). Vous pouvez mixer les unités, par exemple "3a2m5j" pour 3 ans, 2 mois et 5 jours. Les espaces sont ignorées, et il faut saisir des nombres entiers.</p>
ca61f310 63<p>Saisir le poids en kilogrammes (par exemple "2.62" ou "2,62" pour 2 kilogrammes et 620 grammes), ou en grammes ("2620" par exemple).</p>
2c023f1a 64<p class="donneesplus">Saisir la taille en centimètres. Note : il y a généralement un centimètre de moins quand on mesure l'enfant debout par rapport à allongé. On peut voir sur la courbe de référence une "cassure" à deux ans qui correspond au changement du type de mesure.</p>
5679dfd0
DL
65<p>Il faut saisir la date ou l'âge. Si les deux sont saisis, seul l'âge comptera.</p>
66
2c023f1a 67<p class="donneesplus">Si vous ne saisissez que des données de poids par exemple, la courbe de taille ne sera pas tracée (par défaut, voir préférences du graphique).</p>
5679dfd0
DL
68
69<table id="donneespoids">
d9eaf2e2 70 <tr><th>Âge</th><th>Date</th><th>Poids (kg ou g)</th><th class="donneesplus">Taille (cm) </th></tr>
5679dfd0
DL
71
72{% for i in range(valform.nb_data) %}
73<tr><td>
74 <input type="text" name="age_{{ i }}" value="{{ valform['age_'~i] }}">
2dc9eb43 75</td><td><input type="date" name="date_{{ i }}" value="{{ valform['date_'~i] }}"></td>
5679dfd0 76 <td><input type="text" name="poids_{{ i }}" value="{{ valform['poids_'~i] }}"></td>
2c023f1a 77 <td class="donneesplus"><input type="text" name="taille_{{ i }}" value="{{ valform['taille_'~i] }}"></td>
8b5845ff 78
5679dfd0
DL
79</tr>
80{% endfor %}
81
82</table>
be2bf515
DL
83<p class="bouton" onclick="ajoutelignes()">Cliquer ici pour ajouter des lignes</p>
84
ca61f310 85<!-- Préférences du graphique -->
be2bf515
DL
86<h3>Préférences du graphique</h3>
87<div class="bouton" onclick="affiche_cache('pref_graphique',this)">Afficher</div>
88
89<ul id="pref_graphique">
8b5845ff
DL
90
91 <li><label>Tracer les courbes vides (s'il n'y a pas de données)&nbsp;:</label> <input type="checkbox" name="tracevide" {% if valform.tracevide == 'oui' %} checked{% endif %}></li>
915e90bb
DL
92 <li><label>Type de courbe&nbsp;:</label> <label><input type="radio" name="typecourbe" value="P"
93 {% if valform.typecourbe == "P" or valform.typecourbe is not defined %} checked {% endif %}> Percentiles</label> | <label><input type="radio" name="typecourbe" value="Z"
94 {% if valform.typecourbe == "Z" %} checked {% endif %}> Moyenne et écarts-type</label></li>
95 <li><label>Grille&nbsp;: <input type="checkbox" name="grille" {%if valform.grille == "oui" or valform.grille is not defined %} checked {% endif %}></label></li>
96 <li><label>Unité&nbsp;:
be2bf515 97 <select name="unite">
8b5845ff 98 <option value="" {% if valform.unite == "" or valform.unite is not defined %} selected {%endif %}>Par défaut</option>
be2bf515
DL
99 {% for unite in ['jours','semaines','mois','années'] %}
100 <option value="{{ unite }}"{% if valform.unite == unite %} selected {% endif %} >{{ unite }}</option>
101 {% endfor %}
915e90bb 102 </select></label></li>
fd69b6b5 103 <li><label>valeur maximum du graphique (facultatif, syntaxe similaire à l'âge) </label><input type="text" name="maxi" value="{{ valform.maxi }}"></li>
c2fe511b 104
8b5845ff 105 <li><label>Même échelle sur tous les graphiques&nbsp;: </label><input type="checkbox" name="memechelle" {% if valform.memechelle == 'oui' %} checked{% endif %}></li>
cf0d4c8c
DL
106 <li><label>Grille améliorée&nbsp;:</label><input type="checkbox" name="grilleamelio" {% if valform.grilleamelio == 'oui' %} checked{% endif %}></li>
107
be2bf515
DL
108 <li>Dimensions du graphique&nbsp;: <label>largeur&nbsp;: </label><input type="text" name="largeur" value="{{ valform.largeur }}">
109 <label>hauteur&nbsp;: </label><input type="text" name="hauteur" value="{{ valform.hauteur }}"></li>
915e90bb
DL
110 <li><label>Légende&nbsp;: <input type="checkbox" name="legende" {% if valform.legende == 'oui' %} checked{% endif %}> </label>
111<label>Position&nbsp;: <select name="positionlegende">
be2bf515
DL
112{%for (pos,posnom) in [('upper left','Haut gauche'),('upper right','Haut Droite'),('lower left','Bas gauche'),('lower right','Bas droite')] %}
113<option value="{{ pos }}">{{ posnom }}</option>
114{% endfor %}
915e90bb 115</select></label>
be2bf515 116 </li>
c2fe511b 117
915e90bb 118 <li>Couleur courbe du bas <input type="color" name="couleur_courbe1" value="{{ valform.couleurs.courbe1 }}"> | Couleur courbe du milieu <input type="color" name="couleur_courbe2" value="{{ valform.couleurs.courbe2 }}"> | Couleur courbe du haut <input type="color" name="couleur_courbe3" value="{{ valform.couleurs.courbe3 }}"> </li>
38b5e10a 119 <li>Couleur du fond <input type="color" name="couleur_fond" value="{{ valform.couleurs.fond }}"> | Couleur de la grille <input type="color" name="couleur_grille" value="{{ valform.couleurs.grille }}"> | Couleur des axes et du texte <input type="color" name="couleur_cadretxt" value="{{ valform.couleurs.cadretxt }}"> | Couleur de la courbe de l'enfant <input type="color" name="couleur_courbeenfant" value="{{ valform.couleurs.courbeenfant }}"></li>
ca61f310
DL
120 <li>Symbole pour les points de la courbe :
121 <select name="symbole">
122 {% for symb in CONFIG.liste_symboles %}
123 <option value="{{ symb }}" {% if valform.symbole==symb %} selected{% endif %}>{{CONFIG.liste_symboles[symb] | safe}}</option>
124 {% endfor %}
125 </select>
126 </li>
be2bf515
DL
127</ul>
128
129
cf0d4c8c
DL
130<!-- Section calculs/Extrapolation !-->
131
132<h3>Extrapolation</h3>
133<div class="bouton" onclick="affiche_cache('extra',this)">Afficher</div>
134
ca61f310
DL
135<div id="extra">
136<ul>
cf0d4c8c
DL
137 <li>Calculer le prolongement de la courbe à partir des <input type="text" name="nbextradata" size="4" value="1"> dernières données (mettre 0 pour "toutes").</li>
138 <li><input type="checkbox" name="prolongercourbes">Tracer l'extrapolation sur le graphique.</li>
3d7da80a 139
cf0d4c8c
DL
140 <li>Calculer <select name="calculextradata_type">
141 <option value="">Choisir la donnée</option>
142 {% for val in CONFIG.liste_typedonnees %}
143 <option value="{{val}}">{{val}}</option>
144 {% endfor %}
3d7da80a
DL
145 </select> à l'âge <input type="text" name="calculextradata_age" value="6m">
146 <input type="checkbox" name="calculextradata_trace"> ... et le voir sur le graphique.</li>
147
cf0d4c8c
DL
148 <li>Calculer l'âge auquel l'enfant aura <input type="text" name="calculextratemps_val">
149 <select name="calculextratemps_type">
150 <option value="">Choisir la donnée</option>
151 {% for val in CONFIG.liste_typedonnees %}
152 <option value="{{val}}">{{ CONFIG.unites_typedonnees[val]}} ({{val}})</option>
153 {% endfor %}
3d7da80a
DL
154 </select>
155 <input type="checkbox" name="calculextratemps_trace"> ... et le voir sur le graphique.</li>
cf0d4c8c
DL
156
157</ul>
2fce97ea 158<p>Les résultats de calculs seront affichés en-dessous des courbes.</p>
ca61f310
DL
159</div>
160
161<h3>Courbes multiples</h3>
162<div class="bouton" onclick="affiche_cache('multi',this)">Afficher</div>
163
164<div id="multi">
165 <p>Si vous souhaitez tracer sur le même graphique les courbes de différents enfants, c'est ici. Il faut importer le fichier de données additionnel de l'autre enfant (ou des autres enfants). Seul le nom de l'enfant et ses données seront utilisés, les autres paramètres (courbe de référence suivant le sexe, maximum du graphique, ...) seront ceux de l'enfant «&nbsp;principal&nbsp;».</p>
166 <ul>
167 {% for numero_enfant in (2, 3, 4, 5, 6, 7, 8, 9, 10) %}
38b5e10a
DL
168 <li {% if numero_enfant>4 %} class="enfants_cache_def"{% endif %}><input type="file" name="fichier_donnees_{{ numero_enfant }}" id="fichier_donnees_{{ numero_enfant }}"> <span class="bouton petit" onclick="vide_champ('fichier_donnees_{{ numero_enfant }}')">Enlever ce fichier</span> |
169 Symbole&nbsp;: <select name="symbole_donnees_{{ numero_enfant }}">
ca61f310
DL
170 {% for symb in CONFIG.liste_symboles %}
171 <option value="{{ symb }}" {% if numero_enfant == loop.index %} selected{% endif %}>{{ CONFIG.liste_symboles[symb] | safe}}</option>
172 {% endfor %}
38b5e10a
DL
173 </select> |
174 Couleur&nbsp;: <input type="color" name="couleur_donnees_{{ numero_enfant }}" value="{{ valform.couleurs.cadretxt }}">
175 </li>
ca61f310
DL
176 {% endfor %}
177 </ul>
178 <p class="bouton" onclick="revele_enfants()" id="reveleenfants">Plus d'enfants O_o</p>
179</div>
180
2fce97ea 181
ca61f310 182</form> <!-- Fin du gros méga formulaire -->
cf0d4c8c 183
ca61f310 184<!-- #################################################################################### -->
fd69b6b5 185<!-- section retour -->
5679dfd0
DL
186<hr>
187
442a69cb
SC
188<div onclick="appelle_image()" class="icon_button">
189 <img src="static/icons/courbe.png">
8b5845ff 190 <span class="icon_legend">Je veux les courbes !</span>
442a69cb 191</div>
5679dfd0 192
5679dfd0 193<hr>
66a3e38c 194<div id="courbe_warnings">
ca61f310 195 <p><strong>Alerte&nbsp;:</strong> il y a eu quelques soucis lors de la génération de la (des) courbes. En voici la liste&nbsp;:</p>
be2bf515 196 <ul></ul>
66a3e38c 197</div>
a46e1269 198<div id="courbe_erreurs">
be2bf515
DL
199 <p><strong>Alerte&nbsp;:</strong> La courbe n'a pas pu être générée. Vérifiez les données saisies, ou contactez l'administratrice. Erreurs&nbsp;: </p>
200 <ul></ul>
a46e1269 201</div>
fd69b6b5
DL
202<div id="sectioncourbe">
203
8b5845ff
DL
204 <h2>Courbes</h2>
205 <div id="section_courbe_poids">
206 <img id="courbe_poids">
207
208 <div id="courbe_dl_poids" class="icon_button">
442a69cb 209 <img src="static/icons/export.png">
8b5845ff
DL
210 <span class="icon_legend">Télécharger la courbe de poids</span>
211 </div>
fd69b6b5 212 </div>
8b5845ff
DL
213
214 <div id="section_courbe_taille">
215 <img id="courbe_taille">
216
217 <div id="courbe_dl_taille" class="icon_button">
218 <img src="static/icons/export.png">
219 <span class="icon_legend">Télécharger la courbe de taille</span>
220 </div>
221 </div>
222
fd69b6b5
DL
223</div>
224
cf0d4c8c
DL
225<div id="section_extradonnees">
226 <h2>Calculs sur les courbes</h2>
227 <ul id="extradata">
228
229 </ul>
230</div>
231
5679dfd0
DL
232
233<div id="sectionexport">
be2bf515
DL
234 <h2>Export des données</h2>
235 <p>Vous pouvez télécharger les données afin de ne pas avoir à les re-saisir la prochaine fois.</p>
5679dfd0 236
442a69cb
SC
237 <div id="export_dl" class="icon_button">
238 <img src="static/icons/export.png">
239 <span class="icon_legend">Télécharger les données</span>
240 </div>
be2bf515
DL
241 <p>Si vous n'arrivez pas à télécharger les données, <a href='#export' onclick="affiche_export()">cliquez ici</a> pour les voir en texte clair&nbsp;: il vous suffira de les copier/coller dans un fichier texte.</p>
242 <textarea readonly id="export">
243 </textarea>
5679dfd0
DL
244
245</div>
246
247{% endblock %}