From 8552e1753610d2c8772f0000c499d986e90f6258 Mon Sep 17 00:00:00 2001 From: Etienne Trimaille Date: Mon, 26 Aug 2024 11:33:46 +0200 Subject: [PATCH] Raise to QGIS 3.22 and PG 14 --- .docker/docker-compose.yml | 4 +-- CHANGELOG.md | 3 ++ .../install/sql/pgmetadata/10_FUNCTION.sql | 4 +-- .../pgmetadata/20_TABLE_SEQUENCE_DEFAULT.sql | 6 ++-- .../install/sql/pgmetadata/30_VIEW.sql | 16 +++++----- .../install/sql/pgmetadata/40_INDEX.sql | 4 +-- .../install/sql/pgmetadata/50_TRIGGER.sql | 4 +-- .../install/sql/pgmetadata/60_CONSTRAINT.sql | 4 +-- .../install/sql/pgmetadata/70_COMMENT.sql | 4 +-- pg_metadata/locator.py | 5 ++-- pg_metadata/metadata.txt | 2 +- pg_metadata/test/test_resources.py | 2 +- pg_metadata/tools.py | 30 ------------------- 13 files changed, 31 insertions(+), 57 deletions(-) delete mode 100644 pg_metadata/tools.py diff --git a/.docker/docker-compose.yml b/.docker/docker-compose.yml index 41ebd9e5..3bd7954d 100644 --- a/.docker/docker-compose.yml +++ b/.docker/docker-compose.yml @@ -6,7 +6,7 @@ services: profiles: - "qgis" - "db" - image: kartoza/postgis:11.5-2.5 # Despite the tag, it's a 11.7 version + image: kartoza/postgis:13-3 container_name: postgis networks: qgis_plugin_network: @@ -30,7 +30,7 @@ services: qgis: profiles: - "qgis" - image: qgis/qgis:release-3_16 + image: qgis/qgis:release-3_22 container_name: qgis networks: qgis_plugin_network: diff --git a/CHANGELOG.md b/CHANGELOG.md index 689a7c71..ed4320f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## Unreleased +* Raise to QGIS 3.22 minimum version +* Upgrade to PostgreSQL 13 for testing and SQL files + ## 1.3.0 - 2024-02-05 * Additional glossary terms for publication frequency and link types (contribution from @effjot Florian Jenn) diff --git a/pg_metadata/install/sql/pgmetadata/10_FUNCTION.sql b/pg_metadata/install/sql/pgmetadata/10_FUNCTION.sql index 8d27bccd..67c0c7bf 100755 --- a/pg_metadata/install/sql/pgmetadata/10_FUNCTION.sql +++ b/pg_metadata/install/sql/pgmetadata/10_FUNCTION.sql @@ -3,8 +3,8 @@ BEGIN; -- PostgreSQL database dump -- --- Dumped from database version 11.7 (Debian 11.7-2.pgdg100+1) --- Dumped by pg_dump version 11.7 (Debian 11.7-2.pgdg100+1) +-- Dumped from database version 13.4 (Debian 13.4-1.pgdg110+1) +-- Dumped by pg_dump version 13.4 (Debian 13.4-1.pgdg110+1) SET statement_timeout = 0; SET lock_timeout = 0; diff --git a/pg_metadata/install/sql/pgmetadata/20_TABLE_SEQUENCE_DEFAULT.sql b/pg_metadata/install/sql/pgmetadata/20_TABLE_SEQUENCE_DEFAULT.sql index 6b7b2d9e..e649310a 100755 --- a/pg_metadata/install/sql/pgmetadata/20_TABLE_SEQUENCE_DEFAULT.sql +++ b/pg_metadata/install/sql/pgmetadata/20_TABLE_SEQUENCE_DEFAULT.sql @@ -3,8 +3,8 @@ BEGIN; -- PostgreSQL database dump -- --- Dumped from database version 11.7 (Debian 11.7-2.pgdg100+1) --- Dumped by pg_dump version 11.7 (Debian 11.7-2.pgdg100+1) +-- Dumped from database version 13.4 (Debian 13.4-1.pgdg110+1) +-- Dumped by pg_dump version 13.4 (Debian 13.4-1.pgdg110+1) SET statement_timeout = 0; SET lock_timeout = 0; @@ -19,7 +19,7 @@ SET row_security = off; SET default_tablespace = ''; -SET default_with_oids = false; +; -- contact CREATE TABLE pgmetadata.contact ( diff --git a/pg_metadata/install/sql/pgmetadata/30_VIEW.sql b/pg_metadata/install/sql/pgmetadata/30_VIEW.sql index 5ec0d049..bf14ea55 100755 --- a/pg_metadata/install/sql/pgmetadata/30_VIEW.sql +++ b/pg_metadata/install/sql/pgmetadata/30_VIEW.sql @@ -3,8 +3,8 @@ BEGIN; -- PostgreSQL database dump -- --- Dumped from database version 11.7 (Debian 11.7-2.pgdg100+1) --- Dumped by pg_dump version 11.7 (Debian 11.7-2.pgdg100+1) +-- Dumped from database version 13.4 (Debian 13.4-1.pgdg110+1) +-- Dumped by pg_dump version 13.4 (Debian 13.4-1.pgdg110+1) SET statement_timeout = 0; SET lock_timeout = 0; @@ -274,7 +274,7 @@ CREATE VIEW pgmetadata.v_locales AS UNION SELECT replace((columns.column_name)::text, 'label_'::text, ''::text) AS locale FROM information_schema.columns - WHERE (((columns.table_schema)::text = 'pgmetadata'::text) AND ((columns.table_name)::text = 'glossary'::text) AND ((columns.column_name)::text ~~ 'label_%'::text)) + WHERE (((columns.table_schema)::name = 'pgmetadata'::name) AND ((columns.table_name)::name = 'glossary'::name) AND ((columns.column_name)::name ~~ 'label_%'::text)) ORDER BY 1; @@ -305,7 +305,7 @@ CREATE VIEW pgmetadata.v_orphan_tables AS FROM information_schema.tables WHERE ((NOT (concat(tables.table_schema, '.', tables.table_name) IN ( SELECT concat(dataset.schema_name, '.', dataset.table_name) AS concat FROM pgmetadata.dataset))) AND ((tables.table_schema)::name <> ALL (ARRAY['pg_catalog'::name, 'information_schema'::name]))) - ORDER BY (tables.table_schema)::text, (tables.table_name)::text; + ORDER BY ((tables.table_schema)::text), ((tables.table_name)::text); -- VIEW v_orphan_tables @@ -317,8 +317,8 @@ CREATE VIEW pgmetadata.v_schema_list AS SELECT row_number() OVER () AS id, (schemata.schema_name)::text AS schema_name FROM information_schema.schemata - WHERE ((schemata.schema_name)::text <> ALL ((ARRAY['pg_toast'::character varying, 'pg_temp_1'::character varying, 'pg_toast_temp_1'::character varying, 'pg_catalog'::character varying, 'information_schema'::character varying])::text[])) - ORDER BY (schemata.schema_name)::text; + WHERE ((schemata.schema_name)::name <> ALL (ARRAY['pg_toast'::name, 'pg_temp_1'::name, 'pg_toast_temp_1'::name, 'pg_catalog'::name, 'information_schema'::name])) + ORDER BY ((schemata.schema_name)::text); -- VIEW v_schema_list @@ -350,8 +350,8 @@ CREATE VIEW pgmetadata.v_table_list AS (tables.table_schema)::text AS schema_name, (tables.table_name)::text AS table_name FROM information_schema.tables - WHERE ((tables.table_schema)::text <> ALL ((ARRAY['pg_toast'::character varying, 'pg_temp_1'::character varying, 'pg_toast_temp_1'::character varying, 'pg_catalog'::character varying, 'information_schema'::character varying])::text[])) - ORDER BY tables.table_schema, (tables.table_name)::text; + WHERE ((tables.table_schema)::name <> ALL (ARRAY['pg_toast'::name, 'pg_temp_1'::name, 'pg_toast_temp_1'::name, 'pg_catalog'::name, 'information_schema'::name])) + ORDER BY tables.table_schema, ((tables.table_name)::text); -- VIEW v_table_list diff --git a/pg_metadata/install/sql/pgmetadata/40_INDEX.sql b/pg_metadata/install/sql/pgmetadata/40_INDEX.sql index 727bd924..8c626ed6 100755 --- a/pg_metadata/install/sql/pgmetadata/40_INDEX.sql +++ b/pg_metadata/install/sql/pgmetadata/40_INDEX.sql @@ -3,8 +3,8 @@ BEGIN; -- PostgreSQL database dump -- --- Dumped from database version 11.7 (Debian 11.7-2.pgdg100+1) --- Dumped by pg_dump version 11.7 (Debian 11.7-2.pgdg100+1) +-- Dumped from database version 13.4 (Debian 13.4-1.pgdg110+1) +-- Dumped by pg_dump version 13.4 (Debian 13.4-1.pgdg110+1) SET statement_timeout = 0; SET lock_timeout = 0; diff --git a/pg_metadata/install/sql/pgmetadata/50_TRIGGER.sql b/pg_metadata/install/sql/pgmetadata/50_TRIGGER.sql index 8e7c3ccb..a8a00816 100755 --- a/pg_metadata/install/sql/pgmetadata/50_TRIGGER.sql +++ b/pg_metadata/install/sql/pgmetadata/50_TRIGGER.sql @@ -3,8 +3,8 @@ BEGIN; -- PostgreSQL database dump -- --- Dumped from database version 11.7 (Debian 11.7-2.pgdg100+1) --- Dumped by pg_dump version 11.7 (Debian 11.7-2.pgdg100+1) +-- Dumped from database version 13.4 (Debian 13.4-1.pgdg110+1) +-- Dumped by pg_dump version 13.4 (Debian 13.4-1.pgdg110+1) SET statement_timeout = 0; SET lock_timeout = 0; diff --git a/pg_metadata/install/sql/pgmetadata/60_CONSTRAINT.sql b/pg_metadata/install/sql/pgmetadata/60_CONSTRAINT.sql index 37397f69..9922f66b 100755 --- a/pg_metadata/install/sql/pgmetadata/60_CONSTRAINT.sql +++ b/pg_metadata/install/sql/pgmetadata/60_CONSTRAINT.sql @@ -3,8 +3,8 @@ BEGIN; -- PostgreSQL database dump -- --- Dumped from database version 11.7 (Debian 11.7-2.pgdg100+1) --- Dumped by pg_dump version 11.7 (Debian 11.7-2.pgdg100+1) +-- Dumped from database version 13.4 (Debian 13.4-1.pgdg110+1) +-- Dumped by pg_dump version 13.4 (Debian 13.4-1.pgdg110+1) SET statement_timeout = 0; SET lock_timeout = 0; diff --git a/pg_metadata/install/sql/pgmetadata/70_COMMENT.sql b/pg_metadata/install/sql/pgmetadata/70_COMMENT.sql index aa1c3de4..16d38018 100755 --- a/pg_metadata/install/sql/pgmetadata/70_COMMENT.sql +++ b/pg_metadata/install/sql/pgmetadata/70_COMMENT.sql @@ -3,8 +3,8 @@ BEGIN; -- PostgreSQL database dump -- --- Dumped from database version 11.7 (Debian 11.7-2.pgdg100+1) --- Dumped by pg_dump version 11.7 (Debian 11.7-2.pgdg100+1) +-- Dumped from database version 13.4 (Debian 13.4-1.pgdg110+1) +-- Dumped by pg_dump version 13.4 (Debian 13.4-1.pgdg110+1) SET statement_timeout = 0; SET lock_timeout = 0; diff --git a/pg_metadata/locator.py b/pg_metadata/locator.py index 2db21bbb..54d1d0b7 100644 --- a/pg_metadata/locator.py +++ b/pg_metadata/locator.py @@ -5,6 +5,7 @@ from qgis.core import ( Qgis, QgsDataSourceUri, + QgsIconUtils, QgsLocatorFilter, QgsLocatorResult, QgsProject, @@ -13,6 +14,7 @@ QgsRasterLayer, QgsSettings, QgsVectorLayer, + QgsWkbTypes, ) from qgis.PyQt.QtCore import QLocale from qgis.PyQt.QtWidgets import QDockWidget @@ -22,7 +24,6 @@ connections_list, ) from pg_metadata.qgis_plugin_tools.tools.i18n import tr -from pg_metadata.tools import icon_for_geometry_type SCHEMA = 'pgmetadata' @@ -98,7 +99,7 @@ def fetch_result_single_database(self, search: str, connection_name: str): result = QgsLocatorResult() result.filter = self result.displayString = item[0] - result.icon = icon_for_geometry_type(item[3]) + result.icon = QgsIconUtils.iconForWkbType(QgsWkbTypes.parseType(item[3])) result.userData = { 'name': item[4], 'connection': connection_name, diff --git a/pg_metadata/metadata.txt b/pg_metadata/metadata.txt index f84f27c1..94143cb2 100644 --- a/pg_metadata/metadata.txt +++ b/pg_metadata/metadata.txt @@ -1,6 +1,6 @@ [general] name=PgMetadata -qgisMinimumVersion=3.16 +qgisMinimumVersion=3.22 description=Store some metadata about layers which are stored in PostgreSQL. It's possible to define title, abstract, links, contacts etc. It also provides some search tool, in the QGIS Locator bar for instance. author=3Liz email=info@3liz.com diff --git a/pg_metadata/test/test_resources.py b/pg_metadata/test/test_resources.py index 4522862e..6efe3f23 100644 --- a/pg_metadata/test/test_resources.py +++ b/pg_metadata/test/test_resources.py @@ -16,7 +16,7 @@ class TestResources(unittest.TestCase): def test_qgis_version(self): """ Test QGIS versions are correct in metadata and provided QGIS version. """ - expected_qgis_version = "3.16" + expected_qgis_version = "3.22" # Test the QGIS project qgis_project = resources_path('projects', 'pg_metadata_administration.qgs') diff --git a/pg_metadata/tools.py b/pg_metadata/tools.py deleted file mode 100644 index cfe01b94..00000000 --- a/pg_metadata/tools.py +++ /dev/null @@ -1,30 +0,0 @@ -__copyright__ = "Copyright 2020, 3Liz" -__license__ = "GPL version 3" -__email__ = "info@3liz.org" - -from qgis.core import QgsLayerItem -from qgis.PyQt.QtCore import NULL -from qgis.PyQt.QtGui import QIcon - -from pg_metadata.qgis_plugin_tools.tools.resources import resources_path - - -def icon_for_geometry_type(geometry_type: str) -> QIcon(): - """ Return the correct icon according to the geometry type. """ - if geometry_type == NULL: - return QgsLayerItem.iconTable() - - elif geometry_type in ('POINT', 'POINTM', 'MULTIPOINT'): - return QgsLayerItem.iconPoint() - - elif geometry_type in ('LINESTRING', 'LINESTRINGM', 'MULTILINESTRING', 'MULTILINESTRINGM'): - return QgsLayerItem.iconLine() - - elif geometry_type in ('POLYGON', 'POLYGONM', 'MULTIPOLYGON', 'MULTIPOLYGONM'): - return QgsLayerItem.iconPolygon() - - elif geometry_type == 'RASTER': - return QgsLayerItem.iconRaster() - - # Default icon - return QIcon(resources_path('icons', 'icon.png'))