c2cgeoportal-geoportal 2.6.0__py2.py3-none-any.whl → 2.8.1.180__py2.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 +245 -95
- c2cgeoportal_geoportal/lib/__init__.py +67 -43
- c2cgeoportal_geoportal/lib/authentication.py +50 -26
- c2cgeoportal_geoportal/lib/bashcolor.py +17 -13
- c2cgeoportal_geoportal/lib/cacheversion.py +16 -8
- c2cgeoportal_geoportal/lib/caching.py +65 -193
- c2cgeoportal_geoportal/lib/check_collector.py +17 -10
- c2cgeoportal_geoportal/lib/checker.py +67 -65
- c2cgeoportal_geoportal/lib/common_headers.py +167 -0
- c2cgeoportal_geoportal/lib/dbreflection.py +61 -46
- c2cgeoportal_geoportal/lib/filter_capabilities.py +126 -88
- c2cgeoportal_geoportal/lib/fulltextsearch.py +6 -5
- c2cgeoportal_geoportal/lib/functionality.py +20 -17
- c2cgeoportal_geoportal/lib/headers.py +14 -5
- c2cgeoportal_geoportal/lib/i18n.py +4 -4
- c2cgeoportal_geoportal/lib/layers.py +30 -11
- c2cgeoportal_geoportal/lib/lingua_extractor.py +363 -240
- c2cgeoportal_geoportal/lib/loader.py +11 -16
- c2cgeoportal_geoportal/lib/metrics.py +28 -17
- c2cgeoportal_geoportal/lib/oauth2.py +392 -206
- c2cgeoportal_geoportal/lib/wmstparsing.py +105 -84
- c2cgeoportal_geoportal/lib/xsd.py +26 -16
- c2cgeoportal_geoportal/resources.py +15 -9
- 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/{create/geoportal/+dot+prospector.yaml → advance_create/{{cookiecutter.project}}/geoportal/.prospector.yaml} +8 -2
- c2cgeoportal_geoportal/scaffolds/{create/geoportal/Dockerfile_tmpl → advance_create/{{cookiecutter.project}}/geoportal/Dockerfile} +22 -15
- c2cgeoportal_geoportal/scaffolds/{create/geoportal/alembic.yaml_tmpl → advance_create/{{cookiecutter.project}}/geoportal/alembic.yaml} +1 -1
- c2cgeoportal_geoportal/scaffolds/{create/geoportal/development.ini_tmpl → advance_create/{{cookiecutter.project}}/geoportal/development.ini} +34 -15
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/gunicorn.conf.py +100 -0
- c2cgeoportal_geoportal/scaffolds/{create → advance_create/{{cookiecutter.project}}}/geoportal/lingua-client.cfg +1 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/production.ini +38 -0
- c2cgeoportal_geoportal/scaffolds/{create/geoportal/setup.py_tmpl → advance_create/{{cookiecutter.project}}/geoportal/setup.py} +6 -7
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/tsconfig.json +8 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.api.js +77 -0
- c2cgeoportal_geoportal/scaffolds/{create/geoportal/webpack.apps.js_tmpl → advance_create/{{cookiecutter.project}}/geoportal/webpack.apps.js} +29 -28
- c2cgeoportal_geoportal/scaffolds/{create → advance_create/{{cookiecutter.project}}}/geoportal/webpack.commons.js +4 -7
- c2cgeoportal_geoportal/scaffolds/{create → advance_create/{{cookiecutter.project}}}/geoportal/webpack.config.js +1 -1
- 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/{create/geoportal/+package+_geoportal → advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/resources.py +4 -3
- c2cgeoportal_geoportal/scaffolds/{create/geoportal/+package+_geoportal/static-ngeo/api/index.js_tmpl → advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static-ngeo/api/index.js} +1 -2
- c2cgeoportal_geoportal/scaffolds/{create/geoportal/+package+_geoportal/static-ngeo/js/+package+module.js_tmpl → advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static-ngeo/js/{{cookiecutter.package}}module.js} +4 -4
- c2cgeoportal_geoportal/scaffolds/{create/geoportal/+package+_geoportal/subscribers.py_tmpl → advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/subscribers.py} +1 -3
- c2cgeoportal_geoportal/scaffolds/advance_update/cookiecutter.json +18 -0
- c2cgeoportal_geoportal/scaffolds/{update/geoportal/CONST_Makefile_tmpl → advance_update/{{cookiecutter.project}}/geoportal/CONST_Makefile} +3 -27
- c2cgeoportal_geoportal/scaffolds/create/cookiecutter.json +18 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.dockerignore +14 -0
- c2cgeoportal_geoportal/scaffolds/create/{+dot+editorconfig → {{cookiecutter.project}}/.editorconfig} +2 -5
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/main.yaml +57 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/rebuild.yaml +46 -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}}/.prettierignore +1 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.prettierrc.yaml +2 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/Dockerfile +76 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/Makefile +70 -0
- c2cgeoportal_geoportal/scaffolds/create/{README.rst_tmpl → {{cookiecutter.project}}/README.rst} +4 -4
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/build +186 -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 +1 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose-db.yaml +26 -0
- c2cgeoportal_geoportal/scaffolds/create/{docker-compose-lib.yaml → {{cookiecutter.project}}/docker-compose-lib.yaml} +165 -22
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose-qgis.yaml +23 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose.override.sample.yaml +66 -0
- c2cgeoportal_geoportal/scaffolds/create/{docker-compose.yaml → {{cookiecutter.project}}/docker-compose.yaml} +20 -15
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/env.default +101 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/env.project +69 -0
- c2cgeoportal_geoportal/scaffolds/create/{geoportal/vars.yaml_tmpl → {{cookiecutter.project}}/geoportal/vars.yaml} +126 -36
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/mobile.css +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/data/Readme.txt +3 -3
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/demo.map.tmpl +224 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/mapserver.conf +15 -0
- c2cgeoportal_geoportal/scaffolds/create/{mapserver/mapserver.map.tmpl_tmpl → {{cookiecutter.project}}/mapserver/mapserver.map.tmpl} +9 -18
- c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/A3_Landscape.jrxml +13 -8
- c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/A3_Portrait.jrxml +13 -8
- c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/A4_Landscape.jrxml +13 -8
- c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/A4_Portrait.jrxml +13 -8
- c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/config.yaml.tmpl +11 -4
- 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/{project.yaml_tmpl → {{cookiecutter.project}}/project.yaml} +6 -6
- c2cgeoportal_geoportal/scaffolds/create/{pyproject.toml → {{cookiecutter.project}}/pyproject.toml} +4 -0
- c2cgeoportal_geoportal/scaffolds/create/{qgisserver/pg_service.conf.tmpl_tmpl → {{cookiecutter.project}}/qgisserver/pg_service.conf.tmpl} +2 -2
- c2cgeoportal_geoportal/scaffolds/create/{run_alembic.sh → {{cookiecutter.project}}/run_alembic.sh} +3 -5
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/scripts/db-backup +110 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/scripts/db-restore +114 -0
- c2cgeoportal_geoportal/scaffolds/create/{setup.cfg_tmpl → {{cookiecutter.project}}/setup.cfg} +1 -1
- 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 +38 -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 +61 -0
- c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/CONST_CHANGELOG.txt +273 -0
- c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/CONST_create_template/tests/test_testapp.py +48 -0
- c2cgeoportal_geoportal/scaffolds/update/{geoportal → {{cookiecutter.project}}/geoportal}/CONST_config-schema.yaml +64 -17
- c2cgeoportal_geoportal/scaffolds/update/{geoportal/CONST_vars.yaml_tmpl → {{cookiecutter.project}}/geoportal/CONST_vars.yaml} +396 -19
- c2cgeoportal_geoportal/scripts/__init__.py +16 -30
- c2cgeoportal_geoportal/scripts/c2cupgrade.py +272 -234
- c2cgeoportal_geoportal/scripts/create_demo_theme.py +3 -6
- c2cgeoportal_geoportal/scripts/manage_users.py +34 -39
- c2cgeoportal_geoportal/scripts/pcreate.py +310 -0
- c2cgeoportal_geoportal/scripts/theme2fts.py +128 -24
- c2cgeoportal_geoportal/scripts/urllogin.py +19 -11
- c2cgeoportal_geoportal/templates/login.html +88 -84
- c2cgeoportal_geoportal/templates/notlogin.html +59 -59
- c2cgeoportal_geoportal/templates/testi18n.html +6 -8
- c2cgeoportal_geoportal/views/__init__.py +23 -6
- c2cgeoportal_geoportal/views/dev.py +9 -7
- c2cgeoportal_geoportal/views/dynamic.py +56 -19
- c2cgeoportal_geoportal/views/entry.py +85 -24
- c2cgeoportal_geoportal/views/fulltextsearch.py +29 -23
- c2cgeoportal_geoportal/views/geometry_processing.py +17 -9
- c2cgeoportal_geoportal/views/i18n.py +91 -9
- c2cgeoportal_geoportal/views/layers.py +166 -133
- c2cgeoportal_geoportal/views/login.py +161 -93
- c2cgeoportal_geoportal/views/mapserverproxy.py +47 -31
- c2cgeoportal_geoportal/views/memory.py +12 -12
- c2cgeoportal_geoportal/views/ogcproxy.py +52 -30
- c2cgeoportal_geoportal/views/pdfreport.py +30 -26
- c2cgeoportal_geoportal/views/printproxy.py +60 -52
- c2cgeoportal_geoportal/views/profile.py +24 -23
- c2cgeoportal_geoportal/views/proxy.py +88 -72
- c2cgeoportal_geoportal/views/raster.py +37 -26
- c2cgeoportal_geoportal/views/resourceproxy.py +13 -11
- c2cgeoportal_geoportal/views/shortener.py +27 -25
- c2cgeoportal_geoportal/views/theme.py +472 -332
- c2cgeoportal_geoportal/views/tinyowsproxy.py +42 -44
- c2cgeoportal_geoportal/views/vector_tiles.py +80 -0
- {c2cgeoportal_geoportal-2.6.0.dist-info → c2cgeoportal_geoportal-2.8.1.180.dist-info}/METADATA +19 -8
- c2cgeoportal_geoportal-2.8.1.180.dist-info/RECORD +191 -0
- {c2cgeoportal_geoportal-2.6.0.dist-info → c2cgeoportal_geoportal-2.8.1.180.dist-info}/WHEEL +1 -1
- {c2cgeoportal_geoportal-2.6.0.dist-info → c2cgeoportal_geoportal-2.8.1.180.dist-info}/entry_points.txt +3 -0
- tests/__init__.py +10 -5
- tests/test_cachebuster.py +3 -5
- tests/test_caching.py +18 -26
- tests/test_checker.py +1 -3
- tests/test_decimaljson.py +5 -5
- tests/test_headerstween.py +1 -3
- tests/test_i18n.py +2 -2
- tests/test_init.py +16 -20
- tests/test_locale_negociator.py +4 -6
- tests/test_mapserverproxy_route_predicate.py +1 -4
- tests/test_raster.py +15 -17
- tests/test_wmstparsing.py +10 -12
- tests/xmlstr.py +1 -3
- c2cgeoportal_geoportal/scaffolds/__init__.py +0 -227
- c2cgeoportal_geoportal/scaffolds/create/+dot+dockerignore_tmpl +0 -12
- c2cgeoportal_geoportal/scaffolds/create/+dot+github/workflows/main.yaml_tmpl +0 -89
- c2cgeoportal_geoportal/scaffolds/create/+dot+github/workflows/rebuild.yaml_tmpl +0 -78
- c2cgeoportal_geoportal/scaffolds/create/+dot+gitignore_tmpl +0 -16
- c2cgeoportal_geoportal/scaffolds/create/Dockerfile_tmpl +0 -67
- c2cgeoportal_geoportal/scaffolds/create/Makefile +0 -3
- c2cgeoportal_geoportal/scaffolds/create/build_tmpl +0 -167
- c2cgeoportal_geoportal/scaffolds/create/ci/config.yaml_tmpl +0 -23
- c2cgeoportal_geoportal/scaffolds/create/ci/requirements.txt +0 -1
- c2cgeoportal_geoportal/scaffolds/create/ci/trigger +0 -68
- c2cgeoportal_geoportal/scaffolds/create/docker-compose.override.sample.yaml +0 -54
- c2cgeoportal_geoportal/scaffolds/create/env.default_tmpl +0 -67
- c2cgeoportal_geoportal/scaffolds/create/env.project_tmpl +0 -48
- c2cgeoportal_geoportal/scaffolds/create/geoportal/+dot+dockerignore_tmpl +0 -6
- c2cgeoportal_geoportal/scaffolds/create/geoportal/+dot+eslintrc_tmpl +0 -15
- c2cgeoportal_geoportal/scaffolds/create/geoportal/+package+_geoportal/__init__.py_tmpl +0 -58
- c2cgeoportal_geoportal/scaffolds/create/geoportal/+package+_geoportal/models.py_tmpl +0 -10
- c2cgeoportal_geoportal/scaffolds/create/geoportal/+package+_geoportal/static/robot.txt +0 -3
- c2cgeoportal_geoportal/scaffolds/create/geoportal/production.ini_tmpl +0 -106
- c2cgeoportal_geoportal/scaffolds/create/geoportal/tools/extract-messages.js +0 -39
- c2cgeoportal_geoportal/scaffolds/create/geoportal/tsconfig.json_tmpl +0 -9
- c2cgeoportal_geoportal/scaffolds/create/geoportal/webpack.api.js_tmpl +0 -72
- c2cgeoportal_geoportal/scaffolds/create/mapserver/demo.map.tmpl_tmpl +0 -262
- c2cgeoportal_geoportal/scaffolds/create/mapserver/tinyows.xml +0 -36
- c2cgeoportal_geoportal/scaffolds/create/print/print-apps/+package+/config.yaml +0 -168
- c2cgeoportal_geoportal/scaffolds/create/qgisserver/geomapfish.yaml.tmpl_tmpl +0 -16
- c2cgeoportal_geoportal/scaffolds/create/spell-ignore-words.txt +0 -1
- c2cgeoportal_geoportal/scaffolds/create/tilegeneration/config.yaml.tmpl_tmpl +0 -185
- c2cgeoportal_geoportal/scaffolds/create/yamllint.yaml +0 -11
- c2cgeoportal_geoportal/scaffolds/update/+dot+upgrade.yaml_tmpl +0 -181
- c2cgeoportal_geoportal/scaffolds/update/CONST_CHANGELOG.txt_tmpl +0 -454
- c2cgeoportal_geoportal/templates/dynamic.js +0 -21
- c2cgeoportal_geoportal-2.6.0.dist-info/RECORD +0 -173
- /c2cgeoportal_geoportal/{scaffolds/create/geoportal/+package+_geoportal/static/css/desktop.css → py.typed} +0 -0
- /c2cgeoportal_geoportal/scaffolds/{create/geoportal/Makefile_tmpl → advance_create/{{cookiecutter.project}}/geoportal/Makefile} +0 -0
- /c2cgeoportal_geoportal/scaffolds/{create → advance_create/{{cookiecutter.project}}}/geoportal/alembic.ini +0 -0
- /c2cgeoportal_geoportal/scaffolds/{create → advance_create/{{cookiecutter.project}}}/geoportal/language_mapping +0 -0
- /c2cgeoportal_geoportal/scaffolds/{create → advance_create/{{cookiecutter.project}}}/geoportal/lingua-server.cfg +0 -0
- /c2cgeoportal_geoportal/scaffolds/{create → advance_create/{{cookiecutter.project}}}/geoportal/requirements.txt +0 -0
- /c2cgeoportal_geoportal/scaffolds/{create/geoportal/+package+_geoportal → advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/views/__init__.py +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal/locale/en/LC_MESSAGES/+package+_geoportal-client.po → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/locale/en/LC_MESSAGES/{{cookiecutter.package}}_geoportal-client.po} +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal/static/css/iframe_api.css → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/desktop.css} +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal/static/css/mobile.css → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/iframe_api.css} +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/static/images/banner_left.png +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/static/images/banner_right.png +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/static/images/blank.png +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/static/images/markers/marker-blue.png +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/static/images/markers/marker-gold.png +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/static/images/markers/marker-green.png +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/static/images/markers/marker.png +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/static/robot.txt.tmpl +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/data/TM_EUROPE_BORDERS-0.3.sql +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Arial.ttf +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Arialbd.ttf +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Arialbi.ttf +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Ariali.ttf +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/NotoSans-Bold.ttf +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/NotoSans-BoldItalic.ttf +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/NotoSans-Italic.ttf +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/NotoSans-Regular.ttf +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Verdana.ttf +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Verdanab.ttf +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Verdanai.ttf +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Verdanaz.ttf +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts.conf +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/tinyows.xml.tmpl +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/legend.jrxml +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/logo.png +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/north.svg +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/results.jrxml +0 -0
- {c2cgeoportal_geoportal-2.6.0.dist-info → c2cgeoportal_geoportal-2.8.1.180.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,4 @@
|
|
1
|
-
#
|
2
|
-
|
3
|
-
# Copyright (c) 2015-2021, Camptocamp SA
|
1
|
+
# Copyright (c) 2015-2023, Camptocamp SA
|
4
2
|
# All rights reserved.
|
5
3
|
|
6
4
|
# Redistribution and use in source and binary forms, with or without
|
@@ -29,14 +27,17 @@
|
|
29
27
|
|
30
28
|
|
31
29
|
import logging
|
30
|
+
from typing import Any, Dict, Set, Tuple
|
32
31
|
|
32
|
+
import pyramid.request
|
33
33
|
from defusedxml import ElementTree
|
34
|
-
from pyramid.httpexceptions import HTTPBadRequest, HTTPForbidden, HTTPUnauthorized
|
34
|
+
from pyramid.httpexceptions import HTTPBadRequest, HTTPForbidden, HTTPInternalServerError, HTTPUnauthorized
|
35
35
|
from pyramid.view import view_config
|
36
36
|
|
37
37
|
from c2cgeoportal_commons import models
|
38
|
+
from c2cgeoportal_commons.lib.url import Url
|
38
39
|
from c2cgeoportal_commons.models import main
|
39
|
-
from c2cgeoportal_geoportal.lib.
|
40
|
+
from c2cgeoportal_geoportal.lib.common_headers import Cache
|
40
41
|
from c2cgeoportal_geoportal.lib.filter_capabilities import (
|
41
42
|
filter_wfst_capabilities,
|
42
43
|
normalize_tag,
|
@@ -49,7 +50,9 @@ LOG = logging.getLogger(__name__)
|
|
49
50
|
|
50
51
|
|
51
52
|
class TinyOWSProxy(OGCProxy):
|
52
|
-
|
53
|
+
"""Proxy for the tiny OWN server."""
|
54
|
+
|
55
|
+
def __init__(self, request: pyramid.request.Request):
|
53
56
|
OGCProxy.__init__(self, request, has_default_ogc_server=True)
|
54
57
|
self.settings = request.registry.settings.get("tinyowsproxy", {})
|
55
58
|
|
@@ -65,11 +68,8 @@ class TinyOWSProxy(OGCProxy):
|
|
65
68
|
# params hold the parameters we are going to send to TinyOWS
|
66
69
|
self.lower_params = self._get_lower_params(dict(self.request.params))
|
67
70
|
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
@view_config(route_name="tinyowsproxy")
|
72
|
-
def proxy(self):
|
71
|
+
@view_config(route_name="tinyowsproxy") # type: ignore
|
72
|
+
def proxy(self) -> pyramid.response.Response:
|
73
73
|
if self.user is None:
|
74
74
|
raise HTTPUnauthorized(
|
75
75
|
"Authentication required", headers=[("WWW-Authenticate", 'Basic realm="TinyOWS"')]
|
@@ -77,19 +77,18 @@ class TinyOWSProxy(OGCProxy):
|
|
77
77
|
|
78
78
|
operation = self.lower_params.get("request")
|
79
79
|
typenames = (
|
80
|
-
|
81
|
-
if "typename" in self.lower_params
|
82
|
-
else set()
|
80
|
+
{normalize_typename(self.lower_params["typename"])} if "typename" in self.lower_params else set()
|
83
81
|
)
|
84
82
|
|
85
83
|
method = self.request.method
|
86
84
|
if method == "POST":
|
87
85
|
try:
|
88
86
|
(operation, typenames_post) = self._parse_body(self.request.body)
|
89
|
-
except Exception
|
90
|
-
LOG.
|
91
|
-
|
92
|
-
|
87
|
+
except Exception:
|
88
|
+
LOG.exception("Error while parsing POST request body")
|
89
|
+
raise HTTPBadRequest( # pylint: disable=raise-missing-from
|
90
|
+
"Error parsing the request (see logs for more details)"
|
91
|
+
)
|
93
92
|
|
94
93
|
typenames = typenames.union(typenames_post)
|
95
94
|
|
@@ -100,78 +99,77 @@ class TinyOWSProxy(OGCProxy):
|
|
100
99
|
# for DescribeFeatureType we require that exactly one type-name
|
101
100
|
# is given, otherwise we would have to filter the result
|
102
101
|
if len(typenames) != 1:
|
103
|
-
raise HTTPBadRequest(
|
104
|
-
"Exactly one type-name must be given for " "DescribeFeatureType requests"
|
105
|
-
)
|
102
|
+
raise HTTPBadRequest("Exactly one type-name must be given for DescribeFeatureType requests")
|
106
103
|
|
107
104
|
if not self._is_allowed(typenames):
|
108
105
|
raise HTTPForbidden("No access rights for at least one of the given type-names")
|
109
106
|
|
110
107
|
# we want clients to cache GetCapabilities and DescribeFeatureType req.
|
111
108
|
use_cache = method == "GET" and operation in ("getcapabilities", "describefeaturetype")
|
112
|
-
cache_control =
|
109
|
+
cache_control = Cache.PRIVATE if use_cache else Cache.PRIVATE_NO
|
110
|
+
|
111
|
+
url = Url(self.settings.get("tinyows_url"))
|
113
112
|
|
114
113
|
response = self._proxy_callback(
|
115
114
|
operation,
|
116
115
|
cache_control,
|
117
|
-
url=
|
118
|
-
params=
|
116
|
+
url=url,
|
117
|
+
params=dict(self.request.params),
|
119
118
|
cache=use_cache,
|
120
119
|
headers=self._get_headers(),
|
121
120
|
body=self.request.body,
|
122
121
|
)
|
123
122
|
return response
|
124
123
|
|
125
|
-
def _is_allowed(self, typenames):
|
126
|
-
"""
|
127
|
-
Checks if the current user has the rights to access the given
|
128
|
-
type-names.
|
129
|
-
"""
|
130
|
-
|
124
|
+
def _is_allowed(self, typenames: Set[str]) -> bool:
|
125
|
+
"""Check if the current user has the rights to access the given type-names."""
|
131
126
|
writable_layers = set()
|
132
127
|
for gmflayer in list(get_writable_layers(self.request, [self.ogc_server.id]).values()):
|
133
128
|
for ogclayer in gmflayer.layer.split(","):
|
134
129
|
writable_layers.add(ogclayer.lower())
|
135
130
|
return typenames.issubset(writable_layers)
|
136
131
|
|
137
|
-
def _get_headers(self):
|
138
|
-
headers = OGCProxy.
|
132
|
+
def _get_headers(self) -> Dict[str, str]:
|
133
|
+
headers = OGCProxy.get_headers(self)
|
139
134
|
if "tinyows_host" in self.settings:
|
140
135
|
headers["Host"] = self.settings.get("tinyows_host")
|
141
136
|
return headers
|
142
137
|
|
143
|
-
def _proxy_callback(
|
138
|
+
def _proxy_callback(
|
139
|
+
self, operation: str, cache_control: Cache, *args: Any, **kwargs: Any
|
140
|
+
) -> pyramid.response.Response:
|
144
141
|
response = self._proxy(*args, **kwargs)
|
145
142
|
content = response.content.decode()
|
146
143
|
|
144
|
+
errors: Set[str] = set()
|
145
|
+
url = super()._get_wfs_url(errors)
|
146
|
+
if url is None:
|
147
|
+
LOG.error("Error getting the URL:\n%s", "\n".join(errors))
|
148
|
+
raise HTTPInternalServerError()
|
149
|
+
|
147
150
|
if operation == "getcapabilities":
|
148
|
-
content = filter_wfst_capabilities(
|
149
|
-
content, super(TinyOWSProxy, self)._get_wfs_url(), self.request
|
150
|
-
)
|
151
|
+
content = filter_wfst_capabilities(content, url, self.request)
|
151
152
|
|
152
153
|
content = self._filter_urls(
|
153
154
|
content, self.settings.get("online_resource"), self.settings.get("proxy_online_resource")
|
154
155
|
)
|
155
156
|
|
156
|
-
return self._build_response(response, content, cache_control, "tinyows")
|
157
|
+
return self._build_response(response, content.encode(), cache_control, "tinyows")
|
157
158
|
|
158
159
|
@staticmethod
|
159
|
-
def _filter_urls(content, online_resource, proxy_online_resource):
|
160
|
+
def _filter_urls(content: str, online_resource: str, proxy_online_resource: str) -> str:
|
160
161
|
if online_resource is not None and proxy_online_resource is not None:
|
161
162
|
return content.replace(online_resource, proxy_online_resource)
|
162
163
|
return content
|
163
164
|
|
164
165
|
@staticmethod
|
165
|
-
def _parse_body(body):
|
166
|
-
"""
|
167
|
-
Read the WFS-T request body and extract the referenced type-names
|
168
|
-
and request method.
|
169
|
-
"""
|
166
|
+
def _parse_body(body: str) -> Tuple[str, Set[str]]:
|
167
|
+
"""Read the WFS-T request body and extract the referenced type-names and request method."""
|
170
168
|
xml = ElementTree.fromstring(body)
|
171
169
|
wfs_request = normalize_tag(xml.tag)
|
172
170
|
|
173
171
|
# get the type names
|
174
|
-
typenames = set()
|
172
|
+
typenames: Set[str] = set()
|
175
173
|
for child in xml:
|
176
174
|
tag = normalize_tag(child.tag)
|
177
175
|
if tag == "typename":
|
@@ -0,0 +1,80 @@
|
|
1
|
+
# Copyright (c) 2021-2023, Camptocamp SA
|
2
|
+
# All rights reserved.
|
3
|
+
|
4
|
+
# Redistribution and use in source and binary forms, with or without
|
5
|
+
# modification, are permitted provided that the following conditions are met:
|
6
|
+
|
7
|
+
# 1. Redistributions of source code must retain the above copyright notice, this
|
8
|
+
# list of conditions and the following disclaimer.
|
9
|
+
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
10
|
+
# this list of conditions and the following disclaimer in the documentation
|
11
|
+
# and/or other materials provided with the distribution.
|
12
|
+
|
13
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
14
|
+
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
15
|
+
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
16
|
+
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
17
|
+
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
18
|
+
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
19
|
+
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
20
|
+
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
21
|
+
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
22
|
+
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
23
|
+
|
24
|
+
# The views and conclusions contained in the software and documentation are those
|
25
|
+
# of the authors and should not be interpreted as representing official policies,
|
26
|
+
# either expressed or implied, of the FreeBSD Project.
|
27
|
+
|
28
|
+
import logging
|
29
|
+
|
30
|
+
from pyramid.httpexceptions import HTTPNotFound
|
31
|
+
from pyramid.request import Request
|
32
|
+
from pyramid.response import Response
|
33
|
+
from pyramid.view import view_config
|
34
|
+
from tilecloud import TileCoord
|
35
|
+
from tilecloud.grid.free import FreeTileGrid
|
36
|
+
|
37
|
+
from c2cgeoportal_commons.models import DBSession, main
|
38
|
+
from c2cgeoportal_geoportal.lib.common_headers import Cache, set_common_headers
|
39
|
+
|
40
|
+
LOG = logging.getLogger(__name__)
|
41
|
+
|
42
|
+
|
43
|
+
class VectorTilesViews:
|
44
|
+
"""All the views concerning the vector tiles."""
|
45
|
+
|
46
|
+
def __init__(self, request: Request) -> None:
|
47
|
+
self.request = request
|
48
|
+
|
49
|
+
@view_config(route_name="vector_tiles") # type: ignore
|
50
|
+
def vector_tiles(self) -> Response:
|
51
|
+
settings = self.request.registry.settings["vector_tiles"]
|
52
|
+
grid = FreeTileGrid(settings["resolutions"], max_extent=settings["extent"], tile_size=256)
|
53
|
+
|
54
|
+
layer_name = self.request.matchdict["layer_name"]
|
55
|
+
|
56
|
+
z = int(self.request.matchdict["z"])
|
57
|
+
x = int(self.request.matchdict["x"])
|
58
|
+
y = int(self.request.matchdict["y"])
|
59
|
+
coord = TileCoord(z, x, y)
|
60
|
+
minx, miny, maxx, maxy = grid.extent(coord, 0)
|
61
|
+
|
62
|
+
layer = (
|
63
|
+
DBSession.query(main.LayerVectorTiles.sql)
|
64
|
+
.filter(main.LayerVectorTiles.name == layer_name)
|
65
|
+
.one_or_none()
|
66
|
+
)
|
67
|
+
if layer is None:
|
68
|
+
raise HTTPNotFound(f"Not found any vector tile layer named {layer_name}")
|
69
|
+
|
70
|
+
raw_sql = layer[0].format(
|
71
|
+
envelope=f"ST_MakeEnvelope({minx}, {miny}, {maxx}, {maxy}, {settings['srid']})"
|
72
|
+
)
|
73
|
+
|
74
|
+
result = DBSession.execute(raw_sql)
|
75
|
+
for row in result:
|
76
|
+
set_common_headers(self.request, "vector_tiles", Cache.PUBLIC)
|
77
|
+
response = self.request.response
|
78
|
+
response.content_type = "application/vnd.mapbox-vector-tile"
|
79
|
+
response.body = row[0].tobytes()
|
80
|
+
return response
|
{c2cgeoportal_geoportal-2.6.0.dist-info → c2cgeoportal_geoportal-2.8.1.180.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: c2cgeoportal-geoportal
|
3
|
-
Version: 2.
|
3
|
+
Version: 2.8.1.180
|
4
4
|
Summary: c2cgeoportal geoportal
|
5
5
|
Home-page: https://github.com/camptocamp/c2cgeoportal/
|
6
6
|
Author: Camptocamp
|
@@ -8,14 +8,17 @@ Author-email: info@camptocamp.com
|
|
8
8
|
License: UNKNOWN
|
9
9
|
Keywords: web gis geoportail c2cgeoportal geocommune pyramid
|
10
10
|
Platform: UNKNOWN
|
11
|
-
Classifier:
|
12
|
-
Classifier:
|
13
|
-
Classifier: Programming Language :: Python :: 3.7
|
11
|
+
Classifier: Development Status :: 6 - Mature
|
12
|
+
Classifier: Environment :: Web Environment
|
14
13
|
Classifier: Framework :: Pyramid
|
15
|
-
Classifier:
|
16
|
-
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application
|
14
|
+
Classifier: Intended Audience :: Other Audience
|
17
15
|
Classifier: License :: OSI Approved :: BSD License
|
18
|
-
Classifier:
|
16
|
+
Classifier: Operating System :: OS Independent
|
17
|
+
Classifier: Programming Language :: Python
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
19
|
+
Classifier: Programming Language :: Python :: 3.8
|
20
|
+
Classifier: Topic :: Scientific/Engineering :: GIS
|
21
|
+
Classifier: Typing :: Typed
|
19
22
|
Requires-Dist: Fiona
|
20
23
|
Requires-Dist: GeoAlchemy2
|
21
24
|
Requires-Dist: Mako
|
@@ -28,14 +31,19 @@ Requires-Dist: bottle
|
|
28
31
|
Requires-Dist: c2c.template (>=2.0.7)
|
29
32
|
Requires-Dist: c2cgeoportal-commons[upgrade]
|
30
33
|
Requires-Dist: c2cwsgiutils
|
34
|
+
Requires-Dist: certifi (>=2022.12.7)
|
31
35
|
Requires-Dist: defusedxml
|
32
36
|
Requires-Dist: dogpile.cache (>=0.6)
|
37
|
+
Requires-Dist: fiona (>=1.10b2)
|
33
38
|
Requires-Dist: geojson
|
39
|
+
Requires-Dist: idna (>=3.7)
|
34
40
|
Requires-Dist: isodate
|
41
|
+
Requires-Dist: jinja2 (>=3.1.3)
|
35
42
|
Requires-Dist: lingua
|
36
43
|
Requires-Dist: papyrus
|
37
|
-
Requires-Dist: psycopg2
|
44
|
+
Requires-Dist: psycopg2
|
38
45
|
Requires-Dist: pycryptodome
|
46
|
+
Requires-Dist: pygments (>=2.15.0)
|
39
47
|
Requires-Dist: pyotp
|
40
48
|
Requires-Dist: pyramid
|
41
49
|
Requires-Dist: pyramid-debugtoolbar
|
@@ -46,7 +54,10 @@ Requires-Dist: python-dateutil
|
|
46
54
|
Requires-Dist: rasterio
|
47
55
|
Requires-Dist: redis
|
48
56
|
Requires-Dist: requests
|
57
|
+
Requires-Dist: requests (>=2.31.0)
|
58
|
+
Requires-Dist: setuptools (>=65.5.1)
|
49
59
|
Requires-Dist: transaction
|
60
|
+
Requires-Dist: urllib3 (>=1.26.17)
|
50
61
|
|
51
62
|
c2cgeoportal is the server part of `GeoMapFish <http://geomapfish.org/>`_,
|
52
63
|
the client part is `ngeo <https://github.com/camptocamp/ngeo/>`_.
|
@@ -0,0 +1,191 @@
|
|
1
|
+
c2cgeoportal_geoportal/__init__.py,sha256=kXC5nxJa8-sSmZH60XEaoYnYngLSCZF_-14vUSetUso,32870
|
2
|
+
c2cgeoportal_geoportal/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
|
+
c2cgeoportal_geoportal/resources.py,sha256=6CMHJveA-nDBNHBO0MudHCu2tn0AdKXmLKrTv8Ulz08,2182
|
4
|
+
c2cgeoportal_geoportal/lib/__init__.py,sha256=d0Z_99AxtbdZAtSUT8iOpRg5_ZV0lnERmkamri5x6TM,10374
|
5
|
+
c2cgeoportal_geoportal/lib/authentication.py,sha256=5P4NWcmTDiZgSKvUbidzSHax-6ufwrIER2NBR7aP1UE,8911
|
6
|
+
c2cgeoportal_geoportal/lib/bashcolor.py,sha256=LQgOgtFUvgJ4Ed3-YW3RPjvhBMZBbXBBkUZKE4unRCI,1889
|
7
|
+
c2cgeoportal_geoportal/lib/cacheversion.py,sha256=M_0Ci0HPQASkcHbnvG33G9SOsFdRMKSHUP5G5Yt1yvI,2948
|
8
|
+
c2cgeoportal_geoportal/lib/caching.py,sha256=3tcz5ZCsdL0ByINiNFux3--zoqQbJVuYalhTPYrIDvE,6713
|
9
|
+
c2cgeoportal_geoportal/lib/check_collector.py,sha256=-x5iFUMw0NfPalG1RI6WoKTiW1BlUvHTiAJy_2mMu2s,3414
|
10
|
+
c2cgeoportal_geoportal/lib/checker.py,sha256=RdcGWUjDHowaxl5OZGM5uNrG-K5v4P5BtnfANJO3lfY,12549
|
11
|
+
c2cgeoportal_geoportal/lib/common_headers.py,sha256=sa3FqwE5_1G0heJu8ep9cZImoBqndITLA405IivY_Dc,6318
|
12
|
+
c2cgeoportal_geoportal/lib/dbreflection.py,sha256=TL5xovttqEKkkjKTgOaS1IRtrUp4pY1H8l8XIjC8l_g,9638
|
13
|
+
c2cgeoportal_geoportal/lib/filter_capabilities.py,sha256=JVx0nBWDdLMCfd0GwG7AdE4tb26DEuimkP87XEEQbXg,14434
|
14
|
+
c2cgeoportal_geoportal/lib/fulltextsearch.py,sha256=6mUdf4EydFiI7gjx2vmcc4yyRRFs4cH3gg_XdBePAww,2271
|
15
|
+
c2cgeoportal_geoportal/lib/functionality.py,sha256=DqqLx3dwBY7QxpQgcDGh8NuxE1-sWVuSPk5k3bNE2bM,6293
|
16
|
+
c2cgeoportal_geoportal/lib/headers.py,sha256=d6lelDs1fDh5xO8Dz34r-TRgSETY2bb1eEIDuk6FJHM,2622
|
17
|
+
c2cgeoportal_geoportal/lib/i18n.py,sha256=VB1xn7c_jV-E10vvphM_h14gzSk1q5_G26BcJDSOtfE,1876
|
18
|
+
c2cgeoportal_geoportal/lib/layers.py,sha256=P-ZMC63gKdGmiTDn0WP2ZB3AJGGL05YhuckVzaayXTY,4655
|
19
|
+
c2cgeoportal_geoportal/lib/lingua_extractor.py,sha256=a2diXad0FfEFcwrwOWEv_YxxPwyXvYI6Mx-A7WEdodQ,36944
|
20
|
+
c2cgeoportal_geoportal/lib/loader.py,sha256=EPaxEYoiG_oZJYVSpCr22bhGzw8wuxfkL_Oz53dKEQg,2546
|
21
|
+
c2cgeoportal_geoportal/lib/metrics.py,sha256=j1vmGEqV7RtIwk2w83bUHvAnkk_nSPDsoFHjqDsLiSU,4524
|
22
|
+
c2cgeoportal_geoportal/lib/oauth2.py,sha256=JiL7yi8JuvABfXS3H1St9kdtXnF9XrU1xyTYK5ydxA4,40555
|
23
|
+
c2cgeoportal_geoportal/lib/wmstparsing.py,sha256=e4bkKn4dowZNvHJufyal47E-kTgKzTk9xB4DKQhnAp4,12343
|
24
|
+
c2cgeoportal_geoportal/lib/xsd.py,sha256=vInVayMaucYZx9Hz4TBSN1jlSNza4H6hpPI0_W6-k0o,6043
|
25
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/cookiecutter.json,sha256=1LVOM-j_nd00J89q0EI3bQUvIysbidApaVHDibA2ydk,524
|
26
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/ci/config.yaml,sha256=LiDYqdnRyOXmGoSuvjMBxwfL7tYd1i1PXx5u8TU-Hs8,592
|
27
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/.dockerignore,sha256=rPtGQNYXYoj-D94VwnVT_x-HvqldTNoz2oT7DjGpyqk,147
|
28
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/.eslintrc.yaml,sha256=txdVU8ikuADtWxCHWjyOBtT8wiXzf-LhT9ZMVtBiwhY,241
|
29
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/.prospector.yaml,sha256=OI6NLGh_3tp2-GOvcX2mzVKGwnHU-KG8S8p-BGt_zmY,325
|
30
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/Dockerfile,sha256=qarLuvU0G8qNZXwxxH92O9PxYeA6Gb-Mnqb4mD3v_XY,2498
|
31
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/Makefile,sha256=ctHZV0-kh9voLpmgVK_ya68GI5VAKmxN9UiZVZKPyBo,147
|
32
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/alembic.ini,sha256=KpgEj3uVRBdgiTjaQDqUjy_C0z5s8t2DUPFPTUSm7_w,985
|
33
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/alembic.yaml,sha256=9HMFJ_UekLUzXM5bPtixNNkeHMalo50hKjkxM_2tG2E,458
|
34
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/development.ini,sha256=NNBSPTGrK9D5kwR1WV1yV1wXQuPFBSQG5QkW16-OcVo,3042
|
35
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/gunicorn.conf.py,sha256=7SrEUSeEsDT5UoxpA87yQJbqH-4hayNS8L9Ur5fSkKs,4086
|
36
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/language_mapping,sha256=jZNiCuWh5-LsU0oDmNviVfNyNqZibBXNc_rsv_OpUuE,27
|
37
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/lingua-client.cfg,sha256=Q5OugT3Ns7HEFxcBCejDHEkMtEUGhk__6-yONGg2ImM,117
|
38
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/lingua-server.cfg,sha256=1mRNwhmqmxlJwKucLauitmY9MHgWAyCr4N6TaqHkKsU,107
|
39
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/production.ini,sha256=ptWxF3jAE1A3IAQ7KdYSpGbPdAm3g-S-SIFXdZuFk3o,1137
|
40
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/requirements.txt,sha256=n6hSj_r5f8NmSamv1Jo7Ly6bxby8ziEeXoMmY_psgtY,55
|
41
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/setup.py,sha256=dZ-f23wZNh4TuHXCmyHRrlWR0kTVN3PKTT1FQilDeDk,694
|
42
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/tsconfig.json,sha256=NBfOaqGnwNeVW7Z9Yk3eHeX9NhqA7MteCb3oS3DKJXk,186
|
43
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.api.js,sha256=Y0x1YePxOBdTu3UzmxEMJySstqU_uzFxCqkEGCUM1J8,1981
|
44
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.apps.js,sha256=YMb7W8f0cu9y7voYCMnHKwtHoiJWcA6S0vsAab4jbMg,2453
|
45
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.commons.js,sha256=JG0whugNLn1N33A2TDOabuXuT4y-p7FAwpJagy31qcA,658
|
46
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.config.js,sha256=IFHj1YVu2aitTtQWVV6E5BaU0YDHz1qeoixaLbtRXPA,643
|
47
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/__init__.py,sha256=GEqdw3Q7gov4KlUsZNcEIbk86HipezUMVHTzzQJSdBk,1282
|
48
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/authentication.py,sha256=mjPjpZfgPPeMneKe4u95aPYIJlWcUpbSsR5-3ObWirA,426
|
49
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/dev.py,sha256=2Et_4LUWO_82DAYsPxEnH5yCX0YVY2XPhv9pzOTl8Zs,387
|
50
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/models.py,sha256=_IYgNpp7ZRKcH30eo-d--qbb11ojx7Tv2qJdVGIlsjQ,284
|
51
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/multi_organization.py,sha256=qNxledzv8JeIWTFFF8-XO163qmxztiBY_NhxLvEOCAM,158
|
52
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/resources.py,sha256=8Ey8_zvzge1A9yid7LDggHZlulbWsm21gM6Mf9LgzlI,270
|
53
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/subscribers.py,sha256=8ChZ7xVzcaOqRXIErrO4JtJqEnGWJ3y1C6Tu0ExjwGs,1352
|
54
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static-ngeo/api/index.js,sha256=rxXFRQeGxBTLmhOUmFpIaGZda1Gk5Qi_VsXdbaOfwXo,260
|
55
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static-ngeo/js/{{cookiecutter.package}}module.js,sha256=TYZUcLOinHKhzn-l35pwqe0kNOhX90TzFOVj1KyaVaI,614
|
56
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/views/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
57
|
+
c2cgeoportal_geoportal/scaffolds/advance_update/cookiecutter.json,sha256=1LVOM-j_nd00J89q0EI3bQUvIysbidApaVHDibA2ydk,524
|
58
|
+
c2cgeoportal_geoportal/scaffolds/advance_update/{{cookiecutter.project}}/geoportal/CONST_Makefile,sha256=0s9CTP21J_Y5bBuCoGZKEvSI4PPrmguf66UCN2WP6KI,3993
|
59
|
+
c2cgeoportal_geoportal/scaffolds/create/cookiecutter.json,sha256=1LVOM-j_nd00J89q0EI3bQUvIysbidApaVHDibA2ydk,524
|
60
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.dockerignore,sha256=aU-IzKK1qmFAJNiCLYT6yB6LVTEsDBcO5nBW3q8M-MQ,351
|
61
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.editorconfig,sha256=cpHwgH23FLEQ6gV2O0Xa-iKxCaaVHhTKiFA91moh1sQ,297
|
62
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.gitignore,sha256=NNaSfLn7_4sIXta39BzRfGQJfUqBq-U4lbgtkXStgkY,449
|
63
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.prettierignore,sha256=PcDfauWwzv1pnJgC9HR1zvv06Q01CwzGzzc0iLSNcZk,9
|
64
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.prettierrc.yaml,sha256=WbjZCtw0hBlDB2FYJanFJzAvUsNTxgwn62YBZ-Xbwkw,43
|
65
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/Dockerfile,sha256=zJzSNMMy78GdhegVkwEj0jSIU-r_bu9i0_e9-c25MU0,3194
|
66
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/Makefile,sha256=uypJUSISjWZ74-j38d2-45ld7SsfFfAGzHsqythL6mY,3087
|
67
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/README.rst,sha256=PvydIFv4NS8CMqmLrCTm2TvIS0GNkWgiI-VwQvWBF5o,423
|
68
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/build,sha256=QPDeazuKeoh0POcQPInNkubIGjq7tpDx9xV-hW35D5c,7331
|
69
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose-db.yaml,sha256=JE5fBz3d3kYoBeUbCDvbKYNhu8QOzD0KLDeJD8AKMZI,534
|
70
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose-lib.yaml,sha256=1S7LhxJ-Ow8M4ylubR4_V9wT3DPcms8XE1Iig_oI9l0,13247
|
71
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose-qgis.yaml,sha256=jllE7NrAnwljsyknDZWYl2FA9s-R-K_KBaJS3ubhJZE,590
|
72
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose.override.sample.yaml,sha256=ZJ-ea8rBeVU5HvlxCpCnzJBdxruYexgCtjDLmQWAs0g,2561
|
73
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose.yaml,sha256=jUpbs89PVJCRTQ6KFSUnfFE_RxHt9r787lIFtbmi_aQ,2396
|
74
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/env.default,sha256=ThvJkKm-Q1pWoC9bOyutULthuKFR90v0d0LoB5xpy-Y,3129
|
75
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/env.project,sha256=EoeIag5EnozSNMSETW7G9-dGPnG5NIfRhcxU5ihM_rU,2070
|
76
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/project.yaml,sha256=3tNtVcoIug5LNZoZsUpjm_YRCZQMAKzYWNL9ZdjkPC8,495
|
77
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/pyproject.toml,sha256=aE-mE3kOcc7pgCU9KimHBWtTsBLCdlbtjxc1f4jEcLg,107
|
78
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/run_alembic.sh,sha256=VcrDFPAGlrxXtn4N8RcPhI90uZ8shDrGowALuwx8gnM,235
|
79
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/setup.cfg,sha256=_Oj7PwahkYUSneIrjn2mXwo0m6b27dTCZhAwWXFWqUA,221
|
80
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/spell-ignore-words.txt,sha256=xREYVDbYmOz5vpSU0A6Lijb_I--zz6JSTmirxyX0dwI,30
|
81
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/main.yaml,sha256=AlYwOIOPjoroT75_EIm0OZwkpIF39sliNqTfjIE9T2k,1594
|
82
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/rebuild.yaml,sha256=mPS3D0gwSPasPwEARAbHhUwDYJHND7D3fewoiBtvU-8,1314
|
83
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/update_l10n.yaml,sha256=AQZvF8Jc-R6IQtMXOsKlTj6CcCgqY-Y3CvlXy4HNDGQ,2335
|
84
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/ci/config.yaml,sha256=wYdG43pQEqgOvrNQQdENe5vnD7Y1wbXt4G2N43l4b5A,485
|
85
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/ci/docker-compose-check,sha256=7lnVTaaoUrC5MPGpwH2IWbzYc2KaeQMWguahsoY9Rf8,615
|
86
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/ci/requirements.txt,sha256=HtayxIhr_FBCf2wz0nTt6QOH_nLhs1quNvhKyBFpBkI,35
|
87
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/vars.yaml,sha256=fj2cC59FhAQeE7TDSpX0ZNY-XOksOolt3r7bRknisio,11635
|
88
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/locale/en/LC_MESSAGES/{{cookiecutter.package}}_geoportal-client.po,sha256=hKLs5f7EJz05ACRtyTlCtssCo99PMuj-FfOJXchMZFk,162
|
89
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/robot.txt.tmpl,sha256=JR_vIqMlHq1oSgyWPN2mtZyEpsqhjKQQecaW2pxvK54,88
|
90
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/desktop.css,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
91
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/iframe_api.css,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
92
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/mobile.css,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
93
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/banner_left.png,sha256=ExK_hOKzWaD4rgrSFy3xw88JrJai5n8JEXy-dEmvSLo,13799
|
94
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/banner_right.png,sha256=t65I5iM-wl_7a6k3NLbVT5d725siXigH2dsOhtmC3PU,6018
|
95
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/blank.png,sha256=zp8uuLPeZ13bYveFL5dI20zQMqzo_0SSMZGNV49JZfI,259
|
96
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker-blue.png,sha256=aALxnIGsafvssGB3fEmLWUNb7X3xz7JQlnoxUJhkNgg,758
|
97
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker-gold.png,sha256=O5qV6Vb1Y9QMiszH34x5PA1wX_SnVZ6Qhv7vsy8zr-g,703
|
98
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker-green.png,sha256=ucJpwxgJnaA4dUnDk779X1ZLxnYowMOTAq_CMeGw8PQ,753
|
99
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker.png,sha256=wj0-D2abaL-A-OIoUbEeuSwMc_e1zf8zE4lVpra9xYY,601
|
100
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/demo.map.tmpl,sha256=mFtC2pzbN3-KQpZxQbhV8fMeQaZikMyZ5N-A9RXaxYE,7269
|
101
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts.conf,sha256=uG3B6GUKIvTRVLO025Ecm5lh27sEMpmmzWUzFjNh8Qg,351
|
102
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/mapserver.conf,sha256=xRv4CqlYGLUm5t2y4G2PVCQKMRgufX0snvNz2-uBJVY,187
|
103
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/mapserver.map.tmpl,sha256=1kpzZv7rME0MbXw-2rQAvoh1_AshvbVFTzMqb6bXAnc,2698
|
104
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/tinyows.xml.tmpl,sha256=hI6mHamiwQW40t2Rf-NRHwOtkPdxL4YrkVS7MlUYPb8,816
|
105
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/data/Readme.txt,sha256=cOp2unb8vqlUqADg501IDzQbyLGZodCXyGH19fCEVUo,2891
|
106
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/data/TM_EUROPE_BORDERS-0.3.sql,sha256=pYpbBi2P61thQtpochj_-tl_kQIIVAJgZsemTYdRUBo,1588593
|
107
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Arial.ttf,sha256=NcDzVZ2NtWnjbDEJW4pg1EFkPZX1kTneQOI_ragZuDM,275572
|
108
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Arialbd.ttf,sha256=QESqa1vrvDaYAga0WwqqqlaBVSpIvK20F0bV0dcf17Q,286620
|
109
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Arialbi.ttf,sha256=Lzcc2dlrOsVEUZ2FwW3EPOrN_Oo1CQ7o3fPsWFfFAyg,224692
|
110
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Ariali.ttf,sha256=cK3iMxdaamZ15FAUYa-TJub3ix_994fKDaWrD8jJz9Y,206132
|
111
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/NotoSans-Bold.ttf,sha256=aL3Veh4eYmY6CzcsciQgS4KomCC5zzA5Ezf2HwxecSM,415132
|
112
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/NotoSans-BoldItalic.ttf,sha256=i-2wEn6RSsOt4je0AtM-VzrMS9ugueOYEnLK40_5hXo,290436
|
113
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/NotoSans-Italic.ttf,sha256=fWFOfubTLPuiYxv5hrx-xlodmXO7QUy55a632thch4c,279268
|
114
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/NotoSans-Regular.ttf,sha256=nptMU70lytnATTcPEzpeMtFm0NVOKprWy6SjH804LVs,414820
|
115
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Verdana.ttf,sha256=lu0UlJyktzks_yNbnEHVXBJTgqu-DA08K53WaJfK4Ms,139640
|
116
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Verdanab.ttf,sha256=yPUGW6kWgPWWrzsDeOLD5xO5WlI749Vq4YXKK49fCyM,136032
|
117
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Verdanai.ttf,sha256=kbWRhmVvUpclMaEUM8hm_VbmLsTmHiYhotunDI8ZqCg,154264
|
118
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Verdanaz.ttf,sha256=aY4iD0j0pA53r36zSVjI_QLx4Yw7o_Nl2Tv6LtRHTIA,153324
|
119
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/A3_Landscape.jrxml,sha256=LWasD8pgHCedWvKcByvnzzASgae3XzNH3MGqG-rEpSM,10262
|
120
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/A3_Portrait.jrxml,sha256=WVXAQAvaKYDEFE3cS6gwEeHsN_n-EKmsq9y0oiu05HU,8967
|
121
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/A4_Landscape.jrxml,sha256=eO4CQt8iCyWVDs2pGPm6dYEQtjA6PADcqe0t5tagR1Y,9822
|
122
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/A4_Portrait.jrxml,sha256=pNgpWqChIMOVP9AEcloSRlNjgWRaxtgCRMxNyRDP9Bw,7096
|
123
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/config.yaml.tmpl,sha256=QxH5xgjetuB_d3z0ktD5ZKctyNDAb8K9Ku0Y6yaOO24,4914
|
124
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/legend.jrxml,sha256=qRxN0MC4KIyxxLNiCdriO0FEUZerzrkTu-cSjexx7dE,5310
|
125
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/localisation.properties,sha256=n7F7W9ELl53JsNCDMwoFIlWravXB-K4VCQdo_Yjanx8,98
|
126
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/localisation_fr.properties,sha256=OBh4sWxMNW8dNgcXr7VpTW8HemJIQoxRmPBLZ9MDVmI,102
|
127
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/logo.png,sha256=ExK_hOKzWaD4rgrSFy3xw88JrJai5n8JEXy-dEmvSLo,13799
|
128
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/north.svg,sha256=rnHO-cNiy9ZyfwvI-o2dYipzuu-vh9rn0nE45FjfOPo,2925
|
129
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/results.jrxml,sha256=gf5grUvt-oG_H0LnsNvBWMDGqvH3uuW_wfy0O-n5ui4,1309
|
130
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/qgisserver/pg_service.conf.tmpl,sha256=WcjfsfsfNLHAfbg84HgEIb64EDnnJJWGnyAdPTXD0PI,296
|
131
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/scripts/db-backup,sha256=nE7vMj42Eoi3A2HivX9b9KSjioKrG9sksWOJy0Je36Q,4446
|
132
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/scripts/db-restore,sha256=_AeXNkjTmhsBPJ4JrGzbl3uEpQw0VLVAIqLBOFJ6t1A,4637
|
133
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
134
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/tests/test_app.py,sha256=VBcCdHJokg4UKA2hzM_xVElQCnBqJ7O8NVO1Iro7-t0,1564
|
135
|
+
c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/tilegeneration/config.yaml.tmpl,sha256=y-X8uAZP9mEq3k6NygBI_FynZeEQ_IatFPXkzWs5UAQ,6181
|
136
|
+
c2cgeoportal_geoportal/scaffolds/update/cookiecutter.json,sha256=x3FFn3b67GPGCsjg36iGXCudjaTSfwGHcwHS6HHVpPQ,539
|
137
|
+
c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/.upgrade.yaml,sha256=_ctFv4lgUP4_7LozPND8jKwixN5jeaiB0bGSrnH4jV4,2559
|
138
|
+
c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/CONST_CHANGELOG.txt,sha256=2vZ20rEGchwMzvvFMBsbY2glEZsYBItm9l5llbWMec4,8617
|
139
|
+
c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/CONST_create_template/tests/test_testapp.py,sha256=Mxx4z7TnM3VHF8xxEorZjIw9uQRNGM7y5EHW7VYaEb8,1796
|
140
|
+
c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/geoportal/CONST_config-schema.yaml,sha256=bjpHnvjPDNr-wVodb3NC9XkCcr-hnJo8JhirX2t38MU,21183
|
141
|
+
c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/geoportal/CONST_vars.yaml,sha256=gQOPZqPUitn674cVrf-DonrRWZmZ7sLAE1NL9YXfBms,47538
|
142
|
+
c2cgeoportal_geoportal/scripts/__init__.py,sha256=elsD0ciAiyAmJKSfNzx67ZhA74QQIJ6R34zgp3Ac7Yw,2935
|
143
|
+
c2cgeoportal_geoportal/scripts/c2cupgrade.py,sha256=j2dl2bBTpSIT6J0JG6nz7PbjOl8_Umm3lnH3x8wnXsA,36311
|
144
|
+
c2cgeoportal_geoportal/scripts/create_demo_theme.py,sha256=3RmUnFj1V9A3KMCCSYplhemN4faNQbnJgDmeunQ_VSo,3081
|
145
|
+
c2cgeoportal_geoportal/scripts/manage_users.py,sha256=-9ExER-kYHh6OMsoOAuLhnjEOLoAjzzbGEcVZoZwnSg,5468
|
146
|
+
c2cgeoportal_geoportal/scripts/pcreate.py,sha256=e1_1E5kZr4n_r2ac97Xdu1oMX8uZ8E-KVtcAuNmQDAY,11482
|
147
|
+
c2cgeoportal_geoportal/scripts/theme2fts.py,sha256=MIPG37lcgQODLFqgBifttIJJtotpNRQkGPLill8WD7g,13727
|
148
|
+
c2cgeoportal_geoportal/scripts/urllogin.py,sha256=qGOOvx2ZN3qnENGzo8NScRqfFC06l1yc48vU6Qx3MBo,3319
|
149
|
+
c2cgeoportal_geoportal/templates/login.html,sha256=0xcwQQDM2uv3Li0qnS91eyjsVtK0ZGiPNld7DXKadco,2475
|
150
|
+
c2cgeoportal_geoportal/templates/notlogin.html,sha256=cJx7z50IKQl7Fb9KXv03iSxh6pgff0dbnxa9FIHNkxM,1528
|
151
|
+
c2cgeoportal_geoportal/templates/testi18n.html,sha256=Br6Vf5zTDdaH0L07saV_8dIIT3C9xnSqh4quzTELo2s,369
|
152
|
+
c2cgeoportal_geoportal/views/__init__.py,sha256=dRkrULopklvgOGEH481Sv381VcwBt9dgwevn8m_QQ0g,2669
|
153
|
+
c2cgeoportal_geoportal/views/dev.py,sha256=e1oZkKwwQvssMOzg3Zao3Jm4WNIFVwEI3EOR1Xj3-_Y,2533
|
154
|
+
c2cgeoportal_geoportal/views/dynamic.py,sha256=dwT2yIBnZYxt7jq3jg5oodU_1MZtjJea0K608lGefhU,8613
|
155
|
+
c2cgeoportal_geoportal/views/entry.py,sha256=eeJ2xpohmG6F9Ujw5L81oD4q8Lu3rWtja3ScO0Mvsfs,5780
|
156
|
+
c2cgeoportal_geoportal/views/fulltextsearch.py,sha256=0-KA3Pyx52cZWx46uw84jfBM9EOjUx4bMMZkBgEsKFI,8330
|
157
|
+
c2cgeoportal_geoportal/views/geometry_processing.py,sha256=LpzAR6RgGS9XfsGLmNqD3dq7ghhZ5Q_eSZgiD8f3XZU,2946
|
158
|
+
c2cgeoportal_geoportal/views/i18n.py,sha256=7Avpt-aVEVlS3SrwtZkvuJ8_0gBZvVrCviyaIZBx7jY,5292
|
159
|
+
c2cgeoportal_geoportal/views/layers.py,sha256=obRfvJE_IhqT0oQdyjv1Lce_KZVb8GWDrkpMZNYqZH0,28773
|
160
|
+
c2cgeoportal_geoportal/views/login.py,sha256=H4BCgOrhlbx34g5J1Sx8SdpoEoRCyL6PFRv19du_Vdo,21302
|
161
|
+
c2cgeoportal_geoportal/views/mapserverproxy.py,sha256=b4c0-uuoBk8YVccpQ_6UVVqUzenrV-2edfBE0Q4c9Bw,8167
|
162
|
+
c2cgeoportal_geoportal/views/memory.py,sha256=nb2repOnil0PdziEjCLOZ-84LFKLkdAlKTnnMQoXDdA,3627
|
163
|
+
c2cgeoportal_geoportal/views/ogcproxy.py,sha256=xnbrLpB8ZZSU-P1_aM_9LZeFr7GJzbePB05Ls6tluTU,5231
|
164
|
+
c2cgeoportal_geoportal/views/pdfreport.py,sha256=jRXOZxNwB2uMsFFNaUOb3Axc1W_ZW00mQ9EYRoENppE,9595
|
165
|
+
c2cgeoportal_geoportal/views/printproxy.py,sha256=rsNXmZ1IBv9rXaCrCVRcc9cWkHOa3rX9NJgNFDNIp4A,5977
|
166
|
+
c2cgeoportal_geoportal/views/profile.py,sha256=WOjnkLcL3nakQG0t2Zj6M0FWyG3T874nn7MXaa1Dl18,5394
|
167
|
+
c2cgeoportal_geoportal/views/proxy.py,sha256=dQ5Xot1R4FKH-zkGPei5mKUzYqguYztrgo1v93qJ1_k,10458
|
168
|
+
c2cgeoportal_geoportal/views/raster.py,sha256=zdwXumFZZNx1Gxlqy_s_6Cm8l50vN6CUMkXYHsbWIdI,7567
|
169
|
+
c2cgeoportal_geoportal/views/resourceproxy.py,sha256=Wxzb0HkWQtL5JZmbNFfTP9-m83vKImsURGIotC3qbXc,3181
|
170
|
+
c2cgeoportal_geoportal/views/shortener.py,sha256=EP2geo-9hfce0ZQ6kzwpwnOb3ruGY2KwxBDtepJKYQI,6205
|
171
|
+
c2cgeoportal_geoportal/views/theme.py,sha256=BHsvtuWqTqlpy1eyvOH5h9oGLYgdo4cuf1qdJTAiBTQ,52696
|
172
|
+
c2cgeoportal_geoportal/views/tinyowsproxy.py,sha256=cfWyZc4mn003TF7XY03NC2S8svZoUWHScrIaS9i99Cc,7831
|
173
|
+
c2cgeoportal_geoportal/views/vector_tiles.py,sha256=jerhFjx3_qImXz0a3eQI4FLSSe0CGmkjSt6pAXzzxUg,3460
|
174
|
+
tests/__init__.py,sha256=KxmbgvRWDSJoEDH1cXnDIjbfBsgCzs2KdkTPuzYMq84,3826
|
175
|
+
tests/test_cachebuster.py,sha256=asI1X_qI0MGklYuKuWyqvCPVbvhQcUe4fX91Dk-hUsE,2923
|
176
|
+
tests/test_caching.py,sha256=8mHfSvQPEBq6sT6wvHC5Hk3mpJsyHBuOVMp4w0k37j8,12499
|
177
|
+
tests/test_checker.py,sha256=NaU6Ejg9XbwS2cwqXCtz5mJPRdBIPZb3d1MkXVufr0k,3638
|
178
|
+
tests/test_decimaljson.py,sha256=CQrkqWs66kmq1iYur5kjzKhvdhw9b4TMcKEsuVayxA4,2223
|
179
|
+
tests/test_headerstween.py,sha256=3PkfTbsUq2C7fEsckO_4aYu9-XGBSeOgf86ENSqx76o,2524
|
180
|
+
tests/test_i18n.py,sha256=-mAW0UyeNF9uqkq6O_Z0mK8gGwlHlTWI0gb9Ri_bk1M,994
|
181
|
+
tests/test_init.py,sha256=TfALiPg0pVdp7EoBDwZTMNBPWK1cyXG1H3p3hwUwVAU,7279
|
182
|
+
tests/test_locale_negociator.py,sha256=JDRzF8_yzsgYOWHlyd_7ezOqSCvudKjeN2QjExS0a4A,3044
|
183
|
+
tests/test_mapserverproxy_route_predicate.py,sha256=SzILSSzIuilzIkUYVPZiVzLwW1duQvCxxEvxSLk4p1o,3043
|
184
|
+
tests/test_raster.py,sha256=82NJ2MXgZlMqs0ytN-VgNw376iURdk4PkAg__dyh5ns,11948
|
185
|
+
tests/test_wmstparsing.py,sha256=xjA8nJuXFl3H5Bfs4sJw_8qX8E8qvAALK7Hs2-DTP2A,9054
|
186
|
+
tests/xmlstr.py,sha256=rkTKSU4FGjupBKLx75H8o-goB0KbQrxDvdpc6xVX_uQ,5985
|
187
|
+
c2cgeoportal_geoportal-2.8.1.180.dist-info/METADATA,sha256=Xpb1Xha982XJ0WLvd825UoaPfcEaKXKl9N7Z5BJR7VI,2172
|
188
|
+
c2cgeoportal_geoportal-2.8.1.180.dist-info/WHEEL,sha256=a-zpFRIJzOq5QfuhBzbhiA1eHTzNCJn8OdRvhdNX0Rk,110
|
189
|
+
c2cgeoportal_geoportal-2.8.1.180.dist-info/entry_points.txt,sha256=w0xGr1Bo8q5GBFiP4JgqbSIg-bNhG7bsGoEaGSTfzaE,1415
|
190
|
+
c2cgeoportal_geoportal-2.8.1.180.dist-info/top_level.txt,sha256=PJIbY7Nx51dDrJ052f5mDA7c6Tehm5aD-Gb32L_CtJA,29
|
191
|
+
c2cgeoportal_geoportal-2.8.1.180.dist-info/RECORD,,
|
@@ -2,6 +2,7 @@
|
|
2
2
|
c2cupgrade = c2cgeoportal_geoportal.scripts.c2cupgrade:main
|
3
3
|
create-demo-theme = c2cgeoportal_geoportal.scripts.create_demo_theme:main
|
4
4
|
manage-users = c2cgeoportal_geoportal.scripts.manage_users:main
|
5
|
+
pcreate = c2cgeoportal_geoportal.scripts.pcreate:main
|
5
6
|
theme2fts = c2cgeoportal_geoportal.scripts.theme2fts:main
|
6
7
|
urllogin = c2cgeoportal_geoportal.scripts.urllogin:main
|
7
8
|
|
@@ -21,6 +22,8 @@ c2cgeoportal+egg = c2cgeoportal_geoportal.lib.loader:Loader
|
|
21
22
|
c2cgeoportal+ini = c2cgeoportal_geoportal.lib.loader:Loader
|
22
23
|
|
23
24
|
[pyramid.scaffold]
|
25
|
+
c2cgeoportal_advance_create = c2cgeoportal_geoportal.scaffolds:TemplateAdvanceCreate
|
26
|
+
c2cgeoportal_advance_update = c2cgeoportal_geoportal.scaffolds:TemplateAdvanceUpdate
|
24
27
|
c2cgeoportal_create = c2cgeoportal_geoportal.scaffolds:TemplateCreate
|
25
28
|
c2cgeoportal_update = c2cgeoportal_geoportal.scaffolds:TemplateUpdate
|
26
29
|
|
tests/__init__.py
CHANGED
@@ -1,6 +1,4 @@
|
|
1
|
-
#
|
2
|
-
|
3
|
-
# Copyright (c) 2011-2019, Camptocamp SA
|
1
|
+
# Copyright (c) 2011-2023, Camptocamp SA
|
4
2
|
# All rights reserved.
|
5
3
|
|
6
4
|
# Redistribution and use in source and binary forms, with or without
|
@@ -28,23 +26,29 @@
|
|
28
26
|
# either expressed or implied, of the FreeBSD Project.
|
29
27
|
|
30
28
|
|
31
|
-
"""
|
29
|
+
"""
|
30
|
+
Pyramid application test package.
|
32
31
|
"""
|
33
32
|
|
34
33
|
import logging
|
35
34
|
import os
|
36
35
|
import urllib.parse
|
36
|
+
import warnings
|
37
37
|
|
38
|
+
import sqlalchemy.exc
|
38
39
|
from pyramid.testing import DummyRequest as PyramidDummyRequest
|
39
40
|
|
40
41
|
from c2cgeoportal_geoportal.lib import caching
|
41
42
|
|
43
|
+
with warnings.catch_warnings():
|
44
|
+
warnings.simplefilter("ignore", category=sqlalchemy.exc.SAWarning)
|
45
|
+
|
42
46
|
|
43
47
|
class DummyRequest(PyramidDummyRequest):
|
44
48
|
def __init__(self, *args, **kwargs):
|
45
49
|
super().__init__(*args, **kwargs)
|
46
50
|
self.client_addr = "1.1.1.1"
|
47
|
-
self.
|
51
|
+
self.referrer = None
|
48
52
|
if self.registry.settings is None:
|
49
53
|
self.registry.settings = {}
|
50
54
|
|
@@ -54,6 +58,7 @@ def setup_common():
|
|
54
58
|
|
55
59
|
caching.init_region({"backend": "dogpile.cache.null"}, "std")
|
56
60
|
caching.init_region({"backend": "dogpile.cache.null"}, "obj")
|
61
|
+
caching.init_region({"backend": "dogpile.cache.null"}, "ogc-server")
|
57
62
|
|
58
63
|
|
59
64
|
def create_dummy_request(additional_settings=None, *args, **kargs):
|
tests/test_cachebuster.py
CHANGED
@@ -1,6 +1,4 @@
|
|
1
|
-
#
|
2
|
-
|
3
|
-
# Copyright (c) 2011-2019, Camptocamp SA
|
1
|
+
# Copyright (c) 2011-2023, Camptocamp SA
|
4
2
|
# All rights reserved.
|
5
3
|
|
6
4
|
# Redistribution and use in source and binary forms, with or without
|
@@ -60,7 +58,7 @@ class TestCacheBuster(TestCase):
|
|
60
58
|
ctf = CachebusterTween(handler, registry)
|
61
59
|
request = MyRequest("/test/123456/build.css")
|
62
60
|
ctf(request)
|
63
|
-
|
61
|
+
assert request.path_info == "/test/build.css"
|
64
62
|
|
65
63
|
def test_noreplace(self):
|
66
64
|
from c2cgeoportal_geoportal.lib.cacheversion import CachebusterTween
|
@@ -70,4 +68,4 @@ class TestCacheBuster(TestCase):
|
|
70
68
|
ctf = CachebusterTween(handler, registry)
|
71
69
|
request = MyRequest("/test2/123456/build.css")
|
72
70
|
ctf(request)
|
73
|
-
|
71
|
+
assert request.path_info == "/test2/123456/build.css"
|