Aller au contenu | Aller au menu | Aller à la recherche

jeudi 18 mars 2021

On our way to quality

Lizmap is almost 10 years old. 10 years of new features, documentation, and numerous version release. Many software libraries updates, many contributors (31 if github is correct) and contributions later we've released version 3.4 at the end of 2020.

Whilst in the release cycle, we realized that our release process was lacking something. We were unsure of the quality of this release, and we were missing some tools to assess whether the release would contain regressions.

In order to avoid these issues in future releases and updates, we decided to implement a number of processes and changes in both how we release and build lizmap.

First : we have decided to not accept code patches without tests. Be these tests unit tests, integration tests or just some lines of text explaining how to test for the bug or regression being fixed by the patch. We are now maintaining a list of tests in our code repository.

Secondly we changed our release process to be able to test. We now have a dedicated time slot between the time when our code is ready and the time our code is released to the world. This will let us test internally and will let us gather feedback from users testing our release candidates.

Our third point is community centered. It's now quite easy to set up a lizmap stack or two using our Docker images. Using these instructions you'll have a docker running lizmap in no time on your computer. Add a project or two to it, test and see if you see anything that doesn't work like your production environment and let us know by opening a ticket. Our aim here is to have more user test our release candidates (we do these for major releases) so we can quickly fix regressions before we officially release.

Fourth we are setting up internal processes to make our code easier to test (docker is a good example of this) and easier to read. Hence, are growing use of linters. We also added a code analyzer for our backend: PHPstan.

Finally, we spent a good amount of time updating our demos (see demo.lizmap.com), making sure they work. This makes our demos a reference for most of our testing.

We had realized in June 2020 some of theses issues around quality. That's why we had an intern refactor lizmap. That refactor had two goals. One was to make it easier to add tests to its code and the second one was to add more tests. All these changes have made it to the 3.4 branch. They aren't in the 3.3 branch because it would have meant too much work. This means 3.3 is a bit less tested than 3.4 (hint upgrading from 3.3 is very easy).

Now that most of our backend is covered we are focusing our efforts on the front-end. This means we will update some of the libraries we use, we will refactor our code and will add as much test as possible. This is going to be the work of an intern. We have chosen Cypress to build end2end tests.

All of these automated tests (backend, front-end, end2end) are being run from our githubrepo through github actions.

All these changes have been made possible by the growth of 3liz during 2020.

Nos efforts qualité

Lizmap a près de 10 ans. 10 ans de code, d'ajout de nouvelles fonctionnalités, de rédaction de documentation, de sortie de nombreuses versions. Des montées de versions de librairies, de nombreux contributeurs (31 si j'en crois GitHub) et contributions plus tard, nous avons sorti la version 3.4 fin 2020.

Lors de ce cycle de release entre les differentes versions RC et la version finale, nous nous sommes rendu compte d'un manque dans notre processus de release. Nous n'étions pas sûrs de la qualité de lizmap au moment de cette sortie et nous n'avions pas assez de moyens pour évaluer le risque d'avoir une version qui contiendrait des régressions.

Afin de rendre le produit plus fiable lors de mise-à-jour et de pouvoir être plus serein lors de nos prochaines sorties de version, nous avons mis en place un certain nombre de points afin d'améliorer la qualité.

Le premier est de ne plus accepter de contributions sans tests. Des tests automatiques, c'est bien, mais des procédures manuelles de tests, c'est bien aussi. Nous avons donc maintenant une règle qui dit "pas de patch sans test". Nous préférons les tests automatiques qui seront joués lors de l'intégration continue. Mais nous avons aussi conscience que tout n'est pas testable de manière automatique. Et donc qu'un certain nombre de tests devront se jouer de manière manuelle. Nous maintenons donc une liste de tests à jouer. Ces projets de tests sont présents dans les branches 3.4 et pour la prochaine version 3.5 (aka master).

Le deuxième est de mettre en place un processus de release qui intègre une phase de test. Nous consacrons maintenant un jour ou deux afin de pouvoir jouer tous les tests et de valider qu'aucune régression n'est présente. Pour les versions majeures, nous avons alloué encore plus de temps afin de pouvoir intégrer le retour de nos utilisateurs.

Troisième point dans lequel nous avons investi, la participation communautaire aux tests. Il est désormais très simple d'avoir un Lizmap avec un ou plusieurs projets. Il suffit d'utiliser notre stack docker, d'ajouter votre projet et de voir si tout fonctionne comme prévu. Si un problème survient, il est alors possible d'ouvrir au plus vite un ticket avec le maximum d'information pour que nous puissions le corriger. Nous souhaiterions que plus de personnes participent aux tests de nos Release Candidates (RC), afin de détecter avant les sorties les régressions sur vos projets.

