]> git.immae.eu Git - perso/Denise/oms.git/blobdiff - gestion_unites.py
amélioration de la grille, bêta
[perso/Denise/oms.git] / gestion_unites.py
index 27cad7eab16cfa392b97d0efaccb7c771dba5273..b97d90b58ed6cfcfd44b77c8a854ab16d6a5d195 100644 (file)
@@ -1,31 +1,92 @@
 #!/usr/bin/env python3
 # -*- coding: utf-8 -*-
 
-from configuration import *
+from configuration import CONFIG
 from gestion_erreurs import * 
 
 ##################### outils pour affichage et choix de l'unité
 
 def choix_unite(maxi):
-    """ en fonction de l'âge maxi, on choisit une unité pertinente : jours, mois, année"""
+    """ en fonction de l'âge maxi, on choisit une unité pertinente : jours, semaine, mois, année"""
     if maxi<40:
         return "jours"
-    elif maxi<25*jours_dans_mois:
+    elif maxi <100:
+        return "semaines"
+    elif maxi<25*CONFIG["jours_dans_mois"]:
         return "mois"
     else:
         return "années"
     
+def choix_echelle_data(typedonnees, donneemax):
+    """ en fonction du type de données et du maxi (on suppose qu'on part à 0),
+    on choisit un intervalle raisonnable
+    On renvoie le couple des pas (majeur, mineur)
+    (0,0) en cas de problème avec le typedonnnes """
+
+    if typedonnees not in CONFIG["liste_typedonnees"]:
+        print("Type de données non valide : "+typedonnees)
+        return (0,0)
+
+    if typedonnees == "poids":
+        if donneemax>15:
+            return (5,1)
+        elif donneemax > 10:
+            return (2,1)
+        else:
+            return (1,0.2)
+    if typedonnees == "taille":
+        if donneemax>100:
+            return (10,2)
+        else:
+            return (5,1)
+        
+def choix_echelle_temps(unite, tempsmaxi):
+    """ en fonction de l'unité voulue et du temps maximal (donné dans l'unité),
+    on choisit un intervalle raisonnable entre les pas.
+    On renvoie le couple des pas (majeur, mineur).
+    (0,0) en cas de problème avec l'unité
+    On met 0 en 2e arg si pas de grille secondaire"""
+    if unite not in CONFIG["liste_unites"]:
+        print("Unité non valide ! "+unite)
+        return (0,0)
+    
+    if unite=="jours":
+        if tempsmaxi > 60:  # pourquoi mettre en jours ?
+            return (30,1)
+        elif tempsmaxi >20:
+            return (7,1)
+        else:
+            return (1,0)
+    if unite=="semaines":
+        if tempsmaxi >50:
+            return (5,1)
+        elif tempsmaxi > 15:
+            return (2,1)
+        else:
+            return (1,1/7) # On met en jours
+    
+    if unite=="mois":
+        if tempsmaxi > 30:
+            return (2,1)
+        elif tempsmaxi > 10:
+            return (1,0)
+        else:
+            return (1,0.25) # on met en semaines
+        
+    if unite=="années":
+        return (1,1/12) # années / mois
+    
 def convertitunite(jours,unite,liste_err):
     """ convertit des jours à l'unité voulue
     renvoie des float"""
     if unite=="jours":
         return jours
     elif unite=="mois":
-        return jours/jours_dans_mois
+        return jours/CONFIG["jours_dans_mois"]
     elif unite=="années":
-        return jours/jours_dans_annee
+        return jours/CONFIG["jours_dans_annee"]
     elif unite=="semaines":
-        return jours/jours_dans_semaine
+        return jours/CONFIG["jours_dans_semaine"]
     else:
         warning("erreur sur l'unité : "+unite+" On laisse en jours",liste_err)
         return jours