diff options
Diffstat (limited to 'gestion_donnees.py')
-rw-r--r-- | gestion_donnees.py | 46 |
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): | |||
160 | def delta_date(date1,datenaissance, liste_err): | 161 | def 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 | ||