c2cgeoportal-geoportal 2.3.5.80__py3-none-any.whl → 2.9rc1__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.
Files changed (197) hide show
  1. c2cgeoportal_geoportal/__init__.py +960 -0
  2. c2cgeoportal_geoportal/lib/__init__.py +256 -0
  3. c2cgeoportal_geoportal/lib/authentication.py +250 -0
  4. c2cgeoportal_geoportal/lib/bashcolor.py +46 -0
  5. c2cgeoportal_geoportal/lib/cacheversion.py +75 -0
  6. c2cgeoportal_geoportal/lib/caching.py +176 -0
  7. c2cgeoportal_geoportal/lib/check_collector.py +80 -0
  8. c2cgeoportal_geoportal/lib/checker.py +295 -0
  9. c2cgeoportal_geoportal/lib/common_headers.py +170 -0
  10. c2cgeoportal_geoportal/lib/dbreflection.py +266 -0
  11. c2cgeoportal_geoportal/lib/filter_capabilities.py +360 -0
  12. c2cgeoportal_geoportal/lib/fulltextsearch.py +50 -0
  13. c2cgeoportal_geoportal/lib/functionality.py +166 -0
  14. c2cgeoportal_geoportal/lib/headers.py +62 -0
  15. c2cgeoportal_geoportal/lib/i18n.py +38 -0
  16. c2cgeoportal_geoportal/lib/layers.py +132 -0
  17. c2cgeoportal_geoportal/lib/lingva_extractor.py +937 -0
  18. c2cgeoportal_geoportal/lib/loader.py +57 -0
  19. c2cgeoportal_geoportal/lib/metrics.py +117 -0
  20. c2cgeoportal_geoportal/lib/oauth2.py +1186 -0
  21. c2cgeoportal_geoportal/lib/oidc.py +302 -0
  22. c2cgeoportal_geoportal/lib/wmstparsing.py +353 -0
  23. c2cgeoportal_geoportal/lib/xsd.py +166 -0
  24. c2cgeoportal_geoportal/py.typed +0 -0
  25. c2cgeoportal_geoportal/resources.py +49 -0
  26. c2cgeoportal_geoportal/scaffolds/advance_create/ci/config.yaml +26 -0
  27. c2cgeoportal_geoportal/scaffolds/advance_create/cookiecutter.json +18 -0
  28. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/.dockerignore +6 -0
  29. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/.eslintrc.yaml +19 -0
  30. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/.prospector.yaml +30 -0
  31. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/Dockerfile +75 -0
  32. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/Makefile +6 -0
  33. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/alembic.ini +58 -0
  34. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/alembic.yaml +19 -0
  35. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/development.ini +121 -0
  36. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/gunicorn.conf.py +139 -0
  37. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/language_mapping +3 -0
  38. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/lingva-client.cfg +5 -0
  39. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/lingva-server.cfg +6 -0
  40. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/production.ini +38 -0
  41. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/requirements.txt +2 -0
  42. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/setup.py +25 -0
  43. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.api.js +41 -0
  44. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.apps.js +64 -0
  45. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.commons.js +11 -0
  46. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.config.js +22 -0
  47. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/__init__.py +42 -0
  48. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/authentication.py +10 -0
  49. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/dev.py +14 -0
  50. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/models.py +8 -0
  51. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/multi_organization.py +7 -0
  52. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/resources.py +11 -0
  53. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static-ngeo/api/index.js +12 -0
  54. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static-ngeo/js/{{cookiecutter.package}}module.js +25 -0
  55. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/subscribers.py +39 -0
  56. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/views/__init__.py +0 -0
  57. c2cgeoportal_geoportal/scaffolds/advance_update/cookiecutter.json +18 -0
  58. c2cgeoportal_geoportal/scaffolds/advance_update/{{cookiecutter.project}}/geoportal/CONST_Makefile +121 -0
  59. c2cgeoportal_geoportal/scaffolds/create/cookiecutter.json +18 -0
  60. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.dockerignore +14 -0
  61. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.editorconfig +17 -0
  62. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/main.yaml +73 -0
  63. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/rebuild.yaml +50 -0
  64. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/update_l10n.yaml +66 -0
  65. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.gitignore +16 -0
  66. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.pre-commit-config.yaml +35 -0
  67. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.prettierignore +1 -0
  68. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.prettierrc.yaml +2 -0
  69. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/Dockerfile +75 -0
  70. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/Makefile +70 -0
  71. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/README.rst +29 -0
  72. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/build +179 -0
  73. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/ci/config.yaml +22 -0
  74. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/ci/docker-compose-check +25 -0
  75. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/ci/requirements.txt +2 -0
  76. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose-db.yaml +24 -0
  77. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose-lib.yaml +511 -0
  78. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose-qgis.yaml +21 -0
  79. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose.override.sample.yaml +59 -0
  80. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose.yaml +121 -0
  81. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/env.default +102 -0
  82. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/env.project +69 -0
  83. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/vars.yaml +430 -0
  84. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/locale/en/LC_MESSAGES/{{cookiecutter.package}}_geoportal-client.po +6 -0
  85. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/desktop.css +0 -0
  86. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/iframe_api.css +0 -0
  87. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/mobile.css +0 -0
  88. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/banner_left.png +0 -0
  89. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/banner_right.png +0 -0
  90. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/blank.png +0 -0
  91. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker-blue.png +0 -0
  92. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker-gold.png +0 -0
  93. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker-green.png +0 -0
  94. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker.png +0 -0
  95. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/robot.txt.tmpl +3 -0
  96. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/data/Readme.txt +69 -0
  97. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/data/TM_EUROPE_BORDERS-0.3.sql +70 -0
  98. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/demo.map.tmpl +224 -0
  99. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Arial.ttf +0 -0
  100. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Arialbd.ttf +0 -0
  101. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Arialbi.ttf +0 -0
  102. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Ariali.ttf +0 -0
  103. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/NotoSans-Bold.ttf +0 -0
  104. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/NotoSans-BoldItalic.ttf +0 -0
  105. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/NotoSans-Italic.ttf +0 -0
  106. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/NotoSans-Regular.ttf +0 -0
  107. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Verdana.ttf +0 -0
  108. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Verdanab.ttf +0 -0
  109. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Verdanai.ttf +0 -0
  110. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Verdanaz.ttf +0 -0
  111. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts.conf +12 -0
  112. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/mapserver.conf +15 -0
  113. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/mapserver.map.tmpl +87 -0
  114. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/tinyows.xml.tmpl +36 -0
  115. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/A3_Landscape.jrxml +207 -0
  116. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/A3_Portrait.jrxml +185 -0
  117. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/A4_Landscape.jrxml +200 -0
  118. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/A4_Portrait.jrxml +170 -0
  119. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/config.yaml.tmpl +175 -0
  120. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/legend.jrxml +109 -0
  121. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/localisation.properties +4 -0
  122. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/localisation_fr.properties +4 -0
  123. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/logo.png +0 -0
  124. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/north.svg +93 -0
  125. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/results.jrxml +25 -0
  126. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/project.yaml +18 -0
  127. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/pyproject.toml +7 -0
  128. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/qgisserver/pg_service.conf.tmpl +15 -0
  129. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/run_alembic.sh +11 -0
  130. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/scripts/db-backup +126 -0
  131. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/scripts/db-restore +132 -0
  132. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/setup.cfg +7 -0
  133. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/spell-ignore-words.txt +5 -0
  134. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/tests/__init__.py +0 -0
  135. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/tests/test_app.py +43 -0
  136. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/tilegeneration/config.yaml.tmpl +195 -0
  137. c2cgeoportal_geoportal/scaffolds/update/cookiecutter.json +18 -0
  138. c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/.upgrade.yaml +67 -0
  139. c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/CONST_CHANGELOG.txt +295 -0
  140. c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/CONST_create_template/tests/test_testapp.py +48 -0
  141. c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/geoportal/CONST_config-schema.yaml +922 -0
  142. c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/geoportal/CONST_vars.yaml +1503 -0
  143. c2cgeoportal_geoportal/scripts/__init__.py +64 -0
  144. c2cgeoportal_geoportal/scripts/c2cupgrade.py +879 -0
  145. c2cgeoportal_geoportal/scripts/create_demo_theme.py +80 -0
  146. c2cgeoportal_geoportal/scripts/manage_users.py +140 -0
  147. c2cgeoportal_geoportal/scripts/pcreate.py +314 -0
  148. c2cgeoportal_geoportal/scripts/theme2fts.py +347 -0
  149. c2cgeoportal_geoportal/scripts/urllogin.py +81 -0
  150. c2cgeoportal_geoportal/templates/login.html +90 -0
  151. c2cgeoportal_geoportal/templates/notlogin.html +62 -0
  152. c2cgeoportal_geoportal/templates/testi18n.html +12 -0
  153. c2cgeoportal_geoportal/views/__init__.py +59 -0
  154. c2cgeoportal_geoportal/views/dev.py +57 -0
  155. c2cgeoportal_geoportal/views/dynamic.py +208 -0
  156. c2cgeoportal_geoportal/views/entry.py +174 -0
  157. c2cgeoportal_geoportal/views/fulltextsearch.py +189 -0
  158. c2cgeoportal_geoportal/views/geometry_processing.py +75 -0
  159. c2cgeoportal_geoportal/views/i18n.py +129 -0
  160. c2cgeoportal_geoportal/views/layers.py +713 -0
  161. c2cgeoportal_geoportal/views/login.py +679 -0
  162. c2cgeoportal_geoportal/views/mapserverproxy.py +191 -0
  163. c2cgeoportal_geoportal/views/memory.py +90 -0
  164. c2cgeoportal_geoportal/views/ogcproxy.py +120 -0
  165. c2cgeoportal_geoportal/views/pdfreport.py +245 -0
  166. c2cgeoportal_geoportal/views/printproxy.py +143 -0
  167. c2cgeoportal_geoportal/views/profile.py +127 -0
  168. c2cgeoportal_geoportal/views/proxy.py +259 -0
  169. c2cgeoportal_geoportal/views/raster.py +193 -0
  170. c2cgeoportal_geoportal/views/resourceproxy.py +73 -0
  171. c2cgeoportal_geoportal/views/shortener.py +152 -0
  172. c2cgeoportal_geoportal/views/theme.py +1322 -0
  173. c2cgeoportal_geoportal/views/tinyowsproxy.py +189 -0
  174. c2cgeoportal_geoportal/views/vector_tiles.py +83 -0
  175. {c2cgeoportal_geoportal-2.3.5.80.dist-info → c2cgeoportal_geoportal-2.9rc1.dist-info}/METADATA +21 -24
  176. c2cgeoportal_geoportal-2.9rc1.dist-info/RECORD +192 -0
  177. {c2cgeoportal_geoportal-2.3.5.80.dist-info → c2cgeoportal_geoportal-2.9rc1.dist-info}/WHEEL +1 -1
  178. c2cgeoportal_geoportal-2.9rc1.dist-info/entry_points.txt +28 -0
  179. c2cgeoportal_geoportal-2.9rc1.dist-info/top_level.txt +2 -0
  180. tests/__init__.py +100 -0
  181. tests/test_cachebuster.py +71 -0
  182. tests/test_caching.py +275 -0
  183. tests/test_checker.py +85 -0
  184. tests/test_decimaljson.py +47 -0
  185. tests/test_headerstween.py +64 -0
  186. tests/test_i18n.py +31 -0
  187. tests/test_init.py +193 -0
  188. tests/test_locale_negociator.py +69 -0
  189. tests/test_mapserverproxy_route_predicate.py +64 -0
  190. tests/test_raster.py +267 -0
  191. tests/test_wmstparsing.py +238 -0
  192. tests/xmlstr.py +103 -0
  193. c2cgeoportal_geoportal-2.3.5.80.dist-info/DESCRIPTION.rst +0 -8
  194. c2cgeoportal_geoportal-2.3.5.80.dist-info/RECORD +0 -7
  195. c2cgeoportal_geoportal-2.3.5.80.dist-info/entry_points.txt +0 -22
  196. c2cgeoportal_geoportal-2.3.5.80.dist-info/metadata.json +0 -1
  197. c2cgeoportal_geoportal-2.3.5.80.dist-info/top_level.txt +0 -1
