]>
Commit | Line | Data |
---|---|---|
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 SC |
17 | </label> |
18 | <input type="file" name="fichier_donnees" id="fichier_donnees" oninput="upload_file()"> | |
5679dfd0 | 19 | </form> |
be2bf515 | 20 | </div> |
5679dfd0 DL |
21 | |
22 | <form id="donnees_enfant"> | |
23 | ||
d03279e7 | 24 | <!-- saisie des données --> |
61020126 DL |
25 | |
26 | <h3>Informations sur l'enfant</h3> | |
442a69cb SC |
27 | <div> |
28 | <label for="reset_donnees" class="icon_button"> | |
29 | <img src="static/icons/trash.png"> | |
30 | <span class="icon_legend">Effacer les données du formulaire</span> | |
31 | </label> | |
30158504 | 32 | <input type="reset" id="reset_donnees" value="Effacer les données du formulaire"> |
be2bf515 | 33 | </div> |
5679dfd0 | 34 | <ul> |
be2bf515 | 35 | <li><label>Nom de l'enfant :</label> <input type="text" name="nom" value="{{ valform.nom }}"></li> |
915e90bb DL |
36 | <li><label>Sexe :</label> <label><input type="radio" name="sexe" value="F" {%if valform.sexe == "F" %}checked{% endif %}> féminin </label> |
37 | | <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 |
38 | <li><label>Date de naissance : </label> <input type="date" name="naissance" value="{{ valform.naissance }}"> |
39 | <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 |
40 | <li>Prématuré ? <span class="petit">(expérimental)</span> <span class="bouton" onclick="affiche_cache('prema',this)">Afficher</span> |
41 | <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 | 42 | <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 | 43 | </div></li> |
b5ac625b | 44 | |
5679dfd0 DL |
45 | </ul> |
46 | ||
47 | ||
5679dfd0 DL |
48 | |
49 | ||
50 | ||
cf0d4c8c | 51 | <h3>Saisir les données</h3> |
d5687a7f | 52 | <p><span id="bouton_afficher_donneesplus" class="bouton" onclick="affiche_cache_classe('donneesplus')">Afficher</span> la saisie des tailles.</p> |
be2bf515 | 53 | <p>Syntaxe pour l'âge : 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> |
66a3e38c | 54 | <p>Saisir le poids en kilogrammes (par exemple "2.62" ou "2,62" pour 2 kilogrammes et 620 grammes).</p> |
2c023f1a | 55 | <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 |
56 | <p>Il faut saisir la date ou l'âge. Si les deux sont saisis, seul l'âge comptera.</p> |
57 | ||
2c023f1a | 58 | <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 |
59 | |
60 | <table id="donneespoids"> | |
2c023f1a | 61 | <tr><th>Âge</th><th>Date</th><th>Poids (kg)</th><th class="donneesplus">Taille (cm) </th></tr> |
5679dfd0 DL |
62 | |
63 | {% for i in range(valform.nb_data) %} | |
64 | <tr><td> | |
65 | <input type="text" name="age_{{ i }}" value="{{ valform['age_'~i] }}"> | |
66 | </td><td><input type="date" name="date_{{ i }}"></td> | |
67 | <td><input type="text" name="poids_{{ i }}" value="{{ valform['poids_'~i] }}"></td> | |
2c023f1a | 68 | <td class="donneesplus"><input type="text" name="taille_{{ i }}" value="{{ valform['taille_'~i] }}"></td> |
8b5845ff | 69 | |
5679dfd0 DL |
70 | </tr> |
71 | {% endfor %} | |
72 | ||
73 | </table> | |
be2bf515 DL |
74 | <p class="bouton" onclick="ajoutelignes()">Cliquer ici pour ajouter des lignes</p> |
75 | ||
76 | ||
77 | ||
78 | <h3>Préférences du graphique</h3> | |
79 | <div class="bouton" onclick="affiche_cache('pref_graphique',this)">Afficher</div> | |
80 | ||
81 | <ul id="pref_graphique"> | |
8b5845ff DL |
82 | |
83 | <li><label>Tracer les courbes vides (s'il n'y a pas de données) :</label> <input type="checkbox" name="tracevide" {% if valform.tracevide == 'oui' %} checked{% endif %}></li> | |
915e90bb DL |
84 | <li><label>Type de courbe :</label> <label><input type="radio" name="typecourbe" value="P" |
85 | {% if valform.typecourbe == "P" or valform.typecourbe is not defined %} checked {% endif %}> Percentiles</label> | <label><input type="radio" name="typecourbe" value="Z" | |
86 | {% if valform.typecourbe == "Z" %} checked {% endif %}> Moyenne et écarts-type</label></li> | |
87 | <li><label>Grille : <input type="checkbox" name="grille" {%if valform.grille == "oui" or valform.grille is not defined %} checked {% endif %}></label></li> | |
88 | <li><label>Unité : | |
be2bf515 | 89 | <select name="unite"> |
8b5845ff | 90 | <option value="" {% if valform.unite == "" or valform.unite is not defined %} selected {%endif %}>Par défaut</option> |
be2bf515 DL |
91 | {% for unite in ['jours','semaines','mois','années'] %} |
92 | <option value="{{ unite }}"{% if valform.unite == unite %} selected {% endif %} >{{ unite }}</option> | |
93 | {% endfor %} | |
915e90bb | 94 | </select></label></li> |
fd69b6b5 | 95 | <li><label>valeur maximum du graphique (facultatif, syntaxe similaire à l'âge) </label><input type="text" name="maxi" value="{{ valform.maxi }}"></li> |
c2fe511b | 96 | |
8b5845ff | 97 | <li><label>Même échelle sur tous les graphiques : </label><input type="checkbox" name="memechelle" {% if valform.memechelle == 'oui' %} checked{% endif %}></li> |
cf0d4c8c DL |
98 | <li><label>Grille améliorée :</label><input type="checkbox" name="grilleamelio" {% if valform.grilleamelio == 'oui' %} checked{% endif %}></li> |
99 | ||
be2bf515 DL |
100 | <li>Dimensions du graphique : <label>largeur : </label><input type="text" name="largeur" value="{{ valform.largeur }}"> |
101 | <label>hauteur : </label><input type="text" name="hauteur" value="{{ valform.hauteur }}"></li> | |
915e90bb DL |
102 | <li><label>Légende : <input type="checkbox" name="legende" {% if valform.legende == 'oui' %} checked{% endif %}> </label> |
103 | <label>Position : <select name="positionlegende"> | |
be2bf515 DL |
104 | {%for (pos,posnom) in [('upper left','Haut gauche'),('upper right','Haut Droite'),('lower left','Bas gauche'),('lower right','Bas droite')] %} |
105 | <option value="{{ pos }}">{{ posnom }}</option> | |
106 | {% endfor %} | |
915e90bb | 107 | </select></label> |
be2bf515 | 108 | </li> |
c2fe511b | 109 | |
915e90bb DL |
110 | <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> |
111 | <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, texte et courbe <input type="color" name="couleur_cadretxt" value="{{ valform.couleurs.cadretxt }}"></li> | |
be2bf515 DL |
112 | </ul> |
113 | ||
114 | ||
cf0d4c8c DL |
115 | |
116 | <!-- Section calculs/Extrapolation !--> | |
117 | ||
118 | <h3>Extrapolation</h3> | |
119 | <div class="bouton" onclick="affiche_cache('extra',this)">Afficher</div> | |
120 | ||
121 | <ul id="extra"> | |
122 | <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> | |
123 | <li><input type="checkbox" name="prolongercourbes">Tracer l'extrapolation sur le graphique.</li> | |
124 | <li>Calculer <select name="calculextradata_type"> | |
125 | <option value="">Choisir la donnée</option> | |
126 | {% for val in CONFIG.liste_typedonnees %} | |
127 | <option value="{{val}}">{{val}}</option> | |
128 | {% endfor %} | |
129 | </select> à l'âge <input type="text" name="calculextradata_age" value="6m"></li> | |
130 | <li>Calculer l'âge auquel l'enfant aura <input type="text" name="calculextratemps_val"> | |
131 | <select name="calculextratemps_type"> | |
132 | <option value="">Choisir la donnée</option> | |
133 | {% for val in CONFIG.liste_typedonnees %} | |
134 | <option value="{{val}}">{{ CONFIG.unites_typedonnees[val]}} ({{val}})</option> | |
135 | {% endfor %} | |
136 | </select></li> | |
137 | ||
138 | </ul> | |
139 | ||
140 | ||
5679dfd0 | 141 | </form> |
fd69b6b5 | 142 | <!-- section retour --> |
5679dfd0 DL |
143 | <hr> |
144 | ||
442a69cb SC |
145 | <div onclick="appelle_image()" class="icon_button"> |
146 | <img src="static/icons/courbe.png"> | |
8b5845ff | 147 | <span class="icon_legend">Je veux les courbes !</span> |
442a69cb | 148 | </div> |
5679dfd0 | 149 | |
5679dfd0 | 150 | <hr> |
66a3e38c | 151 | <div id="courbe_warnings"> |
be2bf515 DL |
152 | <p><strong>Alerte :</strong> la courbe a eu quelques soucis à se générer. Voici la liste des erreurs.</p> |
153 | <ul></ul> | |
66a3e38c | 154 | </div> |
a46e1269 | 155 | <div id="courbe_erreurs"> |
be2bf515 DL |
156 | <p><strong>Alerte :</strong> La courbe n'a pas pu être générée. Vérifiez les données saisies, ou contactez l'administratrice. Erreurs : </p> |
157 | <ul></ul> | |
a46e1269 | 158 | </div> |
fd69b6b5 DL |
159 | <div id="sectioncourbe"> |
160 | ||
8b5845ff DL |
161 | <h2>Courbes</h2> |
162 | <div id="section_courbe_poids"> | |
163 | <img id="courbe_poids"> | |
164 | ||
165 | <div id="courbe_dl_poids" class="icon_button"> | |
442a69cb | 166 | <img src="static/icons/export.png"> |
8b5845ff DL |
167 | <span class="icon_legend">Télécharger la courbe de poids</span> |
168 | </div> | |
fd69b6b5 | 169 | </div> |
8b5845ff DL |
170 | |
171 | <div id="section_courbe_taille"> | |
172 | <img id="courbe_taille"> | |
173 | ||
174 | <div id="courbe_dl_taille" class="icon_button"> | |
175 | <img src="static/icons/export.png"> | |
176 | <span class="icon_legend">Télécharger la courbe de taille</span> | |
177 | </div> | |
178 | </div> | |
179 | ||
fd69b6b5 DL |
180 | </div> |
181 | ||
cf0d4c8c DL |
182 | <div id="section_extradonnees"> |
183 | <h2>Calculs sur les courbes</h2> | |
184 | <ul id="extradata"> | |
185 | ||
186 | </ul> | |
187 | </div> | |
188 | ||
5679dfd0 DL |
189 | |
190 | <div id="sectionexport"> | |
be2bf515 DL |
191 | <h2>Export des données</h2> |
192 | <p>Vous pouvez télécharger les données afin de ne pas avoir à les re-saisir la prochaine fois.</p> | |
5679dfd0 | 193 | |
442a69cb SC |
194 | <div id="export_dl" class="icon_button"> |
195 | <img src="static/icons/export.png"> | |
196 | <span class="icon_legend">Télécharger les données</span> | |
197 | </div> | |
be2bf515 DL |
198 | <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 : il vous suffira de les copier/coller dans un fichier texte.</p> |
199 | <textarea readonly id="export"> | |
200 | </textarea> | |
5679dfd0 DL |
201 | |
202 | </div> | |
203 | ||
204 | {% endblock %} |