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.
- c2cgeoportal_geoportal/__init__.py +960 -0
- c2cgeoportal_geoportal/lib/__init__.py +256 -0
- c2cgeoportal_geoportal/lib/authentication.py +250 -0
- c2cgeoportal_geoportal/lib/bashcolor.py +46 -0
- c2cgeoportal_geoportal/lib/cacheversion.py +77 -0
- c2cgeoportal_geoportal/lib/caching.py +176 -0
- c2cgeoportal_geoportal/lib/check_collector.py +80 -0
- c2cgeoportal_geoportal/lib/checker.py +295 -0
- c2cgeoportal_geoportal/lib/common_headers.py +172 -0
- c2cgeoportal_geoportal/lib/dbreflection.py +266 -0
- c2cgeoportal_geoportal/lib/filter_capabilities.py +360 -0
- c2cgeoportal_geoportal/lib/fulltextsearch.py +50 -0
- c2cgeoportal_geoportal/lib/functionality.py +166 -0
- c2cgeoportal_geoportal/lib/headers.py +62 -0
- c2cgeoportal_geoportal/lib/i18n.py +38 -0
- c2cgeoportal_geoportal/lib/layers.py +132 -0
- c2cgeoportal_geoportal/lib/lingva_extractor.py +937 -0
- c2cgeoportal_geoportal/lib/loader.py +57 -0
- c2cgeoportal_geoportal/lib/metrics.py +117 -0
- c2cgeoportal_geoportal/lib/oauth2.py +1186 -0
- c2cgeoportal_geoportal/lib/oidc.py +304 -0
- c2cgeoportal_geoportal/lib/wmstparsing.py +353 -0
- c2cgeoportal_geoportal/lib/xsd.py +166 -0
- c2cgeoportal_geoportal/py.typed +0 -0
- c2cgeoportal_geoportal/resources.py +49 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/ci/config.yaml +26 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/cookiecutter.json +18 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/.dockerignore +6 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/.eslintrc.yaml +19 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/.prospector.yaml +30 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/Dockerfile +75 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/Makefile +6 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/alembic.ini +58 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/alembic.yaml +19 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/development.ini +121 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/gunicorn.conf.py +139 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/language_mapping +3 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/lingva-client.cfg +5 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/lingva-server.cfg +6 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/production.ini +38 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/requirements.txt +2 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/setup.py +25 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.api.js +41 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.apps.js +64 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.commons.js +11 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.config.js +22 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/__init__.py +42 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/authentication.py +10 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/dev.py +14 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/models.py +8 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/multi_organization.py +7 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/resources.py +11 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static-ngeo/api/index.js +12 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static-ngeo/js/{{cookiecutter.package}}module.js +25 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/subscribers.py +39 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/views/__init__.py +0 -0
- c2cgeoportal_geoportal/scaffolds/advance_update/cookiecutter.json +18 -0
- c2cgeoportal_geoportal/scaffolds/advance_update/{{cookiecutter.project}}/geoportal/CONST_Makefile +121 -0
- c2cgeoportal_geoportal/scaffolds/create/cookiecutter.json +18 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.dockerignore +14 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.editorconfig +17 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/main.yaml +73 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/rebuild.yaml +50 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/update_l10n.yaml +66 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.gitignore +16 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.pre-commit-config.yaml +35 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.prettierignore +1 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.prettierrc.yaml +2 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/Dockerfile +75 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/Makefile +70 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/README.rst +29 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/build +179 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/ci/config.yaml +22 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/ci/docker-compose-check +25 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/ci/requirements.txt +2 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose-db.yaml +24 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose-lib.yaml +513 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose-qgis.yaml +21 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose.override.sample.yaml +65 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose.yaml +121 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/env.default +102 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/env.project +69 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/vars.yaml +430 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/locale/en/LC_MESSAGES/{{cookiecutter.package}}_geoportal-client.po +6 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/desktop.css +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/iframe_api.css +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/mobile.css +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/banner_left.png +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/banner_right.png +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/blank.png +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker-blue.png +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker-gold.png +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker-green.png +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker.png +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/robot.txt.tmpl +3 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/data/Readme.txt +69 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/data/TM_EUROPE_BORDERS-0.3.sql +70 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/demo.map.tmpl +224 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Arial.ttf +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Arialbd.ttf +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Arialbi.ttf +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Ariali.ttf +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/NotoSans-Bold.ttf +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/NotoSans-BoldItalic.ttf +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/NotoSans-Italic.ttf +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/NotoSans-Regular.ttf +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Verdana.ttf +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Verdanab.ttf +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Verdanai.ttf +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Verdanaz.ttf +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts.conf +12 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/mapserver.conf +16 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/mapserver.map.tmpl +87 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/tinyows.xml.tmpl +36 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/A3_Landscape.jrxml +207 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/A3_Portrait.jrxml +185 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/A4_Landscape.jrxml +200 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/A4_Portrait.jrxml +170 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/config.yaml.tmpl +175 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/legend.jrxml +109 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/localisation.properties +4 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/localisation_fr.properties +4 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/logo.png +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/north.svg +93 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/results.jrxml +25 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/project.yaml +18 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/pyproject.toml +7 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/qgisserver/pg_service.conf.tmpl +15 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/run_alembic.sh +11 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/scripts/db-backup +126 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/scripts/db-restore +132 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/setup.cfg +7 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/spell-ignore-words.txt +5 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/tests/__init__.py +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/tests/test_app.py +78 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/tilegeneration/config.yaml.tmpl +195 -0
- c2cgeoportal_geoportal/scaffolds/update/cookiecutter.json +18 -0
- c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/.upgrade.yaml +67 -0
- c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/CONST_CHANGELOG.txt +304 -0
- c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/CONST_create_template/tests/test_testapp.py +48 -0
- c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/geoportal/.CONST_vars.yaml.swp +0 -0
- c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/geoportal/CONST_config-schema.yaml +927 -0
- c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/geoportal/CONST_vars.yaml +1503 -0
- c2cgeoportal_geoportal/scripts/__init__.py +64 -0
- c2cgeoportal_geoportal/scripts/c2cupgrade.py +879 -0
- c2cgeoportal_geoportal/scripts/create_demo_theme.py +83 -0
- c2cgeoportal_geoportal/scripts/manage_users.py +140 -0
- c2cgeoportal_geoportal/scripts/pcreate.py +296 -0
- c2cgeoportal_geoportal/scripts/theme2fts.py +347 -0
- c2cgeoportal_geoportal/scripts/urllogin.py +81 -0
- c2cgeoportal_geoportal/templates/login.html +90 -0
- c2cgeoportal_geoportal/templates/notlogin.html +62 -0
- c2cgeoportal_geoportal/templates/testi18n.html +12 -0
- c2cgeoportal_geoportal/views/__init__.py +59 -0
- c2cgeoportal_geoportal/views/dev.py +57 -0
- c2cgeoportal_geoportal/views/dynamic.py +208 -0
- c2cgeoportal_geoportal/views/entry.py +174 -0
- c2cgeoportal_geoportal/views/fulltextsearch.py +189 -0
- c2cgeoportal_geoportal/views/geometry_processing.py +75 -0
- c2cgeoportal_geoportal/views/i18n.py +129 -0
- c2cgeoportal_geoportal/views/layers.py +713 -0
- c2cgeoportal_geoportal/views/login.py +684 -0
- c2cgeoportal_geoportal/views/mapserverproxy.py +234 -0
- c2cgeoportal_geoportal/views/memory.py +90 -0
- c2cgeoportal_geoportal/views/ogcproxy.py +120 -0
- c2cgeoportal_geoportal/views/pdfreport.py +245 -0
- c2cgeoportal_geoportal/views/printproxy.py +143 -0
- c2cgeoportal_geoportal/views/profile.py +192 -0
- c2cgeoportal_geoportal/views/proxy.py +261 -0
- c2cgeoportal_geoportal/views/raster.py +233 -0
- c2cgeoportal_geoportal/views/resourceproxy.py +73 -0
- c2cgeoportal_geoportal/views/shortener.py +152 -0
- c2cgeoportal_geoportal/views/theme.py +1322 -0
- c2cgeoportal_geoportal/views/tinyowsproxy.py +189 -0
- c2cgeoportal_geoportal/views/vector_tiles.py +83 -0
- {c2cgeoportal_geoportal-2.3.5.80.dist-info → c2cgeoportal_geoportal-2.9rc44.dist-info}/METADATA +21 -24
- c2cgeoportal_geoportal-2.9rc44.dist-info/RECORD +193 -0
- {c2cgeoportal_geoportal-2.3.5.80.dist-info → c2cgeoportal_geoportal-2.9rc44.dist-info}/WHEEL +1 -1
- c2cgeoportal_geoportal-2.9rc44.dist-info/entry_points.txt +28 -0
- c2cgeoportal_geoportal-2.9rc44.dist-info/top_level.txt +2 -0
- tests/__init__.py +100 -0
- tests/test_cachebuster.py +71 -0
- tests/test_caching.py +275 -0
- tests/test_checker.py +85 -0
- tests/test_decimaljson.py +47 -0
- tests/test_headerstween.py +64 -0
- tests/test_i18n.py +31 -0
- tests/test_init.py +193 -0
- tests/test_locale_negociator.py +69 -0
- tests/test_mapserverproxy_route_predicate.py +64 -0
- tests/test_raster.py +267 -0
- tests/test_wmstparsing.py +238 -0
- tests/xmlstr.py +103 -0
- c2cgeoportal_geoportal-2.3.5.80.dist-info/DESCRIPTION.rst +0 -8
- c2cgeoportal_geoportal-2.3.5.80.dist-info/RECORD +0 -7
- c2cgeoportal_geoportal-2.3.5.80.dist-info/entry_points.txt +0 -22
- c2cgeoportal_geoportal-2.3.5.80.dist-info/metadata.json +0 -1
- 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
|