summaryrefslogtreecommitdiff
path: root/app.py
diff options
context:
space:
mode:
Diffstat (limited to 'app.py')
-rw-r--r--app.py61
1 files changed, 34 insertions, 27 deletions
diff --git a/app.py b/app.py
index 5e62e10..3f4da5c 100644
--- a/app.py
+++ b/app.py
@@ -7,7 +7,7 @@ import matplotlib.pyplot as plt
7import base64 7import base64
8from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas 8from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
9 9
10from configuration import config_init 10from configuration import config_init,CONFIG
11from gestion_erreurs import * 11from gestion_erreurs import *
12from gestion_donnees import * 12from gestion_donnees import *
13from gestion_unites import * 13from gestion_unites import *
@@ -44,46 +44,53 @@ def courbe_image(ext):
44 liste_err = initialise_erreurs() 44 liste_err = initialise_erreurs()
45 data = flask.request.form 45 data = flask.request.form
46 46
47 # Régler la configuration et les données 47 # récupérer les données du formulaire proprement
48 config = gere_configuration(data,liste_err) 48 config,listes_jours,listes_donnees = web_vers_python(data,liste_err)
49 l_jours,l_poids = gere_donneespoids(data,config["naissance"],liste_err) 49 debug(" * On a récupéré et traité les données du formulaire web",liste_err)
50
51
52 50
53 texte = donnees_vers_json(l_jours,l_poids,config) 51 texte = donnees_vers_json(listes_jours["poids"],listes_donnees["poids"],listes_jours["taille"],listes_donnees["taille"], config)
52
53 debug("texte prêt à être exporté : "+texte,liste_err)
54 54
55 # noter le nom de l'enfant pour l'export 55 # noter le nom de l'enfant pour l'export
56 nomenfant = simplifie_nom(config['nom']) 56 nomenfant = simplifie_nom(config['nom'])
57 57
58 # créer la figure 58 # créer les figures
59 try: 59 try:
60 fig = cree_figure(config,l_jours,l_poids,liste_err) 60 debug("création des figures...",liste_err)
61 textes_images = {}
62 for typed in CONFIG["liste_typedonnees"]:
63 if config["tracevide"] == "oui" or listes_jours[typed] != []:
64 debug("On trace la courbe de "+typed,liste_err)
65 fig = cree_figure(config,listes_jours[typed],listes_donnees[typed],typed,liste_err)
66 output = io.BytesIO()
67 FigureCanvas(fig).print_png(output)
68 plt.close(fig)
69 textes_images[typed] = base64.b64encode(output.getvalue()).decode("ascii")
70 else:
71 textes_images[typed] = ""
72
61 result = "success" 73 result = "success"
62 output = io.BytesIO()
63 FigureCanvas(fig).print_png(output)
64
65 plt.close(fig)
66 except: 74 except:
67 result = "fail" 75 result = "fail"
68 liste_err[0].append("Impossible de générer la courbe ! Config : "+str(config)) 76 liste_err[0].append("Impossible de générer les courbes ! Config : "+str(config))
69 77
70 78
71 if ext == "b64": 79 if ext == "b64":
80 reponse = { "result":result,
81 "export_txt": texte,
82 "nomenfant": nomenfant}
72 if result == "success": 83 if result == "success":
73 reponse = flask.jsonify({ "result":result, 84 reponse["messages"] = liste_err[0]
74 "messages": liste_err[1],
75 "image": base64.b64encode(output.getvalue()).decode("ascii"),
76 "export_txt": texte,
77 "nomenfant": nomenfant})
78 else: 85 else:
79 reponse = flask.jsonify({ "result":result, 86 reponse["messages"] = liste_err[2]+liste_err[1]+liste_err[0]
80 "messages": liste_err[2]+liste_err[1]+liste_err[0], 87
81 "image": "", 88 for typed in CONFIG["liste_typedonnees"]:
82 "export_txt": texte, 89 reponse["image_"+typed] = textes_images.get(typed,"")
83 "nomenfant": nomenfant}) 90
84 return reponse 91 return flask.jsonify(reponse)
85 92 elif ext == "png" and result == "success": # à voir cette partie car il faudrait voir ce qu'on y renvoie... vu
86 elif ext == "png" and result == "success": 93 # qu'il n'y a plus une courbe mais plusieurs. Là ça renverra la dernière générée.
87 return flask.Response(output.getvalue(), mimetype='image/png') 94 return flask.Response(output.getvalue(), mimetype='image/png')
88 elif ext == "png": 95 elif ext == "png":
89 return flask.render_template("erreur_fatale.html",erreur="Impossible de générer la courbe") 96 return flask.render_template("erreur_fatale.html",erreur="Impossible de générer la courbe")