Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compatibility with QGIS3 #1075

Open
mdouchin opened this issue Feb 15, 2019 · 67 comments

Comments

@mdouchin
Copy link
Collaborator

commented Feb 15, 2019

This issue aims to list all the Lizmap features to check agains QGIS 3.4 which will be next LTR in the end of February 2019. I would like anyone interested to contribute to the list :

  • please add a comment with missing items (and I would add them in the main issue description)
  • please check the feature and report if there is an issue. We will open a new Github issue and reference it here when needed

Landing page

  • Lizmap landing page aka "Projects" page shows all the QGIS projects configured with Lizmap plugin (with a *.cfg file)

Map options

  • Lizmap shows the layer data in the map and respects the extent

Layer tree

  • The legend shows all QGIS layers
  • The legend tree is like the one in QGIS
  • The legend tree shows the embed layers
  • For each layer, the legend image is displayed
  • For each layer, the legend image respects the scale and symbology defined in QGIS
  • For each layer, the legend image allows to switch between different styles as defined in QGIS

Rendering

  • The layers are rendered in the map Only with QGIS >= 3.4.5
  • The layers are rendered only between the defined scales when they are set
  • The layers are rendered even if their projection differs from the Lizmap map display projection
  • The layers are rendered in the correct order based on their position in legend
  • The layers are rendered in the correct order based on their position in legend when the order has been changed in QGIS with the dedicated dock panel
  • The rendering of a group of layers is correct and respects the layers order within the group
  • The image type (ex: jpeg) is respected

Print

  • The composer layouts are shown in the print tool
  • The exported map respects QGIS layout
  • The different formats work : PDF, SVG, etc.

Popup

  • Popups are shown for configured layers
  • Popup auto mode shows the correct values, even for value relation or value list fields
  • Popup content respects the QGIS tooltip configuration when used, with various expressions
  • Popup content respects the Lizmap HTML configuration when used
  • Tolerance for points, lines and polygons are respected

Locate by layer

Attribute table

Selection and filter

Editing

  • Display an existing PgSQL feature (without geometry)
  • Create a PgSQL feature (without geometry)
  • Delete a PgSQL feature (without geometry)
  • Modify a PgSQL feature (without geometry)
  • Display an existing PgSQL feature (with geometry)
  • Create a PgSQL feature (with geometry)
  • Delete a PgSQL feature (with geometry)
  • Modify a PgSQL feature (with geometry)

Tooltip

Filtering data

Dataviz

Time manager

Atlas

WMS and WMTS external layers

Here is a list of contributors (not exhaustive)
@rldhont @mbernasocchi @pcav @laurentj @Gustry @slarosa @dmarteau @josemvm @nboisteault @vherreros @gerald2545 @mathieubossaert @majorxtrem @jankoja @GabrielePrestifilippo @nliaudat @jancelin @jaitor1 @jonnyforestGIS

List of available testers for early version (please tell us when and which branch is suitable for testing)
@pcav

@mdouchin mdouchin added the feedback label Feb 15, 2019
@mdouchin mdouchin added this to the 3.3.0 milestone Feb 15, 2019
@mdouchin mdouchin self-assigned this Feb 15, 2019
@mdouchin

This comment has been minimized.

Copy link
Collaborator Author

commented Feb 15, 2019

@pcav @rldhont @Gustry @laurentj @dmarteau beware that we cannot edit the issue main description concurrently. Has anyone an idea of how to avoid loosing some data while another is editing the issue ? Should we only use comments to add items (and I will be in charge of copying them in the main description) or is there another preffered way ?

@mdouchin mdouchin pinned this issue Feb 15, 2019
@pcav

This comment has been minimized.

Copy link
Collaborator

commented Feb 15, 2019

Sorry, I was not aware of this. Comments are OK for me, I'll refrain from direct editing. Hope nothing has been really lost.

@mbernasocchi

This comment has been minimized.

Copy link
Contributor

commented Feb 15, 2019