Quatrièmement, nous mettons en place des processus internes pour que notre code soit plus facile à tester (cf la stack docker), mais aussi plus lisible par l'utilisation de linters. Nous avons également ajouté un analyseur de code pour le backend, PHP Static Analyser afin de nous prévenir de possibles erreurs côté PHP.

Cinquièmement, nous venons de passer du temps à mettre à jour la plate-forme de démo https://demo.lizmap.com; les projets ont été dépoussiérés et mis à jour. Ces mises à jour facilitent l'adoption de nos démos comme un référentiel de tests avec de vraies données.

Nous avions pris conscience en juin 2020 d'un déficit dans nos processus qualité. Nous avions donc dirigé un stage afin de refactoriser la librairie Lizmap pour qu'elle soit plus facile à tester de manière automatique. De nombreux tests ont été ajoutés lors de cette refactorisation. Ces changements ont été intégrés dans la future branche 3.5 de Lizmap. C'était trop de travail pour l'intégrer dans les branches 3.3 et 3.4 - elles seront donc légèrement moins bien testées de manière automatique par la CI.

La partie backend PHP étant mieux couverte et mieux testable, nos efforts dans les mois à venir vont se focaliser sur la partie front-end (Javascript, inteface Web...), avec des mises à jour de librairies, de la refactorisation de code et l'ajout de nombreux tests. Une stagiaire en fera le sujet de son stage, on ajoutera grâce à l'outil cypress des tests end2end automatiques.

Les tests backend PHP ainsi que frontend end2end Javascript, ainsi que les linters PHP et Javascript sont lancés sur le dépôt GitHub avec Actions.

Tous ces changements n'ont été possibles qu'en allouant plus de ressources au projet Lizmap au sein de 3liz, par l'arrivée de nouvelles personnes dans l'équipe.

mardi 2 février 2021

2021, Lizmap will be 10 years old

The year 2020 was marked by the growth of the 3Liz team (now we are 8) and the release of version 3.4 of Lizmap Web Client (Liste des nouvelles fonctionnalités)

This new version marks a change in the way Lizmap Web Client works, as some features now depend on the installation of the Lizmap plugin for QGIS Server. The Lizmap plugin extend QGIS Server API.

In 2011, when Michaël imagined Lizmap, he wanted to take advantage of QGIS Server to facilitate the creation of Web maps, by offering a solution that integrates with QGIS so that the geographic data manager doesn't have to change tools when he wants to make a Web publication of his work.

In 10 years, Lizmap has become a true tool for creating and publishing Web mapping applications ranging from simple maps for consulting geographic data to collaborative geographic data management applications (addresses, water networks, naturalist observations, etc.), including the creation of dashboards with graphs or data mining tools.

Flood risks in Montpellier

lizmap-3_4-photo.jpg, fév. 2021
Consulting data with Lizmap

Points of interest in the Lake Geneva Watershed

lizmap-3_4-selection.jpg, fév. 2021
Selecting and export data with Lizmap

Faunistic observations in Polynesia

lizmap-3_4-edition.png, fév. 2021
Collaborative Data Editing with Lizmap

Evolution of COVID-19 in France from march to may 2020

lizmap_3-4_dashboard-covid.png, fév. 2021
Dashboards Lizmap

Follow-up of cats' movements

lizmap-3_4-discover-data.png, fév. 2021
Data mining with Lizmap

In 2021, we want to continue to improve the quality and stability of Lizmap (code refactoring, adding new tests), release 2 new versions of Lizmap Web Client with a version 3.5 at the end of May 2021, and maybe a new major version at the end of the year.

All the 3Liz team wishes you a very happy new year 2021 with Lizmap.

lundi 25 janvier 2021

Refactoring and tests about the PHP code in Lizmap

Adrien Lagroy de Croutte from the École 42 joined 3Liz 6 months ago for an internship.

  • His main goal was to lead a refactoring on the PHP code of Lizmap, to make it easier to write unit tests.

  • His second goal was writing unittests. Approximately 200 unit tests have been added. These tests are executed by the continuous integration platform on each commit to avoid regressions and bugs.

Thanks to this work, we will avoid regressions for any next versions of Lizmap by having more tests on our continuous integration platform.

Thanks to you Adrien ;)

Refactoring et tests du code PHP de Lizmap

Adrien Lagroy de Croutte de l'École 42 a rejoint 3Liz il y a 6 mois dans le cadre d'un stage.

  • Sa mission principale a été de faire un refactoring du code PHP de Lizmap, ceci dans le but de pouvoir plus facilement le tester unitairement.

  • Sa seconde mission a été d'ajouter plus de 200 tests unitaires. Ceci sont exécutés par nos outils d'intégration continue sur chaque modification du code, nous évitant de possible bugs et régressions.

