# noter le nom de l'enfant pour l'export
nomenfant = simplifie_nom(config['nom'])
- #warning(str(config),liste_err)
-
# créer la figure
try:
fig = cree_figure(config,l_jours,l_poids,liste_err)
- #warning("Jusque là ça va, on a créé la figure",liste_err)
result = "success"
output = io.BytesIO()
- #warning("Là ça va",liste_err)
- #warning("Jusque là ça va",liste_err)
FigureCanvas(fig).print_png(output)
plt.close(fig)
"export_txt": texte,
"nomenfant": nomenfant})
return reponse
- #return flask.Response(base64.b64encode(output.getvalue()), mimetype='text/plain')
+
elif ext == "png" and result == "success":
return flask.Response(output.getvalue(), mimetype='image/png')
elif ext == "png":
## Maxi et mini de "sécurité"
# jours maxi et mini
-jours_maxi_courbe = 5.5*CONFIG["jours_dans_annee"]
CONFIG["jours_maxi_courbe"] = 5.5*CONFIG["jours_dans_annee"]
-jours_mini_courbe = 10
CONFIG["jours_mini_courbe"] = 10
+CONFIG["jours_defaut_donneesvides"]= 6*CONFIG["jours_dans_mois"] # si données vides, 6 mois
jours_defaut_donneesvides = 6*CONFIG["jours_dans_mois"]
# poids max (protection)
poids_maxi = 80
import unidecode
import copy
+### Les données "tournent" selon :
+### python -> json -> (export/import) -> formulaire HTML -> données POST -> python etc
############ Fonctions de conversion
if not(positionlegende in ['upper left','upper right','lower left','lower right']):
positionlegende = "upper left"
configuration["positionlegende"] = positionlegende
-
- #warning("bla"+data["couleur1"],liste_err)
-# coul1 = rgb_vers_tuple(data.get("couleur1",""),couleur_defaut_1_tuple,liste_err)
-# coul2 = rgb_vers_tuple(data.get("couleur2",""),couleur_defaut_2_tuple,liste_err)
-# coul3 = rgb_vers_tuple(data.get("couleur3",""),couleur_defaut_3_tuple,liste_err)
-# #warning("bla2"+str(coul1),liste_err)
-# configuration["couleur1"] = coul1
-# configuration["couleur2"] = coul2
-# configuration["couleur3"] = coul3
+
configuration["couleurs"] = {}
# gérer les couleurs
- #warning("data : "+str(data),liste_err)
for clecouleur in DEFAUT["couleurs"]:
coul = rgb_vers_tuple(data.get("couleur_"+clecouleur,""),CONFIG["couleurs"][clecouleur],liste_err)
configuration["couleurs"][clecouleur] = coul
- #warning("config : "+str(configuration["couleurs"]),liste_err)
- # couleur de fond
-# coul_fond = rgb_vers_tuple(data.get("couleur_fond",""),couleur_defaut_fond_tuple,liste_err)
-# configuration["couleur_fond"] = coul_fond
-#
-# # couleur d'axes et de texte
-# coul_cadretxt = rgb_vers_tuple(data.get("couleur_cadretxt",""),couleur_defaut_cadretxt_tuple,liste_err)
-# configuration["couleur_cadretxt"] = coul_cadretxt
-#
-# # couleur de la grille
-# coul_grille = rgb_vers_tuple(data.get("couleur_grille",""),couleur_defaut_grille_tuple,liste_err)
-# configuration["couleur_grille"] = coul_grille
- #warning(str(configuration["couleur1"]),liste_err)
return configuration
## Gestion des erreurs en flask
-niveau_debug = False
+niveau_debug = True
def initialise_erreurs():
print("** Warning : "+message)
listeerreurs[1].append(message)
-def debug(message):
+def debug(message,liste_erreurs):
if niveau_debug:
print("##Debug : "+message)
+ liste_erreurs[1].append("# Debug : "+message)
max-width: 20vw;
}
-
+img#courbe {
+ max-width: 100%
+}
#sectioncourbe {
display: none;
width: 25em;
height: 20em;
display:none;
+ max-width: 100%
}
#courbe_warnings {
}
#import_donnees input {
- opacity: 0;
- position: absolute;
- z-index: -1;
+ display: none;
}
.bouton {
<link rel="stylesheet" href="static/style.css" type="text/css">
<script src="static/requetes.js"></script>
<script src="static/outilspage.js"></script>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<form id="donnees_enfant">
+
+
+<h3>Informations sur l'enfant</h3>
<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>
import matplotlib.pyplot as plt
def cree_figure(conf,l_jours,l_poids,liste_err):
- #warning("debut de cree_figure"+str(conf),liste_err)
try:
liste_data_labels_p,liste_data_labels_z = renvoie_liste_labels(conf,liste_data_choisie_p,liste_data_choisie_z,liste_err)
except:
erreur("bug avec liste data labels",liste_err)
return ""
- #warning("bla",liste_err)
if conf["maxi"] ==0:
if l_jours != []:
jour_maxi = max(l_jours)# pas la peine d'aller très au delà du jour max
jour_maxi = int(jour_maxi* 1.1)+3 # on rajoute un peu
else:
- jour_maxi = int(6*jours_dans_mois) # si pas de données, arbitrairement on met ça
+ jour_maxi = CONFIG["jours_defaut_donneesvides"] # si pas de données, arbitrairement on met ça
else:
jour_maxi = conf["maxi"]+1
# On s'assure que c'est bien compris dans les bornes
- #warning("bla"+str(jour_maxi),liste_err)
jour_maxi = max(CONFIG["jours_mini_courbe"],min(jour_maxi,CONFIG["jours_maxi_courbe"]))
- #warning("bla"+str(jour_maxi),liste_err)
if conf["unite"] == "":
conf["unite"] = choix_unite(jour_maxi)
titre = "Courbe de poids OMS"
- #warning("cree_figure : ça va jusque là ",liste_err)
- #warning("bli"+str(conf),liste_err)
- #warninf("coucou")
if conf["typecourbe"] == "P":
# percentiles