priorité des dates sur les âges
authorDenise sur Lya <sekhmet@lya>
Thu, 26 May 2022 20:50:27 +0000 (22:50 +0200)
committerDenise sur Lya <sekhmet@lya>
Thu, 26 May 2022 20:50:27 +0000 (22:50 +0200)
data/changelog_data.txt
gestion_donnees.py
templates/index.html

index 67eb91650e6d6c291d1dfc618bc4d0321ef2cfd9..d9987fb8951f222214612aab81fde67b9c686fbd 100644 (file)
@@ -1,3 +1,5 @@
+"Version 2.51","26/25/2022","<p>Un test à faire : les dates sont prioritaires sur les âges pour éviter les soucis d'arrondis. À tester, et d'autres trucs arrivent.</p>"
+
 "Version 2.501","14/05/2022","<p>Petit bug mineur corrigé : si on met une donnée avec une date inférieure à la date de naissance, elle est ignorée et un petit message s'affiche.</p>"
 
 "Version 2.5","29/07/2021","<p>Plus de courbes ! Et d'autres choses...</p>
index 74d0c35c112fd3be25bb3444ae04df5548b4f7df..7c15486511eaa903367f5e2b2c4bb4e2ffc64ba3 100644 (file)
@@ -70,7 +70,7 @@ def convertit_age_vers_texte(nombre):
         chaine += str(annees)+"a"
     if mois >0:
         chaine += str(mois)+"m"
-    if jours>0 or  nombre ==0: # si c'est la naissance, faut beien écrire 0j quand même
+    if jours>0 or  nombre ==0: # si c'est la naissance, faut bien écrire 0j quand même
         chaine += str(jours)+"j"
     return chaine
 
@@ -404,20 +404,22 @@ def gere_donnees(data,naissance,typedonnee,liste_err):
     while "age_"+str(i) in data.keys():
         if data.get(typedonnee+"_"+str(i), "") != "": # si la donne de ce type existe
             donnee = convertit_donnee_vers_python(data[typedonnee+"_"+str(i)],typedonnee,liste_err)
-            age = data.get("age_"+str(i),"")
-            if age !="":
-                age = convertit_jours_vers_python(age,liste_err)
-                liste_donnees.append((age,donnee))
-            else: 
-                date = data.get("date_"+str(i),"")
-                datep = convertit_date_vers_python(date,liste_err)
-                # on vérifie la date
-                if naissance == "":
-                    warning("La date de naissance n'a pas été précisée. Du coup on ne peut pas calculer l'âge de l'enfant le "+date,liste_err)
-                elif datep != "":  # la date est valide et on a une date de naissance
-                    age = delta_date(datep,naissance, liste_err)
-                    if age != -1: # -1 signifie une erreur donc on ne garde pas la donnée
+
+            ## Si une date est saisie, on la prend en priorité car c'est des entiers et les entiers c'est BIEN
+            date = data.get("date_"+str(i),"")
+            datep = convertit_date_vers_python(date,liste_err)
+            
+            if naissance != "" and datep != "": # On ne peut pas calculer l'âge si on n'a pas ces deux données      
+                age = delta_date(datep,naissance, liste_err)
+                if age != -1: # -1 signifie une erreur donc on ne garde pas la donnée
                         liste_donnees.append((age,donnee))
+            else: # Sinon, on regarde si on a saisi l'âge
+                age = data.get("age_"+str(i),"")
+                if age == "":
+                    warning("gere_donnees : ni l'âge ni la date ne sont saisies... donnée ignorée", liste_err)
+                else:
+                    age = convertit_jours_vers_python(age,liste_err)
+                    liste_donnees.append((age,donnee))                    
         i+=1
         
     # Trier la liste
index bbe381142e9497fb35743456dda7cf67aee39e85..066f60ee17ec9dd2f7a4e0187cfe726b263f7df3 100644 (file)
@@ -64,7 +64,7 @@
 <p>Syntaxe pour l'âge&nbsp;: utiliser j, s, m, a comme des "unités" (jours, semaines, mois, années). Vous pouvez mixer les unités, par exemple "3a2m5j" pour 3 ans, 2 mois et 5 jours. Les espaces sont ignorées, et il faut saisir des nombres entiers.</p>
 <p>Saisir le poids en kilogrammes (par exemple "2.62" ou "2,62" pour 2 kilogrammes et 620 grammes), ou en grammes ("2620" par exemple).</p>
 <p class="donneesplus">Saisir la taille en centimètres. Note : il y a généralement un centimètre de moins quand on mesure l'enfant debout par rapport à allongé. On peut voir sur la courbe de référence une "cassure" à deux ans qui correspond au changement du type de mesure.</p>
-<p>Il faut saisir la date ou l'âge. Si les deux sont saisis, seul l'âge comptera.</p>
+<p>Il faut saisir la date ou l'âge. La date a priorité sur l'âge (si la date de naissance est saisie).</p>
 
 <p class="donneesplus">Si vous ne saisissez que des données de poids par exemple, la courbe de taille ne sera pas tracée (par défaut, voir préférences du graphique).</p>