Formulaire de filtrage — Filtrer une couche en fonction de la valeur des champs

Principe

Cet outil affiche un formulaire dans le panneau de gauche, basé sur plusieurs champs, et permet aux utilisateurs de chercher parmi les couches de données avec un ensemble d’entrée de formulaire : des combo boxes, des cases à cocher, des entrées texte avec autocomplétion, des sélecteurs de date avec sliders entre la date minimum et maximum, etc.

Avertissement

Ceci fonctionne uniquement avec des couches provenant de base de donnés : PostgreSQL (recommandé), Spatialite et GeoPackage.

En utilisant du SQL, Lizmap va requêter les données afin de récupérer :

  • le nombre total des entités pour le filtre courant

  • les valeurs uniques de certains champs (pour le type Valeurs uniques par exemple)

  • le minimum et le maximum pour les champs numériques ou de date

  • l’emprise des données pour le filtre courant

Note

Le bouton Export du panneau Filter est lié à l’outil attribute table tool.

Exemple

Vous pouvez voir une vidéo avec un exemple : https://vimeo.com/331395259

Pré-requis

La couche doit publiée en WFS (voir WFS/OAPI) et la clé primaire doit aussi être publiée dans les Propriétés de la couche.

Configurer l’outil

../../_images/interface-add-form-filter.jpg

Il existe un onglet dans le plugin Lizmap qui vous permet de configurer les entrées du filtre en fonction des champs de la couche. Vous pouvez ajouter un ou plusieurs champs pour une ou plusieurs couches. Si vous ajoutez des champs de 2 ou plusieurs couches différentes, Lizmap Web Client affichera une liste déroulante pour permettre à l’utilisateur de choisir la couche à filtrer. La sélection d’une couche rafraîchira le formulaire et désactivera le filtre actuel.

  • Vous devez ajouter une ligne dans le tableau de l’extension pour chaque champ souhaité dans le formulaire de filtre. Pour chaque champ vous devez configurer des options :

    1. Cliquer sur le bouton add_layer_svg.

    2. Couche: la couche source.

    3. Titre : le titre souhaité pour l’entrée, qui sera affiché au-dessus de l’entrée du formulaire. Par exemple « Choisir une catégorie » pour un champ de couche intitulé « category ».

    4. Type : le type de l’entrée du formulaire parmi l’un des suivants : Texte, Valeurs uniques, Date, Nombre.

    5. Champ : le nom du champ (dans la table en base données). Seulement pour les types Texte, Valeurs uniques et Nombre.

    6. Date min. : le champ contenant la date de début de votre objet (ex : « debut_date » d’un événement). Ceci n’est nécessaire que pour le type Date. Si vous n’avez qu’un seul champ date dans vos données, vous devriez le sélectionner dans le champ Date min.

      • Date max. : le champ contenant la date de fin de votre donnée. Si vous avez 2 champs contenant des dates, un pour la date de début et un autre pour la date de fin, vous pouvez les différencier. Sinon, vous devez utiliser le même champ pour Date min. et Date max..

      • Format : le format pour le type Valeurs uniques seulement. Sa valeur peut être Liste sélection, qui affichera une combo box, ou Cases à cocher qui affichera une case à cocher pour chaque valeur distincte. Les valeurs distinctes sont interrogées dynamiquement par Lizmap Web Client.

    7. Séparateur : pour le type Valeurs uniques seulement. A utiliser si vous voulez séparer les valeurs du champ par un séparateur. Ex : culture, environnement peuvent être séparés en culture et environnement avec le séparateur `, `.

  • Pour éditer une couche dans la table, sélectionner la et cliquer sur le bouton edit_layer_svg ou alors double-cliquer sur la ligne.

  • Pour supprimer une couche de la table, cliquez sur celle-ci puis sur le bouton remove_layer_svg.

  • Pour monter ou descendre une couche, vous devez la sélectionner et cliquer down_layer_svg ou up_layer_svg. L’ordre changera dans Lizmap également.

Description des différents types de champ du formulaire

Texte

Le type le plus simple. Avec ce type d’entrée, l’utilisateur verra une entrée classique de type texte. Vous pouvez saisir n’importe quel texte et validez. L’autocomplétion est activée par défaut, ce qui signifie que Lizmap retrouvera les valeurs uniques pour ce champ. Ceci pourrait dans le futur devenir optionnel si certains jeux de données étaient trop gros et que l’autocomplétion devenait trop lourde.

Le filtre est construit comme suit:

"field" LIKE '%foo%'

Date

Ce type de saisie affiche un curseur avec deux poignées pour permettre la recherche entre les deux valeurs sélectionnées. Les deux entrées de texte sont également affichées et peuvent être utilisées pour définir manuellement les dates minimale et maximale.

La date est « tronquée » à un format date (pas de donnée temps tel que les heures, minutes ou secondes actuellement).

Le pas du slider est codé en dur et vaut 86400 secondes, ce qui représente 1 jour.

Le filtre est construit comme suit:

( ( "field_date" >= '2017-04-23' OR  "field_date" >= '2017-04-23' ) AND ( "field_date" <= '2018-06-24' OR  "field_date" <= '2018-06-24' ) )

Numérique

Ce type de saisie affiche un curseur avec deux poignées pour permettre la recherche entre les deux valeurs sélectionnées. Deux entrées de texte sont également affichées et peuvent être utilisées pour définir manuellement les valeurs minimale et maximale.

Le filtre est construit comme suit:

( ( "field" >= 100 ) AND ( "field_date" <= 200 ) )

Valeurs uniques

Lizmap interrogera les données pour obtenir les valeurs distinctes du champ. Vous pouvez choisir deux types de saisie différents : Liste sélection ou cases à cocher.

Si vous avez spécifié un texte séparateur, par exemple `, `, Lizmap trouvera les valeurs uniques des valeurs séparées du texte. Par exemple, la valeur d’une entité « culture, environnement » sera divisée en « culture » et « environnement » avec le séparateur `, `. En sélectionnant « culture » ou « environnement » dans le formulaire de saisie, vous afficherez cette entité.

Vous pouvez choisir de montrer deux types de champ différents :

  • Combo box : ce type affiche une combo box avec la liste des valeurs distinctes pour le champ. L’utilisateur ne pourra choisir qu’un seul élément parmi ces valeurs.

  • Checkboxes : ce type affichera autant de comboboxes que de valeurs distinctes pour le champ. Les données seront filtrées avec un UNION entre les éléments cochés.

Le filtre est construit comme suit:

( "field_thematique" LIKE '%Cuisine%'  OR "field_thematique" LIKE '%Ecocitoyen%'  )