c2cgeoportal-commons 2.6.0__py3-none-any.whl → 2.9rc44__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.

Potentially problematic release.


This version of c2cgeoportal-commons might be problematic. Click here for more details.

Files changed (88) hide show
  1. c2cgeoportal_commons/__init__.py +2 -5
  2. c2cgeoportal_commons/alembic/env.py +49 -33
  3. c2cgeoportal_commons/alembic/main/028477929d13_add_technical_roles.py +10 -7
  4. c2cgeoportal_commons/alembic/main/04f05bfbb05e_remove_the_old_is_expanded_column.py +62 -0
  5. c2cgeoportal_commons/alembic/main/116b9b79fc4d_internal_and_external_layer_tables_.py +42 -43
  6. c2cgeoportal_commons/alembic/main/1418cb05921b_merge_1_6_and_master_branches.py +9 -8
  7. c2cgeoportal_commons/alembic/main/164ac0819a61_add_image_format_to_wmts_layer.py +9 -6
  8. c2cgeoportal_commons/alembic/main/166ff2dcc48d_create_database.py +21 -24
  9. c2cgeoportal_commons/alembic/main/16e43f8c0330_remove_old_metadata_column.py +9 -6
  10. c2cgeoportal_commons/alembic/main/1d5d4abfebd1_add_restricted_theme.py +14 -8
  11. c2cgeoportal_commons/alembic/main/1de20166b274_remove_v1_artifacts.py +9 -6
  12. c2cgeoportal_commons/alembic/main/20137477bd02_update_icons_url.py +9 -6
  13. c2cgeoportal_commons/alembic/main/21f11066f8ec_trigger_on_role_updates_user_in_static.py +21 -20
  14. c2cgeoportal_commons/alembic/main/22e6dfb556de_add_description_tree_.py +9 -6
  15. c2cgeoportal_commons/alembic/main/29f2a32859ec_merge_1_6_and_master_branches.py +9 -8
  16. c2cgeoportal_commons/alembic/main/2b8ed8c1df94_set_layergroup_treeitem_is_as_a_primary_.py +9 -6
  17. c2cgeoportal_commons/alembic/main/2e57710fecfe_update_the_ogc_server_for_ogc_api.py +71 -0
  18. c2cgeoportal_commons/alembic/main/32527659d57b_move_exclude_properties_from_layerv1_to_.py +15 -12
  19. c2cgeoportal_commons/alembic/main/32b21aa1d0ed_merge_e004f76e951a_and_e004f76e951a_.py +9 -8
  20. c2cgeoportal_commons/alembic/main/338b57593823_remove_trigger_on_role_name_change.py +25 -24
  21. c2cgeoportal_commons/alembic/main/415746eb9f6_changes_for_v2.py +45 -43
  22. c2cgeoportal_commons/alembic/main/44c91d82d419_add_table_log.py +72 -0
  23. c2cgeoportal_commons/alembic/main/5109242131ce_add_column_time_widget.py +11 -9
  24. c2cgeoportal_commons/alembic/main/52916d8fde8b_add_sql_fields_to_vector_tiles.py +60 -0
  25. c2cgeoportal_commons/alembic/main/53ba1a68d5fe_add_theme_to_fulltextsearch.py +9 -6
  26. c2cgeoportal_commons/alembic/main/54645a535ad6_add_ordering_in_relation.py +17 -14
  27. c2cgeoportal_commons/alembic/main/56dc90838d90_fix_removing_layerv1.py +10 -8
  28. c2cgeoportal_commons/alembic/main/596ba21e3833_separate_local_internal.py +13 -14
  29. c2cgeoportal_commons/alembic/main/678f88c7ad5e_add_vector_tiles_layers_table.py +9 -6
  30. c2cgeoportal_commons/alembic/main/6a412d9437b1_rename_serverogc_to_ogcserver.py +9 -6
  31. c2cgeoportal_commons/alembic/main/6d87fdad275a_convert_metadata_to_the_right_case.py +13 -20
  32. c2cgeoportal_commons/alembic/main/7530011a66a7_trigger_on_role_updates_user_in_static.py +21 -20
  33. c2cgeoportal_commons/alembic/main/78fd093c8393_add_api_s_intrfaces.py +36 -52
  34. c2cgeoportal_commons/alembic/main/7d271f4527cd_add_layer_column_in_layerv1_table.py +9 -6
  35. c2cgeoportal_commons/alembic/main/809650bd04c3_add_dimension_field.py +9 -6
  36. c2cgeoportal_commons/alembic/main/8117bb9bba16_use_dimension_on_all_the_layers.py +9 -6
  37. c2cgeoportal_commons/alembic/main/87f8330ed64e_add_missing_delete_cascades.py +9 -6
  38. c2cgeoportal_commons/alembic/main/9268a1dffac0_add_trigger_to_be_able_to_correctly_.py +11 -8
  39. c2cgeoportal_commons/alembic/main/94db7e7e5b21_merge_2_2_and_master_branches.py +9 -8
  40. c2cgeoportal_commons/alembic/main/951ff84bd8ec_be_able_to_delete_a_wms_layer_in_sql.py +9 -6
  41. c2cgeoportal_commons/alembic/main/a00109812f89_add_field_layer_wms_valid.py +11 -8
  42. c2cgeoportal_commons/alembic/main/a4558f032d7d_add_support_of_cog_layers.py +74 -0
  43. c2cgeoportal_commons/alembic/main/a4f1aac9bda_merge_1_6_and_master_branches.py +9 -8
  44. c2cgeoportal_commons/alembic/main/b60f2a505f42_remame_uimetadata_to_metadata.py +9 -6
  45. c2cgeoportal_commons/alembic/main/b6b09f414fe8_sync_model_database.py +165 -0
  46. c2cgeoportal_commons/alembic/main/c75124553bf3_remove_deprecated_columns.py +9 -6
  47. c2cgeoportal_commons/alembic/main/d48a63b348f1_change_mapserver_url_for_docker.py +13 -14
  48. c2cgeoportal_commons/alembic/main/d8ef99bc227e_be_able_to_delete_a_linked_functionality.py +15 -12
  49. c2cgeoportal_commons/alembic/main/daf738d5bae4_merge_2_0_and_master_branches.py +9 -8
  50. c2cgeoportal_commons/alembic/main/dba87f2647f9_merge_2_2_on_2_3.py +9 -8
  51. c2cgeoportal_commons/alembic/main/e004f76e951a_add_missing_not_null.py +15 -32
  52. c2cgeoportal_commons/alembic/main/e7e03dedade3_put_the_default_wms_server_in_the_.py +13 -14
  53. c2cgeoportal_commons/alembic/main/e85afd327ab3_cascade_deletes_to_tsearch.py +9 -6
  54. c2cgeoportal_commons/alembic/main/ec82a8906649_add_missing_on_delete_cascade_on_layer_.py +13 -10
  55. c2cgeoportal_commons/alembic/main/ee25d267bf46_main_interface_desktop.py +11 -14
  56. c2cgeoportal_commons/alembic/main/eeb345672454_merge_2_4_and_master_branches.py +9 -8
  57. c2cgeoportal_commons/alembic/static/0c640a58a09a_add_opt_key_column.py +9 -6
  58. c2cgeoportal_commons/alembic/static/107b81f5b9fe_add_missing_delete_cascades.py +9 -6
  59. c2cgeoportal_commons/alembic/static/1857owc78a07_add_last_login_and_expiration_date.py +7 -6
  60. c2cgeoportal_commons/alembic/static/1da396a88908_move_user_table_to_static_schema.py +19 -20
  61. c2cgeoportal_commons/alembic/static/267b4c1bde2e_add_display_name_in_the_user_for_better_.py +62 -0
  62. c2cgeoportal_commons/alembic/static/3f89a7d71a5e_alter_column_url_to_remove_limitation.py +8 -7
  63. c2cgeoportal_commons/alembic/static/44c91d82d419_add_table_log.py +72 -0
  64. c2cgeoportal_commons/alembic/static/53d671b17b20_add_timezone_on_datetime_fields.py +9 -6
  65. c2cgeoportal_commons/alembic/static/5472fbc19f39_add_temp_password_column.py +9 -6
  66. c2cgeoportal_commons/alembic/static/76d72fb3fcb9_add_oauth2_pkce.py +70 -0
  67. c2cgeoportal_commons/alembic/static/7ef947f30f20_add_oauth2_tables.py +9 -6
  68. c2cgeoportal_commons/alembic/static/910b4ca53b68_sync_model_database.py +186 -0
  69. c2cgeoportal_commons/alembic/static/aa41e9613256_wip_add_openid_connect_support.py +64 -0
  70. c2cgeoportal_commons/alembic/static/ae5e88f35669_add_table_user_role.py +15 -18
  71. c2cgeoportal_commons/alembic/static/bd029dbfc11a_fill_tech_data_column.py +10 -8
  72. c2cgeoportal_commons/lib/email_.py +14 -16
  73. c2cgeoportal_commons/lib/literal.py +44 -0
  74. c2cgeoportal_commons/lib/url.py +164 -58
  75. c2cgeoportal_commons/lib/validators.py +2 -4
  76. c2cgeoportal_commons/models/__init__.py +19 -15
  77. c2cgeoportal_commons/models/main.py +1191 -263
  78. c2cgeoportal_commons/models/sqlalchemy.py +14 -18
  79. c2cgeoportal_commons/models/static.py +305 -78
  80. c2cgeoportal_commons/py.typed +0 -0
  81. c2cgeoportal_commons/testing/__init__.py +17 -12
  82. c2cgeoportal_commons/testing/initializedb.py +15 -14
  83. {c2cgeoportal_commons-2.6.0.dist-info → c2cgeoportal_commons-2.9rc44.dist-info}/METADATA +15 -16
  84. c2cgeoportal_commons-2.9rc44.dist-info/RECORD +89 -0
  85. {c2cgeoportal_commons-2.6.0.dist-info → c2cgeoportal_commons-2.9rc44.dist-info}/WHEEL +1 -1
  86. tests/conftest.py +1 -3
  87. c2cgeoportal_commons-2.6.0.dist-info/RECORD +0 -76
  88. {c2cgeoportal_commons-2.6.0.dist-info → c2cgeoportal_commons-2.9rc44.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,4 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- # Copyright (c) 2014-2019, Camptocamp SA
1
+ # Copyright (c) 2014-2024, Camptocamp SA
4
2
  # All rights reserved.
5
3
 
6
4
  # Redistribution and use in source and binary forms, with or without
@@ -27,7 +25,10 @@
27
25
  # of the authors and should not be interpreted as representing official policies,
28
26
  # either expressed or implied, of the FreeBSD Project.
29
27
 
30
- """Changes to start the implementation of the version 2
28
+ # pylint: disable=no-member,invalid-name
29
+
30
+ """
31
+ Changes to start the implementation of the version 2.
31
32
 
32
33
  Revision ID: 415746eb9f6
33
34
  Revises: None
@@ -44,14 +45,16 @@ revision = "415746eb9f6"
44
45
  down_revision = "166ff2dcc48d"
45
46
 
46
47
 
47
- def upgrade():
48
+ def upgrade() -> None:
49
+ """Upgrade."""
48
50
  schema = config["schema"]
49
51
 
50
52
  engine = op.get_bind().engine
51
- if type(engine).__name__ != "MockConnection" and op.get_context().dialect.has_table(
52
- engine, "interface", schema=schema
53
- ): # pragma: no cover
54
- return
53
+ with engine.connect() as connection:
54
+ if type(engine).__name__ != "MockConnection" and op.get_context().dialect.has_table(
55
+ connection, "interface", schema=schema
56
+ ):
57
+ return
55
58
 
56
59
  op.drop_table("user_functionality", schema=schema)
57
60
 
@@ -106,12 +109,10 @@ def upgrade():
106
109
  schema=schema,
107
110
  )
