X-Git-Url: https://git.immae.eu/?p=perso%2FDenise%2Foms.git;a=blobdiff_plain;f=app.py;h=26c8a2bbbe3bd1e2dff2e5d5f6bb38d212aaeaf0;hp=c4dfc93537816a15881e4b09a437afbd431f92f2;hb=a63ef1b0c9a0d0f1a1fc606a179965f9451945a1;hpb=406dc2734a887ea04627b7dd3a7433abed0760ef diff --git a/app.py b/app.py index c4dfc93..26c8a2b 100644 --- a/app.py +++ b/app.py @@ -8,8 +8,9 @@ import base64 from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas from configuration import config_init,CONFIG -from gestion_erreurs import initialise_erreurs, debug, niveau_debug +from gestion_erreurs import initialise_erreurs, debug, niveau_debug, warning import gestion_donnees as donnees +import gestion_couleurs as couleurs from trace_courbe import cree_figure import faq as f @@ -26,8 +27,6 @@ def initialise_mode_beta(): app = flask.Flask(__name__) - - @app.route('/',methods=['POST','GET']) def index(): beta=initialise_mode_beta() @@ -35,13 +34,14 @@ def index(): val_form = config_init() if flask.request.method=="POST": if 'fichier_donnees' in flask.request.files: - ## charger les donneés dans le formulaire + ## charger les données dans le formulaire fichier = flask.request.files['fichier_donnees'] chaine = fichier.read() val_form2 = donnees.fichier_json_vers_configdonnees(chaine,liste_err) if val_form2 == {}: return flask.render_template("index.html",err=liste_err[2]+liste_err[1]+liste_err[0],valform=val_form, CONFIG=CONFIG, beta=beta) val_form.update(val_form2) + val_form["fichier_importe"] = 1 # Pour noter qu'on a importé un fichier return flask.render_template("index.html",err=liste_err[1],valform=val_form, CONFIG=CONFIG, beta=beta) @@ -55,7 +55,28 @@ def apropos(): def courbe_image(ext): liste_err = initialise_erreurs() data = flask.request.form - + enfants_add = [] # Enfants additionnels + for i in range(2, 11): + if 'fichier_donnees_'+str(i) in flask.request.files: # UUn enfant à ajouter + fichier = flask.request.files["fichier_donnees_"+str(i)] + chaine = fichier.read() # On récupère la chaîne + if len(chaine)>=5: # Si elle a une longueur à peu près raisonnable + debug("Un fichier de données additionnel trouvé", liste_err) + formulaire_2 = donnees.fichier_json_vers_configdonnees(chaine, liste_err) + if formulaire_2 =={}: + warning("Le fichier de données additionnel est vide ou mal formaté", liste_err) + else: + debug("Form 2 : "+str(formulaire_2), liste_err) + # Récupérer sous forme python + conf2, ljours2, listes_donnees2 = donnees.web_vers_python(formulaire_2,liste_err, court=True) + debug("Form 2 données travaillées "+str(ljours2)+str(listes_donnees2), liste_err) + # Le symbole et la couleur + symb2 = donnees.gere_symbole(data.get("symbole_donnees_"+str(i))) + coul2 = couleurs.rgb_vers_tuple(data.get("couleur_donnees_"+str(i),""),CONFIG["couleurs"]["cadretxt"],liste_err) + enfant2 = donnees.eclate_donnees_additionnelles(conf2, ljours2, listes_donnees2, symb2, coul2) + enfants_add.append(enfant2) + + # récupérer les données du formulaire proprement config,listes_jours,listes_donnees = donnees.web_vers_python(data,liste_err) debug(" * On a récupéré et traité les données du formulaire web",liste_err) @@ -75,7 +96,7 @@ def courbe_image(ext): for typed in CONFIG["liste_typedonnees"]: if config["tracevide"] == "oui" or listes_jours[typed] != []: debug("On trace la courbe de "+typed,liste_err) - fig = cree_figure(config,listes_jours[typed],listes_donnees[typed],typed,liste_extracalculs, liste_err) + fig = cree_figure(config,listes_jours[typed],listes_donnees[typed],typed,liste_extracalculs, liste_err, enfants_add) output = io.BytesIO() FigureCanvas(fig).print_png(output) plt.close(fig)