Grâce à ce travail, nous limitons les régressions sur les prochaines versions de Lizmap en rendant le code plus testable par des outils d'intégration continue.

Merci à toi Adrien ;)

jeudi 26 novembre 2020

Lizmap Web Client 3.4 RC

We are pleased to announce the release of Lizmap Web Client 3.4 RC (release candidate). You will find the new features list here:

This new Lizmap Web Client release comes with Lizmap plugin in 3.3 version:

There remains work on documentation and translation. Any help is welcome :)

Lizmap Web Client 3.4 RC

Nous sommes heureux d’annoncer la sortie de Lizmap Web Client 3.4 RC (release candidate). Vous trouverez la liste des nouvelles fonctionnalités ici :

Cette nouvelle version de Lizmap Web Client s'accompagne de celle du plugin Lizmap en version 3.3 :

Il reste du travail concernant la documentation et la traduction. Toute aide est la bienvenue :)

mardi 24 novembre 2020

Evaluate QGIS Expression server side with Lizmap plugin

Since the beginning of Lizmap-Web-Client all the server part was based on PHP code. With Lizmap Web Client 3.4, which will be released very soon, part of the functionality has been developed within the Lizmap plugin to add features to QGIS Server.

QGIS Server is an open source implementation of the WMS 1.3.0, 1.1.1 and 1.0.0, WFS 1.1.0 and 1.0.0 and WCS 1.0.0 standards defined by the Open Geospatial Consortium (OGC). QGIS Server uses QGIS as a backend for GIS layer logic and map rendering. As QGIS desktop and QGIS Server use the same visualization libraries, the maps that are published on the web look the same as in desktop GIS.

To learn more about QGIS Server

Just like QGIS Desktop, QGIS Server is extensible using Python plugins. It is for example possible to create and add new services to QGIS Server. Documentation

The second QGIS Server feature we have implemented in the Lizmap plugin is a QGIS expression evaluation service.

  • SERVICE=EXPRESSION
    • REQUEST=Evaluate
      • EXPRESSION: a QGIS expression
      • EXPRESSIONS: List of QGIS expressions
      • FEATURE: Option a GeoJSON Feature
      • FEATURES: Option a list of GeoJSON Features
      • FORM_SCOPE: Option boolean to add formScope based on provided features
    • REQUEST=replaceExpressionText
      • STRING: A string with expression between [% and %]
      • STRINGS: A list of strings with expression between [% and %]
      • FEATURE: Option a GeoJSON Feature
      • FEATURES: Option a list of GeoJSON Features
      • FORM_SCOPE: Option boolean to add formScope based on provided features
    • REQUEST=GetFeatureWithFormScope
      • LAYER: a WMS Layer Name to be filtered
      • FILTER: a QGIS expression to filter the layer
      • FORM_FEATURE: a GeoJSON Feature
      • FIELDS: Option a list of fields to return
      • WITH_GEOMETRY: Option boolean to return geometry
    • REQUEST=VirtualFields
      • LAYER: a WMS Layer Name to get virtual fields
      • VIRTUALS: a list of key QGIS expression
      • FILTER: Option a QGIS expression to filter layer
      • FIELDS: Option a list of fields to return
      • WITH_GEOMETRY: Option boolean to return geometry

These new queries are used in Lizmap Web Client 3.4 to exploit expressions from QGIS forms. These expressions can be used for :

  • Set default values
  • Set constraints
  • Do drill down
  • Manage field group visibility

Example of using QGIS expression as a form constraint: lizmap-3_4-exp-constraint.png, nov. 2020

Example of use of QGIS expression to manage the visibility of groups of fields Use QGIS Expression to control group visibility

In the case of drill down in forms, it is possible to use geometry to filter the list, for example to select a municipality, a parcel or the nearest street. It is of course possible to use all other values during form entry.

Finally we also added a lizmap service with a GetServerSettings query to retrieve information about QGIS Server and available services.

Evaluer les Expresions QGIS côté serveur avec le Plugin Lizmap

Depuis le début de Lizmap-Web-Client toute la partie serveur reposait sur du code PHP. Avec Lizmap Web Client 3.4, qui sera publié très prochainement, une partie des fonctionnalités ont été développées au sein du plugin Lizmap pour ajouter des fonctionnalités à QGIS Server.

QGIS Server est une implémentation open source des normes WMS 1.3.0, 1.1.1 et 1.0.0, WFS 1.1.0 et 1.0.0 et WCS 1.0.0 défini par l'Open Geospatial Consortium (OGC). QGIS Server utilise QGIS comme backend pour la logique des couches SIG et le rendu cartographique. Étant donné que QGIS Bureautique et QGIS Server utilisent les mêmes bibliothèques de visualisation, les cartes publiées sur le web ont le même aspect que sous le SIG Bureautique.