108
111
 
109
- op.execute(
110
- "UPDATE ONLY %(schema)s.treeitem SET type = 'layerv1' " "WHERE type='layer'" % {"schema": schema}
111
- )
112
+ op.execute(f"UPDATE ONLY {schema}.treeitem SET type = 'layerv1' WHERE type='layer'")
112
113
 
113
114
  op.execute(
114
- "INSERT INTO %(schema)s.layerv1 ("
115
+ f"INSERT INTO {schema}.layerv1 ("
115
116
  "id, is_checked, icon, layer_type, url, image_type, style, dimensions, matrix_set, "
116
117
  "wms_url, wms_layers, query_layers, kml, is_single_tile, legend, "
117
118
  "legend_image, legend_rule, is_legend_expanded, min_resolution, max_resolution, "
@@ -125,7 +126,7 @@ def upgrade():
125
126
  '"minResolution" AS min_resolution, "maxResolution" AS max_resolution, disclaimer, '
126
127
  '"identifierAttributeField" AS identifier_attribute_field, '
127
128
  '"excludeProperties" AS exclude_properties, "timeMode" AS time_mode '
128
- "FROM %(schema)s.layer)" % {"schema": schema}
129
+ f"FROM {schema}.layer)"
129
130
  )
130
131
 
131
132
  op.drop_column("layer", "isChecked", schema=schema)
