c2cgeoportal-commons 2.7.1.145__py3-none-any.whl → 2.9.0.350__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- c2cgeoportal_commons/__init__.py +1 -1
- c2cgeoportal_commons/alembic/env.py +18 -15
- c2cgeoportal_commons/alembic/main/028477929d13_add_technical_roles.py +3 -3
- c2cgeoportal_commons/alembic/main/04f05bfbb05e_remove_the_old_is_expanded_column.py +3 -1
- c2cgeoportal_commons/alembic/main/116b9b79fc4d_internal_and_external_layer_tables_.py +35 -39
- c2cgeoportal_commons/alembic/main/1418cb05921b_merge_1_6_and_master_branches.py +2 -4
- c2cgeoportal_commons/alembic/main/164ac0819a61_add_image_format_to_wmts_layer.py +2 -2
- c2cgeoportal_commons/alembic/main/166ff2dcc48d_create_database.py +5 -5
- c2cgeoportal_commons/alembic/main/16e43f8c0330_remove_old_metadata_column.py +2 -2
- c2cgeoportal_commons/alembic/main/1d5d4abfebd1_add_restricted_theme.py +3 -3
- c2cgeoportal_commons/alembic/main/1de20166b274_remove_v1_artifacts.py +2 -2
- c2cgeoportal_commons/alembic/main/20137477bd02_update_icons_url.py +2 -2
- c2cgeoportal_commons/alembic/main/21f11066f8ec_trigger_on_role_updates_user_in_static.py +14 -16
- c2cgeoportal_commons/alembic/main/22e6dfb556de_add_description_tree_.py +2 -2
- c2cgeoportal_commons/alembic/main/29f2a32859ec_merge_1_6_and_master_branches.py +2 -4
- c2cgeoportal_commons/alembic/main/2b8ed8c1df94_set_layergroup_treeitem_is_as_a_primary_.py +2 -2
- c2cgeoportal_commons/alembic/main/2e57710fecfe_update_the_ogc_server_for_ogc_api.py +77 -0
- c2cgeoportal_commons/alembic/main/32527659d57b_move_exclude_properties_from_layerv1_to_.py +8 -8
- c2cgeoportal_commons/alembic/main/32b21aa1d0ed_merge_e004f76e951a_and_e004f76e951a_.py +2 -4
- c2cgeoportal_commons/alembic/main/338b57593823_remove_trigger_on_role_name_change.py +16 -18
- c2cgeoportal_commons/alembic/main/415746eb9f6_changes_for_v2.py +31 -31
- c2cgeoportal_commons/alembic/main/44c91d82d419_add_table_log.py +72 -0
- c2cgeoportal_commons/alembic/main/5109242131ce_add_column_time_widget.py +4 -3
- c2cgeoportal_commons/alembic/main/52916d8fde8b_add_sql_fields_to_vector_tiles.py +5 -3
- c2cgeoportal_commons/alembic/main/53ba1a68d5fe_add_theme_to_fulltextsearch.py +2 -2
- c2cgeoportal_commons/alembic/main/54645a535ad6_add_ordering_in_relation.py +10 -10
- c2cgeoportal_commons/alembic/main/56dc90838d90_fix_removing_layerv1.py +2 -2
- c2cgeoportal_commons/alembic/main/596ba21e3833_separate_local_internal.py +6 -10
- c2cgeoportal_commons/alembic/main/678f88c7ad5e_add_vector_tiles_layers_table.py +2 -2
- c2cgeoportal_commons/alembic/main/6a412d9437b1_rename_serverogc_to_ogcserver.py +4 -4
- c2cgeoportal_commons/alembic/main/6d87fdad275a_convert_metadata_to_the_right_case.py +2 -2
- c2cgeoportal_commons/alembic/main/7530011a66a7_trigger_on_role_updates_user_in_static.py +14 -16
- c2cgeoportal_commons/alembic/main/78fd093c8393_add_api_s_intrfaces.py +30 -49
- c2cgeoportal_commons/alembic/main/7d271f4527cd_add_layer_column_in_layerv1_table.py +2 -2
- c2cgeoportal_commons/alembic/main/809650bd04c3_add_dimension_field.py +2 -2
- c2cgeoportal_commons/alembic/main/8117bb9bba16_use_dimension_on_all_the_layers.py +4 -4
- c2cgeoportal_commons/alembic/main/87f8330ed64e_add_missing_delete_cascades.py +2 -2
- c2cgeoportal_commons/alembic/main/9268a1dffac0_add_trigger_to_be_able_to_correctly_.py +2 -2
- c2cgeoportal_commons/alembic/main/94db7e7e5b21_merge_2_2_and_master_branches.py +2 -4
- c2cgeoportal_commons/alembic/main/951ff84bd8ec_be_able_to_delete_a_wms_layer_in_sql.py +2 -2
- c2cgeoportal_commons/alembic/main/a00109812f89_add_field_layer_wms_valid.py +4 -4
- c2cgeoportal_commons/alembic/main/a4558f032d7d_add_support_of_cog_layers.py +74 -0
- c2cgeoportal_commons/alembic/main/a4f1aac9bda_merge_1_6_and_master_branches.py +2 -4
- c2cgeoportal_commons/alembic/main/b60f2a505f42_remame_uimetadata_to_metadata.py +2 -2
- c2cgeoportal_commons/alembic/main/b6b09f414fe8_sync_model_database.py +174 -0
- c2cgeoportal_commons/alembic/main/c75124553bf3_remove_deprecated_columns.py +2 -2
- c2cgeoportal_commons/alembic/main/d48a63b348f1_change_mapserver_url_for_docker.py +6 -10
- c2cgeoportal_commons/alembic/main/d8ef99bc227e_be_able_to_delete_a_linked_functionality.py +2 -2
- c2cgeoportal_commons/alembic/main/daf738d5bae4_merge_2_0_and_master_branches.py +2 -4
- c2cgeoportal_commons/alembic/main/dba87f2647f9_merge_2_2_on_2_3.py +2 -4
- c2cgeoportal_commons/alembic/main/e004f76e951a_add_missing_not_null.py +6 -22
- c2cgeoportal_commons/alembic/main/e7e03dedade3_put_the_default_wms_server_in_the_.py +6 -10
- c2cgeoportal_commons/alembic/main/e85afd327ab3_cascade_deletes_to_tsearch.py +2 -2
- c2cgeoportal_commons/alembic/main/ec82a8906649_add_missing_on_delete_cascade_on_layer_.py +2 -2
- c2cgeoportal_commons/alembic/main/ee25d267bf46_main_interface_desktop.py +4 -10
- c2cgeoportal_commons/alembic/main/eeb345672454_merge_2_4_and_master_branches.py +2 -4
- c2cgeoportal_commons/alembic/static/0c640a58a09a_add_opt_key_column.py +2 -2
- c2cgeoportal_commons/alembic/static/107b81f5b9fe_add_missing_delete_cascades.py +2 -2
- c2cgeoportal_commons/alembic/static/1857owc78a07_add_last_login_and_expiration_date.py +2 -2
- c2cgeoportal_commons/alembic/static/1da396a88908_move_user_table_to_static_schema.py +6 -10
- c2cgeoportal_commons/alembic/static/267b4c1bde2e_add_display_name_in_the_user_for_better_.py +62 -0
- c2cgeoportal_commons/alembic/static/3f89a7d71a5e_alter_column_url_to_remove_limitation.py +2 -2
- c2cgeoportal_commons/alembic/static/44c91d82d419_add_table_log.py +72 -0
- c2cgeoportal_commons/alembic/static/53d671b17b20_add_timezone_on_datetime_fields.py +2 -2
- c2cgeoportal_commons/alembic/static/5472fbc19f39_add_temp_password_column.py +2 -2
- c2cgeoportal_commons/alembic/static/76d72fb3fcb9_add_oauth2_pkce.py +70 -0
- c2cgeoportal_commons/alembic/static/7ef947f30f20_add_oauth2_tables.py +3 -1
- c2cgeoportal_commons/alembic/static/910b4ca53b68_sync_model_database.py +186 -0
- c2cgeoportal_commons/alembic/static/aa41e9613256_wip_add_openid_connect_support.py +64 -0
- c2cgeoportal_commons/alembic/static/ae5e88f35669_add_table_user_role.py +8 -14
- c2cgeoportal_commons/alembic/static/bd029dbfc11a_fill_tech_data_column.py +2 -2
- c2cgeoportal_commons/lib/email_.py +15 -19
- c2cgeoportal_commons/lib/literal.py +3 -3
- c2cgeoportal_commons/lib/url.py +15 -16
- c2cgeoportal_commons/lib/validators.py +1 -3
- c2cgeoportal_commons/models/__init__.py +16 -9
- c2cgeoportal_commons/models/main.py +415 -226
- c2cgeoportal_commons/models/sqlalchemy.py +13 -13
- c2cgeoportal_commons/models/static.py +162 -71
- c2cgeoportal_commons/testing/__init__.py +12 -7
- c2cgeoportal_commons/testing/initializedb.py +7 -6
- {c2cgeoportal_commons-2.7.1.145.dist-info → c2cgeoportal_commons-2.9.0.350.dist-info}/METADATA +4 -5
- c2cgeoportal_commons-2.9.0.350.dist-info/RECORD +89 -0
- {c2cgeoportal_commons-2.7.1.145.dist-info → c2cgeoportal_commons-2.9.0.350.dist-info}/WHEEL +1 -1
- tests/conftest.py +1 -1
- c2cgeoportal_commons-2.7.1.145.dist-info/RECORD +0 -80
- {c2cgeoportal_commons-2.7.1.145.dist-info → c2cgeoportal_commons-2.9.0.350.dist-info}/top_level.txt +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c) 2018-
|
|
1
|
+
# Copyright (c) 2018-2025, Camptocamp SA
|
|
2
2
|
# All rights reserved.
|
|
3
3
|
|
|
4
4
|
# Redistribution and use in source and binary forms, with or without
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
# of the authors and should not be interpreted as representing official policies,
|
|
26
26
|
# either expressed or implied, of the FreeBSD Project.
|
|
27
27
|
|
|
28
|
-
# pylint: disable=no-member
|
|
28
|
+
# pylint: disable=no-member,invalid-name
|
|
29
29
|
|
|
30
30
|
"""
|
|
31
31
|
Remove trigger on_role_name_change.
|
|
@@ -59,22 +59,20 @@ def downgrade() -> None:
|
|
|
59
59
|
staticschema = config["schema_static"]
|
|
60
60
|
|
|
61
61
|
op.execute(
|
|
62
|
-
"""
|
|
63
|
-
CREATE OR REPLACE FUNCTION {schema}.on_role_name_change()
|
|
64
|
-
RETURNS trigger AS
|
|
65
|
-
$$
|
|
66
|
-
BEGIN
|
|
67
|
-
IF NEW.name <> OLD.name THEN
|
|
68
|
-
UPDATE {staticschema}."user" SET role_name = NEW.name WHERE role_name = OLD.name;
|
|
69
|
-
END IF;
|
|
70
|
-
RETURN NEW;
|
|
71
|
-
END;
|
|
72
|
-
$$
|
|
73
|
-
LANGUAGE plpgsql"""
|
|
74
|
-
schema=schema, staticschema=staticschema
|
|
75
|
-
)
|
|
62
|
+
f"""
|
|
63
|
+
CREATE OR REPLACE FUNCTION {schema}.on_role_name_change()
|
|
64
|
+
RETURNS trigger AS
|
|
65
|
+
$$
|
|
66
|
+
BEGIN
|
|
67
|
+
IF NEW.name <> OLD.name THEN
|
|
68
|
+
UPDATE {staticschema}."user" SET role_name = NEW.name WHERE role_name = OLD.name;
|
|
69
|
+
END IF;
|
|
70
|
+
RETURN NEW;
|
|
71
|
+
END;
|
|
72
|
+
$$
|
|
73
|
+
LANGUAGE plpgsql"""
|
|
76
74
|
)
|
|
77
75
|
op.execute(
|
|
78
|
-
"CREATE TRIGGER on_role_name_change AFTER UPDATE ON {schema}.role FOR EACH ROW "
|
|
79
|
-
"EXECUTE PROCEDURE {schema}.on_role_name_change()"
|
|
76
|
+
f"CREATE TRIGGER on_role_name_change AFTER UPDATE ON {schema}.role FOR EACH ROW "
|
|
77
|
+
f"EXECUTE PROCEDURE {schema}.on_role_name_change()"
|
|
80
78
|
)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c) 2014-
|
|
1
|
+
# Copyright (c) 2014-2025, Camptocamp SA
|
|
2
2
|
# All rights reserved.
|
|
3
3
|
|
|
4
4
|
# Redistribution and use in source and binary forms, with or without
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
# of the authors and should not be interpreted as representing official policies,
|
|
26
26
|
# either expressed or implied, of the FreeBSD Project.
|
|
27
27
|
|
|
28
|
-
# pylint: disable=no-member
|
|
28
|
+
# pylint: disable=no-member,invalid-name
|
|
29
29
|
|
|
30
30
|
"""
|
|
31
31
|
Changes to start the implementation of the version 2.
|
|
@@ -51,7 +51,7 @@ def upgrade() -> None:
|
|
|
51
51
|
|
|
52
52
|
engine = op.get_bind().engine
|
|
53
53
|
with engine.connect() as connection:
|
|
54
|
-
if type(engine).__name__ != "MockConnection" and op.get_context().dialect.has_table(
|
|
54
|
+
if type(engine).__name__ != "MockConnection" and op.get_context().dialect.has_table(
|
|
55
55
|
connection, "interface", schema=schema
|
|
56
56
|
):
|
|
57
57
|
return
|
|
@@ -157,29 +157,29 @@ def upgrade() -> None:
|
|
|
157
157
|
op.bulk_insert(interface, [{"name": "main"}, {"name": "mobile"}, {"name": "edit"}, {"name": "routing"}])
|
|
158
158
|
|
|
159
159
|
op.execute(
|
|
160
|
-
"INSERT INTO
|
|
160
|
+
f"INSERT INTO {schema}.interface_layer (layer_id, interface_id) "
|
|
161
161
|
"(SELECT l.id AS layer_id, i.id AS interface_id "
|
|
162
|
-
"FROM
|
|
163
|
-
"WHERE i.name in ('main', 'edit', 'routing') AND l.\"inDesktopViewer\")"
|
|
162
|
+
f"FROM {schema}.layer AS l, {schema}.interface AS i "
|
|
163
|
+
"WHERE i.name in ('main', 'edit', 'routing') AND l.\"inDesktopViewer\")"
|
|
164
164
|
)
|
|
165
165
|
op.execute(
|
|
166
|
-
"INSERT INTO
|
|
166
|
+
f"INSERT INTO {schema}.interface_layer (layer_id, interface_id) "
|
|
167
167
|
"(SELECT l.id AS layer_id, i.id AS interface_id "
|
|
168
|
-
"FROM
|
|
169
|
-
"WHERE i.name = 'mobile' AND l.\"inMobileViewer\")"
|
|
168
|
+
f"FROM {schema}.layer AS l, {schema}.interface AS i "
|
|
169
|
+
"WHERE i.name = 'mobile' AND l.\"inMobileViewer\")"
|
|
170
170
|
)
|
|
171
171
|
|
|
172
172
|
op.execute(
|
|
173
|
-
"INSERT INTO
|
|
173
|
+
f"INSERT INTO {schema}.interface_theme (theme_id, interface_id) "
|
|
174
174
|
"(SELECT l.id AS theme_id, i.id AS interface_id "
|
|
175
|
-
"FROM
|
|
176
|
-
"WHERE i.name in ('main', 'edit', 'routing') AND l.\"inDesktopViewer\")"
|
|
175
|
+
f"FROM {schema}.theme AS l, {schema}.interface AS i "
|
|
176
|
+
"WHERE i.name in ('main', 'edit', 'routing') AND l.\"inDesktopViewer\")"
|
|
177
177
|
)
|
|
178
178
|
op.execute(
|
|
179
|
-
"INSERT INTO
|
|
179
|
+
f"INSERT INTO {schema}.interface_theme (theme_id, interface_id) "
|
|
180
180
|
"(SELECT l.id AS theme_id, i.id AS interface_id "
|
|
181
|
-
"FROM
|
|
182
|
-
"WHERE i.name = 'mobile' AND l.\"inMobileViewer\")"
|
|
181
|
+
f"FROM {schema}.theme AS l, {schema}.interface AS i "
|
|
182
|
+
"WHERE i.name = 'mobile' AND l.\"inMobileViewer\")"
|
|
183
183
|
)
|
|
184
184
|
|
|
185
185
|
op.drop_column("layer", "inMobileViewer", schema=schema)
|
|
@@ -271,32 +271,32 @@ def downgrade() -> None:
|
|
|
271
271
|
op.alter_column("layergroup", "is_internal_wms", new_column_name="isInternalWMS", schema=schema)
|
|
272
272
|
op.alter_column("layergroup", "is_base_layer", new_column_name="isBaseLayer", schema=schema)
|
|
273
273
|
|
|
274
|
-
op.execute("UPDATE ONLY
|
|
275
|
-
op.execute("UPDATE ONLY
|
|
274
|
+
op.execute(f"UPDATE ONLY {schema}.theme AS t " 'SET "inDesktopViewer" = FALSE')
|
|
275
|
+
op.execute(f"UPDATE ONLY {schema}.layer AS t " 'SET "inDesktopViewer" = FALSE')
|
|
276
276
|
|
|
277
277
|
op.execute(
|
|
278
|
-
"UPDATE ONLY
|
|
278
|
+
f"UPDATE ONLY {schema}.theme AS t "
|
|
279
279
|
'SET "inMobileViewer" = TRUE '
|
|
280
|
-
"FROM
|
|
281
|
-
"WHERE i.name = 'mobile' AND i.id = it.interface_id AND it.theme_id = t.id"
|
|
280
|
+
f"FROM {schema}.interface AS i, {schema}.interface_theme AS it "
|
|
281
|
+
"WHERE i.name = 'mobile' AND i.id = it.interface_id AND it.theme_id = t.id"
|
|
282
282
|
)
|
|
283
283
|
op.execute(
|
|
284
|
-
"UPDATE ONLY
|
|
284
|
+
f"UPDATE ONLY {schema}.theme AS t "
|
|
285
285
|
'SET "inDesktopViewer" = TRUE '
|
|
286
|
-
"FROM
|
|
287
|
-
"WHERE i.name = 'main' AND i.id = it.interface_id AND it.theme_id = t.id"
|
|
286
|
+
f"FROM {schema}.interface AS i, {schema}.interface_theme AS it "
|
|
287
|
+
"WHERE i.name = 'main' AND i.id = it.interface_id AND it.theme_id = t.id"
|
|
288
288
|
)
|
|
289
289
|
op.execute(
|
|
290
|
-
"UPDATE ONLY
|
|
290
|
+
f"UPDATE ONLY {schema}.layer AS l "
|
|
291
291
|
'SET "inMobileViewer" = TRUE '
|
|
292
|
-
"FROM
|
|
293
|
-
"WHERE i.name = 'mobile' AND i.id = il.interface_id AND il.layer_id = l.id"
|
|
292
|
+
f"FROM {schema}.interface AS i, {schema}.interface_layer AS il "
|
|
293
|
+
"WHERE i.name = 'mobile' AND i.id = il.interface_id AND il.layer_id = l.id"
|
|
294
294
|
)
|
|
295
295
|
op.execute(
|
|
296
|
-
"UPDATE ONLY
|
|
296
|
+
f"UPDATE ONLY {schema}.layer AS l "
|
|
297
297
|
'SET "inDesktopViewer" = TRUE '
|
|
298
|
-
"FROM
|
|
299
|
-
"WHERE i.name = 'main' AND i.id = il.interface_id AND il.layer_id = l.id"
|
|
298
|
+
f"FROM {schema}.interface AS i, {schema}.interface_layer AS il "
|
|
299
|
+
"WHERE i.name = 'main' AND i.id = il.interface_id AND il.layer_id = l.id"
|
|
300
300
|
)
|
|
301
301
|
|
|
302
302
|
op.add_column("layer", Column("timeMode", Unicode(8)), schema=schema)
|
|
@@ -324,7 +324,7 @@ def downgrade() -> None:
|
|
|
324
324
|
op.add_column("layer", Column("isChecked", Boolean, default=True), schema=schema)
|
|
325
325
|
|
|
326
326
|
op.execute(
|
|
327
|
-
"UPDATE
|
|
327
|
+
f"UPDATE {schema}.layer AS l SET ("
|
|
328
328
|
'id, "isChecked", icon, "layerType", url, "imageType", style, dimensions, "matrixSet", '
|
|
329
329
|
'"wmsUrl", "wmsLayers", "queryLayers", kml, "isSingleTile", legend, "legendImage", '
|
|
330
330
|
'"legendRule", "isLegendExpanded", "minResolution", "maxResolution", disclaimer, '
|
|
@@ -335,7 +335,7 @@ def downgrade() -> None:
|
|
|
335
335
|
"o.legend, o.legend_image, o.legend_rule, o.is_legend_expanded, o.min_resolution, "
|
|
336
336
|
"o.max_resolution, o.disclaimer, o.identifier_attribute_field, o.exclude_properties, "
|
|
337
337
|
"o.time_mode "
|
|
338
|
-
") FROM
|
|
338
|
+
f") FROM {schema}.layerv1 AS o WHERE o.id = l.id"
|
|
339
339
|
)
|
|
340
340
|
|
|
341
341
|
op.drop_table("layerv1", schema=schema)
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Copyright (c) 2023-2025, Camptocamp SA
|
|
2
|
+
# All rights reserved.
|
|
3
|
+
|
|
4
|
+
# Redistribution and use in source and binary forms, with or without
|
|
5
|
+
# modification, are permitted provided that the following conditions are met:
|
|
6
|
+
|
|
7
|
+
# 1. Redistributions of source code must retain the above copyright notice, this
|
|
8
|
+
# list of conditions and the following disclaimer.
|
|
9
|
+
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
10
|
+
# this list of conditions and the following disclaimer in the documentation
|
|
11
|
+
# and/or other materials provided with the distribution.
|
|
12
|
+
|
|
13
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
14
|
+
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
15
|
+
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
16
|
+
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
|
17
|
+
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
18
|
+
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
19
|
+
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
20
|
+
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
21
|
+
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
22
|
+
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
23
|
+
|
|
24
|
+
# The views and conclusions contained in the software and documentation are those
|
|
25
|
+
# of the authors and should not be interpreted as representing official policies,
|
|
26
|
+
# either expressed or implied, of the FreeBSD Project.
|
|
27
|
+
|
|
28
|
+
# pylint: disable=invalid-name
|
|
29
|
+
|
|
30
|
+
"""
|
|
31
|
+
Add table log.
|
|
32
|
+
|
|
33
|
+
Revision ID: 44c91d82d419
|
|
34
|
+
Revises: 04f05bfbb05e
|
|
35
|
+
Create Date: 2023-01-14 08:38:54.640205
|
|
36
|
+
"""
|
|
37
|
+
|
|
38
|
+
import sqlalchemy as sa
|
|
39
|
+
from alembic import op
|
|
40
|
+
from c2c.template.config import config
|
|
41
|
+
|
|
42
|
+
# revision identifiers, used by Alembic.
|
|
43
|
+
revision = "44c91d82d419"
|
|
44
|
+
down_revision = "04f05bfbb05e"
|
|
45
|
+
branch_labels = None
|
|
46
|
+
depends_on = None
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def upgrade() -> None:
|
|
50
|
+
"""Upgrade."""
|
|
51
|
+
schema = config["schema"]
|
|
52
|
+
|
|
53
|
+
op.create_table(
|
|
54
|
+
"log",
|
|
55
|
+
sa.Column("id", sa.Integer, nullable=False),
|
|
56
|
+
sa.Column("date", sa.DateTime(timezone=True), nullable=False),
|
|
57
|
+
sa.Column("action", sa.Unicode, nullable=False),
|
|
58
|
+
sa.Column("element_type", sa.String(length=50), nullable=False),
|
|
59
|
+
sa.Column("element_id", sa.Integer, nullable=False),
|
|
60
|
+
sa.Column("element_name", sa.Unicode, nullable=False),
|
|
61
|
+
sa.Column("element_url_table", sa.Unicode, nullable=False),
|
|
62
|
+
sa.Column("username", sa.Unicode, nullable=False),
|
|
63
|
+
sa.PrimaryKeyConstraint("id"),
|
|
64
|
+
schema=schema,
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
def downgrade() -> None:
|
|
69
|
+
"""Downgrade."""
|
|
70
|
+
schema = config["schema"]
|
|
71
|
+
|
|
72
|
+
op.drop_table("log", schema=schema)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c) 2015-
|
|
1
|
+
# Copyright (c) 2015-2025, Camptocamp SA
|
|
2
2
|
# All rights reserved.
|
|
3
3
|
|
|
4
4
|
# Redistribution and use in source and binary forms, with or without
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
# of the authors and should not be interpreted as representing official policies,
|
|
26
26
|
# either expressed or implied, of the FreeBSD Project.
|
|
27
27
|
|
|
28
|
-
# pylint: disable=no-member
|
|
28
|
+
# pylint: disable=no-member,invalid-name
|
|
29
29
|
|
|
30
30
|
"""
|
|
31
31
|
add column time_widget.
|
|
@@ -35,6 +35,7 @@ Revises: 164ac0819a61
|
|
|
35
35
|
Create Date: 2015-04-27 17:31:41.760977
|
|
36
36
|
"""
|
|
37
37
|
|
|
38
|
+
import sqlalchemy
|
|
38
39
|
from alembic import op
|
|
39
40
|
from c2c.template.config import config
|
|
40
41
|
from sqlalchemy import Column
|
|
@@ -52,7 +53,7 @@ def upgrade() -> None:
|
|
|
52
53
|
# Instructions
|
|
53
54
|
for table in ["layerv1", "layer_internal_wms", "layer_external_wms"]:
|
|
54
55
|
op.add_column(table, Column("time_widget", Unicode(10), default="slider"), schema=schema)
|
|
55
|
-
op.execute(f"UPDATE {schema!s}.{table!s} SET time_widget = 'slider'")
|
|
56
|
+
op.execute(sqlalchemy.text(f"UPDATE {schema!s}.{table!s} SET time_widget = 'slider'"))
|
|
56
57
|
|
|
57
58
|
|
|
58
59
|
def downgrade() -> None:
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c) 2020-
|
|
1
|
+
# Copyright (c) 2020-2025, Camptocamp SA
|
|
2
2
|
# All rights reserved.
|
|
3
3
|
|
|
4
4
|
# Redistribution and use in source and binary forms, with or without
|
|
@@ -25,6 +25,8 @@
|
|
|
25
25
|
# of the authors and should not be interpreted as representing official policies,
|
|
26
26
|
# either expressed or implied, of the FreeBSD Project.
|
|
27
27
|
|
|
28
|
+
# pylint: disable=invalid-name
|
|
29
|
+
|
|
28
30
|
"""
|
|
29
31
|
Add sql fields to vector tiles.
|
|
30
32
|
|
|
@@ -48,11 +50,11 @@ def upgrade() -> None:
|
|
|
48
50
|
"""Upgrade."""
|
|
49
51
|
schema = config["schema"]
|
|
50
52
|
table = "layer_vectortiles"
|
|
51
|
-
op.add_column(table, Column("sql", Unicode, nullable=True), schema)
|
|
53
|
+
op.add_column(table, Column("sql", Unicode, nullable=True), schema=schema)
|
|
52
54
|
|
|
53
55
|
|
|
54
56
|
def downgrade() -> None:
|
|
55
57
|
"""Downgrade."""
|
|
56
58
|
schema = config["schema"]
|
|
57
59
|
table = "layer_vectortiles"
|
|
58
|
-
op.drop_column(table, "sql", schema)
|
|
60
|
+
op.drop_column(table, "sql", schema=schema)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c) 2015-
|
|
1
|
+
# Copyright (c) 2015-2025, Camptocamp SA
|
|
2
2
|
# All rights reserved.
|
|
3
3
|
|
|
4
4
|
# Redistribution and use in source and binary forms, with or without
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
# of the authors and should not be interpreted as representing official policies,
|
|
26
26
|
# either expressed or implied, of the FreeBSD Project.
|
|
27
27
|
|
|
28
|
-
# pylint: disable=no-member
|
|
28
|
+
# pylint: disable=no-member,invalid-name
|
|
29
29
|
|
|
30
30
|
"""
|
|
31
31
|
Add theme to full-text search.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c) 2014-
|
|
1
|
+
# Copyright (c) 2014-2025, Camptocamp SA
|
|
2
2
|
# All rights reserved.
|
|
3
3
|
|
|
4
4
|
# Redistribution and use in source and binary forms, with or without
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
# of the authors and should not be interpreted as representing official policies,
|
|
26
26
|
# either expressed or implied, of the FreeBSD Project.
|
|
27
27
|
|
|
28
|
-
# pylint: disable=no-member
|
|
28
|
+
# pylint: disable=no-member,invalid-name
|
|
29
29
|
|
|
30
30
|
"""
|
|
31
31
|
Add ordering in relation.
|
|
@@ -53,13 +53,13 @@ def upgrade() -> None:
|
|
|
53
53
|
op.add_column("layergroup_treeitem", Column("id", Integer, primary_key=True), schema=schema)
|
|
54
54
|
op.add_column("layergroup_treeitem", Column("ordering", Integer), schema=schema)
|
|
55
55
|
op.execute(
|
|
56
|
-
'UPDATE ONLY
|
|
57
|
-
"FROM
|
|
56
|
+
f'UPDATE ONLY {schema}.layergroup_treeitem AS lt SET ordering = ti."order" '
|
|
57
|
+
f"FROM {schema}.treeitem AS ti WHERE ti.id = lt.treeitem_id "
|
|
58
58
|
)
|
|
59
59
|
op.add_column("theme", Column("ordering", Integer), schema=schema)
|
|
60
60
|
op.execute(
|
|
61
|
-
'UPDATE ONLY
|
|
62
|
-
"FROM
|
|
61
|
+
f'UPDATE ONLY {schema}.theme AS t SET ordering = ti."order" '
|
|
62
|
+
f"FROM {schema}.treeitem AS ti WHERE ti.id = t.id "
|
|
63
63
|
)
|
|
64
64
|
op.drop_column("treeitem", "order", schema=schema)
|
|
65
65
|
|
|
@@ -69,12 +69,12 @@ def downgrade() -> None:
|
|
|
69
69
|
schema = config["schema"]
|
|
70
70
|
op.add_column("treeitem", Column("order", Integer), schema=schema)
|
|
71
71
|
op.execute(
|
|
72
|
-
'UPDATE ONLY
|
|
73
|
-
"FROM
|
|
72
|
+
f'UPDATE ONLY {schema}.treeitem AS ti SET "order" = lt.ordering '
|
|
73
|
+
f"FROM {schema}.layergroup_treeitem AS lt WHERE ti.id = lt.treeitem_id "
|
|
74
74
|
)
|
|
75
75
|
op.execute(
|
|
76
|
-
'UPDATE ONLY
|
|
77
|
-
"FROM
|
|
76
|
+
f'UPDATE ONLY {schema}.treeitem AS ti SET "order" = t.ordering '
|
|
77
|
+
f"FROM {schema}.theme AS t WHERE ti.id = t.id "
|
|
78
78
|
)
|
|
79
79
|
op.drop_column("theme", "ordering", schema=schema)
|
|
80
80
|
op.drop_column("layergroup_treeitem", "ordering", schema=schema)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c) 2019-
|
|
1
|
+
# Copyright (c) 2019-2025, Camptocamp SA
|
|
2
2
|
# All rights reserved.
|
|
3
3
|
|
|
4
4
|
# Redistribution and use in source and binary forms, with or without
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
# of the authors and should not be interpreted as representing official policies,
|
|
26
26
|
# either expressed or implied, of the FreeBSD Project.
|
|
27
27
|
|
|
28
|
-
# pylint: disable=no-member
|
|
28
|
+
# pylint: disable=no-member,invalid-name
|
|
29
29
|
|
|
30
30
|
"""
|
|
31
31
|
Fix removing layerv1.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c) 2016-
|
|
1
|
+
# Copyright (c) 2016-2025, Camptocamp SA
|
|
2
2
|
# All rights reserved.
|
|
3
3
|
|
|
4
4
|
# Redistribution and use in source and binary forms, with or without
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
# of the authors and should not be interpreted as representing official policies,
|
|
26
26
|
# either expressed or implied, of the FreeBSD Project.
|
|
27
27
|
|
|
28
|
-
# pylint: disable=no-member
|
|
28
|
+
# pylint: disable=no-member,invalid-name
|
|
29
29
|
|
|
30
30
|
"""
|
|
31
31
|
separate local internal.
|
|
@@ -50,13 +50,11 @@ def upgrade() -> None:
|
|
|
50
50
|
schema = config["schema"]
|
|
51
51
|
|
|
52
52
|
op.execute(
|
|
53
|
-
"""
|
|
53
|
+
f"""
|
|
54
54
|
UPDATE "{schema}".ogc_server
|
|
55
55
|
SET url = 'config://internal/mapserv'
|
|
56
56
|
WHERE url = 'config://local/mapserv'
|
|
57
|
-
|
|
58
|
-
schema=schema
|
|
59
|
-
)
|
|
57
|
+
"""
|
|
60
58
|
)
|
|
61
59
|
|
|
62
60
|
|
|
@@ -65,11 +63,9 @@ def downgrade() -> None:
|
|
|
65
63
|
schema = config["schema"]
|
|
66
64
|
|
|
67
65
|
op.execute(
|
|
68
|
-
"""
|
|
66
|
+
f"""
|
|
69
67
|
UPDATE "{schema}".ogc_server
|
|
70
68
|
SET url = 'config://local/mapserv'
|
|
71
69
|
WHERE url = 'config://internal/mapserv'
|
|
72
|
-
|
|
73
|
-
schema=schema
|
|
74
|
-
)
|
|
70
|
+
"""
|
|
75
71
|
)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c) 2019-
|
|
1
|
+
# Copyright (c) 2019-2025, Camptocamp SA
|
|
2
2
|
# All rights reserved.
|
|
3
3
|
|
|
4
4
|
# Redistribution and use in source and binary forms, with or without
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
# of the authors and should not be interpreted as representing official policies,
|
|
26
26
|
# either expressed or implied, of the FreeBSD Project.
|
|
27
27
|
|
|
28
|
-
# pylint: disable=no-member
|
|
28
|
+
# pylint: disable=no-member,invalid-name
|
|
29
29
|
|
|
30
30
|
"""
|
|
31
31
|
Add vector tiles layers table.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c) 2016-
|
|
1
|
+
# Copyright (c) 2016-2025, Camptocamp SA
|
|
2
2
|
# All rights reserved.
|
|
3
3
|
|
|
4
4
|
# Redistribution and use in source and binary forms, with or without
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
# of the authors and should not be interpreted as representing official policies,
|
|
26
26
|
# either expressed or implied, of the FreeBSD Project.
|
|
27
27
|
|
|
28
|
-
# pylint: disable=no-member
|
|
28
|
+
# pylint: disable=no-member,invalid-name
|
|
29
29
|
|
|
30
30
|
"""
|
|
31
31
|
Rename ServerOGC to OGCServer.
|
|
@@ -50,7 +50,7 @@ def upgrade() -> None:
|
|
|
50
50
|
schema = config["schema"]
|
|
51
51
|
|
|
52
52
|
op.rename_table("server_ogc", "ogc_server", schema=schema)
|
|
53
|
-
with op.batch_alter_table("layer_wms", schema=schema) as table_op:
|
|
53
|
+
with op.batch_alter_table("layer_wms", schema=schema) as table_op:
|
|
54
54
|
table_op.alter_column("server_ogc_id", new_column_name="ogc_server_id")
|
|
55
55
|
|
|
56
56
|
|
|
@@ -59,5 +59,5 @@ def downgrade() -> None:
|
|
|
59
59
|
schema = config["schema"]
|
|
60
60
|
|
|
61
61
|
op.rename_table("ogc_server", "server_ogc", schema=schema)
|
|
62
|
-
with op.batch_alter_table("layer_wms", schema=schema) as table_op:
|
|
62
|
+
with op.batch_alter_table("layer_wms", schema=schema) as table_op:
|
|
63
63
|
table_op.alter_column("ogc_server_id", new_column_name="server_ogc_id")
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c) 2017-
|
|
1
|
+
# Copyright (c) 2017-2025, Camptocamp SA
|
|
2
2
|
# All rights reserved.
|
|
3
3
|
|
|
4
4
|
# Redistribution and use in source and binary forms, with or without
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
# of the authors and should not be interpreted as representing official policies,
|
|
26
26
|
# either expressed or implied, of the FreeBSD Project.
|
|
27
27
|
|
|
28
|
-
# pylint: disable=no-member
|
|
28
|
+
# pylint: disable=no-member,invalid-name
|
|
29
29
|
|
|
30
30
|
"""
|
|
31
31
|
Convert the metadata to the right case.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c) 2018-
|
|
1
|
+
# Copyright (c) 2018-2025, Camptocamp SA
|
|
2
2
|
# All rights reserved.
|
|
3
3
|
|
|
4
4
|
# Redistribution and use in source and binary forms, with or without
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
# of the authors and should not be interpreted as representing official policies,
|
|
26
26
|
# either expressed or implied, of the FreeBSD Project.
|
|
27
27
|
|
|
28
|
-
# pylint: disable=no-member
|
|
28
|
+
# pylint: disable=no-member,invalid-name
|
|
29
29
|
|
|
30
30
|
"""
|
|
31
31
|
trigger_on_role_updates_user_in_static.
|
|
@@ -51,20 +51,18 @@ def upgrade() -> None:
|
|
|
51
51
|
staticschema = config["schema_static"]
|
|
52
52
|
|
|
53
53
|
op.execute(
|
|
54
|
-
"""
|
|
55
|
-
CREATE OR REPLACE FUNCTION {schema}.on_role_name_change()
|
|
56
|
-
RETURNS trigger AS
|
|
57
|
-
$$
|
|
58
|
-
BEGIN
|
|
59
|
-
IF NEW.name <> OLD.name THEN
|
|
60
|
-
UPDATE {staticschema}."user" SET role_name = NEW.name WHERE role_name = OLD.name;
|
|
61
|
-
END IF;
|
|
62
|
-
RETURN NEW;
|
|
63
|
-
END;
|
|
64
|
-
$$
|
|
65
|
-
LANGUAGE plpgsql"""
|
|
66
|
-
schema=schema, staticschema=staticschema
|
|
67
|
-
)
|
|
54
|
+
f"""
|
|
55
|
+
CREATE OR REPLACE FUNCTION {schema}.on_role_name_change()
|
|
56
|
+
RETURNS trigger AS
|
|
57
|
+
$$
|
|
58
|
+
BEGIN
|
|
59
|
+
IF NEW.name <> OLD.name THEN
|
|
60
|
+
UPDATE {staticschema}."user" SET role_name = NEW.name WHERE role_name = OLD.name;
|
|
61
|
+
END IF;
|
|
62
|
+
RETURN NEW;
|
|
63
|
+
END;
|
|
64
|
+
$$
|
|
65
|
+
LANGUAGE plpgsql"""
|
|
68
66
|
)
|
|
69
67
|
|
|
70
68
|
|