Pour en savoir plus sur QGIS Server

Tout comme QGIS Bureautique, QGIS Server est extensible à l'aide de plugins Python. Il est par exemple possible de créer, d'ajouter de nouveaux services à QGIS Server. Documentation

La seconde fonctionnalité QGIS Server que nous avons implémentée dans le plugin Lizmap est un service d'évaluation des expressions QGIS.

  • SERVICE=EXPRESSION
    • REQUEST=Evaluate
      • EXPRESSION: a QGIS expression
      • EXPRESSIONS: List of QGIS expressions
      • FEATURE: Option a GeoJSON Feature
      • FEATURES: Option a list of GeoJSON Features
      • FORM_SCOPE: Option boolean to add formScope based on provided features
    • REQUEST=replaceExpressionText
      • STRING: A string with expression between [% and %]
      • STRINGS: A list of strings with expression between [% and %]
      • FEATURE: Option a GeoJSON Feature
      • FEATURES: Option a list of GeoJSON Features
      • FORM_SCOPE: Option boolean to add formScope based on provided features
    • REQUEST=GetFeatureWithFormScope
      • LAYER: a WMS Layer Name to be filtered
      • FILTER: a QGIS expression to filter the layer
      • FORM_FEATURE: a GeoJSON Feature
      • FIELDS: Option a list of fields to return
      • WITH_GEOMETRY: Option boolean to return geometry
    • REQUEST=VirtualFields
      • LAYER: a WMS Layer Name to get virtual fields
      • VIRTUALS: a list of key QGIS expression
      • FILTER: Option a QGIS expression to filter layer
      • FIELDS: Option a list of fields to return
      • WITH_GEOMETRY: Option boolean to return geometry

Ces nouvelles requêtes servent dans Lizmap Web Client 3.4 à exploiter les expressions des formulaires QGIS. Ces expressions peuvent servir à :

  • Définir des valeurs par défaut
  • Définir des contraintes
  • Faire des listes en cascade
  • Gérer la visibilité de groupes de champs

Exemple d'utilisation d'expression QGIS comme contrainte de formulaire: lizmap-3_4-exp-constraint.png, nov. 2020

Exemple d'utilisation d'expression QGIS afin de gérer la visibilité des groupes de champs Use QGIS Expression to control group visibility

Dans le cas des listes en cascades dans les formulaires, il est possible d'utiliser la géométrie pour filtrer la liste, par exemple pour sélectionner une commune, une parcelle ou la rue la plus proche. Il est bien sûr possible d'utiliser toutes les autres valeurs en cours de saisie du formulaire.

Enfin nous avons aussi ajouter un service lizmap avec une requête GetServerSettings pour récupérer des informations sur QGIS Server et les services disponibles.

lundi 16 novembre 2020

The Lizmap plugin as an access control plugin for QGIS Server

Since the beginning of Lizmap-Web-Client all the server part was based on PHP code. With Lizmap Web Client 3.4, which will be released very soon, part of the functionality has been developed within the Lizmap plugin to add features to QGIS Server.

QGIS Server is an open source implementation of the WMS 1.3.0, 1.1.1 and 1.0.0, WFS 1.1.0 and 1.0.0 and WCS 1.0.0 standards defined by the Open Geospatial Consortium (OGC). QGIS Server uses QGIS as a backend for GIS layer logic and map rendering. As QGIS desktop and QGIS Server use the same visualization libraries, the maps that are published on the web look the same as in desktop GIS.

To learn more about QGIS Server

Just like QGIS Desktop, QGIS Server is extensible using Python plugins. For example, it is possible to add a data access control system to QGIS Server Documentation.

The first QGIS Server feature we implemented in the Lizmap plugin is an access control system.

We have implemented 3 access controls:

  • access to the project
  • filter by user
  • access to project layers

The first 2 controls were already present. In the Lizmap configuration, it is possible to restrict access to a project for a list of user groups. It is also possible to define filtering rules according to the user logged in or not.

The implementation in QGIS Server of the filter by user, thanks to the Lizmap plugin, allows to filter layers even if they are hidden in a layer group. In Lizmap Web Client version 3.3 and previous versions, filtering layers by user only works if the layer is displayed alone, because Lizmap Web Client adds filters to the requests sent to QGIS server. In Lizmap, it is possible to transform a group of QGIS layers into a single layer for the web client. This results in requests where the layer to be filtered does not appear. With the Lizmap plugin for Lizmap Web Client 3.4 all layers will be filtered correctly.

