+"Version 1.1","26/06/2020","<p>Petites améliorations :
+<ul>
+<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>
+<li>L'export des données est maintenant avec l'extension « .txt ». 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 « accepté » sur le forum LLL ;). Vous allez donc pouvoir plus facilement y poster votre fichier de données !</li>
+</ul>
+</p>"
+
"Version 1.0001","24/06/2020","<p>Petit bug corrigé (lors du choix de l'âge maxi sur la courbe)</p>"
"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 !
warning("La date : "+chaine+" est invalide !",liste_err)
return ""
else:
+ debug("Conversion de la date "+chaine+". Découpage : "+str(liste),liste_err)
try:
date = datetime.date(int(liste[0]),int(liste[1]),int(liste[2]))
except:
date = ""
- warning("Impossible de lire la date "+chaine,liste_err)
+ warning("Impossible de lire la date "+chaine+". Format accepté : aaaa-mm-jj",liste_err)
return date
def convertit_date_vers_texte(date):
""" en fonction de l'âge maxi, on choisit une unité pertinente : jours, mois, année"""
if maxi<40:
return "jours"
+ elif maxi <100:
+ return "semaines"
elif maxi<25*CONFIG["jours_dans_mois"]:
return "mois"
else:
// fonctions générales pour la page
+var taillemaxdate = 10;
+var placeholder_date = "aaaa-mm-jj" ;
+
+
function ajoutelignes()
{
// va ajouter 3 lignes au tableau de données
var nbligne = table.children[0].childElementCount ;
// les données étant numérotées à partir de 0 on pourra commencer à partir de nbligne -1
// car il faut éliminer la ligne de header.
+
+ // voir dans quel mode on est : date ou texte
+ var deuxiemeligne = table.children[0].children[1] ;
+ var celldate = deuxiemeligne.children[1] ;
+ var mode = celldate.firstChild.type ;
var nbajout = 3 ;
for(var i=nbligne-1; i<nbligne+nbajout-1; i++)
var cellpoids = ligne.insertCell(2);
cellage.innerHTML = '<input type="text" name="age_'+i+'">' ;
- celldate.innerHTML = '<input type="date" name="date_'+i+'">' ;
- cellpoids.innerHTML = '<input type="text" name="poids_'+i+'">' ;
-
+ celldate.innerHTML = '<input name="date_'+i+'">' ;
+ celldate.firstChild.type = mode ;
+ if(mode == "text") // si on a déjà affiché les cases en mode texte, on continue en mode texte
+ {
+ celldate.firstChild.size = taillemaxdate ;
+ celldate.firstChild.maxlength = taillemaxdate ;
+ celldate.firstChild.placeholder = placeholder_date ;
+ }
+ cellpoids.innerHTML = '<input type="text" name="poids_'+i+'">' ;
}
}
}
}
+
+function change_mode_dates(mode)
+{
+ // passe de l'affichage en mode "date" à l'affichage en mode "texte" pour les navigateurs
+ // qui gèrent mal le mode date
+ var listeinput = document.getElementsByTagName("input") ;
+ for(i=0;i<listeinput.length;i++)
+ {
+ var nombalise = listeinput[i].name ;
+ if(nombalise == "naissance" || nombalise.slice(0,5) == "date_")
+ {
+ listeinput[i].type = mode ;
+ if(mode == "date")
+ listeinput[i].maxlength = taillemaxdate ;
+ listeinput[i].size = taillemaxdate ;
+ listeinput[i].placeholder = placeholder_date ;
+ }
+ }
+
+ // changer le texte et le bouton.
+ var elem = document.getElementById("changemode") ;
+ if(mode =="text")
+ {
+ 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 « confortable »."
+ }
+ else
+ {
+ elem.innerHTML = "<span onclick=\"change_mode_dates('text')\" class=\"bouton\">Cliquez ici</span> pour saisir les dates comme du texte."
+ }
+
+}
var boutondl = document.getElementById("export_dl") ;
- boutondl.setAttribute('onclick',"download_file('donnees_"+nomenfant+".json', 'application/json;charset=utf-8','"+encodeURIComponent(texte) +"')")
+ boutondl.setAttribute('onclick',"download_file('donnees_"+nomenfant+".txt', 'application/json;charset=utf-8','"+encodeURIComponent(texte) +"')")
if(result == "success")
function upload_file(data) {
document.getElementById('form_import_donnees').submit();
-}
\ No newline at end of file
+}
display: none;
}
+.petit {
+ font-size: 0.8em;
+}
+
.bouton {
text-decoration: underline;
}
<img src="static/icons/trash.png">
<span class="icon_legend">Effacer les données du formulaire</span>
</label>
- <input type="reset" id="reset_donnees" value="Effacer les données du formulaire">
+ <input type="reset" id="reset_donnees" value="Effacer les données du formulaire">
+ <p id="changemode" class="petit"><span onclick="change_mode_dates('text')" class="bouton">Cliquer ici</span> pour saisir les dates comme du texte.</p>
</div>
<ul>
<li><label>Nom de l'enfant :</label> <input type="text" name="nom" value="{{ valform.nom }}"></li>