Filtrer les éléments d'une vue
Voici un petit aide mémoire (niveau avancé) pour la mise en place d'un filtre un peu poussé pour ses vues.
1. Le problème à résoudre
Dans les événements à venir de la vue "calendrier", je ne veux afficher que les événements publiés qui vérifient ces 2 propositions :
ils se dérouleront dans les 7 jours à venir ;
ils ont débuté mais ils ne sont pas déjà terminés.
2. Une réponse possible
Comme on le devine dans l'image ci-contre, les critères de filtrage sont :
A : le contenu est publié ("contenu : publié (oui)) ;
B : la date de début de l'événement est située entre aujourd'hui et aujourd'hui en huit (now < début < now 7 day) ;
C : la date de début de l'événement est antérieure à aujourd'hui (l'événement a débuté) ;
D : la date de fin de l'événement est est postérieure à aujourd'hui (l'événement n'est pas fini).
On observera que certains critères sont incompatibles et que le critère "contenu publié" est utilisé 2 fois. Cela s'explique par l'impossibilité d'imbriquer les parenthèses. L' écriture A et (B ou (C et D)) n'étant pas possible, nous devons utiliser une écriture de la forme (A et B) ou (C et D). Malheureusement ces deux formes ne produisent pas le même résultat.
C'est pourquoi j'ai utilisé cette forme (A et B) ou (A et C et D) équivalente à A et (B ou (C et D)) .