from configuration import *
from gestion_erreurs import *
+from gestion_couleurs import *
import datetime
import json
import unidecode
+import copy
############ Fonctions de conversion
# 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)
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)
positionlegende = "upper left"
configuration["positionlegende"] = positionlegende
+ #warning("bla"+data["couleur1"],liste_err)
+# coul1 = rgb_vers_tuple(data.get("couleur1",""),couleur_defaut_1_tuple,liste_err)
+# coul2 = rgb_vers_tuple(data.get("couleur2",""),couleur_defaut_2_tuple,liste_err)
+# coul3 = rgb_vers_tuple(data.get("couleur3",""),couleur_defaut_3_tuple,liste_err)
+# #warning("bla2"+str(coul1),liste_err)
+# configuration["couleur1"] = coul1
+# configuration["couleur2"] = coul2
+# configuration["couleur3"] = coul3
+
+ configuration["couleurs"] = {}
+ # gérer les couleurs
+ #warning("data : "+str(data),liste_err)
+ for clecouleur in DEFAUT["couleurs"]:
+ coul = rgb_vers_tuple(data.get("couleur_"+clecouleur,""),CONFIG["couleurs"][clecouleur],liste_err)
+ configuration["couleurs"][clecouleur] = coul
+
+ #warning("config : "+str(configuration["couleurs"]),liste_err)
+ # couleur de fond
+# coul_fond = rgb_vers_tuple(data.get("couleur_fond",""),couleur_defaut_fond_tuple,liste_err)
+# configuration["couleur_fond"] = coul_fond
+#
+# # couleur d'axes et de texte
+# coul_cadretxt = rgb_vers_tuple(data.get("couleur_cadretxt",""),couleur_defaut_cadretxt_tuple,liste_err)
+# configuration["couleur_cadretxt"] = coul_cadretxt
+#
+# # couleur de la grille
+# coul_grille = rgb_vers_tuple(data.get("couleur_grille",""),couleur_defaut_grille_tuple,liste_err)
+# configuration["couleur_grille"] = coul_grille
+ #warning(str(configuration["couleur1"]),liste_err)
+
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):
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
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 """
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