summaryrefslogtreecommitdiff
path: root/gestion_donnees.py
diff options
context:
space:
mode:
Diffstat (limited to 'gestion_donnees.py')
-rw-r--r--gestion_donnees.py46
1 files changed, 38 insertions, 8 deletions
diff --git a/gestion_donnees.py b/gestion_donnees.py
index 7c15486..eab75e9 100644
--- a/gestion_donnees.py
+++ b/gestion_donnees.py
@@ -63,6 +63,7 @@ def convertit_age_vers_texte(nombre):
63 annees = int(nombre / CONFIG["jours_dans_annee"]) 63 annees = int(nombre / CONFIG["jours_dans_annee"])
64 restant = nombre - annees*CONFIG["jours_dans_annee"] 64 restant = nombre - annees*CONFIG["jours_dans_annee"]
65 mois = int(restant/CONFIG["jours_dans_mois"]) 65 mois = int(restant/CONFIG["jours_dans_mois"])
66 #print("mois : ",mois, ", restant : ",nombre - mois*CONFIG["jours_dans_mois"])
66 jours= round(nombre - mois*CONFIG["jours_dans_mois"] - annees*CONFIG["jours_dans_annee"]) 67 jours= round(nombre - mois*CONFIG["jours_dans_mois"] - annees*CONFIG["jours_dans_annee"])
67 68
68 chaine = "" 69 chaine = ""
@@ -160,6 +161,8 @@ def convertit_date_vers_texte(date):
160def delta_date(date1,datenaissance, liste_err): 161def delta_date(date1,datenaissance, liste_err):
161 """ renvoie le nombre de jours (entier) entre date1 et datenaissance format "datetime" 162 """ renvoie le nombre de jours (entier) entre date1 et datenaissance format "datetime"
162 datenaissance est supposée antérieure. Erreur sinon.""" 163 datenaissance est supposée antérieure. Erreur sinon."""
164 if type(date1) != datetime.date or type(datenaissance) != datetime.date:
165 return -1
163 d = date1 - datenaissance 166 d = date1 - datenaissance
164 jours = d.days 167 jours = d.days
165 if jours<0: 168 if jours<0:
@@ -349,12 +352,25 @@ def gere_configuration(data,liste_err, court=False):
349 nbextradata = 1 352 nbextradata = 1
350 configuration["non_sauve"]["nbextradata"] = nbextradata 353 configuration["non_sauve"]["nbextradata"] = nbextradata
351 354
352 if data.get("calculextradata_type","") in CONFIG["liste_typedonnees"]: 355 if data.get("calculextradata_type","") in CONFIG["liste_typedonnees"]: # Si on a choisi un type de données à calculer
356
353 configuration["non_sauve"]["calculextradata_type"] = data.get("calculextradata_type","") 357 configuration["non_sauve"]["calculextradata_type"] = data.get("calculextradata_type","")
354 configuration["non_sauve"]["calculextradata_age"] = convertit_jours_vers_python(data.get("calculextradata_age","0j"),liste_err) 358 age = convertit_jours_vers_python(data.get("calculextradata_age","0j"),liste_err)
359 date = convertit_date_vers_python(data.get("calculextradata_date", ""), [[],[]])
360 agecalcule = delta_date(date, configuration["naissance"], liste_err)
361 if configuration["naissance"] != "" and agecalcule != -1: # On garde plutôt la date
362 configuration["non_sauve"]["calculextradata_age"] = agecalcule
363 configuration["non_sauve"]["calculextradata_date"] = date
364 else: # On garde l'âge
365 configuration["non_sauve"]["calculextradata_age"] = age
366 if type(configuration["naissance"]) == datetime.date:
367# print(configuration["naissance"], type(configuration["naissance"]))
368 configuration["non_sauve"]["calculextradata_date"] = configuration["naissance"] + datetime.timedelta(days=round(age))
369 else:
370 configuration["non_sauve"]["calculextradata_date"] = None
355 else: 371 else:
356 configuration["non_sauve"]["calculextradata_type"] = "" 372 configuration["non_sauve"]["calculextradata_type"] = ""
357 # On ne met rien dans l'âge, pas la peine 373 # On ne met rien dans les autres données, pas la peine
358 374
359 ctyped = data.get("calculextratemps_type","") 375 ctyped = data.get("calculextratemps_type","")
360 if ctyped in CONFIG["liste_typedonnees"]: 376 if ctyped in CONFIG["liste_typedonnees"]:
@@ -373,12 +389,26 @@ def gere_configuration(data,liste_err, court=False):
373 i=0 389 i=0
374 while "repere_texte_"+str(i) in data: # Tant qu'il y a des trucs définis 390 while "repere_texte_"+str(i) in data: # Tant qu'il y a des trucs définis
375 debug("Repère trouvé", liste_err) 391 debug("Repère trouvé", liste_err)
392 jegardecerepere = False # On va passer à True uniquementsi tout va bien
393
376 age=data.get("repere_age_"+str(i), "") 394 age=data.get("repere_age_"+str(i), "")
395 date=data.get("repere_date_"+str(i), "")
377 trace=gere_checkbox(data.get("repere_trace_"+str(i), "")) 396 trace=gere_checkbox(data.get("repere_trace_"+str(i), ""))
378 if age !="": 397 affichedate=gere_checkbox(data.get("repere_affichedate_"+str(i), ""))
379 agec=convertit_jours_vers_python(age, liste_err) 398
399 if date!="" and configuration['naissance'] != "": # Si on a saisi une date (et qu'il y a la date de naissance)
400 datepython = convertit_date_vers_python(date,liste_err)
401 if datepython !="": # Si la conversion s'est bien passée
402 nbjours = delta_date(datepython, configuration['naissance'], liste_err)
403 if nbjours != -1: # Si tout va bien jusque là
404 jegardecerepere=True
405 elif age !="":
406 nbjours=convertit_jours_vers_python(age, liste_err)
407 jegardecerepere=True
408
409 if jegardecerepere:
380 texte = data.get("repere_texte_"+str(i), "") # Même si le texte est vide, osef 410 texte = data.get("repere_texte_"+str(i), "") # Même si le texte est vide, osef
381 configuration["liste_reperes"].append({"typed": "age", "donnee": agec, "texte": texte, "trace": trace}) 411 configuration["liste_reperes"].append({"typed": "age", "donnee": nbjours, "date": date, "texte": texte, "trace": trace, "affichedate":affichedate})
382 i+=1 412 i+=1
383 413
384 return configuration 414 return configuration
@@ -487,8 +517,8 @@ def donnees_vers_json(l_jours,l_poids,l_jourst,l_taille,config):
487 if gros_dico.get("naissance","") != "": 517 if gros_dico.get("naissance","") != "":
488 gros_dico["naissance"] = convertit_date_vers_texte(gros_dico["naissance"]) 518 gros_dico["naissance"] = convertit_date_vers_texte(gros_dico["naissance"])
489 # Calcul de toutes les dates de données 519 # Calcul de toutes les dates de données
490 l_dates_poids = [convertit_date_vers_texte( config["naissance"] + datetime.timedelta(days=jours) ) for jours in l_jours] 520 l_dates_poids = [convertit_date_vers_texte( config["naissance"] + datetime.timedelta(days=round(jours)) ) for jours in l_jours]
491 l_dates_taille = [convertit_date_vers_texte( config["naissance"] + datetime.timedelta(days=jours) ) for jours in l_jourst] 521 l_dates_taille = [convertit_date_vers_texte( config["naissance"] + datetime.timedelta(days=round(jours)) ) for jours in l_jourst]
492 gros_dico["data_dates_poids"]= l_dates_poids 522 gros_dico["data_dates_poids"]= l_dates_poids
493 gros_dico["data_dates_taille"] = l_dates_taille 523 gros_dico["data_dates_taille"] = l_dates_taille
494 524