@@ -0,0 +1,295 @@
1
+ This file includes migration steps for each release of c2cgeoportal.
2
+
3
+ =============
4
+ Version 2.9.0
5
+ =============
6
+
7
+ Information to know before starting the upgrade
8
+ ===============================================
9
+
10
+ 1. The build command will use Docker Compose version 2 (with the `docker compose` command).
11
+
12
+ 2. RFC 001 - simplification of Ngeo buildtools and custom frontends for GeoMapfish
13
+ https://github.com/camptocamp/GeoMapFish/blob/6f8bffaa1e472cdd8ed3de52c8250b5da62d69de/rfcs/rfc_001.md
14
+
15
+ Important points:
16
+ - The `@ngInject` annotation is no more used, you should pass an array in the function or use the `$inject` property,
17
+ see related pull request: https://github.com/camptocamp/ngeo/pull/9453
18
+ - The build will not anymore inline the svg, If you use that you should do it manually,
19
+ see related commit: https://github.com/camptocamp/ngeo/pull/9454/commits/fb3ccfb0bdc8273975cdebfd7dbda401416674c3.
20
+ - Remove the custom SASS plugin to load the SCSS files.
21
+ You should have one SCSS file per interface, the component will not anymore integrate the related style.
22
+ See the related pull request: https://github.com/camptocamp/ngeo/pull/9455.
23
+ - Update Webpack to version 5 and remove Babel transpilation to ES05,
24
+ See the related pull request: https://github.com/camptocamp/ngeo/pull/9463.
25
+ - Update FontAwesome to version 6,
26
+ See the related pull request: https://github.com/camptocamp/ngeo/pull/9470
27
+
28
+ Information
29
+ ===========
30
+
31
+ 1. Hostname check:
32
+ We add a hostname check on the `came_from` parameter, in the oauth2 login, allowed by
33
+ `vars.authentication.allowed_hosts` and in the OGC server clear cache, allowed by `vars.admin_interface.allowed_hosts`.
34
+ The behavior change a little bit in the `vars.shortener.allowed_hosts` and in the `vars.authorized_referers`.
35
+ Now everywhere:
36
+ - If the hostname (with port) of the candidate URL equals to the request's header "Host", then it's OK.
37
+ - If the hostname (with port) of the candidate URL is in the allowed list, then it's OK.
38
+ And they should be netloc (hostname with port) without schema or path
39
+ (if schema or path is present they are ignored).
40
+ The `vars.allowed_hosts` is added to allowed only some authorized host.
41
+
42
+ 2. We replace checks (formatting) done by `c2cciutils` by `pre-commit` hooks.
43
+ This will me more standard and transparent for the project.
44
+
45
+ 3. The COG layers where added, but are disabled by default.
46
+ To enable them, you need to add the following configuration in the `vars.yaml` file:
47
+ ```yaml
48
+ vars:
49
+ admin_interface:
50
+ exclude_pages: []
51
+ ```
52
+
53
+ =============
54
+ Version 2.8.0
55
+ =============
56
+
57
+ Information to know before starting the upgrade
58
+ ===============================================
59
+
60
+
61
+ Information
62
+ ===========
63
+
64
+ 1. We upgraded MapServer to version 8, then the Mapfiles should probably be updated, and we have a new
65
+ configurations file named `mapserver/mapserver.conf`.
66
+ Migration guide: https://mapserver.org/MIGRATION_GUIDE.html#mapserver-7-6-to-8-0-migration.
67
+ Deprecated element from `CLASS` removed (moved to `STYLE`)
68
+ https://mapserver.org/development/rfc/ms-rfc-133.html#rfc133.
69
+
70
+ 2. We added the support of 'main_ogc_server' to WMS mapserver proxy URL.
71
+ This means that if the value 'vars/main_ogc_server' is present in the vars.yaml of the project,
72
+ that will be used as default value when no 'ogcserver' parameter is present in the request.
73
+
74
+ 3. We switched the OpenLayers renderer to now use WegGL for WMTS. In the case of background tiles with
75
+ transparency, you should add the parameter 'ngeoTilesPreloadingLimit: 0' to the vars.yaml in 'constants'
76
+ so that background tiles are rendered correctly.
77
+
78
+ 4. In the `user` table, the column `deactivated` is now interpreted more strictly, `null` is now considered as `true`.
79
+
80
+ 5. We add the `gmfPrintOptions` in the update path then the default print options are maintained in the
81
+ `CONST_vars.yaml`, especially the `hiddenAttributes`, then if you used the default value it can be
82
+ removed.
83
+
84
+ Main versions updates
85
+ -------------------
86
+ Ubuntu is updated from 20.04.6 to 22.04.2
87
+ Python is updated from 3.8.10 to 3.10.6
88
+ Node is updated from 16.20.0 to 16.20.0
89
+ Npm is updated from 8.19.4 to 8.19.4
90
+ Postgres is updated from 15+250.pgdg20.04+1 to 15+250.pgdg22.04+1
91
+ GDAL is updated from 3.4.3, to 3.6.4,
92
+ Proj is updated from 9.0.0 to 9.1.1
93
+
94
+ Python packages updates
95
+ ---------------------
96
+ New packages:
97
+ * astroid at version 2.15.5
98
+ * bandit at version 1.7.5
99
+ * dill at version 0.3.6
100
+ * dodgy at version 0.2.1
101
+ * flake8 at version 2.3.0
102
+ * flake8-polyfill at version 1.0.2
103
+ * gitdb at version 4.0.10
104
+ * GitPython at version 3.1.31
105
+ * isort at version 5.12.0
106
+ * lazy-object-proxy at version 1.9.0
107
+ * markdown-it-py at version 2.2.0
108
+ * mccabe at version 0.7.0
109
+ * mdurl at version 0.1.2
110
+ * mypy at version 1.3.0
111
+ * mypy-extensions at version 1.0.0
112
+ * pep8 at version 1.7.1
113
+ * pep8-naming at version 0.10.0
114
+ * prospector at version 1.9.0
115
+ * pycodestyle at version 2.10.0
116
+ * pydocstyle at version 6.3.0
117
+ * pyflakes at version 2.5.0
118
+ * pylint at version 2.17.4
119
+ * pylint-celery at version 0.3
120
+ * pylint-django at version 2.5.3
121
+ * pylint-flask at version 0.6
122
+ * pylint-plugin-utils at version 0.7
123
+ * requirements-detector at version 1.2.2
124
+ * rich at version 13.4.1
125
+ * semver at version 3.0.0
126
+ * setoptconf-tmp at version 0.3.1
127
+ * shapely at version 2.0.1
128
+ * smmap at version 5.0.0
129
+ * snowballstemmer at version 2.2.0
130
+ * tomli at version 2.0.1
131
+ * tomlkit at version 0.11.8
132
+ * typing_extensions at version 4.6.2
133
+
134
+ Removed packages:
135
+ * azure-identity
136
+ * boto3
137
+ * botocore
138
+ * Cython
139
+ * Deprecated
140
+ * distlib
141
+ * filelock
142
+ * importlib-metadata
143
+ * importlib-resources
144
+ * jmespath
145
+ * linesman
146
+ * msal
147
+ * msal-extensions
148
+ * msrest
149
+ * networkx
150
+ * Paste
151
+ * pipenv
152
+ * pipfile
153
+ * pkgconfig
154
+ * portalocker
155
+ * poyo
156
+ * pygraphviz
157
+ * repoze.lru
158
+ * s3transfer
159
+ * Shapely
160
+ * typing-extensions
161
+ * virtualenv
162
+ * virtualenv-clone
163
+ * zipp
164
+
165
+ Major updates:
166
+ * attrs from 21.4.0 to 23.1.0
167
+ * basicauth from 0.4.1 to 1.0.0
168
+ * boltons from 21.0.0 to 23.0.0
169
+ * Chameleon from 3.9.1 to 4.0.0
170
+ * chardet from 4.0.0 to 5.1.0
171
+ * charset-normalizer from 2.0.12 to 3.1.0
172
+ * colander from 1.8.3 to 2.0
173
+ * cryptography from 41.0.1 to 39.0.2
174
+ * geojson from 2.5.0 to 3.0.1
175
+ * greenlet from 1.1.3.post0 to 2.0.2
176
+ * munch from 2.5.0 to 3.0.0
177
+ * packaging from 21.3 to 23.1
178
+ * PasteDeploy from 2.1.1 to 3.0.1
179
+ * plaster-pastedeploy from 0.7 to 1.0.1
180
+ * python-slugify from 4.0.1 to 8.0.1
181
+ * pytz from 2021.3 to 2023.3
182
+ * PyYAML from 5.4.1 to 6.0
183
+ * stevedore from 3.5.2 to 5.1.0
184
+ * urllib3 from 1.26.16 to 2.0.2
185
+ * zope.deprecation from 4.4.0 to 5.0
186
+ * zope.interface from 5.4.0 to 6.0
187
+ * zope.sqlalchemy from 1.6 to 3.0
188
+
189
+ Minor updates:
190
+ * affine from 2.3.1 to 2.4.0
191
+ * alembic from 1.7.7 to 1.10.4
192
+ * azure-core from 1.26.3 to 1.27.0
193
+ * azure-storage-blob from 12.14.1 to 12.16.0
194
+ * Babel from 2.9.1 to 2.12.1
195
+ * Beaker from 1.11.0 to 1.12.1
196
+ * c2cwsgiutils from 5.0.1 to 5.2.2
197
+ * click from 8.0.4 to 8.1.3
198
+ * dogpile.cache from 1.1.8 to 1.2.0
199
+ * Fiona from 1.8.22 to 1.9.3
200
+ * GDAL from 3.4.3 to 3.6.4
201
+ * GeoAlchemy2 from 0.11.1 to 0.13.2
202
+ * graphviz from 0.19.2 to 0.20.1
203
+ * hupper from 1.10.3 to 1.12
204
+ * idna from 3.3 to 3.4
205
+ * iso8601 from 1.0.2 to 1.1.0
206
+ * Jinja2 from 3.0.3 to 3.1.2
207
+ * numpy from 1.22.4 to 1.24.3
208
+ * OWSLib from 0.28.1 to 0.29.2
209
+ * papyrus from 2.4 to 2.5
210
+ * pbr from 5.8.1 to 5.11.1
211
+ * Pillow from 9.4.0 to 9.5.0
212
+ * plaster from 1.0 to 1.1.2
213
+ * polib from 1.1.1 to 1.2.0
214
+ * pycryptodome from 3.14.1 to 3.17
215
+ * PyJWT from 2.4.0 to 2.7.0
216
+ * pyotp from 2.6.0 to 2.8.0
217
+ * pyproj from 3.3.1 to 3.5.0
218
+ * pyramid-debugtoolbar from 4.9 to 4.10
219
+ * pyramid-jinja2 from 2.9.2 to 2.10
220
+ * pyyaml-include from 1.2.post2 to 1.3
221
+ * rasterio from 1.2.10 to 1.3.6
222
+ * redis from 4.3.6 to 4.5.4
223
+ * sentry-sdk from 1.14.0 to 1.21.1
224
+ * SQLAlchemy-Utils from 0.38.3 to 0.41.1
225
+ * tilecloud from 1.8.2 to 1.9.3
226
+ * transaction from 3.0.1 to 3.1.0
227
+ * ujson from 5.4.0 to 5.7.0
228
+ * wrapt from 1.13.3 to 1.15.0
229
+ * zope.event from 4.4 to 4.6
230
+
231
+ Npm packages updates
232
+ ------------------
233
+ New packages:
234
+ * @snyk/protect at version 1.1094.0
235
+ * cy-mobile-commands at version 0.3.0
236
+ * cypress-browser-permissions at version 1.1.0
237
+ * cypress-real-events at version 1.7.6
238
+ * eslint-plugin-lit at version 1.8.2
239
+ * eslint-plugin-wc at version 1.4.0
240
+ * i18next-http-backend at version 2.1.1
241
+ * neat-csv at version 5.2.0
242
+ * strip-bom at version 5.0.0
243
+
244
+ Removed packages:
245
+ * @sentry/integrations
246
+ * angular-gettext-tools
247
+ * commander
248
+ * eslint
249
+ * i18next-xhr-backend
250
+ * puppeteer
251
+
252
+ Major updates:
253
+ * @sentry/browser from 6.18.2 to 7.35.0
254
+ * @sentry/tracing from 6.18.2 to 7.35.0
255
+ * @sentry/types from 6.18.2 to 7.35.0
256
+ * editorconfig-checker from 4.0.2 to 5.0.1
257
+ * eslint-plugin-jsdoc from 38.0.8 to 39.7.5
258
+ * fs-extra from 10.0.1 to 11.1.0
259
+ * glob from 7.2.3 to 8.1.0
260
+ * i18next-browser-languagedetector from 6.1.8 to 7.0.1
261
+ * i18next-parser from 6.0.1 to 7.6.0
262
+ * i18next from 21.6.16 to 22.4.9
263
+ * node-sass from 6.0.1 to 7.0.3
264
+ * ol-layerswitcher from 3.8.3 to 4.1.0
265
+ * ol-mapbox-style from 7.1.1 to 9.5.0
266
+ * ol from 6.12.0 to 7.2.2
267
+ * sinon from 13.0.2 to 15.0.1
268
+ * svgo from 2.8.0 to 3.0.2
269
+ * tsconfig-paths from 3.14.2 to 4.1.2
270
+
271
+ Minor updates:
272
+ * @babel/core from 7.17.12 to 7.20.12
273
+ * @babel/plugin-proposal-class-properties from 7.16.7 to 7.18.6
274
+ * @babel/plugin-proposal-decorators from 7.17.12 to 7.20.13
275
+ * @babel/plugin-transform-spread from 7.16.7 to 7.20.7
276
+ * @babel/plugin-transform-typescript from 7.16.8 to 7.20.13
277
+ * @babel/preset-env from 7.16.11 to 7.20.2
278
+ * @babel/preset-typescript from 7.16.7 to 7.18.6
279
+ * @lit/reactive-element from 1.3.4 to 1.6.1
280
+ * @trevoreyre/autocomplete-js from 2.2.0 to 2.4.1
281
+ * babel-loader from 8.2.5 to 8.3.0
282
+ * core-js from 3.21.1 to 3.27.2
283
+ * d3 from 7.3.0 to 7.8.2
284
+ * jsts from 2.8.1 to 2.9.3
285
+ * lit-html from 2.2.7 to 2.6.1
286
+ * lit from 2.2.8 to 2.6.1
287
+ * rxjs from 7.5.7 to 7.8.0
288
+ * sass-loader from 10.2.1 to 10.4.1
289
+ * terser from 5.12.1 to 5.16.2
290
+ * tinycolor2 from 1.4.2 to 1.5.2
291
+ * ts-node from 10.7.0 to 10.9.1
292
+
293
+
294
+ Changes to apply
295
+ ================
@@ -0,0 +1,48 @@
1
+ # This file should be used only on the test project in the c2cgeoportal CI
2
+
3
+ import re
4
+
5
+ import polib
6
+ import pytest
7
+ import requests
8
+
9
+
10
+ @pytest.mark.parametrize("test_number", [0, 1])
11
+ def test_po(test_number: int) -> None:
12
+ """Tests that the generated pot files are identical between the command line and the view."""
13
+ del test_number
14
+
15
+ response = requests.get("https://front/locale.pot", verify=False, timeout=30) # nosec
16
+ assert response.status_code == 200, response.text
17
+ response_keys = {e.msgid for e in polib.pofile(response.text)}
18
+
19
+ with open(
20
+ "geoportal/{{cookiecutter.package}}_geoportal/locale/{{cookiecutter.package}}_geoportal-client.pot",
21
+ encoding="utf-8",
22
+ ) as current_file:
23
+ current_content = current_file.read()
24
+ current_content_keys = {e.msgid for e in polib.pofile(current_content)}
25
+
26
+ if response_keys != current_content_keys:
27
+ assert response.text == current_content
28
+
29
+
30
+ @pytest.mark.parametrize("url", ["https://front/desktop_alt"])
31
+ def test_desktop_alt(url: str) -> None:
32
+ """Tests the desktop alt page."""
33
+ response = requests.get(url, verify=False, timeout=30) # nosec
34
+ assert response.status_code == 200, response.text
35
+
36
+ assert re.search(
37
+ r'<script src="https?://front/static-ngeo-dist/desktop-.*\.js" crossorigin="anonymous"></script>',
38
+ response.text,
39
+ ), response.text
40
+ assert re.search(r'<html lang="{{"{{mainCtrl.lang}}"}}" ', response.text), response.text
41
+
42
+
43
+ def test_enum() -> None:
44
+ """Test the enumerations view"""
45
+ response = requests.get("https://front/layers/test/values/type", verify=False, timeout=30) # nosec
46
+ assert response.status_code == 200, response.text
47
+
48
+ assert response.json() == {"items": [{"value": "car"}, {"value": "train"}]}, response.text