]> git.immae.eu Git - perso/Denise/oms.git/blobdiff - gestion_donnees.py
Boutons avec icones
[perso/Denise/oms.git] / gestion_donnees.py
index a2d0a1e2b819431a83391243e9764a62613dd7ff..2068bb3359fd9a9c383932024f6e82de6636beb0 100644 (file)
@@ -3,10 +3,14 @@
 
 from configuration import *
 from gestion_erreurs import *
+from gestion_couleurs import *
 import datetime
 import json
 import unidecode
+import copy
 
+### Les données "tournent" selon :
+### python -> json -> (export/import) -> formulaire HTML -> données POST -> python etc
 
 ############ Fonctions de conversion
 
@@ -170,11 +174,12 @@ def gere_configuration(data,liste_err):
     
     # unité
     unite = data.get("unite","")
-    if not (unite in liste_unites_valides):
+
+    if not (unite in CONFIG["liste_unites"]):
         unite = ""
         #warning("L'unité "+unite+" n'est pas reconnue !",liste_err)
     configuration["unite"] = unite
-    
+
     # grille
     grille = data.get("grille","")
     if grille != "on":
@@ -192,13 +197,13 @@ def gere_configuration(data,liste_err):
     # dimensions du graphique
     largeur = data.get("largeur","")
     if largeur == "":
-        largeur = largeur_graphique
+        largeur = DEFAUT["largeur_graphique"]
     else:
         try:
             largeur = int(largeur)
         except:
             warning("La largeur "+largeur+"est invalide !",liste_err)
-            largeur = largeur_graphique
+            largeur = DEFAUT["largeur_graphique"]
         if largeur > largeur_graphique_max:
             largeur = largeur_graphique_max
             warning("Largeur trop grande !",liste_err)
@@ -209,13 +214,13 @@ def gere_configuration(data,liste_err):
     
     hauteur = data.get("hauteur","")
     if hauteur == "":
-        hauteur = hauteur_graphique
+        hauteur = DEFAUT["hauteur_graphique"]
     else:
         try:
             hauteur = int(hauteur)
         except:
             warning("La hauteur "+hauteur+"est invalide !",liste_err)
-            hauteur = hauteur_graphique
+            hauteur = DEFAUT["hauteur_graphique"]
         if hauteur > hauteur_graphique_max:
             hauteur = hauteur_graphique_max
             warning("Hauteur trop grande !",liste_err)
@@ -238,20 +243,16 @@ def gere_configuration(data,liste_err):
     if not(positionlegende in ['upper left','upper right','lower left','lower right']):
         positionlegende = "upper left"
     configuration["positionlegende"] = positionlegende
+
+    
+    configuration["couleurs"] = {}
+    # gérer les couleurs
+    for clecouleur in DEFAUT["couleurs"]:
+        coul = rgb_vers_tuple(data.get("couleur_"+clecouleur,""),CONFIG["couleurs"][clecouleur],liste_err)
+        configuration["couleurs"][clecouleur] = coul
+    
     
     return configuration   
-
-#def configuration_vers_texte(config):
-#    """ exporte le texte associé à une configuration 
-#    on dumpe simplement sauf pour maxi """
-#    texte = "# Section configuration\n"
-#    for (cle,val) in config.items():
-#        if cle != "maxi":
-#            texte+= cle + "=" + str(val) + "\n"
-#        else:
-#            texte+= cle + "=" + convertit_age_vers_texte(val)+"\n"
-#    texte +="\n"
-#    return texte
  
 
 def gere_donneespoids(data,naissance,liste_err):
@@ -289,25 +290,13 @@ def gere_donneespoids(data,naissance,liste_err):
     l_poids = [x[1] for x in liste_donnees]   
     
     return (l_jours,l_poids)
-    
-    
-#def donnees_poids_vers_texte(l_jours,l_poids):
-#    """ retourne le texte correspondant aux données de poids """
-#    texte = "# Section données\n"
-#    
-#    for i in range(len(l_poids)):
-#        texte +=convertit_age_vers_texte(l_jours[i])+","+convertit_poids_vers_texte(l_poids[i])+"\n"
-#        
-#    texte+="\n"
-#    return texte
-
 
 
 
 
 def donnees_vers_json(l_jours,l_poids,config):
     """ retourne le json à renvoyer"""
-    gros_dico = config.copy()
+    gros_dico = copy.deepcopy(config)
     l_jours2 = [convertit_age_vers_texte(d) for d in l_jours]
     gros_dico["data_j"] = l_jours2
     gros_dico["data_p"] = l_poids
@@ -316,41 +305,16 @@ def donnees_vers_json(l_jours,l_poids,config):
         gros_dico["naissance"] = convertit_date_vers_texte(gros_dico["naissance"])
     # gérer l'age maxi
     gros_dico["maxi"] = convertit_age_vers_texte(gros_dico["maxi"])
+    # gérer les couleurs
+#    for cle in ["couleur1", "couleur2", "couleur3", "couleur_fond","couleur_grille","couleur_cadretxt"]:
+#        gros_dico[cle] = tuple_vers_rgb(gros_dico[cle])
+    for clecouleur in DEFAUT["couleurs"]:
+        gros_dico["couleurs"][clecouleur] = tuple_vers_rgb(gros_dico["couleurs"][clecouleur])
+    
+    
         
     return json.dumps(gros_dico, indent=2,ensure_ascii=False )
 
-#def fichier_texte_vers_configdonnees(fichier,liste_err):
-#    """ prend le texte importé et l'exporte vers configuration et données
-#    sous forme de valeurs du formulaire """
-#    
-#    valform = {}
-#    indice_formulaire = 0 # l'indice du formulaire pour les données : age_1, date_1, poids_1 etc
-#    num_ligne = 0
-#    lignes = fichier.readlines()
-#    for ligne in lignes:
-#        num_ligne +=1
-#        ligne = str(ligne,"utf8")
-#        ligne = ligne.rstrip("\n")
-#        if ligne != "" and ligne[0] != "#" and not(ligne.isspace()): # les lignes commençant par # sont des commentaires
-#            # On essaie de partitionner pour voir
-#            (var,egal,val) = ligne.partition("=")
-#            if egal == "=": # c'est une ligne de config 
-#                valform[var] = val
-#            else:
-#                (age,virgule,poids) = ligne.partition(",") # On partitionne avec ,
-#                if virgule == ",":
-#                    # c'est une ligne de data
-#                    valform["age_"+str(indice_formulaire)] = age
-#                    valform["poids_"+str(indice_formulaire)] = poids
-#                    indice_formulaire +=1
-#                    
-#                else:
-#                    warning("La ligne "+str(num_ligne)+" n'est pas reconnue et sera ignorée : <"+ligne+">",liste_err)
-#    
-#    #le nb max du formulaire
-#    valform["nb_data"] = max(indice_formulaire +2,nombre_lignes_form)
-#    
-#    return valform
 
 def fichier_json_vers_configdonnees(fichier,liste_err):
     """ prend le json importé et l'exporte vers les valeurs du formulaire """
@@ -369,7 +333,7 @@ def fichier_json_vers_configdonnees(fichier,liste_err):
         valform["age_"+str(i)] = l_jours[i]
         valform["poids_"+str(i)] = l_poids[i]
         
-    valform["nb_data"] = max(long +2,nombre_lignes_form)
+    valform["nb_data"] = max(long +2,DEFAUT["nb_data"])
     
     return valform