summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenise sur Lya <sekhmet@lya>2020-06-26 22:43:04 +0200
committerDenise sur Lya <sekhmet@lya>2020-06-26 22:43:04 +0200
commit30158504b5267f225469216ea4aa0d123a8f5d8e (patch)
treedd44534f75ff3d966777da0c303af0fbe72ff5a8
parent54c718310ef31192271125987b82ed1c281a3911 (diff)
downloadoms-30158504b5267f225469216ea4aa0d123a8f5d8e.tar.gz
oms-30158504b5267f225469216ea4aa0d123a8f5d8e.tar.zst
oms-30158504b5267f225469216ea4aa0d123a8f5d8e.zip
possibilité de saisir la date au format texte + export données en txt
-rw-r--r--data/changelog_data.txt7
-rw-r--r--gestion_donnees.py3
-rw-r--r--gestion_unites.py2
-rw-r--r--static/outilspage.js52
-rw-r--r--static/requetes.js4
-rw-r--r--static/style.css4
-rw-r--r--templates/index.html3
7 files changed, 68 insertions, 7 deletions
diff --git a/data/changelog_data.txt b/data/changelog_data.txt
index 45c4238..f2faef6 100644
--- a/data/changelog_data.txt
+++ b/data/changelog_data.txt
@@ -1,3 +1,10 @@
1"Version 1.1","26/06/2020","<p>Petites améliorations :
2<ul>
3<li>Possibilité de saisir la date brute en texte. Pour certains navigateurs (sur smartphone ?) où il n'y avait pas cette possibilité et où il fallait parfois cliquer 15 fois pour saisir une date 15 mois plus tôt, ça va peut être être mieux. N'hésitez pas à faire plein de tests à ce sujet !</li>
4<li>L'export des données est maintenant avec l'extension «&nbsp;.txt&nbsp;». C'est exactement la même chose qu'avant (du json), et tout est compatible, car fondamentalement, l'extension c'est pour faire joli, hein, entre nous. Mais ça vous permettra de l'ouvrir sans avoir trop peur d'une part, et surtout c'est un format qui est «&nbsp;accepté&nbsp;» sur le forum LLL ;). Vous allez donc pouvoir plus facilement y poster votre fichier de données !</li>
5</ul>
6</p>"
7
1"Version 1.0001","24/06/2020","<p>Petit bug corrigé (lors du choix de l'âge maxi sur la courbe)</p>" 8"Version 1.0001","24/06/2020","<p>Petit bug corrigé (lors du choix de l'âge maxi sur la courbe)</p>"
2 9
3"Version 1.0","22/06/2020","<p>On release ! :) Vous pouvez voir plus bas la liste des trucs implémentés jusque-là. Je ne dis pas que c'est fini, mais c'est assez sûr pour être lancé. Il reste des bugs et des améliorations bien sûr ! 10"Version 1.0","22/06/2020","<p>On release ! :) Vous pouvez voir plus bas la liste des trucs implémentés jusque-là. Je ne dis pas que c'est fini, mais c'est assez sûr pour être lancé. Il reste des bugs et des améliorations bien sûr !
diff --git a/gestion_donnees.py b/gestion_donnees.py
index ea1f259..6abcd51 100644
--- a/gestion_donnees.py
+++ b/gestion_donnees.py
@@ -115,11 +115,12 @@ def convertit_date_vers_python(chaine,liste_err):
115 warning("La date : "+chaine+" est invalide !",liste_err) 115 warning("La date : "+chaine+" est invalide !",liste_err)
116 return "" 116 return ""
117 else: 117 else:
118 debug("Conversion de la date "+chaine+". Découpage : "+str(liste),liste_err)
118 try: 119 try:
119 date = datetime.date(int(liste[0]),int(liste[1]),int(liste[2])) 120 date = datetime.date(int(liste[0]),int(liste[1]),int(liste[2]))
120 except: 121 except:
121 date = "" 122 date = ""
122 warning("Impossible de lire la date "+chaine,liste_err) 123 warning("Impossible de lire la date "+chaine+". Format accepté : aaaa-mm-jj",liste_err)
123 return date 124 return date
124 125
125def convertit_date_vers_texte(date): 126def convertit_date_vers_texte(date):
diff --git a/gestion_unites.py b/gestion_unites.py
index afbc479..8fcb1ad 100644
--- a/gestion_unites.py
+++ b/gestion_unites.py
@@ -10,6 +10,8 @@ def choix_unite(maxi):
10 """ en fonction de l'âge maxi, on choisit une unité pertinente : jours, mois, année""" 10 """ en fonction de l'âge maxi, on choisit une unité pertinente : jours, mois, année"""
11 if maxi<40: 11 if maxi<40:
12 return "jours" 12 return "jours"
13 elif maxi <100:
14 return "semaines"
13 elif maxi<25*CONFIG["jours_dans_mois"]: 15 elif maxi<25*CONFIG["jours_dans_mois"]:
14 return "mois" 16 return "mois"
15 else: 17 else:
diff --git a/static/outilspage.js b/static/outilspage.js
index 8da9e88..58dfb7f 100644
--- a/static/outilspage.js
+++ b/static/outilspage.js
@@ -1,5 +1,9 @@
1// fonctions générales pour la page 1// fonctions générales pour la page
2 2
3var taillemaxdate = 10;
4var placeholder_date = "aaaa-mm-jj" ;
5
6
3function ajoutelignes() 7function ajoutelignes()
4{ 8{
5 // va ajouter 3 lignes au tableau de données 9 // va ajouter 3 lignes au tableau de données
@@ -7,6 +11,11 @@ function ajoutelignes()
7 var nbligne = table.children[0].childElementCount ; 11 var nbligne = table.children[0].childElementCount ;
8 // les données étant numérotées à partir de 0 on pourra commencer à partir de nbligne -1 12 // les données étant numérotées à partir de 0 on pourra commencer à partir de nbligne -1
9 // car il faut éliminer la ligne de header. 13 // car il faut éliminer la ligne de header.
14
15 // voir dans quel mode on est : date ou texte
16 var deuxiemeligne = table.children[0].children[1] ;
17 var celldate = deuxiemeligne.children[1] ;
18 var mode = celldate.firstChild.type ;
10 19
11 var nbajout = 3 ; 20 var nbajout = 3 ;
12 for(var i=nbligne-1; i<nbligne+nbajout-1; i++) 21 for(var i=nbligne-1; i<nbligne+nbajout-1; i++)
@@ -17,9 +26,15 @@ function ajoutelignes()
17 var cellpoids = ligne.insertCell(2); 26 var cellpoids = ligne.insertCell(2);
18 27
19 cellage.innerHTML = '<input type="text" name="age_'+i+'">' ; 28 cellage.innerHTML = '<input type="text" name="age_'+i+'">' ;
20 celldate.innerHTML = '<input type="date" name="date_'+i+'">' ; 29 celldate.innerHTML = '<input name="date_'+i+'">' ;
21 cellpoids.innerHTML = '<input type="text" name="poids_'+i+'">' ; 30 celldate.firstChild.type = mode ;
22 31 if(mode == "text") // si on a déjà affiché les cases en mode texte, on continue en mode texte
32 {
33 celldate.firstChild.size = taillemaxdate ;
34 celldate.firstChild.maxlength = taillemaxdate ;
35 celldate.firstChild.placeholder = placeholder_date ;
36 }
37 cellpoids.innerHTML = '<input type="text" name="poids_'+i+'">' ;
23 } 38 }
24 39
25} 40}
@@ -49,3 +64,34 @@ function affiche_cache(id,elemcourant)
49 } 64 }
50 65
51} 66}
67
68function change_mode_dates(mode)
69{
70 // passe de l'affichage en mode "date" à l'affichage en mode "texte" pour les navigateurs
71 // qui gèrent mal le mode date
72 var listeinput = document.getElementsByTagName("input") ;
73 for(i=0;i<listeinput.length;i++)
74 {
75 var nombalise = listeinput[i].name ;
76 if(nombalise == "naissance" || nombalise.slice(0,5) == "date_")
77 {
78 listeinput[i].type = mode ;
79 if(mode == "date")
80 listeinput[i].maxlength = taillemaxdate ;
81 listeinput[i].size = taillemaxdate ;
82 listeinput[i].placeholder = placeholder_date ;
83 }
84 }
85
86 // changer le texte et le bouton.
87 var elem = document.getElementById("changemode") ;
88 if(mode =="text")
89 {
90 elem.innerHTML = "Saisie des dates au format aaaa-mm-jj. <span onclick=\"change_mode_dates('date')\" class=\"bouton\">Cliquez ici</span> pour revenir à une saisie de dates «&nbsp;confortable&nbsp;»."
91 }
92 else
93 {
94 elem.innerHTML = "<span onclick=\"change_mode_dates('text')\" class=\"bouton\">Cliquez ici</span> pour saisir les dates comme du texte."
95 }
96
97}
diff --git a/static/requetes.js b/static/requetes.js
index 4442470..bf8d484 100644
--- a/static/requetes.js
+++ b/static/requetes.js
@@ -25,7 +25,7 @@ function appelle_image()
25 25
26 26
27 var boutondl = document.getElementById("export_dl") ; 27 var boutondl = document.getElementById("export_dl") ;
28 boutondl.setAttribute('onclick',"download_file('donnees_"+nomenfant+".json', 'application/json;charset=utf-8','"+encodeURIComponent(texte) +"')") 28 boutondl.setAttribute('onclick',"download_file('donnees_"+nomenfant+".txt', 'application/json;charset=utf-8','"+encodeURIComponent(texte) +"')")
29 29
30 30
31 if(result == "success") 31 if(result == "success")
@@ -106,4 +106,4 @@ function download_file(filename,mimetype,data) {
106 106
107function upload_file(data) { 107function upload_file(data) {
108 document.getElementById('form_import_donnees').submit(); 108 document.getElementById('form_import_donnees').submit();
109} \ No newline at end of file 109}
diff --git a/static/style.css b/static/style.css
index 88f77fb..414f996 100644
--- a/static/style.css
+++ b/static/style.css
@@ -74,6 +74,10 @@ img#courbe {
74 display: none; 74 display: none;
75} 75}
76 76
77.petit {
78 font-size: 0.8em;
79}
80
77.bouton { 81.bouton {
78 text-decoration: underline; 82 text-decoration: underline;
79} 83}
diff --git a/templates/index.html b/templates/index.html
index 7e00234..9fc8637 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -29,7 +29,8 @@
29 <img src="static/icons/trash.png"> 29 <img src="static/icons/trash.png">
30 <span class="icon_legend">Effacer les données du formulaire</span> 30 <span class="icon_legend">Effacer les données du formulaire</span>
31 </label> 31 </label>
32 <input type="reset" id="reset_donnees" value="Effacer les données du formulaire"> 32 <input type="reset" id="reset_donnees" value="Effacer les données du formulaire">
33 <p id="changemode" class="petit"><span onclick="change_mode_dates('text')" class="bouton">Cliquer ici</span> pour saisir les dates comme du texte.</p>
33</div> 34</div>
34<ul> 35<ul>
35<li><label>Nom de l'enfant&nbsp;:</label> <input type="text" name="nom" value="{{ valform.nom }}"></li> 36<li><label>Nom de l'enfant&nbsp;:</label> <input type="text" name="nom" value="{{ valform.nom }}"></li>