1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
{% extends "base.html" %}
{% block contenu %}
<p>Bienvenue sur ce petit outil qui permet de tracer la courbe de poids des enfants jusqu'à 5 ans.</p>
<hr>
<h2>Données de l'enfant</h2>
<h3>Importer un fichier </h3>
<div class="bouton" onclick="affiche_cache('import_donnees',this)">Afficher</div>
<div id="import_donnees">
<form action="/" method="post" enctype="multipart/form-data">
<label for="fichier_donnees">Importer le fichier de données</label>
<input type="file" name="fichier_donnees">
<input type="submit" name="valider_fichier" value="Charger les données">
</form>
</div>
<hr>
<form id="donnees_enfant">
<div>
<input type="reset" value="Effacer les données du formulaire">
</div>
<h3>Informations sur l'enfant</h3>
<ul>
<li><label>Nom de l'enfant :</label> <input type="text" name="nom" value="{{ valform.nom }}"></li>
<li><label>Sexe :</label> <label><input type="radio" name="sexe" value="F" {%if valform.sexe == "F" %}checked{% endif %}> féminin </label>
| <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>
<li><label>Date de naissance : </label> <input type="date" name="naissance" value="{{ valform.naissance }}"></li>
</ul>
<h3>Données de poids</h3>
<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>
<p>Saisir le poids en kilogrammes (par exemple "2.62" ou "2,62" pour 2 kilogrammes et 620 grammes).</p>
<p>Il faut saisir la date ou l'âge. Si les deux sont saisis, seul l'âge comptera.</p>
<p>Si le tableau est laissé vide, cela génère une courbe "vide" de référence.</p>
<table id="donneespoids">
<tr><th>Âge</th><th>Date</th><th>Poids</th></tr>
{% for i in range(valform.nb_data) %}
<tr><td>
<input type="text" name="age_{{ i }}" value="{{ valform['age_'~i] }}">
</td><td><input type="date" name="date_{{ i }}"></td>
<td><input type="text" name="poids_{{ i }}" value="{{ valform['poids_'~i] }}"></td>
</tr>
{% endfor %}
</table>
<p class="bouton" onclick="ajoutelignes()">Cliquer ici pour ajouter des lignes</p>
<h3>Préférences du graphique</h3>
<div class="bouton" onclick="affiche_cache('pref_graphique',this)">Afficher</div>
<ul id="pref_graphique">
<li><label>Type de courbe :</label> <label><input type="radio" name="typecourbe" value="P"
{% if valform.typecourbe == "P" or valform.typecourbe is not defined %} checked {% endif %}> Percentiles</label> | <label><input type="radio" name="typecourbe" value="Z"
{% if valform.typecourbe == "Z" %} checked {% endif %}> Moyenne et écarts-type</label></li>
<li><label>Grille : <input type="checkbox" name="grille" {%if valform.grille == "oui" or valform.grille is not defined %} checked {% endif %}></label></li>
<li><label>Unité :
<select name="unite">
<option value="" {% if valform.typecourbe == "" or valform is not defined %} selected {%endif %}>Par défaut</option>
{% for unite in ['jours','semaines','mois','années'] %}
<option value="{{ unite }}"{% if valform.unite == unite %} selected {% endif %} >{{ unite }}</option>
{% endfor %}
</select></label></li>
<li><label>valeur maximum du graphique (facultatif, syntaxe similaire à l'âge) </label><input type="text" name="maxi" value="{{ valform.maxi }}"></li>
<li>Dimensions du graphique : <label>largeur : </label><input type="text" name="largeur" value="{{ valform.largeur }}">
<label>hauteur : </label><input type="text" name="hauteur" value="{{ valform.hauteur }}"></li>
<li><label>Légende : <input type="checkbox" name="legende" {% if valform.legende == 'oui' %} checked{% endif %}> </label>
<label>Position : <select name="positionlegende">
{%for (pos,posnom) in [('upper left','Haut gauche'),('upper right','Haut Droite'),('lower left','Bas gauche'),('lower right','Bas droite')] %}
<option value="{{ pos }}">{{ posnom }}</option>
{% endfor %}
</select></label>
</li>
<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>
<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>
</ul>
</form>
<!-- section retour -->
<hr>
<button onclick="appelle_image()">Je veux la courbe !</button>
<hr>
<div id="courbe_warnings">
<p><strong>Alerte :</strong> la courbe a eu quelques soucis à se générer. Voici la liste des erreurs.</p>
<ul></ul>
</div>
<div id="courbe_erreurs">
<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>
<ul></ul>
</div>
<div id="sectioncourbe">
<h2>Courbe</h2>
<img id="courbe">
<div>
<button id="courbe_dl">Télécharger la courbe</button>
</div>
</div>
<div id="sectionexport">
<h2>Export des données</h2>
<p>Vous pouvez télécharger les données afin de ne pas avoir à les re-saisir la prochaine fois.</p>
<div><button id="export_dl">Télécharger les données</button></div>
<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>
<textarea readonly id="export">
</textarea>
</div>
{% endblock %}
|