@@ -156,29 +157,29 @@ def upgrade():
156
157
  op.bulk_insert(interface, [{"name": "main"}, {"name": "mobile"}, {"name": "edit"}, {"name": "routing"}])
157
158
 
158
159
  op.execute(
159
- "INSERT INTO %(schema)s.interface_layer (layer_id, interface_id) "
160
+ f"INSERT INTO {schema}.interface_layer (layer_id, interface_id) "
160
161
  "(SELECT l.id AS layer_id, i.id AS interface_id "
161
- "FROM %(schema)s.layer AS l, %(schema)s.interface AS i "
162
- "WHERE i.name in ('main', 'edit', 'routing') AND l.\"inDesktopViewer\")" % {"schema": schema}
162
+ f"FROM {schema}.layer AS l, {schema}.interface AS i "
163
+ "WHERE i.name in ('main', 'edit', 'routing') AND l.\"inDesktopViewer\")"
163
164
  )
164
165
  op.execute(
165
- "INSERT INTO %(schema)s.interface_layer (layer_id, interface_id) "
166
+ f"INSERT INTO {schema}.interface_layer (layer_id, interface_id) "
166
167
  "(SELECT l.id AS layer_id, i.id AS interface_id "
167
- "FROM %(schema)s.layer AS l, %(schema)s.interface AS i "
168
- "WHERE i.name = 'mobile' AND l.\"inMobileViewer\")" % {"schema": schema}
168
+ f"FROM {schema}.layer AS l, {schema}.interface AS i "
169
+ "WHERE i.name = 'mobile' AND l.\"inMobileViewer\")"
169
170
  )
