summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenise sur Lya <sekhmet@lya>2021-06-30 12:29:54 +0200
committerDenise sur Lya <sekhmet@lya>2021-06-30 12:29:54 +0200
commit38b5e10ae817f79fb10b6c4b8655e6d95b2885b8 (patch)
treef77aaa968d4087114823c0037b313d9416e3bd88
parentca61f310d80e05ea43efc148787f214a567743f0 (diff)
downloadoms-38b5e10ae817f79fb10b6c4b8655e6d95b2885b8.tar.gz
oms-38b5e10ae817f79fb10b6c4b8655e6d95b2885b8.tar.zst
oms-38b5e10ae817f79fb10b6c4b8655e6d95b2885b8.zip
couleur personnalisée pour les courbes
-rw-r--r--app.py7
-rw-r--r--configuration.py3
-rw-r--r--data/changelog_data.txt3
-rw-r--r--gestion_donnees.py5
-rw-r--r--templates/index.html11
-rw-r--r--trace_courbe.py10
6 files changed, 24 insertions, 15 deletions
diff --git a/app.py b/app.py
index a803d90..206af47 100644
--- a/app.py
+++ b/app.py
@@ -10,6 +10,7 @@ from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
10from configuration import config_init,CONFIG 10from configuration import config_init,CONFIG
11from gestion_erreurs import initialise_erreurs, debug, niveau_debug, warning 11from gestion_erreurs import initialise_erreurs, debug, niveau_debug, warning
12import gestion_donnees as donnees 12import gestion_donnees as donnees
13import gestion_couleurs as couleurs
13from trace_courbe import cree_figure 14from trace_courbe import cree_figure
14import faq as f 15import faq as f
15 16
@@ -69,10 +70,10 @@ def courbe_image(ext):
69 #debug("Form 2 : "+str(formulaire_2), liste_err) 70 #debug("Form 2 : "+str(formulaire_2), liste_err)
70 # Récupérer sous forme python 71 # Récupérer sous forme python
71 conf2, ljours2, listes_donnees2 = donnees.web_vers_python(formulaire_2,liste_err, court=True) 72 conf2, ljours2, listes_donnees2 = donnees.web_vers_python(formulaire_2,liste_err, court=True)
72 # Et le symbole 73 # Le symbole et la couleur
73 symb2 = donnees.gere_symbole(data.get("symbole_donnees_"+str(i))) 74 symb2 = donnees.gere_symbole(data.get("symbole_donnees_"+str(i)))
74 75 coul2 = couleurs.rgb_vers_tuple(data.get("couleur_donnees_"+str(i),""),CONFIG["couleurs"]["cadretxt"],liste_err)
75 enfant2 = donnees.eclate_donnees_additionnelles(conf2, ljours2, listes_donnees2, symb2) 76 enfant2 = donnees.eclate_donnees_additionnelles(conf2, ljours2, listes_donnees2, symb2, coul2)
76 enfants_add.append(enfant2) 77 enfants_add.append(enfant2)
77 78
78 79
diff --git a/configuration.py b/configuration.py
index 75088fe..fc573ba 100644
--- a/configuration.py
+++ b/configuration.py
@@ -16,7 +16,7 @@ CONFIG["extradata"] = ["calculextradata", "calculextratemps"]
16 16
17# Liste des symboles autorisés pour les enfants (matplotlib). 17# Liste des symboles autorisés pour les enfants (matplotlib).
18# Sous forme "item: description" 18# Sous forme "item: description"
19CONFIG["liste_symboles"] = {"o": "&#x25CF;", "^": "&#x25B2;", "v": "&#x25BC;", "<": "&#x25C0;", ">": "&#x25B6;", "s": "&#x25A0;", "p": "&#11039;", "P": "&#x2795;", "x": "&times", "D": "&#x25C6;" } 19CONFIG["liste_symboles"] = {"o": "&#x25CF;", "^": "&#x25B2;", "v": "&#x25BC;", "<": "&#x25C0;", ">": "&#x25B6;", "s": "&#x25A0;", "p": "&#11039;", "P": "&#x2795;", "x": "&times;", "D": "&#x25C6;", '$\u2665$':"&#x2665;" }
20 20
21 21
22# fichiers 22# fichiers
@@ -112,6 +112,7 @@ DEFAUT["couleurs"]["courbe2"] = "#00FF00" # vert
112DEFAUT["couleurs"]["courbe3"] = "#FF0000" # rouge 112DEFAUT["couleurs"]["courbe3"] = "#FF0000" # rouge
113DEFAUT["couleurs"]["fond"]= "#FFFFFF" # blanc 113DEFAUT["couleurs"]["fond"]= "#FFFFFF" # blanc
114DEFAUT["couleurs"]["cadretxt"] = "#000000" # noir 114DEFAUT["couleurs"]["cadretxt"] = "#000000" # noir
115DEFAUT["couleurs"]["courbeenfant"] = "#000000" # noir
115DEFAUT["couleurs"]["grille"] = "#7f7f7f" # gris 116DEFAUT["couleurs"]["grille"] = "#7f7f7f" # gris
116 117
117DEFAUT["symbole"] = "o" # Symbole par défaut 118DEFAUT["symbole"] = "o" # Symbole par défaut
diff --git a/data/changelog_data.txt b/data/changelog_data.txt
index 5726bce..5c50ff7 100644
--- a/data/changelog_data.txt
+++ b/data/changelog_data.txt
@@ -1,8 +1,9 @@
1"Version 2.4","29/06/2021","<p>Plus de courbes ! 1"Version 2.4","29/06/2021","<p>Plus de courbes !
2<ul> 2<ul>
3<li>Pour la courbe, on peut choisir sa couleur et son symbole (demandez-moi des symboles !)</li>
3<li>Les données et la configuration sont celles de l'enfant qu'on a saisi en ""principal""</li> 4<li>Les données et la configuration sont celles de l'enfant qu'on a saisi en ""principal""</li>
4<li>Pour les enfants en plus, il faut déjà avoir le fichier de données déjà généré.</li> 5<li>Pour les enfants en plus, il faut déjà avoir le fichier de données déjà généré.</li>
5<li>On peut choisir ses symboles pour la courbe ""principale"" ainsi que les autres.</li> 6<li>On choisit alors une couleur et un symbole pour ces courbes additionnels</li>
6</ul> 7</ul>
7</p>" 8</p>"
8 9
diff --git a/gestion_donnees.py b/gestion_donnees.py
index 8fee99c..5876c5a 100644
--- a/gestion_donnees.py
+++ b/gestion_donnees.py
@@ -322,7 +322,7 @@ def gere_configuration(data,liste_err, court=False):
322 configuration["couleurs"] = {} 322 configuration["couleurs"] = {}
323 # gérer les couleurs 323 # gérer les couleurs
324 for clecouleur in DEFAUT["couleurs"]: 324 for clecouleur in DEFAUT["couleurs"]:
325 coul = rgb_vers_tuple(data.get("couleur_"+clecouleur,""),CONFIG["couleurs"][clecouleur],liste_err) 325 coul = rgb_vers_tuple(data.get("couleur_"+clecouleur,""),DEFAUT["couleurs"].get(clecouleur, ""),liste_err)
326 configuration["couleurs"][clecouleur] = coul 326 configuration["couleurs"][clecouleur] = coul
327 327
328 # symbole 328 # symbole
@@ -514,7 +514,7 @@ def fichier_json_vers_configdonnees(chaine,liste_err):
514 514
515 515
516#### Pour l'insertion d'une 2e (ou plus) courbe sur le graphique, ue fonction qui sépare tout ça 516#### Pour l'insertion d'une 2e (ou plus) courbe sur le graphique, ue fonction qui sépare tout ça
517def eclate_donnees_additionnelles(conf, ljours, ldonnees, symb): 517def eclate_donnees_additionnelles(conf, ljours, ldonnees, symb, couleur):
518 """ conf est la config (on ne garde que le nom) pour un enfant additionnel, 518 """ conf est la config (on ne garde que le nom) pour un enfant additionnel,
519 ljours et ldonnees les dictionnaires de listes contenant les données. 519 ljours et ldonnees les dictionnaires de listes contenant les données.
520 symb est le symbole choisi pour cette courbe additionnelle (déjà vérifié) 520 symb est le symbole choisi pour cette courbe additionnelle (déjà vérifié)
@@ -523,6 +523,7 @@ def eclate_donnees_additionnelles(conf, ljours, ldonnees, symb):
523 523
524 retour = {} 524 retour = {}
525 conf["symbole"] = symb # On ajoute le symbole additionnel 525 conf["symbole"] = symb # On ajoute le symbole additionnel
526 conf["couleurcourbe"] = couleur # la couleur
526 for typed in CONFIG["liste_typedonnees"]: 527 for typed in CONFIG["liste_typedonnees"]:
527 retour[typed] = (conf, ljours[typed], ldonnees[typed]) 528 retour[typed] = (conf, ljours[typed], ldonnees[typed])
528 529
diff --git a/templates/index.html b/templates/index.html
index 65754a5..be2ab48 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -107,7 +107,7 @@
107 </li> 107 </li>
108 108
109 <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> 109 <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>
110 <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> 110 <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>
111 <li>Symbole pour les points de la courbe : 111 <li>Symbole pour les points de la courbe :
112 <select name="symbole"> 112 <select name="symbole">
113 {% for symb in CONFIG.liste_symboles %} 113 {% for symb in CONFIG.liste_symboles %}
@@ -156,13 +156,14 @@
156 <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> 156 <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>
157 <ul> 157 <ul>
158 {% for numero_enfant in (2, 3, 4, 5, 6, 7, 8, 9, 10) %} 158 {% for numero_enfant in (2, 3, 4, 5, 6, 7, 8, 9, 10) %}
159 <li {% if numero_enfant>4 %} class="enfants_cache_def"{% endif %}><input type="file" name="fichier_donnees_{{ numero_enfant }}" id="fichier_donnees_{{ numero_enfant }}"> 159 <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> |
160 Symbole :<select name="symbole_donnees_{{ numero_enfant }}"> 160 Symbole&nbsp;: <select name="symbole_donnees_{{ numero_enfant }}">
161 {% for symb in CONFIG.liste_symboles %} 161 {% for symb in CONFIG.liste_symboles %}
162 <option value="{{ symb }}" {% if numero_enfant == loop.index %} selected{% endif %}>{{ CONFIG.liste_symboles[symb] | safe}}</option> 162 <option value="{{ symb }}" {% if numero_enfant == loop.index %} selected{% endif %}>{{ CONFIG.liste_symboles[symb] | safe}}</option>
163 {% endfor %} 163 {% endfor %}
164 </select> 164 </select> |
165 <span class="bouton petit" onclick="vide_champ('fichier_donnees_{{ numero_enfant }}')">Enlever ce fichier</span></li> 165 Couleur&nbsp;: <input type="color" name="couleur_donnees_{{ numero_enfant }}" value="{{ valform.couleurs.cadretxt }}">
166 </li>
166 {% endfor %} 167 {% endfor %}
167 </ul> 168 </ul>
168 <p class="bouton" onclick="revele_enfants()" id="reveleenfants">Plus d'enfants O_o</p> 169 <p class="bouton" onclick="revele_enfants()" id="reveleenfants">Plus d'enfants O_o</p>
diff --git a/trace_courbe.py b/trace_courbe.py
index 1188fc4..75382de 100644
--- a/trace_courbe.py
+++ b/trace_courbe.py
@@ -155,7 +155,8 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_extracalculs, liste_err, e
155 155
156 ### Tracé pour de bon 156 ### Tracé pour de bon
157 if l_jours != []: 157 if l_jours != []:
158 ax.plot(l_jours_conv,l_poids,label=conf["nom"],color=conf["couleurs"]["cadretxt"],marker=conf["symbole"]) 158 print(conf["symbole"])
159 ax.plot(l_jours_conv,l_poids,label=conf["nom"],color=conf["couleurs"]["courbeenfant"],marker=conf["symbole"])
159 debug("Tracé de la courbe enfant, avec les jours "+str(l_jours_conv),liste_err) 160 debug("Tracé de la courbe enfant, avec les jours "+str(l_jours_conv),liste_err)
160 161
161 162
@@ -169,10 +170,13 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_extracalculs, liste_err, e
169 # Ajouter le nom de cet enfant-là 170 # Ajouter le nom de cet enfant-là
170 listenoms.append(conf_add["nom"]) 171 listenoms.append(conf_add["nom"])
171 lj_conv = u.convertit_tableau(lj,unite,liste_err) 172 lj_conv = u.convertit_tableau(lj,unite,liste_err)
172 ax.plot(lj_conv, ld, label=conf_add["nom"], color=conf["couleurs"]["cadretxt"],marker=conf_add["symbole"]) 173 debug("Tracé de la courbe additionnelle de "+conf_add["nom"]+" config : "+str(conf_add), liste_err)
174 ax.plot(lj_conv, ld, label=conf_add["nom"], color=conf_add["couleurcourbe"],marker=conf_add["symbole"])
175 print("bla")
173 if conf["sexe"] != conf_add["sexe"]: 176 if conf["sexe"] != conf_add["sexe"]:
174 warning("Attention, tous les enfants n'ont pas le même sexe. La courbe de référence est celle de "+conf["nom"]+" et ne sera pas forcément pertinente pour les autres. Vous pouvez éventuellement essayer la courbe neutre. Remarque : cette alerte s'affichera quand même.", liste_err) 177 warning("Attention, tous les enfants n'ont pas le même sexe. La courbe de référence est celle de "+conf["nom"]+" et ne sera pas forcément pertinente pour les autres. Vous pouvez éventuellement essayer la courbe neutre. Remarque : cette alerte s'affichera quand même.", liste_err)
175 178
179
176 # Si y'a un nom on met "courbe de machin" 180 # Si y'a un nom on met "courbe de machin"
177 if listenoms != []: 181 if listenoms != []:
178 titre += " de " +", ".join(listenoms) 182 titre += " de " +", ".join(listenoms)
@@ -184,7 +188,7 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_extracalculs, liste_err, e
184 else: 188 else:
185 titre+=" (courbe en âge réel, données OMS décalées)" 189 titre+=" (courbe en âge réel, données OMS décalées)"
186 190
187 191 print("coucou")
188 #### extrapolatios éventuelles 192 #### extrapolatios éventuelles
189 # a-t-on demndé des calculs ? 193 # a-t-on demndé des calculs ?
190 jextrapole = conf["non_sauve"]["prolongercourbes"] == "oui" 194 jextrapole = conf["non_sauve"]["prolongercourbes"] == "oui"