By making the Lizmap plugin, an access control plugin for QGIS Server, we were able to add the possibility to restrict access to the layers of a project for a list of user groups.

The ability to restrict access to the layers of a project for a list of user groups makes it possible to distribute a QGIS project, a Lizmap webmap, with a content that can vary depending on the user.

Le plugin Lizmap comme plugin de contrôle d'accès pour QGIS Server

Depuis le début de Lizmap-Web-Client toute la partie serveur reposait sur du code PHP. Avec Lizmap Web Client 3.4, qui sera publié très prochainement, une partie des fonctionnalités ont été développées au sein du plugin Lizmap pour ajouter des fonctionnalités à QGIS Server.

QGIS Server est une implémentation open source des normes WMS 1.3.0, 1.1.1 et 1.0.0, WFS 1.1.0 et 1.0.0 et WCS 1.0.0 défini par l'Open Geospatial Consortium (OGC). QGIS Server utilise QGIS comme backend pour la logique des couches SIG et le rendu cartographique. Étant donné que QGIS Bureautique et QGIS Server utilisent les mêmes bibliothèques de visualisation, les cartes publiées sur le web ont le même aspect que sous le SIG Bureautique.

Pour en savoir plus sur QGIS Server

Tout comme QGIS Bureautique, QGIS Server est extensible à l'aide de plugins Python. Il est par exemple possible d'ajouter un système de contrôle d'accès aux données dans QGIS Server Documentation.

La première fonctionnalité QGIS Server que nous avons implémentée dans le plugin Lizmap est un système de contrôle d'accès.

Nous avons implémenté 3 contrôles d'accès :

  • l'accès au projet
  • le filtre par utilisateur
  • l'accès aux couches du projet

Les 2 premiers contrôles étaient déjà présent. Dans la configuration Lizmap, il est possible de restreindre l'accès à un projet pour une liste de groupes d'utilisateur. Il est aussi possible de définir des règles de filtrage en fonction de l'utilisateur connecté ou non.

Le portage dans QGIS Server du filtre par utilisateur, grâce au plugin Lizmap, permet de filtrer des couches même si elles sont cachées dans un groupe de couche. Dans la version 3.3 de Lizmap Web Client et les précédentes, le filtrage par utilisateur des couches ne fonctionne que si la couche est affichée seule, car Lizmap Web Client ajoute des filtres aux requêtes envoyées à QGIS server. Dans Lizmap, il est possible de transformer un groupe de couche QGIS en une seule couche pour le client web. Il en découle des requêtes où n'apparaissent pas la couche à filtrer. Avec le plugin Lizmap pour Lizmap Web Client 3.4 toutes les couches seront filtrées correctement.

En faisant du plugin Lizmap, un plugin de contrôle d'accès pour QGIS Server, nous avons pu ajouter la possibilité de restreindre l'accès des couches d'un projet pour une liste de groupes d'utilisateur.

La possibilité de restreindre l'accès des couches d'un projet pour une liste de groupes d'utilisateurs permet de diffuser un projet QGIS, une carte Lizmap, avec un contenu qui peut varier en fonction de l'utilisateur.

lundi 6 juillet 2020

QGIS Server 3.10.8 will be fully compatible with lizmap

On March 6, 2020, a Lizmap user identified a regression in QGIS Server 3.10 compared to version 3.4. This regression concerns the print function (GetPrint) for the layer groups configured as a single layer for Lizmap. A group configured as a layer could no longer be printed with QGIS Server 3.10.

To correct this bug, we decided to use Test Driven Developments. We started by creating a new test for QGIS Server highlighting the regression. We then corrected this regression and verified using the test that the patch we proposed corrected the test.

The problem is that once the patch and the new test were integrated into the master branch (development version) and the release-3_12 branch (version 3.12) of QGIS, the Travis-based continuous integration system used by QGIS indicated regularly have a problem with testing the QGIS Server print function. Regression correction was therefore not included in version 3.10 of QGIS which is the long term released version (LTR), and tests of the printing function of QGIS Sever were blacklisted for the continuous integration. In fact the test indicated a Segfault.

It took QGIS Server developers several months, PR 36198, PR 36581, PR 37179, to identify the reason why testing of the QGIS Server print function was failed in continuous integration. The reason was simple: the test was too long, it exceeded 55 seconds fc561d0
on travis in continuous integration.

It is true that the test file started to be too long. The solution to be able to reactivate the tests in continuous integration was to separate the tests of the printing function of QGIS Server in several tests.

Once the tests of the printing function reactivated for the master branch and the release-3_14 branch, the regression patch could be integrated into the release-3_10 branch (version 3.10 of QGIS) and this patch will be available when the release of version 3.10.8 on July 17, 2020.