170
171
 
171
172
  op.execute(
172
- "INSERT INTO %(schema)s.interface_theme (theme_id, interface_id) "
173
+ f"INSERT INTO {schema}.interface_theme (theme_id, interface_id) "
173
174
  "(SELECT l.id AS theme_id, i.id AS interface_id "
174
- "FROM %(schema)s.theme AS l, %(schema)s.interface AS i "
175
- "WHERE i.name in ('main', 'edit', 'routing') AND l.\"inDesktopViewer\")" % {"schema": schema}
175
+ f"FROM {schema}.theme AS l, {schema}.interface AS i "
176
+ "WHERE i.name in ('main', 'edit', 'routing') AND l.\"inDesktopViewer\")"
176
177
  )
177
178
  op.execute(
178
- "INSERT INTO %(schema)s.interface_theme (theme_id, interface_id) "
179
+ f"INSERT INTO {schema}.interface_theme (theme_id, interface_id) "
179
180
  "(SELECT l.id AS theme_id, i.id AS interface_id "
180
- "FROM %(schema)s.theme AS l, %(schema)s.interface AS i "
181
- "WHERE i.name = 'mobile' AND l.\"inMobileViewer\")" % {"schema": schema}
181
+ f"FROM {schema}.theme AS l, {schema}.interface AS i "
182
+ "WHERE i.name = 'mobile' AND l.\"inMobileViewer\")"
182
183
  )
183
184
 
184
185
  op.drop_column("layer", "inMobileViewer", schema=schema)
@@ -247,7 +248,8 @@ def upgrade():
247
248
  )
248
249
 
249
250
 
250
- def downgrade():
251
+ def downgrade() -> None:
252
+ """Downgrade."""
251
253
  schema = config["schema"]
252
254
 
253
255
  op.drop_table("wmts_dimension", schema=schema)
@@ -269,32 +271,32 @@ def downgrade():
269
271
  op.alter_column("layergroup", "is_internal_wms", new_column_name="isInternalWMS", schema=schema)
270
272
  op.alter_column("layergroup", "is_base_layer", new_column_name="isBaseLayer", schema=schema)
271
273
 
272
- op.execute("UPDATE ONLY %(schema)s.theme AS t " 'SET "inDesktopViewer" = FALSE' % {"schema": schema})
273
- op.execute("UPDATE ONLY %(schema)s.layer AS t " 'SET "inDesktopViewer" = FALSE' % {"schema": schema})
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')
274
276
 
