-#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 """
- chaine = fichier.read()
- valform = json.loads(chaine)
+def fusionne_donnees(listes_jours,listes_donnees):
+ """ prend en argument deux dicos de listes. Chaque liste de jours est associée à une liste
+ de données (par la même clé de type de données). Il faut les fusionner pour avoir une liste de dictionnaires, de type
+ ("age":truc, "donnee1":truc, "donnee2":truc, ...) triée par ordre de jours. Si jamais une des données est vide,
+ le champ du dictionnaire n'est pas rempli"""
+# nb_donnees = len(listes_jours)
+ def fini(lj):
+ """ teste si les listes sont toutes vides """
+ for l in lj.values():
+ if l!=[]:
+ return False
+ return True
+
+ def mini(lj):
+ """ renvoie la clé de la liste où il y a le min """
+ cle_mini = CONFIG["liste_typedonnees"][0]
+ for (cle,liste) in lj.items():
+ if lj[cle_mini]== []:
+ cle_mini = cle
+ elif lj[cle] != []:
+ if convertit_jours_vers_python(lj[cle][0],initialise_erreurs())<convertit_jours_vers_python(lj[cle_mini][0],initialise_erreurs()):
+ cle_mini = cle
+ return cle_mini
+
+ liste_f = []
+ while not(fini(listes_jours)):
+ typedonnee = mini(listes_jours)
+ # On extrait les données dans les deux listes (jours et données)
+ jour = listes_jours[typedonnee].pop(0)
+ donnee = listes_donnees[typedonnee].pop(0)
+ if liste_f == [] or jour != liste_f[-1]["age"]: # Si le jour est un "nouveau" jour
+ liste_f.append({"age":jour})
+ # On met à jour l'élément
+ liste_f[-1][typedonnee] = donnee
+
+ return liste_f
+
+
+
+# Json -> formulaire HTML
+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 {}