c2cgeoportal-geoportal 2.3.5.80__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.
Files changed (198) 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 +77 -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 +172 -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 +304 -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 +513 -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 +65 -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 +16 -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 +78 -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 +304 -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_vars.yaml.swp +0 -0
  142. c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/geoportal/CONST_config-schema.yaml +927 -0
  143. c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/geoportal/CONST_vars.yaml +1503 -0
  144. c2cgeoportal_geoportal/scripts/__init__.py +64 -0
  145. c2cgeoportal_geoportal/scripts/c2cupgrade.py +879 -0
  146. c2cgeoportal_geoportal/scripts/create_demo_theme.py +83 -0
  147. c2cgeoportal_geoportal/scripts/manage_users.py +140 -0
  148. c2cgeoportal_geoportal/scripts/pcreate.py +296 -0
  149. c2cgeoportal_geoportal/scripts/theme2fts.py +347 -0
  150. c2cgeoportal_geoportal/scripts/urllogin.py +81 -0
  151. c2cgeoportal_geoportal/templates/login.html +90 -0
  152. c2cgeoportal_geoportal/templates/notlogin.html +62 -0
  153. c2cgeoportal_geoportal/templates/testi18n.html +12 -0
  154. c2cgeoportal_geoportal/views/__init__.py +59 -0
  155. c2cgeoportal_geoportal/views/dev.py +57 -0
  156. c2cgeoportal_geoportal/views/dynamic.py +208 -0
  157. c2cgeoportal_geoportal/views/entry.py +174 -0
  158. c2cgeoportal_geoportal/views/fulltextsearch.py +189 -0
  159. c2cgeoportal_geoportal/views/geometry_processing.py +75 -0
  160. c2cgeoportal_geoportal/views/i18n.py +129 -0
  161. c2cgeoportal_geoportal/views/layers.py +713 -0
  162. c2cgeoportal_geoportal/views/login.py +684 -0
  163. c2cgeoportal_geoportal/views/mapserverproxy.py +234 -0
  164. c2cgeoportal_geoportal/views/memory.py +90 -0
  165. c2cgeoportal_geoportal/views/ogcproxy.py +120 -0
  166. c2cgeoportal_geoportal/views/pdfreport.py +245 -0
  167. c2cgeoportal_geoportal/views/printproxy.py +143 -0
  168. c2cgeoportal_geoportal/views/profile.py +192 -0
  169. c2cgeoportal_geoportal/views/proxy.py +261 -0
  170. c2cgeoportal_geoportal/views/raster.py +233 -0
  171. c2cgeoportal_geoportal/views/resourceproxy.py +73 -0
  172. c2cgeoportal_geoportal/views/shortener.py +152 -0
  173. c2cgeoportal_geoportal/views/theme.py +1322 -0
  174. c2cgeoportal_geoportal/views/tinyowsproxy.py +189 -0
  175. c2cgeoportal_geoportal/views/vector_tiles.py +83 -0
  176. {c2cgeoportal_geoportal-2.3.5.80.dist-info → c2cgeoportal_geoportal-2.9rc44.dist-info}/METADATA +21 -24
  177. c2cgeoportal_geoportal-2.9rc44.dist-info/RECORD +193 -0
  178. {c2cgeoportal_geoportal-2.3.5.80.dist-info → c2cgeoportal_geoportal-2.9rc44.dist-info}/WHEEL +1 -1
  179. c2cgeoportal_geoportal-2.9rc44.dist-info/entry_points.txt +28 -0
  180. c2cgeoportal_geoportal-2.9rc44.dist-info/top_level.txt +2 -0
  181. tests/__init__.py +100 -0
  182. tests/test_cachebuster.py +71 -0
  183. tests/test_caching.py +275 -0
  184. tests/test_checker.py +85 -0
  185. tests/test_decimaljson.py +47 -0
  186. tests/test_headerstween.py +64 -0
  187. tests/test_i18n.py +31 -0
  188. tests/test_init.py +193 -0
  189. tests/test_locale_negociator.py +69 -0
  190. tests/test_mapserverproxy_route_predicate.py +64 -0
  191. tests/test_raster.py +267 -0
  192. tests/test_wmstparsing.py +238 -0
  193. tests/xmlstr.py +103 -0
  194. c2cgeoportal_geoportal-2.3.5.80.dist-info/DESCRIPTION.rst +0 -8
  195. c2cgeoportal_geoportal-2.3.5.80.dist-info/RECORD +0 -7
  196. c2cgeoportal_geoportal-2.3.5.80.dist-info/entry_points.txt +0 -22
  197. c2cgeoportal_geoportal-2.3.5.80.dist-info/metadata.json +0 -1
  198. c2cgeoportal_geoportal-2.3.5.80.dist-info/top_level.txt +0 -1
