Édition#
Nous allons faire un petit modèle de données pour recenser des logements.
Nous pourrons voir à travers cet exemple différent aspect de Lizmap.
SQL#
Commençons par créer les tables.
1 2 |
|
Afficher les solutions
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
N'oublions pas l'index spatial
1 |
|
Info
Vous devez avoir une couche des communes avec les codes INSEE dans votre projet également.
Propriétés du projet#
- Charger les couches dans le projet QGIS.
- Propriétés du projet, onglet Relations, ajouter toutes les relations automatiquement avec le bouton découvrir.
- Vous devriez avoir 2 relations dans le tableau.
Formulaire logement#
Tip
Regarder uniquement le formulaire dans QGIS bureautique dans un premier temps, pendant les différentes étapes.
- Dans les propriétés de la couche
logement
: - Ajouter des alias sur les champs
- Faire un formulaire par glisser/déposer
- Ajouter des onglets et des groupes
Tip
Nous n'avons pas besoin du champ id
pour nos utilisateurs lors d'une édition. C'est une information interne.
Paramétrage des "outils" pour les champs#
Pour l'ensemble des champs, nous allons configurer les Type d'outil ainsi que les contraintes si nécessaire.
Nous allons utiliser la documentation Lizmap sur les formulaires avancés.
adresse
:- Édition de texte
- Ajouter une expression pour la contrainte et une erreur qui sera affichée si l'expression n'est pas valide.
Tip
On remarque que QGIS détecte les contraintes des champs qui sont en base de données. Mais on peut personnaliser les messages d'erreurs.
Tip
Concernant l'expression de contrainte, QGIS va l'exécuter et va vérifier si l'expression renvoi une valeur booléenne si la saisie est valide ou non.
code_insee
:- Valeur relationnelle
- Couche commune
- Clé INSEE_COM
- Valeurs NOM
- Expression de filtre
intersects($geometry, @current_geometry)
- Ajouter une contrainte et une erreur
- Renforcer la contrainte par expression
- Liste de valeurs
studio
➡Studio
appartement
➡Appartement
maison
➡Maison
- ...
nb_pieces
:- Plage de valeur
pmr
:- Case à cocher
photo
:- Pièce jointe
- Chemin par défaut, ou alors un dossier comme
../media/specific_media_folder
- Filtre
Images (*.png *.jpg *.jpeg)
- Chemin par défaut, ou alors un dossier comme
- Pièce jointe
besoin_renov
:- Liste de valeurs
- Valeur NULL
true
➡Oui
false
➡Non
- Liste de valeurs
fiche_web
:- Texte
- Renforçons la contrainte avec une expression. Une regex est plus appropriée, mais utilisons une expression
simple pour vérifier que la chaîne commence par
http
- Ajouter une description pour la contrainte
date_construction
- Date
- format
dd/MM/yyyy
"date_construction" <= now()
- format
- Date
date_revision_fiche
- Date
- Format date
- Date
Utilisation des popups#
Nous pouvons activer :
- les popups "Automatique" pour la couche des états des lieux.
- l'affichage des popups enfants dans la couche des logements
Édition des tables filles#
Pour permettre l'ajout des états des lieux, il faut :
- Avoir les relations
- Avoir l'édition sur les 2 couches
- Avoir l'outil de table attributaire sur les couches filles
Quelques solutions#
Vérifier qu'un champ n'est ni NULL ni une chaîne vide
"adresse" IS NOT NULL AND "adresse" != ''
Vérifier que la chaîne commence par http
left("fiche_web", 4) = 'http'