QGIS Server 3.10.8 sera totalement compatible avec Lizmap

Le 6 mars 2020, un utilisateur de Lizmap identifiait une régression dans QGIS Server 3.10 par rapport à la version 3.4. Cette régression concerne la fonction d'impression (GetPrint) pour les groupes de couches configurés en tant que couche simple pour Lizmap. Un groupe configuré comme une couche ne pouvait plus être imprimé avec QGIS Server 3.10.

Pour corriger ce bug, nous avons décidé de fair du Développements Pilotés par les Tests Nous avons commencé par créer un nouveau test pour QGIS Server mettant en avant la régression. Nous avons ensuite corrigé cette régression et vérifié à l'aide du test que le correctif que nous proposions corrigeait bien le test.

Le problème est qu'une fois le correctif et le nouveau test intégrés à la branche master (version de développement) et à la branche release-3_12 (version 3.12) de QGIS, le système d'intégration continue basé sur Travis utilisé par QGIS indiquait régulièrement un problème avec les tests de la fonction d'impression de QGIS Server. La correction de la régression n'a donc pas été intégré à la version 3.10 de QGIS qui est la version maintenue à long terme (LTR), et les tests de la fonction d'impression de QGIS Sever ont été placé sur liste noire pour l'intégration continue. En fait le test indiquait un Segfault.

Il nous a fallu, aux développeurs QGIS Server PR 36198, PR 36581, PR 37179, plusieurs mois pour identifier la raison pour la quelle les tests de la fonction d'impression de QGIS Server ne passait plus dans l'intégration continue. La raison était simple : le test était trop long, il dépassait les 55 secondes fc561d0 sur travis en intégration continue.

Il est vrai que le fichier de test commençait à être trop long. La solution pour pouvoir réactiver les tests en intégration continue était de séparer les tests de la fonction d'impression de QGIS Server en plusieurs tests.

Une fois les tests de la fonction d'impression réactivés pour la branche master et la branche release-3_14, le correctif de la régression a pu être intégré à la branche release-3_10 (version 3.10 de QGIS) et ce correctif sera disponible lors de la publication de la version 3.10.8 le 17 juillet 2020.

lundi 30 septembre 2019

Lizmap Web Client and QGIS 3 : enfin compatible

Nous sommes heureux d’annoncer la sortie de lizmap Web Client 3.3 - 1 - et lizmap plugin 3.1 - 2 - 3

Ces versions proposent de nouvelles fonctionnalités:

  • Ajout de la recherche dans la base de données d'adresses français BAN
  • Créer une info-bulle HTML à partir du formulaire par glisser-déposer de QGIS
  • Amélioration de l'info-bulle HTML: utilisation de la valeur à afficher
  • Ajout de la possibilité de construire un formulaire de filtrage pour les couches PostgreSQL / PostGIS

Mais la fonctionnalité principale est la prise en charge de QGIS Server 3 4.

Pour cela, nous devions adapter le client Web lizmap aux changements apportés à QGIS Server et corriger QGIS Server 3.4 afin de proposer une expérience utilisateur identique :

  • Fix regression server print selection pdf
  • JPEG output for WMS GetPrint request has gone
  • In WMS GetFeatureInfo CRS param not mandatory when FILTER param
  • Add unit test for WFS GetFeature with BBOX param without EPSG
  • SLD : Support escapeChar attribute of PropertyIsLike
  • Null field value in GML has to be empty string
  • Use Project selection color in GetPrint
  • Unit-test: To avoid regression in Server printing to PDF output format
  • Keeps empty parts for not empty styles parameters

Nous avions également besoin de mettre à jour des plugins QGIS Server utiles pour Lizmap :

  • Atlas print 5
  • WFS output Extension 6

Si vous utilisez déjà Lizmap Web Client, vous pouvez :

  • mettre à jour Lizmap Web Client vers la version 3.3
  • mettre à jour QGIS Server vers la version 3.4
  • mettre à jour les plugins QGIS Server que vous utilisez
  • rendez-vous sur le backoffice de Lizmap Web Client pour mettre à jour la version de QGIS Server dans la configuration
  • mettez à jour votre plugin Lizmap vers la version 3.1 dans votre QGIS bureautique 3.4
  • et mettez à jour vos projets QGIS.

Si vous souhaitez tester lizmap, installez la dernière version avec QGIS Server LTR.

Dernière information, une liste de diffusion pour le projet Lizmap a été créée : https://lists.osgeo.org/mailman/listinfo/lizmap

Lizmap Web Client and QGIS 3 : finally compatible

We are pleased to announce the release of lizmap web client 3.3 - 1 - and lizmap plugin 3.1 - 2 - 3

