Aller au contenu principal


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.

Billet créé le :
23 nov 2020

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)) .