275
277
  op.execute(
276
- "UPDATE ONLY %(schema)s.theme AS t "
278
+ f"UPDATE ONLY {schema}.theme AS t "
277
279
  'SET "inMobileViewer" = TRUE '
278
- "FROM %(schema)s.interface AS i, %(schema)s.interface_theme AS it "
279
- "WHERE i.name = 'mobile' AND i.id = it.interface_id AND it.theme_id = t.id" % {"schema": schema}
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"
280
282
  )
281
283
  op.execute(
282
- "UPDATE ONLY %(schema)s.theme AS t "
284
+ f"UPDATE ONLY {schema}.theme AS t "
283
285
  'SET "inDesktopViewer" = TRUE '
284
- "FROM %(schema)s.interface AS i, %(schema)s.interface_theme AS it "
285
- "WHERE i.name = 'main' AND i.id = it.interface_id AND it.theme_id = t.id" % {"schema": schema}
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"
286
288
  )
287
289
  op.execute(
288
- "UPDATE ONLY %(schema)s.layer AS l "
290
+ f"UPDATE ONLY {schema}.layer AS l "
289
291
  'SET "inMobileViewer" = TRUE '
290
- "FROM %(schema)s.interface AS i, %(schema)s.interface_layer AS il "
291
- "WHERE i.name = 'mobile' AND i.id = il.interface_id AND il.layer_id = l.id" % {"schema": schema}
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"
292
294
  )
293
295
  op.execute(
294
- "UPDATE ONLY %(schema)s.layer AS l "
296
+ f"UPDATE ONLY {schema}.layer AS l "
295
297
  'SET "inDesktopViewer" = TRUE '
296
- "FROM %(schema)s.interface AS i, %(schema)s.interface_layer AS il "
297
- "WHERE i.name = 'main' AND i.id = il.interface_id AND il.layer_id = l.id" % {"schema": schema}
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"
298
300
  )
299
301
 
300
302
  op.add_column("layer", Column("timeMode", Unicode(8)), schema=schema)
@@ -322,7 +324,7 @@ def downgrade():
322
324
  op.add_column("layer", Column("isChecked", Boolean, default=True), schema=schema)
323
325
 
324
326
  op.execute(
325
- "UPDATE %(schema)s.layer AS l SET ("
327
+ f"UPDATE {schema}.layer AS l SET ("
326
328
  'id, "isChecked", icon, "layerType", url, "imageType", style, dimensions, "matrixSet", '
327
329
  '"wmsUrl", "wmsLayers", "queryLayers", kml, "isSingleTile", legend, "legendImage", '
328
330
  '"legendRule", "isLegendExpanded", "minResolution", "maxResolution", disclaimer, '
@@ -333,7 +335,7 @@ def downgrade():
333
335
  "o.legend, o.legend_image, o.legend_rule, o.is_legend_expanded, o.min_resolution, "
334
336
  "o.max_resolution, o.disclaimer, o.identifier_attribute_field, o.exclude_properties, "
335
337
  "o.time_mode "
336
- ") FROM %(schema)s.layerv1 AS o WHERE o.id = l.id" % {"schema": schema}
338
+ f") FROM {schema}.layerv1 AS o WHERE o.id = l.id"
337
339
  )
338
340
 
339
341
  op.drop_table("layerv1", schema=schema)
@@ -0,0 +1,72 @@
1
+ # Copyright (c) 2023-2024, 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,6 +1,4 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- # Copyright (c) 2015-2019, Camptocamp SA
1
+ # Copyright (c) 2015-2024, Camptocamp SA
4
2
  # All rights reserved.
5
3
 
6
4
  # Redistribution and use in source and binary forms, with or without
@@ -27,13 +25,17 @@
27
25
  # of the authors and should not be interpreted as representing official policies,
28
26
  # either expressed or implied, of the FreeBSD Project.
29
27
 
30
- """add column time_widget
28
+ # pylint: disable=no-member,invalid-name
29
+
30
+ """
31
+ add column time_widget.
31
32
 
32
33
  Revision ID: 5109242131ce
33
34
  Revises: 164ac0819a61
34
35
  Create Date: 2015-04-27 17:31:41.760977
