3liz / lizmap-web-client

Transfer a QGIS project on a server, Lizmap is providing the web interface to browse it
https://www.lizmap.com
Mozilla Public License 2.0
259 stars 143 forks source link

[Bug]: Columns order (from "organize table columns") is ignored in popup #3694

Open gioman opened 1 year ago

gioman commented 1 year ago

What is the bug?

If you (re)organize the order of the columns for a table in QGIS, then LMWC correctly uses the new order when displaying the table, but ignores the new order in the pop-up.

Another angle: QGIS D&D form pop-up documentation

https://docs.lizmap.com/current/en/publish/configuration/popup.html#qgis-drag-drop-form-popup

let assume that one could use the D&D designer to just re-organize the columns order (because the D&D designer allows to do that, in its simplest usage, so no tabs, just the column list), but point is that choosing the QGIS D&D form popup option in LM plugin seems to have only effect on editable layers, but that is not specified in docs.

Another problem with the D&D form popup option in not editable layers is that it still shows columns that were not added in the D&D form.

Steps to reproduce the issue

See above.

Versions

Latest LMWC, Latest LM plugin, Latest LM Server plugin.

Check Lizmap plugin

QGIS server version, only if the section above doesn't mention the QGIS Server version

3.28

Operating system

Ubuntu 22.04, desktop and server

Browsers

Firefox, Chrome

Browsers version

Latest

Relevant log output

No response

Gustry commented 1 year ago

If you (re)organize the order of the columns for a table in QGIS, then LMWC correctly uses the new order when displaying the table, but ignores the new order in the pop-up.

At this step, you are already talking Drag&Drop order ? But using popup "QGIS HTML maptip" or "Form" ?

Side note, can you still do the step in the Lizmap plugin ? "Latest LWC" is not the latest anymore after a few weeks :) And we plan to add more context and debug info in this copy/paste step. It's quick to do.

gioman commented 1 year ago

At this step, you are already talking Drag&Drop order ? But using popup "QGIS HTML maptip" or "Form" ?

@Gustry hi. No, I'm talking about

image

which works in LMWC only when opening the table of attributes but not in pop-up.

The second part of my description is about the D&D designer: It would be much better (to solve also the above) to have this method supported also for not editable layers (it is not at the moment) > enable D&D mode, reorder columns (no tabs or columns), eventually excluding a few ones, and have the new ordered list show in the standard popup dialog.

BUT...

as far as I understand this is already possible via

enable D&D

choose "QGIS HTML maptip" in LMWC

then click on "copy the D&D form layout"

Is that correct?

Gustry commented 1 year ago

No, I'm talking about ... which works in LMWC only when opening the table of attributes but not in pop-up.

Yes I knew you were talking about this dialog. But it's not clear to me which kind of popup you are using this stage ?

For the second part, yes, the order comes from your DD layout. When you press the "Copy the D&D form layout", it's only generating the HTML at that precise moment according to your form layout. If you change the order before (in the form of course), it's reflected in the HTML maptip.

gioman commented 1 year ago

But it's not clear to me which kind of popup you are using this stage ?

"automatic". As said the problem is that the column order there is not coherent with Desktop configurations and as LMWC shows in the table of attributes.

About the rest... brilliant as usual!

gioman commented 1 year ago

Bumping my tickets before they go "quite",

josemvm commented 1 year ago

hi @gioman i think that the popup is based on wms server request and the table of attributes is based on wfs server request...

gioman commented 1 year ago

hi @gioman i think that the popup is based on wms server request and the table of attributes is based on wfs server request...

@josemvm I understand that this maybe is not even a LMWC problem, but anyway as user I would expect that a QGIS project created for use with QGIS Server to obey all the (possible configs) for all the active services. This includes respecting the column order and name aliases for both the WMS and WFS services.

josemvm commented 1 year ago

similar or duplicate as https://github.com/3liz/lizmap-web-client/issues/1387

gioman commented 1 year ago

Looking for some confirmation/summary here as you guys @Gustry @rldhont are very knowledgeable on QGIS Server too:

*) for a QGIS project used to publish WMS/WFS services directly with QGIS Server (no LMWC involved) any configuration done with "organize table columns" or in "attributes form" (column names aliases, re-ordering with the D&D designer, etc.) is ignored in the resulting OGC layers. This seems to be by design (correct?) but seems to me that is a bit unexpected from a user point of view given the WYSIWYG nature of QGIS Server.

*) with the same QGIS project with the same configs ("organize table columns", "attributes form > aliases/d&d designer/etc") used in/through LMWC:

the resulting WFS service (the service URL that shows in the project information panel) still completely ignores such configurations, while LMWC attribute table functionality (for which a layer must be published as WFS) shows the configured column names aliases and order as configured in "organize table columns" > would be possible/better to have the WFS service behave like the attribute table in LMWC?

the resulting WMS service takes into account aliases for column names but column order (as defined in "organize table columns") is ignored (as seen in the identify panel of QGIS) > I guess this is the reason that lead to filing this ticket.

Thoughts?

rldhont commented 1 year ago

Hi @gioman,

The WFS service has been designed to provide access to raw data. The WFS GetFeature request provides data as stored.

To get information about the data, the DescribeFeatureType has been build to provide information about fields with an XSD schema. QGIS Server provide the data type extracted from datasource or form field configuration (number and date time for example).

I don't think that the field order is used by QGIS Server to build the XSD schema.

gioman commented 1 year ago

The WFS service has been designed to provide access to raw data.

@rldhont thanks for the clarification.