X-Git-Url: https://git.immae.eu/?p=perso%2FDenise%2Foms.git;a=blobdiff_plain;f=gestion_donnees.py;h=d214bcd9d47b7c42154de0ddb4fcd5aa58e17231;hp=228a7cb352bbc982d326c0ea0cdefd926025e97c;hb=9297f44a695bd97cd058d79b9a3564fab414dce5;hpb=9e4c51c76d337e1f8c757cd2f99a4eed615687b4 diff --git a/gestion_donnees.py b/gestion_donnees.py index 228a7cb..d214bcd 100644 --- a/gestion_donnees.py +++ b/gestion_donnees.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -from configuration import * +from configuration import CONFIG,DEFAUT from gestion_erreurs import * from gestion_couleurs import * import datetime @@ -9,6 +9,8 @@ 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 @@ -26,15 +28,15 @@ def convertit_jours_vers_python(chaine,liste_err): else: if lettre == 'a' or lettre == 'A': # On a trouvé l'année, on ajoute tout ce qui est trouvé jusque là - agejours += int(chainenombre)*jours_dans_annee + agejours += int(chainenombre)*CONFIG["jours_dans_annee"] chainenombre = "" elif lettre == 'm' or lettre == 'M': # On a trouvé le mois - agejours += int(chainenombre)*jours_dans_mois + agejours += int(chainenombre)*CONFIG["jours_dans_mois"] chainenombre = "" elif lettre == 's' or lettre == 'S': # la semaine - agejours += int(chainenombre)*jours_dans_semaine + agejours += int(chainenombre)*CONFIG["jours_dans_semaine"] chainenombre = "" elif lettre == 'j' or lettre == 'J': # On a trouvé le jour @@ -54,10 +56,10 @@ def convertit_jours_vers_python(chaine,liste_err): def convertit_age_vers_texte(nombre): """ convertit un nombre de jours en un truc plus lisible en mois, années, jours et renvoie une chaîne sous la forme 3a2m1j par exemple""" - annees = int(nombre / jours_dans_annee) - restant = nombre - annees*jours_dans_annee - mois = int(restant/jours_dans_mois) - jours= round(nombre - mois*jours_dans_mois - annees*jours_dans_annee) + annees = int(nombre / CONFIG["jours_dans_annee"]) + restant = nombre - annees*CONFIG["jours_dans_annee"] + mois = int(restant/CONFIG["jours_dans_mois"]) + jours= round(nombre - mois*CONFIG["jours_dans_mois"] - annees*CONFIG["jours_dans_annee"]) chaine = "" if annees >0: @@ -93,7 +95,7 @@ def convertit_poids_vers_python(chaine,liste_err): except: warning("Poids impossible à lire : "+chaine,liste_err) poids = 0 - if not( 0<=poids largeur_graphique_max: - largeur = largeur_graphique_max - warning("Largeur trop grande !",liste_err) - elif largeur < largeur_graphique_min: - largeur = largeur_graphique_min - warning("Largeur trop petite !",liste_err) + if largeur > CONFIG["largeur_graphique_max"]: + largeur = CONFIG["largeur_graphique_max"] + warning("Largeur du graphique trop grande !",liste_err) + elif largeur < CONFIG["largeur_graphique_min"]: + largeur = CONFIG["largeur_graphique_min"] + warning("Largeur du graphique trop petite !",liste_err) configuration["largeur"] = largeur hauteur = data.get("hauteur","") @@ -219,12 +221,12 @@ def gere_configuration(data,liste_err): except: warning("La hauteur "+hauteur+"est invalide !",liste_err) hauteur = DEFAUT["hauteur_graphique"] - if hauteur > hauteur_graphique_max: - hauteur = hauteur_graphique_max - warning("Hauteur trop grande !",liste_err) - elif hauteur < hauteur_graphique_min: - hauteur = hauteur_graphique_min - warning("Hauteur trop petite !",liste_err) + if hauteur > CONFIG["hauteur_graphique_max"]: + hauteur = CONFIG["hauteur_graphique_max"] + warning("Hauteur du graphique trop grande !",liste_err) + elif hauteur < CONFIG["hauteur_graphique_min"]: + hauteur = CONFIG["hauteur_graphique_min"] + warning("Hauteur du graphique trop petite !",liste_err) configuration["hauteur"] = hauteur # existence et position de la légende @@ -241,36 +243,14 @@ def gere_configuration(data,liste_err): if not(positionlegende in ['upper left','upper right','lower left','lower right']): 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 @@ -336,10 +316,14 @@ def donnees_vers_json(l_jours,l_poids,config): return json.dumps(gros_dico, indent=2,ensure_ascii=False ) -def fichier_json_vers_configdonnees(fichier,liste_err): - """ prend le json importé et l'exporte vers les valeurs du formulaire """ - chaine = fichier.read() - valform = json.loads(chaine) +def fichier_json_vers_configdonnees(chaine,liste_err): + """ prend le json importé (chaine) et l'exporte vers les valeurs du formulaire """ + debug("json vers config : Prêt à interpréter le json",liste_err) + try: + valform = json.loads(chaine) + except : + erreur("Impossible de lire le fichier json !",liste_err) + return {} # Il faut maintenant récupérer les l_jours et l_poids puis les remettre # sous forme de age_i et poids_i l_jours= valform.get("data_j",[])