35
36
  """
36
37
 
38
+ import sqlalchemy
37
39
  from alembic import op
38
40
  from c2c.template.config import config
39
41
  from sqlalchemy import Column
@@ -44,18 +46,18 @@ revision = "5109242131ce"
44
46
  down_revision = "164ac0819a61"
45
47
 
46
48
 
47
- def upgrade():
49
+ def upgrade() -> None:
50
+ """Upgrade."""
48
51
  schema = config["schema"]
49
52
 
50
53
  # Instructions
51
54
  for table in ["layerv1", "layer_internal_wms", "layer_external_wms"]:
52
55
  op.add_column(table, Column("time_widget", Unicode(10), default="slider"), schema=schema)
53
- op.execute(
54
- "UPDATE {schema!s}.{table!s} SET time_widget = 'slider'".format(schema=schema, table=table)
55
- )
56
+ op.execute(sqlalchemy.text(f"UPDATE {schema!s}.{table!s} SET time_widget = 'slider'"))
56
57
 
57
58
 
58
- def downgrade():
59
+ def downgrade() -> None:
60
+ """Downgrade."""
59
61
  schema = config["schema"]
60
62
 
61
63
  # Instructions
@@ -0,0 +1,60 @@
1
+ # Copyright (c) 2020-2024, 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 sql fields to vector tiles.
32
+
33
+ Revision ID: 52916d8fde8b
34
+ Revises: a00109812f89
35
+ Create Date: 2021-09-22 13:06:27.165617
36
+ """
37
+
38
+ from alembic import op
39
+ from c2c.template.config import config
40
+ from sqlalchemy import Column, Unicode
41
+
42
+ # revision identifiers, used by Alembic.
43
+ revision = "52916d8fde8b"
44
+ down_revision = "a00109812f89"
45
+ branch_labels = None
46
+ depends_on = None
47
+
48
+
49
+ def upgrade() -> None:
50
+ """Upgrade."""
51
+ schema = config["schema"]
52
+ table = "layer_vectortiles"
53
+ op.add_column(table, Column("sql", Unicode, nullable=True), schema=schema)
54
+
55
+
56
+ def downgrade() -> None:
57
+ """Downgrade."""
58
+ schema = config["schema"]
59
+ table = "layer_vectortiles"
60
+ op.drop_column(table, "sql", schema=schema)
@@ -1,6 +1,4 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- # Copyright (c) 2015-2019, Camptocamp SA
1
+ # Copyright (c) 2015-2024, Camptocamp SA
4
2
  # All rights reserved.
5
3
 
6
4
  # Redistribution and use in source and binary forms, with or without
@@ -27,7 +25,10 @@
27
25
  # of the authors and should not be interpreted as representing official policies,
28
26
  # either expressed or implied, of the FreeBSD Project.
29
27
 
30
- """Add theme to full-text search
28
+ # pylint: disable=no-member,invalid-name
29
+
30
+ """
31
+ Add theme to full-text search.
31
32
 
32
33
  Revision ID: 53ba1a68d5fe
33
34
  Revises: 5109242131ce
@@ -43,7 +44,8 @@ revision = "53ba1a68d5fe"
43
44
  down_revision = "5109242131ce"
44
45
 
45
46
 
46
- def upgrade():
47
+ def upgrade() -> None:
48
+ """Upgrade."""
47
49
  schema = config["schema"]
48
50
 
49
51
  op.add_column(
@@ -63,7 +65,8 @@ def upgrade():
63
65
  )
64
66
 
65
67
 
66
- def downgrade():
68
+ def downgrade() -> None:
69
+ """Downgrade."""
67
70
  schema = config["schema"]
68
71
 
69
72
  op.drop_index("tsearch_search_index", schema=schema)
@@ -1,6 +1,4 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- # Copyright (c) 2014-2019, Camptocamp SA
1
+ # Copyright (c) 2014-2024, Camptocamp SA
4
2
  # All rights reserved.
5
3
 
6
4
  # Redistribution and use in source and binary forms, with or without
@@ -27,7 +25,10 @@
27
25
  # of the authors and should not be interpreted as representing official policies,
28
26
  # either expressed or implied, of the FreeBSD Project.
29
27
 
30
- """Add ordering in relation
28
+ # pylint: disable=no-member,invalid-name
29
+
30
+ """
31
+ Add ordering in relation.
31
32
 
32
33
  Revision ID: 54645a535ad6
33
34
  Revises: 415746eb9f6
@@ -44,34 +45,36 @@ revision = "54645a535ad6"
44
45
  down_revision = "415746eb9f6"