@@ -0,0 +1,304 @@
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
+ 3. For the OGC API, the MapServer configuration changes, now multi map files are supported by default and the URL in
29
+ the admin interface should be updated, see the OGC APT - Features documentation for more information.
30
+
31
+ Information
32
+ ===========
33
+
34
+ 1. Hostname check:
35
+ We add a hostname check on the `came_from` parameter, in the oauth2 login, allowed by
36
+ `vars.authentication.allowed_hosts` and in the OGC server clear cache, allowed by `vars.admin_interface.allowed_hosts`.
37
+ The behavior change a little bit in the `vars.shortener.allowed_hosts` and in the `vars.authorized_referers`.
38
+ Now everywhere:
39
+ - If the hostname (with port) of the candidate URL equals to the request's header "Host", then it's OK.
40
+ - If the hostname (with port) of the candidate URL is in the allowed list, then it's OK.
41
+ And they should be netloc (hostname with port) without schema or path
42
+ (if schema or path is present they are ignored).
43
+ The `vars.allowed_hosts` is added to allowed only some authorized host.
44
+
45
+ 2. We replace checks (formatting) done by `c2cciutils` by `pre-commit` hooks.
46
+ This will me more standard and transparent for the project.
47
+
48
+ 3. The COG layers where added, but are disabled by default.
49
+ To enable them, you need to add the following configuration in the `vars.yaml` file:
50
+ ```yaml
51
+ vars:
52
+ admin_interface:
53
+ exclude_pages: []
54
+ ```
55
+
56
+ 4. Previously the `Cache-Control` header was set to `public` when we are not authenticated to an endpoint
57
+ that use the authentication. But this didn't works in every cases, for example when we use the intranet
58
+ role and when we have a reverse proxy with cache. Now it's always set to private for all the endpoints
59
+ that use the authentication.
60
+
61
+
62
+ =============
63
+ Version 2.8.0
64
+ =============
65
+
66
+ Information to know before starting the upgrade
67
+ ===============================================
68
+
69
+
70
+ Information
71
+ ===========
72
+
73
+ 1. We upgraded MapServer to version 8, then the Mapfiles should probably be updated, and we have a new
74
+ configurations file named `mapserver/mapserver.conf`.
75
+ Migration guide: https://mapserver.org/MIGRATION_GUIDE.html#mapserver-7-6-to-8-0-migration.
76
+ Deprecated element from `CLASS` removed (moved to `STYLE`)
77
+ https://mapserver.org/development/rfc/ms-rfc-133.html#rfc133.
78
+
79
+ 2. We added the support of 'main_ogc_server' to WMS mapserver proxy URL.
80
+ This means that if the value 'vars/main_ogc_server' is present in the vars.yaml of the project,
81
+ that will be used as default value when no 'ogcserver' parameter is present in the request.
82
+
83
+ 3. We switched the OpenLayers renderer to now use WegGL for WMTS. In the case of background tiles with
84
+ transparency, you should add the parameter 'ngeoTilesPreloadingLimit: 0' to the vars.yaml in 'constants'
85
+ so that background tiles are rendered correctly.
86
+
87
+ 4. In the `user` table, the column `deactivated` is now interpreted more strictly, `null` is now considered as `true`.
88
+
89
+ 5. We add the `gmfPrintOptions` in the update path then the default print options are maintained in the
90
+ `CONST_vars.yaml`, especially the `hiddenAttributes`, then if you used the default value it can be
91
+ removed.
92
+
93
+ Main versions updates
94
+ -------------------
95
+ Ubuntu is updated from 20.04.6 to 22.04.2
96
+ Python is updated from 3.8.10 to 3.10.6
97
+ Node is updated from 16.20.0 to 16.20.0
98
+ Npm is updated from 8.19.4 to 8.19.4
99
+ Postgres is updated from 15+250.pgdg20.04+1 to 15+250.pgdg22.04+1
100
+ GDAL is updated from 3.4.3, to 3.6.4,
101
+ Proj is updated from 9.0.0 to 9.1.1
102
+
103
+ Python packages updates
104
+ ---------------------
105
+ New packages:
106
+ * astroid at version 2.15.5
107
+ * bandit at version 1.7.5
108
+ * dill at version 0.3.6
109
+ * dodgy at version 0.2.1
110
+ * flake8 at version 2.3.0
111
+ * flake8-polyfill at version 1.0.2
112
+ * gitdb at version 4.0.10
113
+ * GitPython at version 3.1.31
114
+ * isort at version 5.12.0
115
+ * lazy-object-proxy at version 1.9.0
116
+ * markdown-it-py at version 2.2.0
117
+ * mccabe at version 0.7.0
118
+ * mdurl at version 0.1.2
119
+ * mypy at version 1.3.0
120
+ * mypy-extensions at version 1.0.0
121
+ * pep8 at version 1.7.1
122
+ * pep8-naming at version 0.10.0
123
+ * prospector at version 1.9.0
124
+ * pycodestyle at version 2.10.0
125
+ * pydocstyle at version 6.3.0
126
+ * pyflakes at version 2.5.0
127
+ * pylint at version 2.17.4
128
+ * pylint-celery at version 0.3
129
+ * pylint-django at version 2.5.3
130
+ * pylint-flask at version 0.6
131
+ * pylint-plugin-utils at version 0.7
132
+ * requirements-detector at version 1.2.2
133
+ * rich at version 13.4.1
134
+ * semver at version 3.0.0
135
+ * setoptconf-tmp at version 0.3.1
136
+ * shapely at version 2.0.1
137
+ * smmap at version 5.0.0
138
+ * snowballstemmer at version 2.2.0
139
+ * tomli at version 2.0.1
140
+ * tomlkit at version 0.11.8
141
+ * typing_extensions at version 4.6.2
142
+
143
+ Removed packages:
144
+ * azure-identity
145
+ * boto3
146
+ * botocore
147
+ * Cython
148
+ * Deprecated
149
+ * distlib
150
+ * filelock
151
+ * importlib-metadata
152
+ * importlib-resources
153
+ * jmespath
154
+ * linesman
155
+ * msal
156
+ * msal-extensions
157
+ * msrest
158
+ * networkx
159
+ * Paste
160
+ * pipenv
161
+ * pipfile
162
+ * pkgconfig
163
+ * portalocker
164
+ * poyo
165
+ * pygraphviz
166
+ * repoze.lru
167
+ * s3transfer
168
+ * Shapely
169
+ * typing-extensions
170
+ * virtualenv
171
+ * virtualenv-clone
172
+ * zipp
173
+
174
+ Major updates:
175
+ * attrs from 21.4.0 to 23.1.0
176
+ * basicauth from 0.4.1 to 1.0.0
177
+ * boltons from 21.0.0 to 23.0.0
178
+ * Chameleon from 3.9.1 to 4.0.0
179
+ * chardet from 4.0.0 to 5.1.0
180
+ * charset-normalizer from 2.0.12 to 3.1.0
181
+ * colander from 1.8.3 to 2.0
182
+ * cryptography from 41.0.1 to 39.0.2
183
+ * geojson from 2.5.0 to 3.0.1
184
+ * greenlet from 1.1.3.post0 to 2.0.2
185
+ * munch from 2.5.0 to 3.0.0
186
+ * packaging from 21.3 to 23.1
187
+ * PasteDeploy from 2.1.1 to 3.0.1
188
+ * plaster-pastedeploy from 0.7 to 1.0.1
189
+ * python-slugify from 4.0.1 to 8.0.1
190
+ * pytz from 2021.3 to 2023.3
191
+ * PyYAML from 5.4.1 to 6.0
192
+ * stevedore from 3.5.2 to 5.1.0
193
+ * urllib3 from 1.26.16 to 2.0.2
194
+ * zope.deprecation from 4.4.0 to 5.0
195
+ * zope.interface from 5.4.0 to 6.0
196
+ * zope.sqlalchemy from 1.6 to 3.0
197
+
198
+ Minor updates:
199
+ * affine from 2.3.1 to 2.4.0
200
+ * alembic from 1.7.7 to 1.10.4
201
+ * azure-core from 1.26.3 to 1.27.0
202
+ * azure-storage-blob from 12.14.1 to 12.16.0
203
+ * Babel from 2.9.1 to 2.12.1
204
+ * Beaker from 1.11.0 to 1.12.1
205
+ * c2cwsgiutils from 5.0.1 to 5.2.2
206
+ * click from 8.0.4 to 8.1.3
207
+ * dogpile.cache from 1.1.8 to 1.2.0
208
+ * Fiona from 1.8.22 to 1.9.3
209
+ * GDAL from 3.4.3 to 3.6.4
210
+ * GeoAlchemy2 from 0.11.1 to 0.13.2
211
+ * graphviz from 0.19.2 to 0.20.1
212
+ * hupper from 1.10.3 to 1.12
213
+ * idna from 3.3 to 3.4
214
+ * iso8601 from 1.0.2 to 1.1.0
215
+ * Jinja2 from 3.0.3 to 3.1.2
216
+ * numpy from 1.22.4 to 1.24.3
217
+ * OWSLib from 0.28.1 to 0.29.2
218
+ * papyrus from 2.4 to 2.5
219
+ * pbr from 5.8.1 to 5.11.1
220
+ * Pillow from 9.4.0 to 9.5.0
221
+ * plaster from 1.0 to 1.1.2
222
+ * polib from 1.1.1 to 1.2.0
223
+ * pycryptodome from 3.14.1 to 3.17
224
+ * PyJWT from 2.4.0 to 2.7.0
225
+ * pyotp from 2.6.0 to 2.8.0
226
+ * pyproj from 3.3.1 to 3.5.0
227
+ * pyramid-debugtoolbar from 4.9 to 4.10
228
+ * pyramid-jinja2 from 2.9.2 to 2.10
229
+ * pyyaml-include from 1.2.post2 to 1.3
230
+ * rasterio from 1.2.10 to 1.3.6
231
+ * redis from 4.3.6 to 4.5.4
232
+ * sentry-sdk from 1.14.0 to 1.21.1
233
+ * SQLAlchemy-Utils from 0.38.3 to 0.41.1
234
+ * tilecloud from 1.8.2 to 1.9.3
235
+ * transaction from 3.0.1 to 3.1.0
236
+ * ujson from 5.4.0 to 5.7.0
237
+ * wrapt from 1.13.3 to 1.15.0
238
+ * zope.event from 4.4 to 4.6
239
+
240
+ Npm packages updates
241
+ ------------------
242
+ New packages:
243
+ * @snyk/protect at version 1.1094.0
244
+ * cy-mobile-commands at version 0.3.0
245
+ * cypress-browser-permissions at version 1.1.0
246
+ * cypress-real-events at version 1.7.6
247
+ * eslint-plugin-lit at version 1.8.2
248
+ * eslint-plugin-wc at version 1.4.0
249
+ * i18next-http-backend at version 2.1.1
250
+ * neat-csv at version 5.2.0
251
+ * strip-bom at version 5.0.0
252
+
253
+ Removed packages:
254
+ * @sentry/integrations
255
+ * angular-gettext-tools
256
+ * commander
257
+ * eslint
258
+ * i18next-xhr-backend
259
+ * puppeteer
260
+
261
+ Major updates:
262
+ * @sentry/browser from 6.18.2 to 7.35.0
263
+ * @sentry/tracing from 6.18.2 to 7.35.0
264
+ * @sentry/types from 6.18.2 to 7.35.0
265
+ * editorconfig-checker from 4.0.2 to 5.0.1
266
+ * eslint-plugin-jsdoc from 38.0.8 to 39.7.5
267
+ * fs-extra from 10.0.1 to 11.1.0
268
+ * glob from 7.2.3 to 8.1.0
269
+ * i18next-browser-languagedetector from 6.1.8 to 7.0.1
270
+ * i18next-parser from 6.0.1 to 7.6.0
271
+ * i18next from 21.6.16 to 22.4.9
272
+ * node-sass from 6.0.1 to 7.0.3
273
+ * ol-layerswitcher from 3.8.3 to 4.1.0
274
+ * ol-mapbox-style from 7.1.1 to 9.5.0
275
+ * ol from 6.12.0 to 7.2.2
276
+ * sinon from 13.0.2 to 15.0.1
277
+ * svgo from 2.8.0 to 3.0.2
278
+ * tsconfig-paths from 3.14.2 to 4.1.2
279
+
280
+ Minor updates:
281
+ * @babel/core from 7.17.12 to 7.20.12
282
+ * @babel/plugin-proposal-class-properties from 7.16.7 to 7.18.6
283
+ * @babel/plugin-proposal-decorators from 7.17.12 to 7.20.13
284
+ * @babel/plugin-transform-spread from 7.16.7 to 7.20.7
285
+ * @babel/plugin-transform-typescript from 7.16.8 to 7.20.13
286
+ * @babel/preset-env from 7.16.11 to 7.20.2
287
+ * @babel/preset-typescript from 7.16.7 to 7.18.6
288
+ * @lit/reactive-element from 1.3.4 to 1.6.1
289
+ * @trevoreyre/autocomplete-js from 2.2.0 to 2.4.1
290
+ * babel-loader from 8.2.5 to 8.3.0
291
+ * core-js from 3.21.1 to 3.27.2
292
+ * d3 from 7.3.0 to 7.8.2
293
+ * jsts from 2.8.1 to 2.9.3
294
+ * lit-html from 2.2.7 to 2.6.1
295
+ * lit from 2.2.8 to 2.6.1
296
+ * rxjs from 7.5.7 to 7.8.0
297
+ * sass-loader from 10.2.1 to 10.4.1
298
+ * terser from 5.12.1 to 5.16.2
299
+ * tinycolor2 from 1.4.2 to 1.5.2
300
+ * ts-node from 10.7.0 to 10.9.1
301
+
302
+
303
+ Changes to apply
304
+ ================
@@ -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