+ return (l_jours,l_donnee)
+
+# web vers python : enfants additionnels
+def gere_enfants_additionnels(data, files, liste_err):
+ """ data est le dictionnaire de requête.
+ files est le dictionnaire des fichiers (flask.request.files).
+ Renvoie les enfants additionnels sous forme de liste de dictionnaires :
+ {typed: (conf, lj, ldonnees)}
+ Dans conf y'a les infos qu'il faut pour tracer la courbe additionnelle voulue.
+ """
+
+ enfants_add = [] # Enfants additionnels
+ # Les enfants additionnels commencent à 2 (puis 3, 4, etc)
+ i=2
+ while "couleur_donnees_"+str(i) in data: # Tant qu'il y a des données de ce type
+ if 'fichier_donnees_'+str(i) in files: # Un enfant à ajouter
+ fichier = 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 = 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 = 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 = gere_symbole(data.get("symbole_donnees_"+str(i)))
+ coul2 = rgb_vers_tuple(data.get("couleur_donnees_"+str(i),""),CONFIG["couleurs"]["cadretxt"],liste_err)
+ enfant2 = eclate_donnees_additionnelles(conf2, ljours2, listes_donnees2, symb2, coul2)
+ enfants_add.append(enfant2)
+ i+=1
+
+ return enfants_add
+
+
+
+
+
+# python vers Json
+#### export vers json
+
+def donnees_vers_json(l_jours,l_poids,l_jourst,l_taille,config):
+ """ retourne le json à renvoyer"""
+ gros_dico = copy.deepcopy(config)
+ gros_dico["version"] = CONFIG["version"]
+ l_jours2 = [convertit_age_vers_texte(d) for d in l_jours]
+ l_jourst2 = [convertit_age_vers_texte(d) for d in l_jourst]
+ gros_dico["data_j"] = l_jours2
+ gros_dico["data_p"] = l_poids
+ gros_dico["data_jours_taille"] = l_jourst2
+ gros_dico["data_taille"] = l_taille
+ # gérer la date de naissance
+ if gros_dico.get("naissance","") != "":
+ gros_dico["naissance"] = convertit_date_vers_texte(gros_dico["naissance"])
+ # Calcul de toutes les dates de données
+ l_dates_poids = [convertit_date_vers_texte( config["naissance"] + datetime.timedelta(days=jours) ) for jours in l_jours]
+ l_dates_taille = [convertit_date_vers_texte( config["naissance"] + datetime.timedelta(days=jours) ) for jours in l_jourst]
+ gros_dico["data_dates_poids"]= l_dates_poids
+ gros_dico["data_dates_taille"] = l_dates_taille
+
+
+ # gérer l'age maxi
+ gros_dico["maxi"] = convertit_age_vers_texte(gros_dico["maxi"])
+ # Gérer les repères
+ for i in range(len(gros_dico["liste_reperes"])):
+ gros_dico["liste_reperes"][i]["donnee"] = convertit_age_vers_texte(gros_dico["liste_reperes"][i]["donnee"])
+ # gérer les couleurs
+ for clecouleur in DEFAUT["couleurs"]:
+ gros_dico["couleurs"][clecouleur] = tuple_vers_rgb(gros_dico["couleurs"][clecouleur])