45
46
 
46
47
 
47
- def upgrade():
48
+ def upgrade() -> None:
49
+ """Upgrade."""
48
50
  schema = config["schema"]
49
51
 
50
52
  op.drop_constraint("layergroup_treeitem_pkey", "layergroup_treeitem", schema=schema)
51
53
  op.add_column("layergroup_treeitem", Column("id", Integer, primary_key=True), schema=schema)
52
54
  op.add_column("layergroup_treeitem", Column("ordering", Integer), schema=schema)
53
55
  op.execute(
54
- 'UPDATE ONLY %(schema)s.layergroup_treeitem AS lt SET ordering = ti."order" '
55
- "FROM %(schema)s.treeitem AS ti WHERE ti.id = lt.treeitem_id " % {"schema": schema}
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 "
56
58
  )
57
59
  op.add_column("theme", Column("ordering", Integer), schema=schema)
58
60
  op.execute(
59
- 'UPDATE ONLY %(schema)s.theme AS t SET ordering = ti."order" '
60
- "FROM %(schema)s.treeitem AS ti WHERE ti.id = t.id " % {"schema": schema}
61
+ f'UPDATE ONLY {schema}.theme AS t SET ordering = ti."order" '
62
+ f"FROM {schema}.treeitem AS ti WHERE ti.id = t.id "
61
63
  )
62
64
  op.drop_column("treeitem", "order", schema=schema)
63
65
 
64
66
 
65
- def downgrade():
67
+ def downgrade() -> None:
68
+ """Downgrade."""
66
69
  schema = config["schema"]
67
70
  op.add_column("treeitem", Column("order", Integer), schema=schema)
68
71
  op.execute(
69
- 'UPDATE ONLY %(schema)s.treeitem AS ti SET "order" = lt.ordering '
70
- "FROM %(schema)s.layergroup_treeitem AS lt WHERE ti.id = lt.treeitem_id " % {"schema": schema}
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 "
71
74
  )
72
75
  op.execute(
73
- 'UPDATE ONLY %(schema)s.treeitem AS ti SET "order" = t.ordering '
74
- "FROM %(schema)s.theme AS t WHERE ti.id = t.id " % {"schema": schema}
76
+ f'UPDATE ONLY {schema}.treeitem AS ti SET "order" = t.ordering '
77
+ f"FROM {schema}.theme AS t WHERE ti.id = t.id "
75
78
  )
76
79
  op.drop_column("theme", "ordering", schema=schema)
77
80
  op.drop_column("layergroup_treeitem", "ordering", schema=schema)
@@ -1,6 +1,4 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- # Copyright (c) 2019, Camptocamp SA
1
+ # Copyright (c) 2019-2024, Camptocamp SA
4
2
  # All rights reserved.
5
3
 
6
4
  # Redistribution and use in source and binary forms, with or without
@@ -27,7 +25,10 @@
27
25
  # of the authors and should not be interpreted as representing official policies,
28
26
  # either expressed or implied, of the FreeBSD Project.
29
27
 
30
- """Fix removing layerv1
28
+ # pylint: disable=no-member,invalid-name
29
+
30
+ """
31
+ Fix removing layerv1.
31
32
 
32
33
  Revision ID: 56dc90838d90
33
34
  Revises: 1de20166b274
@@ -44,7 +45,8 @@ branch_labels = None
44
45
  depends_on = None
45
46
 
46
47
 
47
- def upgrade():
48
+ def upgrade() -> None:
49
+ """Upgrade."""
48
50
  schema = config["schema"]
49
51
 
50
52
  op.execute(
@@ -54,8 +56,8 @@ def upgrade():
54
56
  ");"
55
57
  ).format(schema=schema)
56
58
  )
57
- op.execute("DELETE from {schema}.treeitem WHERE type = 'layerv1';".format(schema=schema))
59
+ op.execute(f"DELETE from {schema}.treeitem WHERE type = 'layerv1';")
58
60
 
59
61
 
60
- def downgrade():
61
- pass
62
+ def downgrade() -> None:
63
+ """Downgrade."""
@@ -1,6 +1,4 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- # Copyright (c) 2016-2019, Camptocamp SA
1
+ # Copyright (c) 2016-2024, Camptocamp SA
4
2
  # All rights reserved.
5
3
 
6
4
  # Redistribution and use in source and binary forms, with or without