These versions propose new features:

  • Add French Address database BAN search
  • Create HTML tooltip from QGIS drag&drop form
  • Improve the HTML tooltip form: get the represented value
  • Add filter form capabilities for PostgreSQL/PostGIS layers

But the main feature is QGIS Server 3 support 4.

For that we needed to adapt lizmap web client to QGIS Server changes and fix QGIS Server 3.4 in order to propose an identical user experience:

  • Fix regression server print selection pdf
  • JPEG output for WMS GetPrint request has gone
  • In WMS GetFeatureInfo CRS param not mandatory when FILTER param
  • Add unit test for WFS GetFeature with BBOX param without EPSG
  • SLD : Support escapeChar attribute of PropertyIsLike
  • Null field value in GML has to be empty string
  • Use Project selection color in GetPrint
  • Unit-test: To avoid regression in Server printing to PDF output format
  • Keeps empty parts for not empty styles parameters

We also needed to update some useful QGIS Server plugins for Lizmap:

  • Atlas print 5
  • WFS output Extension 6

If you already use Lizmap Web Client, you can:

  • update Lizmap Web Client to 3.3
  • update QGIS Server to 3.4
  • update the QGIS Server plugins you use
  • go to the Lizmap Web client backoffice to update the QGIS Server version in configuration
  • update your Lizmap Plugin to 3.1 in you QGIS 3.4 Desktop
  • and update your QGIS projects.

If you want to test lizmap, install the lastest version with QGIS Server LTR.

Last information, a mailing list for Lizmap project has been created: https://lists.osgeo.org/mailman/listinfo/lizmap

jeudi 4 avril 2019

Map builder module for Lizmap

We are pleased to announce the release of a new module for Lizmap Web Client.

This module allows a user from QGIS projects published in Lizmap Web Client to build his own maps. That is, allowing a user to select multiple layers from multiple QGIS projects published in Lizmap Web Client and organize them as he sees fit.

mapBuilder-v1

The features are as follows:

  • Listing of the layers accessible through Lizmap according to the access rights of the user
  • Add a layer from the listing by selecting one of the associated styles
  • Organization of the order of the layers by dragging / dropping
  • Changing the transparency of a layer
  • Querying layers based on Lizmap configurations
  • Access to the attribute table according to Lizmap configurations
  • PDF export of the currently built map
  • Save the card configuration for authenticated users
  • Save and share card configuration for users who have been authorized to do so

mapBuilderAdmin-v1

An administration interface is proposed. It allows to configure:

  • the area displayed by default
  • available baselayers
  • the keys of the different known services: Geoportail, Bing, Google
  • the presence or absence of the tool for consulting the attribute tables of the layers
  • the restriction of the layers usable to the projects of a directory

This module was supported by the Union des Marais de la Charente Maritime (UNIMA) and Andromède Océanologie for the Medtrix platform.

This new module is free and Open-Source: https://github.com/3liz/lizmap-mapbuilder-module

Module de création de cartes pour Lizmap

Nous sommes heureux de vous annoncer la publication d'un nouveau module pour Lizmap Web Client.

Ce module permet à un utilisateur à partir de projets QGIS publiés dans Lizmap Web Client de construire ses propres cartes. C'est à dire permettre à un utilisateur de sélectionner plusieurs couches provenant de plusieurs projets QGIS publiés dans Lizmap Web Client et de les organiser comme bon lui semble.

mapBuilder-v1

Les fonctionnalités sont les suivantes :

  • Listing des couches accessibles au travers de Lizmap en fonction des droits d'accès de l’utilisateur
  • Ajout d’une couche à partir du listing en sélectionnant un des styles associés
  • Organisation de l’ordre des couches par glisser/déposer
  • Modification de la transparence d’une couche
  • Interrogation des couches en fonction des configurations Lizmap
  • Accès à la table attributaire en fonction des configurations Lizmap
  • Export PDF de la carte actuellement construite
  • Sauvegarde de la configuration de la carte pour les utilisateurs authentifiés
  • Sauvegarde et partage de la configuration de la carte pour les utilisateurs ayant été autorisés à le faire

mapBuilderAdmin-v1

Une interface d'administration est proposé. Elle permet de configurer :

  • la zone affichée par défaut
  • les fonds de plans disponibles
  • les clés des différent services connues : Geoportail, Bing, Google
  • la présence ou non de l'outil de consultation des tables attributaires des couches
  • la restriction des couches utilisables aux projets d'un répertoire

Ce module a été soutenu par l'Union des Marais de la Charente Maritime (UNIMA) et Andromède Océanologie pour la plateforme Medtrix.

