Form di filtro: filtrare i dati del livello in base ai valori del campi

Regola

Questo strumento visualizza un form nel pannello di sinistra, basato su alcuni campi, e permette agli utenti di cercare tra i dati del livello con una varietà di input del form: caselle combinate, caselle di controllo, input di testo con autocompletamento, selettore di date con cursori tra la data minima e massima, ecc.

Avvertimento

Funziona solo con livelli database: PostgreSQL ( raccomandato), Spatialite e GeoPackage.

Utilizzando le istruzioni SQL, Lizmap interrogherà i dati da recuperare:

  • il numero totale di caratteristiche per il filtro corrente

  • i valori unici di alcuni campi (per il tipo Valori Univoci per esempio)

  • il minimo e il massimo dei campi numerici o dei campi data

  • l’estensione dei dati per il filtro corrente

Esempio

Potete vedere un video con un esempio: https://vimeo.com/331395259

Prerequisiti

Il livello deve essere pubblicato come WFS (vedi WFS/OAPI) e la chiave primaria deve essere pubblicata anche nelle Proprietà del livello.

Configurazione del plugin

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

C’è una nuova scheda nel plugin Lizmap che permette di configurare gli input dei filtri in base ai campi dei livelli. È possibile aggiungere uno o più campi per uno o più livelli. Se si aggiungono campi da 2 o più livelli diversi, Lizmap Web Client mostrerà una casella combinata per permettere all’utente di scegliere il livello da filtrare. Selezionando un livello si aggiorna il modulo e si disattiva il filtro corrente.

  • Hai bisogno di aggiungere una riga nella tabella dei plugin per ogni campo che hai bisogno di aggiungere nel modulo del filtro. Per ogni campo, è necessario configurare alcune opzioni:

    1. Fai clic sul pulsante add_layer_svg.

    2. Livello: il livello sorgente.

    3. Title: il titolo da dare all’input, che sarà visualizzato sopra l’input del modulo. Per esempio « Scegliere una categoria» per un campo di livello chiamato «categoria».

    4. Type: il tipo di input del modulo, tra uno dei seguenti: Text, Unique Values, Date, Numeric.

    5. Field: il nome del campo (nella tabella del database). Solo per i tipi Text, Unique Values e Numeric.

    6. Min date: il campo che contiene la data d’inizio del tuo oggetto (es: «start_date» di un evento). Questo è necessario solo per il tipo Date. Se hai solo un campo data nei tuoi dati, dovresti selezionarlo nel campo Min Date.

      • Max date: il campo che contiene la data finale dei vostri dati. Se hai 2 campi contenenti date, uno per la data iniziale e un altro per la data finale, puoi differenziarli. Altrimenti, devi usare lo stesso nome di campo per Min date e Max date.

      • Format: il formato del solo tipo Valori Univoci. Può essere select, che mostrerà una casella combinata, o checkboxes che mostrerà una casella di controllo per ogni valore distinto. I valori distinti sono interrogati dinamicamente da Lizmap Web Client.

    7. Splitter: solo per il tipo Valori univoci. Usalo se vuoi dividere i valori del campo con un separatore. Es: cultura, ambiente può essere diviso in cultura e ambiente con lo splitter `, `.

  • Per modificare un livello nella tabella, selezionalo e clicca sul pulsante edit_layer_svg o fai doppio clic sulla riga.

  • Per rimuovere un livello dalla tabella, selezionalo e clicca sul pulsante remove_layer_svg.

  • Per spostare un livello in alto o in basso, selezionatelo e cliccate sui pulsanti down_layer_svg o up_layer_svg. L’ordine cambierà anche in Lizmap.

Descrizione dei diversi tipi di input del modulo

Text

Questo è il tipo più semplice. Con questo tipo di input, l’utente vedrà un classico input di testo. Si può digitare qualsiasi testo e poi convalidare. L’autocompletamento è abilitato in modo predefinito, il che significa che Lizmap recupererà i valori unici per questo campo. Questa potrebbe essere un’opzione in futuro se alcuni set di dati sono troppo grandi e questa funzione di autocompletamento è troppo pesante.

Il filtro costruito sarà così:

"field" LIKE '%foo%'

Data

Questo tipo di input mostrerà un cursore con 2 bottoncini per permettere la ricerca tra i due valori selezionati. Anche i due input di testo sono mostrati e possono essere utilizzati per impostare manualmente le date minime e massime.

La data è «troncata» ad una data (nessun dato temporale come ore, minuti o secondi).

Il passo del cursore è hard coded ed è uguale a 86400 secondi, che significa 1 giorno.

Il filtro costruito sarà così:

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

Numerico

Questo tipo di input mostrerà un cursore con 2 bottoncini per consentire la ricerca tra i due valori selezionati. Vengono mostrati anche due input di testo che possono essere utilizzati per impostare manualmente i valori minimi e massimi.

Il filtro costruito sarà così:

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

Valori unici

Lizmap interrogherà i dati per ottenere i valori distinti del campo. Puoi scegliere due tipi di input diversi: select o checkboxes.

Se avete specificato uno splitter testuale, per esempio `, `, Lizmap troverà i valori unici dei valori testuali separati. Per esempio il valore di una caratteristica cultura, ambiente sarà diviso in cultura e ambiente con lo splitter `, `. Selezionando cultura o ambiente nell’input del modulo verrà mostrata questa caratteristica.

Si può scegliere di mostrare due diversi tipi di input:

  • Combo box: questo tipo mostrerà una casella combinata con la lista di valori distinti per il campo. L’utente potrà scegliere un solo elemento tra i valori.

  • Checkboxes: questo tipo mostrerà tante comboboxes quanti sono i valori distinti per il campo. I dati saranno filtrati con una UNION tra le voci selezionate.

Il filtro costruito sarà così:

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