@@ -27,7 +25,10 @@
27
25
  # of the authors and should not be interpreted as representing official policies,
28
26
  # either expressed or implied, of the FreeBSD Project.
29
27
 
30
- """separate local internal
28
+ # pylint: disable=no-member,invalid-name
29
+
30
+ """
31
+ separate local internal.
31
32
 
32
33
  Revision ID: 596ba21e3833
33
34
  Revises: ec82a8906649
@@ -44,29 +45,27 @@ branch_labels = None
44
45
  depends_on = None
45
46
 
46
47
 
47
- def upgrade():
48
+ def upgrade() -> None:
49
+ """Upgrade."""
48
50
  schema = config["schema"]
49
51
 
50
52
  op.execute(
51
- """
53
+ f"""
52
54
  UPDATE "{schema}".ogc_server
53
55
  SET url = 'config://internal/mapserv'
54
56
  WHERE url = 'config://local/mapserv'
55
- """.format(
56
- schema=schema
57
- )
57
+ """
58
58
  )
59
59
 
60
60
 
61
- def downgrade():
61
+ def downgrade() -> None:
62
+ """Downgrade."""
62
63
  schema = config["schema"]
63
64
 
64
65
  op.execute(
65
- """
66
+ f"""
66
67
  UPDATE "{schema}".ogc_server
67
68
  SET url = 'config://local/mapserv'
68
69
  WHERE url = 'config://internal/mapserv'
69
- """.format(
70
- schema=schema
71
- )
70
+ """
72
71
  )
@@ -1,6 +1,4 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- # Copyright (c) 2019, Camptocamp SA
1
+ # Copyright (c) 2019-2024, Camptocamp SA
4
2
  # All rights reserved.
5
3
 
6
4
  # Redistribution and use in source and binary forms, with or without
@@ -27,7 +25,10 @@
27
25
  # of the authors and should not be interpreted as representing official policies,
28
26
  # either expressed or implied, of the FreeBSD Project.
29
27
 
30
- """Add vector tiles layers table
28
+ # pylint: disable=no-member,invalid-name
29
+
30
+ """
31
+ Add vector tiles layers table.
31
32
 
32
33
  Revision ID: 678f88c7ad5e
33
34
  Revises: 028477929d13
@@ -45,7 +46,8 @@ branch_labels = None
45
46
  depends_on = None
46
47
 
47
48
 
48
- def upgrade():
49
+ def upgrade() -> None:
50
+ """Upgrade."""
49
51
  schema = config["schema"]
50
52
 
51
53
  op.create_table(
@@ -57,7 +59,8 @@ def upgrade():
57
59
  )
58
60
 
59
61
 
60
- def downgrade():
62
+ def downgrade() -> None:
63
+ """Downgrade."""
61
64
  schema = config["schema"]
62
65
 
63
66
  op.drop_table("layer_vectortiles", schema=schema)
@@ -1,6 +1,4 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- # Copyright (c) 2016-2019, Camptocamp SA
1
+ # Copyright (c) 2016-2024, Camptocamp SA
4
2
  # All rights reserved.
5
3
 
6
4
  # Redistribution and use in source and binary forms, with or without
@@ -27,7 +25,10 @@
27
25
  # of the authors and should not be interpreted as representing official policies,
28
26
  # either expressed or implied, of the FreeBSD Project.
29
27
 
30
- """Rename ServerOGC to OGCServer
28
+ # pylint: disable=no-member,invalid-name
29
+
30
+ """
31
+ Rename ServerOGC to OGCServer.
31
32
 
32
33
  Revision ID: 6a412d9437b1
33
34
  Revises: 29f2a32859ec
@@ -44,7 +45,8 @@ branch_labels = None
44
45
  depends_on = None
45
46
 
46
47
 
47
- def upgrade():
48
+ def upgrade() -> None:
49
+ """Upgrade."""
48
50
  schema = config["schema"]
49
51
 
50
52
  op.rename_table("server_ogc", "ogc_server", schema=schema)
@@ -52,7 +54,8 @@ def upgrade():
52
54
  table_op.alter_column("server_ogc_id", new_column_name="ogc_server_id")
53
55
 
54
56
 
55
- def downgrade():
57
+ def downgrade() -> None:
58
+ """Downgrade."""
56
59
  schema = config["schema"]
57
60
 
58
61
  op.rename_table("ogc_server", "server_ogc", schema=schema)