Ce nouveau module est disponible gratuitement et en Open-Source : https://github.com/3liz/lizmap-mapbuilder-module

lundi 21 janvier 2019

Lizmap Web Client 3.2 et les versions futures

Lizmap Web Client 3.2.*

Nous sommes heureux d’annoncer la sortie de lizmap Web Client 3.2 - 1 - 2

Cette version propose de nouvelles fonctionnalités :

Cette version améliore :

  • L'édition
  • Les évènements JavaScript
  • Les évènements PHP pour les outils de recherche
  • La mise à jour des locales

De nouvelles locales sont disponibles :

  • Tchèque
  • Norvégien
  • Brésilien
  • Slovène

Nous avons également amélioré la manière de localiser le plugin, le client Web et la documentation via transifex.

Les versions Futures de Lizmap Web Client

Nous avons prévu la sortie de la version 3.3 à la fin du mois de février. Cette version doit supporter pleinement QGIS Server 3.4. * Et supérieur.

Nous prévoyons également de publier une version 4 au cours de l'année 2019. Cette version sera basée sur les versions récentes d'OpenLayers, Bootstrap et JQuery. Nous avons commencé ce travail. Nous développons un module complémentaire à Lizmap pour construire sa carte à partir des couches publiées dans l'instance.

Lizmap Web Client 3.2 and futur

Lizmap Web Client 3.2.*

We are pleased to announce the release of lizmap web client 3.2 - 1 - 2

This version proposes new features:

This version improves:

  • Edition
  • Javascript events
  • PHP event for searching tool
  • Updating locales

And new locales are availables:

  • Czech
  • Norwegian
  • Brazilian
  • Slovenian

We also enhance the way to localize the plugin, the web client and the documentation through transifex.

Futur Lizmap Web Client versions

We have planned the release of version 3.3 at the end of February. This version has to fully support QGIS Server 3.4.* and upper.

We also plan to release a version 4 during the year 2019. This version will be based on recent versions of OpenLayers, Bootstrap and JQuery. We have started this work. We develop an add-on to Lizmap to build its map from published layers within the instance.

mercredi 8 mars 2017

Release Lizmap-Web-Client 3.1.0 and 3.0.12

With a little delay, we are proud to announce the release of Lizmap-Web-Client version 3.1.0 : https://github.com/3liz/lizmap-web-client/releases/tag/3.1.0

This new version integrates a large number of features:

  • JS - Add ability to add a bottom dock with lizMap.addDock
  • Print - Add an option to choose format: PDF, JPG, PNG, SVG
  • Cache - PNG tiles: use maximum compression
  • Cache - JPEG tiles: use 90 instead of 80 compression
  • Map - New tool to change layer opacity && add tools in layer info panel
  • Fast searching among project data via quickfinder
  • Option to restrict access per project for given groups
  • Popup - Use option to display children only for defined layers
  • Add OpenStreetMap Stamen Toner background layer
  • Display child table in the Edition form
  • Create child from the Edition form
  • Delete child from the Edition form
  • Update child from the Edition form
  • Selection tool
  • Mutually disable layers
  • Add information panel for baselayer to allow changing opacity
  • Edition - Restrict edition per layer via new acl property
  • Admin - New menu to configure interface main colors & logo
  • Add bbox option to wmts seeding command line
  • Attribute table - Option to restrict data to map extent & layer visibility

And improvements:

  • Attribute table - More compact table rendering
  • Fix some notice and warnings
  • lizmapProject: improve robustness about project files loading

We would like to thank the various contributors who participated in this version and particularly José Macau for his continuous tests and bug reports.

We would also like to thank those who contributed directly by funding features: Ville d'Avignon, ADUGA (maps), Faunalia (maps), Andromède Océanologie (medtrix), PNRBV, Alisé Géomatique, La FAB BM, Thau Agglomération, Agence de l'Eau Adour-Garonne, Pays de Pontivy (maps), Grand Narbonne; and those who contribute indirectly by using our hosting infrastructure Lizmap Hosting: Territoires & Paysages, CC Bugey Sud, Ville d'Ajaccio, PTPU (maps), Cartophyl, CIPEL, Agence de l'Eau Rhône Méditerranée Corse, Quimper Cornouaille Développement (maps), la CCI de Vaucluse (maps).

There remains work on documentation and translation.

We also publish version 3.0.12 of Lizmap-Web-Client, https://github.com/3liz/lizmap-web-client/releases/tag/3.0.12, which is a bugfix release and we recommend that you install if you do not want to upgrade to version 3.1.

Concerning the future, version 3.2 is already on track with a publication target for FOSS4G Europe 2017. Developments in this future version will mainly focus on the edition module and base layers.

- page 1 de 3