diff options
Diffstat (limited to 'app.py')
-rw-r--r-- | app.py | 61 |
1 files changed, 34 insertions, 27 deletions
@@ -7,7 +7,7 @@ import matplotlib.pyplot as plt | |||
7 | import base64 | 7 | import base64 |
8 | from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas | 8 | from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas |
9 | 9 | ||
10 | from configuration import config_init | 10 | from configuration import config_init,CONFIG |
11 | from gestion_erreurs import * | 11 | from gestion_erreurs import * |
12 | from gestion_donnees import * | 12 | from gestion_donnees import * |
13 | from gestion_unites import * | 13 | from 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") |