Contribuer

Infos Contribution

Suivre
1 suiveur

Statistiques

Envoyé : 2017-06-28 01:11:41 -0500

Vu : 38 fois

Dernière mise à jour : 2017-08-01 07:40:17 -0500

1

Champ date - Date maximale ou minimale dynamique

envoyé 2017-06-28 01:11:41 -0500

Image Gravatar de LaurentC

Bonjour,

Je souhaiterais dans un formulaire, sur un champs date, imposer des dates minimum ou maximum en lien avec la date du jour: Ex une réservation possible entre demain (J+1) et dans 1 an (J+350). J'ai vu sur une autre contribution datant de 2014 que cela allait être réalisé.

Pouvez vous m'indiquer si Cela est possible et comment le réaliser

Merci d'avance.

modifier requalifier fermer Supprimer

Commentaires

si quelqu'un à la solution je suis preneuse, beaucoup de démarches sont conditionnées à des délais mini !

a.ecuvillon ( 2017-06-28 02:19:33 -0500 )modifier

2 réponses

Filtrer les contributions : anciennes récentes populaires
1

répondue 2017-08-01 07:40:17 -0500

Image Gravatar de Pierre
Entr'ouvert

Merci Anaïs pour l'explication. À noter que nous avons depuis ajouté des fonctions date() et days() pour faciliter certaines opérations sur les dates :

https://doc-publik.entrouvert.com/adm...

modifier Supprimer publié plus

Commentaires

Ok, merci Pierre.

a.ecuvillon ( 2017-08-21 04:09:47 -0500 )modifier
0

répondue 2017-06-28 02:19:59 -0500

Image Gravatar de a.ecuvillon

Bonjour, je suis intéressée par cette question, que j'ai essayé de résoudre en ajoutant une condition de sortie de page.

En m'appuyant sur la doc j'ai utilisé cette condition : utils.age_in_days(form_var_date) > 30 La date renseignée doit être supérieure à la date du jour, sinon la condition n'est pas respectée. Mais cette condition ne fonctionne pas.

J'ai également essayé avec ça : form_var_date >= datetime.datetime.now() + datetime.timedelta(days=30) Cela ne fonctionne pas non plus.

Si quelqu'un a d'autres pistes...

Edit 11/07/2017 :

Et voilà une solution qui fonctionne, condition de sortie

utils.age_in_days(form_var_datetest) <= -1 : la date renseignée par l'usager doit être de J+1 utils.age_in_days(form_var_datetest) >= -350 : la date renseignée par l'usager doit être dans moins de 350 jours.

On a remarqué que les valeurs sont inversées et donc imposent une gymnastique mentale : demain, age_in_days donne -1, hier c'était "1".

Donc : age_in_days(var) < -3 : tout ce qui sera à plus de 3 jours dans le futur (strictement plus de 3 jours, donc 4 et plus). 3 jours inclus : <= -3 . 15 jours dans le futur, c'est _inférieur_ à -3 car c'est -15.

En espérant que cela te soit utile. Bonne journée,

modifier Supprimer publié plus
S'identifier/S'inscrire pour répondre