@mdouchin great!

  • locate by layer seems not to work, but I'havent tested thoroughly
  • main.css in the default custom theme is ignored on the landing page (but I'm not sure if this is supposed to work at all)

@signedav @marioba have more feedback?

@rldhont

This comment has been minimized.

Copy link
Collaborator

commented Feb 18, 2019

Linked open issues:

  • The print icon disappears in QGIS 3 #1100
  • QGIS Server 3.4.4 does not show the map anymore #1059
  • child objets in popup with QGIS server 3 #1024
  • QGIS server 3 #1018
  • Composer layouts not recognized at all when using QGIS3 #1007
  • QGIS Server 3: Can't correctly print or use the selection tool #971
  • lizmap 3 support for QGIS 3 desktop and server #857
@pcav

This comment has been minimized.

Copy link
Collaborator

commented Feb 25, 2019

Given that QGIS 2.18 now seems essentially unavailable from repos, I think this issue is of absolute importance.

@pcav

This comment has been minimized.

Copy link
Collaborator

commented Feb 25, 2019

#1059 IMHO should be closed

@josemvm

This comment has been minimized.

Copy link
Collaborator

commented Feb 25, 2019

attribute table not avaiable for many many layers stored in postgreSQL

@rldhont

This comment has been minimized.

Copy link
Collaborator

commented Feb 26, 2019

@gioman can you be more precise ? Which QGIS Server version ?

@josemvm

This comment has been minimized.

Copy link
Collaborator

commented Feb 26, 2019

attribute table not avaiable for many many layers stored in postgreSQL

qgis server 3.4.5

@rldhont

This comment has been minimized.

Copy link
Collaborator

commented Feb 26, 2019

@josemvm do you have a link to test it ?

@gioman

This comment has been minimized.

Copy link
Contributor

commented Feb 26, 2019

@gioman can you be more precise ? Which QGIS Server version ?

@rldhont I'm not part of this conversation :)

@rldhont

This comment has been minimized.

Copy link
Collaborator

commented Feb 26, 2019

sorry @gioman

@josemvm

This comment has been minimized.

Copy link
Collaborator

commented Feb 26, 2019

@rldhont please check your mailbox

@rldhont

This comment has been minimized.

Copy link
Collaborator

commented Feb 26, 2019

@josemvm it seems there is an issue when BBOX is added to the GetFeature Request. Can you open an issue about AttributeTable with extent restriction.

@josemvm

This comment has been minimized.

Copy link
Collaborator

commented Feb 26, 2019

attribute table not avaiable for many many layers stored in postgreSQL

if "limitDataToBbox": "True" is set in the plugin #1084 (comment)

@josemvm

This comment has been minimized.

Copy link
Collaborator

commented Feb 27, 2019

edition - all the widgets are not taken by the qgis server

@nboisteault

This comment has been minimized.

Copy link
Collaborator

commented Mar 6, 2019

Landing page for me is ok.

@nboisteault

This comment has been minimized.

Copy link
Collaborator

commented Mar 6, 2019

@mbernasocchi for me locate by layer works with a QGIS 2.18 project and QGIS Server 3.4.5. We have to test with a QGIS 3.4.5 project .

@josemvm

This comment has been minimized.

Copy link
Collaborator

commented Mar 6, 2019

@nboisteault, qgis server 3.4.5 also prints 2.14 projects

@mbernasocchi

This comment has been minimized.

Copy link
Contributor

commented Mar 6, 2019

@mbernasocchi for me locate by layer works with a QGIS 2.18 project and QGIS Server 3.4.5. We have to test with a QGIS 3.4.5 project .

@nboisteault you're right, it was a mistake on our side (PGSERVICE file missing in docker), we didn't know that lizmap does direct queries to the DB. why is that?

@rldhont

This comment has been minimized.

Copy link
Collaborator

commented Mar 6, 2019

@mbernasocchi lizmap is requesting directly data from Postgis instead of QGIS Server WFS GetFeature for faster request. But if lizmap cannot request Postgis, it does the WFS Request.

@mbernasocchi

This comment has been minimized.

Copy link
Contributor

commented Mar 6, 2019

instead of QGIS Server WFS GetFeature for faster request.

it is what we immagined

But if lizmap cannot request Postgis, it does the WFS Request.

then this is the part that was not working for us.

@nboisteault

This comment has been minimized.

Copy link
Collaborator

commented Mar 6, 2019

attribute table not avaiable for many many layers stored in postgreSQL

@josemvm You said "many layers". Do you watch differences between those working and those not ?

@josemvm

This comment has been minimized.

Copy link
Collaborator

commented Mar 6, 2019

@nboisteault, no, the problem only happens when "limitDataToBbox": "True" is set in the lwc plugin

@rmarzocchi84

This comment has been minimized.

Copy link

commented Apr 2, 2019

Ok I tested it and I can confirm it works @rldhont

@pcav

This comment has been minimized.

Copy link
Collaborator

commented Apr 8, 2019

Do you have a tentative date for string freeze?
This would be useful to schedule translation timing.
Thanks.

@rmarzocchi84

This comment has been minimized.

Copy link

commented Apr 11, 2019

edition - all the widgets are not taken by the qgis server

Problem confirmed or it is a mistake in my configuration? If confirmed I will try to understand the reason

@rmarzocchi84

This comment has been minimized.

Copy link

commented Apr 11, 2019

Effectively the .qgs file are really different:

e.g.

qgis 2.18.28

    <edittype widgetv2type="ValueMap" name="visitabile">
      <widgetv2config fieldEditable="1" constraint="" labelOnTop="0" constraintDescription="" notNull="1">
        <value key="No" value="f"/>
        <value key="Sì" value="t"/>
      </widgetv2config>
    </edittype>

qgis 3.4.6

    <field name="visitabile">
      <editWidget type="ValueMap">
        <config>
          <Option type="Map">
            <Option name="map" type="List">
              <Option type="Map">
                <Option value="t" name="Sì" type="QString"/>
              </Option>
              <Option type="Map">
                <Option value="f" name="No" type="QString"/>
              </Option>
            </Option>
          </Option>
        </config>
      </editWidget>
    </field>

So it is really difficult to guarantee the compatibility for both the projects also in lizmap

@mdouchin

This comment has been minimized.

Copy link
Collaborator Author

commented Apr 12, 2019

This is a blocker. We cannot release 3.3 before this is properly fixed. There are already code inside Lizmap to manage different versions of QGIS, since the edit widgets properties have already change in the past.

Example here: https://github.com/3liz/lizmap-web-client/blob/master/lizmap/modules/lizmap/classes/qgisFormControl.class.php#L235
We should properly handle this for this bigger change. @laurentj has ideas about this

@rldhont

This comment has been minimized.

Copy link
Collaborator

commented Apr 15, 2019

@rmarzocchi84 I have created a PR to fix edition config from QGIS Project 3, can you test it ?

@rmarzocchi84

This comment has been minimized.

Copy link

commented Apr 15, 2019

@rldhont there is a specific branch to test or I update the master edition of lizmap?

@rmarzocchi84

This comment has been minimized.

Copy link

commented Apr 16, 2019

Ok @rldhont I found the PR in your repository (sorry for the previous question)

From a preliminary test it seems to work correctly.

First of all I test:

  • Value Map
  • Datetime field

I only find a strange behaviour that perhaps depends on a QGIS bug:

This value map seems not correctly defined

<Option name="map" type="Map">

and do not works:

<field name="d_origine">
      <editWidget type="ValueMap">
        <config>
          <Option type="Map">
            <Option name="map" type="Map">
              <Option name="Altro" value="5" type="QString"/>
              <Option name="Atti amministrativi" value="3" type="QString"/>
              <Option name="Palmare" value="4" type="QString"/>
              <Option name="Rilievo manuale" value="1" type="QString"/>
              <Option name="Rilievo meccanico" value="2" type="QString"/>
            </Option>
          </Option>
        </config>
      </editWidget>
    </field>

This value map is correctly defined

<Option name="map" type="List">

and works:

	<field name="d_origine">
      <editWidget type="ValueMap">
        <config>
          <Option type="Map">
            <Option name="map" type="List">
              <Option type="Map">
                <Option name="Altro" value="5" type="QString"/>
              </Option>
              <Option type="Map">
                <Option name="Atti amministrativi" value="3" type="QString"/>
              </Option>
              <Option type="Map">
                <Option name="Palmare" value="4" type="QString"/>
              </Option>
              <Option type="Map">
                <Option name="Rilievo manuale" value="1" type="QString"/>
              </Option>
              <Option type="Map">
                <Option name="Rilievo meccanico" value="2" type="QString"/>
              </Option>
            </Option>
          </Option>
        </config>
      </editWidget>
    </field>

After I test Value Relation and it do not works. This is the QGIS project definition:

    <field name="cod_strada">
      <editWidget type="ValueRelation">
        <config>
          <Option type="Map">
            <Option name="AllowMulti" value="false" type="bool"/>
            <Option name="AllowNull" value="false" type="bool"/>
            <Option name="FilterExpression" value="" type="QString"/>
            <Option name="Key" value="cod_strada" type="QString"/>
            <Option name="Layer" value="route20190320155525256" type="QString"/>
            <Option name="NofColumns" value="1" type="int"/>
            <Option name="OrderByValue" value="true" type="bool"/>
            <Option name="UseCompleter" value="true" type="bool"/>
            <Option name="Value" value="cod_strada" type="QString"/>
          </Option>
        </config>
      </editWidget>
    </field>
@rldhont

This comment has been minimized.

Copy link
Collaborator

commented Apr 16, 2019

Thanks for the review, I'll update the code.

@nboisteault

This comment has been minimized.

Copy link
Collaborator

commented Apr 16, 2019

@rldhont I tried QGIS Constraints "Not null" and "Enforce not null constraint", both didn't work and didn't show field as mandatory.

@nboisteault

This comment has been minimized.

Copy link
Collaborator

commented Apr 16, 2019

I have tried with QGIS 2.18 and it is the same behavior so it is not a regression but an needed enhancement.

@josemvm

This comment has been minimized.

Copy link
Collaborator

commented Apr 16, 2019

until now, constraints like "not null" or "default value" only could be set at the postgresql level

@pcav

This comment has been minimized.

Copy link
Collaborator

commented Apr 28, 2019

AFAIK version 3.2.3 should be compatible with QGIS server 3, correct? I started tessting it, and I noticed that printing is missing: is this expected?
Thanks.

@Gustry

This comment has been minimized.

Copy link
Collaborator

commented Apr 28, 2019

@pcav It's LWC 3.3 which will be fully compatible with QGIS 3.4, not LWC 3.2.

You should try https://github.com/3liz/lizmap-web-client/releases/tag/3.3rc1

@pcav

This comment has been minimized.

Copy link
Collaborator

commented Apr 28, 2019

Thanks, will do.

@rldhont

This comment has been minimized.

Copy link
Collaborator

commented Apr 29, 2019

@pcav you have to change the qgisServerVersion in the backoffice. If the QGIS project is a 3., to have print capabilities, the QGIS Server version has to be 3.. But the layout description is parsed in LWC 3.3.

If you have some trouble with scales: there was an issue in the plugin 3liz/lizmap-plugin#122 and a fix 3liz/lizmap-plugin#129

@pcav

This comment has been minimized.

Copy link
Collaborator

commented Apr 29, 2019

Thanks, I realized this too late. It would be good if somehow LM could check the QGIS version automatically, e.g. during installation, but that's obviously low priority.
Thanks a lot.

@majorxtrem

This comment has been minimized.

Copy link
Contributor

commented Jul 27, 2019

"The layers are rendered in the correct order based on their position in legend when the order has been changed in QGIS with the dedicated dock panel" change 10 days ago

Is not working for me, any idea ?

Server : qgis-server 3.4.10+15buster
Lizmap : lizmap-web-client git master (on 27/07/19)
Client : Qgis 3.4.10 LTR
Qgis Plugin : lizmap 3.0.3

@nboisteault

This comment has been minimized.

Copy link
Collaborator

commented Jul 29, 2019

Confirmed. Debugging now.

@nboisteault

This comment has been minimized.

Copy link
Collaborator

commented Aug 19, 2019

@rldhont @mdouchin Does lizmap handle "Layer order" set in QGIS like in the screenshot below.

image

@laurentj laurentj unpinned this issue Aug 29, 2019
@laurentj laurentj pinned this issue Aug 29, 2019
@nboisteault nboisteault modified the milestones: 3.3.0, 3.3.1 Sep 5, 2019
@nboisteault nboisteault modified the milestones: 3.3.1, 3.3.2 Oct 7, 2019
@rldhont

This comment has been minimized.

Copy link
Collaborator

commented Oct 13, 2019

It seems that not null constraints from QGIS Project 3 are not well detected by lizmap

@rldhont

This comment has been minimized.

Copy link
Collaborator

commented Oct 17, 2019

Constraint examples:

      <constraints>
        <constraint constraints="3" unique_strength="1" field="id" notnull_strength="1" exp_strength="0"/>
        <constraint constraints="0" unique_strength="0" field="objectid" notnull_strength="0" exp_strength="0"/>
        <constraint constraints="0" unique_strength="0" field="commune" notnull_strength="0" exp_strength="0"/>
        <constraint constraints="1" unique_strength="0" field="nom" notnull_strength="1" exp_strength="0"/>
        <constraint constraints="1" unique_strength="0" field="type" notnull_strength="1" exp_strength="0"/>
        <constraint constraints="0" unique_strength="0" field="statut" notnull_strength="0" exp_strength="0"/>
        <constraint constraints="0" unique_strength="0" field="code_insee" notnull_strength="0" exp_strength="0"/>
        <constraint constraints="0" unique_strength="0" field="ss_type" notnull_strength="0" exp_strength="0"/>
        <constraint constraints="0" unique_strength="0" field="gestion" notnull_strength="0" exp_strength="0"/>
        <constraint constraints="0" unique_strength="0" field="photo" notnull_strength="0" exp_strength="0"/>
        <constraint constraints="0" unique_strength="0" field="valide" notnull_strength="0" exp_strength="0"/>
        <constraint constraints="0" unique_strength="0" field="contact_te" notnull_strength="0" exp_strength="0"/>
        <constraint constraints="0" unique_strength="0" field="courriel" notnull_strength="0" exp_strength="0"/>
        <constraint constraints="0" unique_strength="0" field="adresse" notnull_strength="0" exp_strength="0"/>
      </constraints>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
You can’t perform that action at this time.