]> git.immae.eu Git - perso/Denise/oms.git/blobdiff - app.py
bug corrigé sur les courbes multiples
[perso/Denise/oms.git] / app.py
diff --git a/app.py b/app.py
index c4dfc93537816a15881e4b09a437afbd431f92f2..26c8a2bbbe3bd1e2dff2e5d5f6bb38d212aaeaf0 100644 (file)
--- 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 donns 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)