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,14 +1,20 @@
|
|
1
|
-
|
1
|
+
ARG {{cookiecutter.geomapfish_version_tag}}
|
2
|
+
ARG {{cookiecutter.geomapfish_major_version_tag}}
|
3
|
+
|
4
|
+
FROM camptocamp/geomapfish-tools:{{cookiecutter.geomapfish_version_tag_env}} as builder
|
2
5
|
LABEL maintainer Camptocamp "info@camptocamp.com"
|
3
6
|
|
7
|
+
COPY requirements.txt /tmp/requirements.txt
|
8
|
+
RUN --mount=type=cache,target=/root/.cache \
|
9
|
+
python3 -m pip install --disable-pip-version-check --requirement=/tmp/requirements.txt
|
10
|
+
|
4
11
|
WORKDIR /app
|
5
12
|
COPY webpack.*.js Makefile CONST_Makefile /app/
|
6
|
-
COPY {{package}}_geoportal/static-ngeo /app/{{package}}_geoportal/static-ngeo
|
13
|
+
COPY {{cookiecutter.package}}_geoportal/static-ngeo /app/{{cookiecutter.package}}_geoportal/static-ngeo
|
7
14
|
RUN make apps
|
8
15
|
|
9
16
|
COPY . /app
|
10
17
|
|
11
|
-
RUN make checks
|
12
18
|
RUN make build
|
13
19
|
RUN mv webpack.apps.js webpack.apps.js.tmpl
|
14
20
|
|
@@ -17,12 +23,11 @@ CMD [ "webpack-dev-server", "--mode=development", "--debug", "--watch", "--no-in
|
|
17
23
|
|
18
24
|
###############################################################################
|
19
25
|
|
20
|
-
FROM camptocamp/geomapfish:{{
|
26
|
+
FROM camptocamp/geomapfish:{{cookiecutter.geomapfish_major_version_tag_env}} as runner
|
21
27
|
|
22
28
|
COPY requirements.txt /tmp/requirements.txt
|
23
|
-
RUN \
|
24
|
-
|
25
|
-
rm --recursive --force /tmp/* /var/tmp/* /root/.cache/*
|
29
|
+
RUN --mount=type=cache,target=/root/.cache \
|
30
|
+
python3 -m pip install --disable-pip-version-check --requirement=/tmp/requirements.txt
|
26
31
|
|
27
32
|
WORKDIR /app
|
28
33
|
COPY . /app
|
@@ -33,10 +38,11 @@ COPY --from=builder /etc/static-ngeo/* /etc/static-ngeo/
|
|
33
38
|
COPY --from=builder /app/alembic.ini /app/alembic.yaml ./
|
34
39
|
RUN chmod go+w /etc/static-ngeo/
|
35
40
|
|
36
|
-
RUN
|
37
|
-
python3 -m
|
38
|
-
|
39
|
-
|
41
|
+
RUN --mount=type=cache,target=/root/.cache \
|
42
|
+
python3 -m pip install --disable-pip-version-check --editable=/app/ \
|
43
|
+
&& python3 -m compileall -q /usr/local/lib/python3.* \
|
44
|
+
-x '/(ptvsd|.*pydev.*|networkx)/' \
|
45
|
+
&& python3 -m compileall -q /app/{{cookiecutter.package}}_geoportal -x /app/{{cookiecutter.package}}_geoportal/static.*
|
40
46
|
|
41
47
|
ARG GIT_HASH
|
42
48
|
RUN c2cwsgiutils-genversion ${GIT_HASH}
|
@@ -45,7 +51,7 @@ ARG PGSCHEMA
|
|
45
51
|
ENV PGSCHEMA=${PGSCHEMA}
|
46
52
|
|
47
53
|
ENTRYPOINT [ "/usr/bin/eval-templates" ]
|
48
|
-
CMD ["
|
54
|
+
CMD ["gunicorn", "--paste=/app/production.ini"]
|
49
55
|
|
50
56
|
ENV VISIBLE_ENTRY_POINT=/ \
|
51
57
|
AUTHTKT_TIMEOUT=86400 \
|
@@ -60,7 +66,8 @@ ENV VISIBLE_ENTRY_POINT=/ \
|
|
60
66
|
C2CGEOPORTAL_LOG_LEVEL=INFO \
|
61
67
|
C2CWSGIUTILS_LOG_LEVEL=INFO \
|
62
68
|
GUNICORN_LOG_LEVEL=INFO \
|
63
|
-
SQL_LOG_LEVEL=
|
69
|
+
SQL_LOG_LEVEL=WARNING \
|
64
70
|
DOGPILECACHE_LOG_LEVEL=INFO \
|
65
|
-
OTHER_LOG_LEVEL=
|
66
|
-
DEVELOPMENT=
|
71
|
+
OTHER_LOG_LEVEL=WARNING \
|
72
|
+
DEVELOPMENT=0 \
|
73
|
+
LOG_TYPE=console
|
@@ -1,16 +1,30 @@
|
|
1
|
+
###
|
2
|
+
# app configuration
|
3
|
+
# https://docs.pylonsproject.org/projects/pyramid/en/1.6-branch/narr/environment.html
|
4
|
+
# this file consider that you use paste.
|
5
|
+
###
|
6
|
+
|
1
7
|
[app:app]
|
2
|
-
use = egg:{{package}}_geoportal
|
8
|
+
use = egg:{{cookiecutter.package}}_geoportal
|
3
9
|
filter-with = proxy-prefix
|
4
|
-
|
5
|
-
pyramid.
|
6
|
-
pyramid.
|
7
|
-
pyramid.
|
8
|
-
pyramid.
|
9
|
-
pyramid.
|
10
|
-
|
11
|
-
|
12
|
-
|
10
|
+
|
11
|
+
pyramid.reload_templates = %(DEVELOPMENT)s
|
12
|
+
pyramid.debug_authorization = %(DEVELOPMENT)s
|
13
|
+
pyramid.debug_notfound = %(DEVELOPMENT)s
|
14
|
+
pyramid.debug_routematch = %(DEVELOPMENT)s
|
15
|
+
pyramid.debug_templates = %(DEVELOPMENT)s
|
16
|
+
|
17
|
+
pyramid.includes = pyramid_debugtoolbar
|
18
|
+
# Be careful when manipulate this,
|
19
|
+
# if a hacker has access to the debug toolbar,
|
20
|
+
# it's a severe security issue
|
21
|
+
# With the provided values, the debug toolbar is only available from the Docker network
|
22
|
+
debugtoolbar.hosts = 172.17.0.0/16
|
23
|
+
172.18.0.0/16
|
24
|
+
172.19.0.0/16
|
25
|
+
mako.directories = {{cookiecutter.package}}_geoportal:templates
|
13
26
|
c2cgeoportal_geoportal:templates
|
27
|
+
|
14
28
|
authtkt_secret = %(AUTHTKT_SECRET)s
|
15
29
|
authtkt_cookie_name = %(AUTHTKT_COOKIENAME)s
|
16
30
|
authtkt_timeout = %(AUTHTKT_TIMEOUT)s
|
@@ -23,13 +37,18 @@ basicauth = %(BASICAUTH)s
|
|
23
37
|
|
24
38
|
app.cfg = /etc/geomapfish/config.yaml
|
25
39
|
|
40
|
+
tm.annotate_user = false
|
41
|
+
|
42
|
+
[server:main]
|
43
|
+
use = egg:waitress#main
|
44
|
+
listen = *:8080
|
45
|
+
|
26
46
|
[filter:proxy-prefix]
|
27
47
|
use = egg:PasteDeploy#prefix
|
28
48
|
prefix = %(VISIBLE_ENTRY_POINT)s
|
29
49
|
|
30
50
|
[pipeline:main]
|
31
|
-
pipeline =
|
32
|
-
app
|
51
|
+
pipeline = egg:c2cwsgiutils#client_info egg:c2cwsgiutils#sentry app
|
33
52
|
|
34
53
|
###
|
35
54
|
# logging configuration
|
@@ -37,7 +56,7 @@ pipeline =
|
|
37
56
|
###
|
38
57
|
|
39
58
|
[loggers]
|
40
|
-
keys = root, sqlalchemy, gunicorn, c2cgeoportal_commons, c2cgeoportal_geoportal, c2cgeoportal_admin, {{package}}_geoportal, c2cwsgiutils, dogpilecache
|
59
|
+
keys = root, sqlalchemy, gunicorn, c2cgeoportal_commons, c2cgeoportal_geoportal, c2cgeoportal_admin, {{cookiecutter.package}}_geoportal, c2cwsgiutils, dogpilecache
|
41
60
|
|
42
61
|
[handlers]
|
43
62
|
keys = console
|
@@ -64,10 +83,10 @@ level = %(C2CGEOPORTAL_LOG_LEVEL)s
|
|
64
83
|
handlers =
|
65
84
|
qualname = c2cgeoportal_admin
|
66
85
|
|
67
|
-
[logger_{{package}}_geoportal]
|
86
|
+
[logger_{{cookiecutter.package}}_geoportal]
|
68
87
|
level = %(LOG_LEVEL)s
|
69
88
|
handlers =
|
70
|
-
qualname = {{package}}_geoportal
|
89
|
+
qualname = {{cookiecutter.package}}_geoportal
|
71
90
|
|
72
91
|
[logger_c2cwsgiutils]
|
73
92
|
level = %(C2CWSGIUTILS_LOG_LEVEL)s
|
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/gunicorn.conf.py
ADDED
@@ -0,0 +1,100 @@
|
|
1
|
+
# Copyright (c) 2019-2024, Camptocamp SA
|
2
|
+
# All rights reserved.
|
3
|
+
|
4
|
+
# Redistribution and use in source and binary forms, with or without
|
5
|
+
# modification, are permitted provided that the following conditions are met:
|
6
|
+
|
7
|
+
# 1. Redistributions of source code must retain the above copyright notice, this
|
8
|
+
# list of conditions and the following disclaimer.
|
9
|
+
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
10
|
+
# this list of conditions and the following disclaimer in the documentation
|
11
|
+
# and/or other materials provided with the distribution.
|
12
|
+
|
13
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
14
|
+
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
15
|
+
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
16
|
+
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
17
|
+
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
18
|
+
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
19
|
+
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
20
|
+
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
21
|
+
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
22
|
+
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
23
|
+
|
24
|
+
# The views and conclusions contained in the software and documentation are those
|
25
|
+
# of the authors and should not be interpreted as representing official policies,
|
26
|
+
# either expressed or implied, of the FreeBSD Project.
|
27
|
+
|
28
|
+
###
|
29
|
+
# app configuration
|
30
|
+
# https://docs.gunicorn.org/en/stable/settings.html
|
31
|
+
###
|
32
|
+
|
33
|
+
import os
|
34
|
+
|
35
|
+
from c2cwsgiutils import get_config_defaults
|
36
|
+
|
37
|
+
bind = ":8080"
|
38
|
+
|
39
|
+
worker_class = "gthread"
|
40
|
+
workers = int(os.environ.get("GUNICORN_WORKERS", 2))
|
41
|
+
threads = int(os.environ.get("GUNICORN_THREADS", 10))
|
42
|
+
|
43
|
+
timeout = int(os.environ.get("GUNICORN_TIMEOUT", 120))
|
44
|
+
|
45
|
+
max_requests = int(os.environ.get("GUNICORN_MAX_REQUESTS", 1000))
|
46
|
+
max_requests_jitter = int(os.environ.get("GUNICORN_MAX_REQUESTS_JITTER", 100))
|
47
|
+
worker_tmp_dir = "/dev/shm" # nosec
|
48
|
+
limit_request_line = int(os.environ.get("GUNICORN_LIMIT_REQUEST_LINE", 8190))
|
49
|
+
|
50
|
+
accesslog = "-"
|
51
|
+
access_log_format = os.environ.get(
|
52
|
+
"GUNICORN_ACCESS_LOG_FORMAT",
|
53
|
+
'%(H)s %({Host}i)s %(m)s %(U)s?%(q)s "%(f)s" "%(a)s" %(s)s %(B)s %(D)s %(p)s',
|
54
|
+
)
|
55
|
+
|
56
|
+
###
|
57
|
+
# logging configuration
|
58
|
+
# https://docs.python.org/3/library/logging.config.html#logging-config-dictschema
|
59
|
+
###
|
60
|
+
logconfig_dict = {
|
61
|
+
"version": 1,
|
62
|
+
"root": {
|
63
|
+
"level": os.environ["OTHER_LOG_LEVEL"],
|
64
|
+
"handlers": [os.environ["LOG_TYPE"]],
|
65
|
+
},
|
66
|
+
"loggers": {
|
67
|
+
"gunicorn.error": {"level": os.environ["GUNICORN_LOG_LEVEL"]},
|
68
|
+
# "level = INFO" logs SQL queries.
|
69
|
+
# "level = DEBUG" logs SQL queries and results.
|
70
|
+
# "level = WARN" logs neither. (Recommended for production systems.)
|
71
|
+
"sqlalchemy.engine": {"level": os.environ["SQL_LOG_LEVEL"]},
|
72
|
+
"dogpile.cache": {"level": os.environ["DOGPILECACHE_LOG_LEVEL"]},
|
73
|
+
"c2cwsgiutils": {"level": os.environ["C2CWSGIUTILS_LOG_LEVEL"]},
|
74
|
+
"c2cgeoportal_commons": {"level": os.environ["C2CGEOPORTAL_LOG_LEVEL"]},
|
75
|
+
"c2cgeoportal_geoportal": {"level": os.environ["C2CGEOPORTAL_LOG_LEVEL"]},
|
76
|
+
"c2cgeoportal_admin": {"level": os.environ["C2CGEOPORTAL_LOG_LEVEL"]},
|
77
|
+
"{{cookiecutter.package}}_geoportal": {"level": os.environ["LOG_LEVEL"]},
|
78
|
+
},
|
79
|
+
"handlers": {
|
80
|
+
"console": {
|
81
|
+
"class": "logging.StreamHandler",
|
82
|
+
"formatter": "generic",
|
83
|
+
"stream": "ext://sys.stdout",
|
84
|
+
},
|
85
|
+
"json": {
|
86
|
+
"class": "c2cwsgiutils.pyramid_logging.JsonLogHandler",
|
87
|
+
"formatter": "generic",
|
88
|
+
"stream": "ext://sys.stdout",
|
89
|
+
},
|
90
|
+
},
|
91
|
+
"formatters": {
|
92
|
+
"generic": {
|
93
|
+
"format": "%(asctime)s [%(process)d] [%(levelname)-5.5s] %(message)s",
|
94
|
+
"datefmt": "[%Y-%m-%d %H:%M:%S %z]",
|
95
|
+
"class": "logging.Formatter",
|
96
|
+
}
|
97
|
+
},
|
98
|
+
}
|
99
|
+
|
100
|
+
raw_paste_global_conf = ["=".join(e) for e in get_config_defaults().items()]
|
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/production.ini
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
###
|
2
|
+
# app configuration
|
3
|
+
# http://docs.pylonsproject.org/projects/pyramid/en/1.6-branch/narr/environment.html
|
4
|
+
# this file should be used by gunicorn.
|
5
|
+
###
|
6
|
+
[app:app]
|
7
|
+
use = egg:{{cookiecutter.package}}_geoportal
|
8
|
+
filter-with = proxy-prefix
|
9
|
+
|
10
|
+
pyramid.reload_templates = %(DEVELOPMENT)s
|
11
|
+
pyramid.debug_authorization = %(DEVELOPMENT)s
|
12
|
+
pyramid.debug_notfound = %(DEVELOPMENT)s
|
13
|
+
pyramid.debug_routematch = %(DEVELOPMENT)s
|
14
|
+
pyramid.debug_templates = %(DEVELOPMENT)s
|
15
|
+
|
16
|
+
mako.directories = {{cookiecutter.package}}_geoportal:templates
|
17
|
+
c2cgeoportal_geoportal:templates
|
18
|
+
|
19
|
+
authtkt_secret = %(AUTHTKT_SECRET)s
|
20
|
+
authtkt_cookie_name = %(AUTHTKT_COOKIENAME)s
|
21
|
+
authtkt_timeout = %(AUTHTKT_TIMEOUT)s
|
22
|
+
authtkt_max_age = %(AUTHTKT_MAXAGE)s
|
23
|
+
authtkt_reissue_time = %(AUTHTKT_REISSUE_TIME)s
|
24
|
+
authtkt_http_only = %(AUTHTKT_HTTP_ONLY)s
|
25
|
+
authtkt_secure = %(AUTHTKT_SECURE)s
|
26
|
+
authtkt_samesite = %(AUTHTKT_SAMESITE)s
|
27
|
+
basicauth = %(BASICAUTH)s
|
28
|
+
|
29
|
+
app.cfg = /etc/geomapfish/config.yaml
|
30
|
+
|
31
|
+
tm.annotate_user = false
|
32
|
+
|
33
|
+
[filter:proxy-prefix]
|
34
|
+
use = egg:PasteDeploy#prefix
|
35
|
+
prefix = %(VISIBLE_ENTRY_POINT)s
|
36
|
+
|
37
|
+
[pipeline:main]
|
38
|
+
pipeline = egg:c2cwsgiutils#client_info egg:c2cwsgiutils#sentry app
|
@@ -1,15 +1,14 @@
|
|
1
1
|
#!/usr/bin/env python3
|
2
|
-
# -*- coding: utf-8 -*-
|
3
2
|
|
4
3
|
from setuptools import find_packages, setup
|
5
4
|
|
6
5
|
setup(
|
7
|
-
name="{{package}}_geoportal",
|
6
|
+
name="{{cookiecutter.package}}_geoportal",
|
8
7
|
version="1.0",
|
9
|
-
description="{{package}}, a c2cgeoportal project",
|
10
|
-
author="{{package}}",
|
11
|
-
author_email="info@{{package}}.com",
|
12
|
-
url="https://www.{{package}}.com/",
|
8
|
+
description="{{cookiecutter.package}}, a c2cgeoportal project",
|
9
|
+
author="{{cookiecutter.package}}",
|
10
|
+
author_email="info@{{cookiecutter.package}}.com",
|
11
|
+
url="https://www.{{cookiecutter.package}}.com/",
|
13
12
|
install_requires=[
|
14
13
|
"c2cgeoportal_geoportal",
|
15
14
|
"c2cgeoportal_admin",
|
@@ -19,7 +18,7 @@ setup(
|
|
19
18
|
zip_safe=False,
|
20
19
|
entry_points={
|
21
20
|
"paste.app_factory": [
|
22
|
-
"main = {{package}}_geoportal:main",
|
21
|
+
"main = {{cookiecutter.package}}_geoportal:main",
|
23
22
|
],
|
24
23
|
"console_scripts": [],
|
25
24
|
},
|
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.api.js
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
const path = require('path');
|
2
|
+
const TerserPlugin = require('terser-webpack-plugin');
|
3
|
+
|
4
|
+
const destDir = '/etc/static-ngeo/';
|
5
|
+
|
6
|
+
const babelPresets = [
|
7
|
+
[
|
8
|
+
require.resolve('@babel/preset-env'),
|
9
|
+
{
|
10
|
+
targets: 'defaults, > 0.1% in CH, > 0.1% in FR, Firefox ESR and supports es6-class and not iOS < 10',
|
11
|
+
modules: false,
|
12
|
+
loose: true,
|
13
|
+
},
|
14
|
+
],
|
15
|
+
];
|
16
|
+
|
17
|
+
module.exports = (env, argv) => {
|
18
|
+
const library = argv.library ? argv.library : '{{cookiecutter.package}}';
|
19
|
+
return {
|
20
|
+
entry: path.resolve(__dirname, '{{cookiecutter.package}}_geoportal/static-ngeo/api/index.js'),
|
21
|
+
devtool: 'source-map',
|
22
|
+
mode: 'production',
|
23
|
+
module: {
|
24
|
+
rules: [
|
25
|
+
{
|
26
|
+
test: /\.js$/,
|
27
|
+
use: {
|
28
|
+
loader: 'babel-loader',
|
29
|
+
options: {
|
30
|
+
presets: babelPresets,
|
31
|
+
babelrc: false,
|
32
|
+
comments: false,
|
33
|
+
plugins: [
|
34
|
+
require.resolve('babel-plugin-angularjs-annotate'),
|
35
|
+
require.resolve('@babel/plugin-proposal-nullish-coalescing-operator'),
|
36
|
+
require.resolve('@babel/plugin-proposal-optional-chaining'),
|
37
|
+
],
|
38
|
+
},
|
39
|
+
},
|
40
|
+
},
|
41
|
+
],
|
42
|
+
},
|
43
|
+
output: {
|
44
|
+
filename: 'api.js',
|
45
|
+
path: destDir,
|
46
|
+
libraryTarget: 'umd',
|
47
|
+
globalObject: 'this',
|
48
|
+
libraryExport: 'default',
|
49
|
+
library: library,
|
50
|
+
},
|
51
|
+
optimization: {
|
52
|
+
minimizer: [
|
53
|
+
new TerserPlugin({
|
54
|
+
parallel: true,
|
55
|
+
sourceMap: true,
|
56
|
+
terserOptions: {
|
57
|
+
compress: false,
|
58
|
+
},
|
59
|
+
}),
|
60
|
+
],
|
61
|
+
},
|
62
|
+
resolve: {
|
63
|
+
modules: [
|
64
|
+
'/usr/lib/node_modules',
|
65
|
+
'/usr/lib/node_modules/ol/node_modules',
|
66
|
+
'/usr/lib/node_modules/proj4/node_modules',
|
67
|
+
],
|
68
|
+
alias: {
|
69
|
+
api: '/usr/lib/node_modules/ngeo/api/src',
|
70
|
+
ngeo: '/usr/lib/node_modules/ngeo/src',
|
71
|
+
},
|
72
|
+
},
|
73
|
+
resolveLoader: {
|
74
|
+
modules: ['/usr/lib/node_modules'],
|
75
|
+
},
|
76
|
+
};
|
77
|
+
};
|
@@ -7,11 +7,13 @@ const entry = {};
|
|
7
7
|
|
8
8
|
// The dev mode will be used for builds on local machine outside docker
|
9
9
|
const nodeEnv = process.env['NODE_ENV'] || 'development';
|
10
|
-
const dev = nodeEnv == 'development'
|
10
|
+
const dev = nodeEnv == 'development';
|
11
11
|
|
12
|
-
for (const filename of ls(
|
12
|
+
for (const filename of ls(
|
13
|
+
path.resolve(__dirname, '{{cookiecutter.package}}_geoportal/static-ngeo/js/apps/*.html.ejs')
|
14
|
+
)) {
|
13
15
|
const name = filename.file.substr(0, filename.file.length - '.html.ejs'.length);
|
14
|
-
entry[name] = '{{package}}/apps/Controller' + name + '.js';
|
16
|
+
entry[name] = '{{cookiecutter.package}}/apps/Controller' + name + '.js';
|
15
17
|
plugins.push(
|
16
18
|
new HtmlWebpackPlugin({
|
17
19
|
template: filename.full,
|
@@ -21,53 +23,49 @@ for (const filename of ls(path.resolve(__dirname, '{{package}}_geoportal/static-
|
|
21
23
|
chunks: [name],
|
22
24
|
vars: {
|
23
25
|
entry_point: '${VISIBLE_ENTRY_POINT}',
|
24
|
-
version: '{{geomapfish_version}}',
|
26
|
+
version: '{{cookiecutter.geomapfish_version}}',
|
25
27
|
cache_version: '${CACHE_VERSION}',
|
26
|
-
|
28
|
+
},
|
27
29
|
})
|
28
30
|
);
|
29
31
|
}
|
30
32
|
|
31
|
-
const babelPresets = [
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
33
|
+
const babelPresets = [
|
34
|
+
[
|
35
|
+
require.resolve('@babel/preset-env'),
|
36
|
+
{
|
37
|
+
targets: 'defaults, > 0.1% in CH, > 0.1% in FR, Firefox ESR and supports es6-class and not iOS < 10',
|
38
|
+
modules: false,
|
39
|
+
loose: true,
|
40
|
+
},
|
41
|
+
],
|
42
|
+
];
|
38
43
|
|
39
44
|
// Transform code to ES2015 and annotate injectable functions with an $inject array.
|
40
45
|
const projectRule = {
|
41
|
-
test: /{{package}}_geoportal\/static-ngeo\/js\/.*\.js$/,
|
46
|
+
test: /{{cookiecutter.package}}_geoportal\/static-ngeo\/js\/.*\.js$/,
|
42
47
|
use: {
|
43
48
|
loader: 'babel-loader',
|
44
49
|
options: {
|
45
50
|
presets: babelPresets,
|
46
51
|
babelrc: false,
|
47
52
|
comments: false,
|
48
|
-
plugins: [
|
49
|
-
|
50
|
-
require.resolve('@babel/plugin-transform-spread'),
|
51
|
-
require.resolve('babel-plugin-angularjs-annotate'),
|
52
|
-
],
|
53
|
-
}
|
53
|
+
plugins: [require.resolve('babel-plugin-angularjs-annotate')],
|
54
|
+
},
|
54
55
|
},
|
55
56
|
};
|
56
|
-
|
57
|
-
const rules = [
|
58
|
-
projectRule,
|
59
|
-
];
|
57
|
+
const rules = [projectRule];
|
60
58
|
|
61
59
|
const noDevServer = process.env['NO_DEV_SERVER'] == 'TRUE';
|
62
60
|
const devServer = dev && !noDevServer;
|
63
61
|
|
64
|
-
console.log(
|
65
|
-
console.log(
|
62
|
+
console.log('Use dev mode: ' + dev);
|
63
|
+
console.log('Use dev server mode: ' + devServer);
|
66
64
|
|
67
65
|
module.exports = {
|
68
66
|
output: {
|
69
67
|
path: '/etc/static-ngeo/',
|
70
|
-
publicPath: devServer ? '${VISIBLE_ENTRY_POINT}dev/' : '.__ENTRY_POINT__static-ngeo/'
|
68
|
+
publicPath: devServer ? '${VISIBLE_ENTRY_POINT}dev/' : '.__ENTRY_POINT__static-ngeo/',
|
71
69
|
},
|
72
70
|
devServer: {
|
73
71
|
publicPath: '${VISIBLE_WEB_PROTOCOL}://${VISIBLE_WEB_HOST}${VISIBLE_ENTRY_POINT}dev/',
|
@@ -77,13 +75,16 @@ module.exports = {
|
|
77
75
|
},
|
78
76
|
entry: entry,
|
79
77
|
module: {
|
80
|
-
rules
|
78
|
+
rules,
|
81
79
|
},
|
82
80
|
plugins: plugins,
|
83
81
|
resolve: {
|
84
82
|
modules: ['/usr/lib/node_modules'],
|
85
83
|
alias: {
|
86
|
-
{{package}}: path.resolve(
|
84
|
+
'{{cookiecutter.package}}': path.resolve(
|
85
|
+
__dirname,
|
86
|
+
'{{cookiecutter.package}}_geoportal/static-ngeo/js'
|
87
|
+
),
|
87
88
|
},
|
88
89
|
},
|
89
90
|
};
|
@@ -4,17 +4,14 @@ const SassPlugin = require('ngeo/buildtools/webpack.plugin.js');
|
|
4
4
|
const config = commons({
|
5
5
|
DllReferencePluginOptions: {
|
6
6
|
context: '/usr/lib/',
|
7
|
-
}
|
7
|
+
},
|
8
|
+
browsers: 'defaults, > 0.1% in CH, > 0.1% in FR, Firefox ESR and supports es6-class and not iOS < 10',
|
8
9
|
});
|
9
10
|
|
10
11
|
for (const plugin of config.plugins) {
|
11
12
|
if (plugin instanceof SassPlugin) {
|
12
|
-
plugin.options.preReplacements = [
|
13
|
-
|
14
|
-
];
|
15
|
-
plugin.options.postReplacements = [
|
16
|
-
[new RegExp('visible-entry-point', 'g'), '${VISIBLE_ENTRY_POINT}'],
|
17
|
-
];
|
13
|
+
plugin.options.preReplacements = [[new RegExp('\\${VISIBLE_ENTRY_POINT}', 'g'), 'visible-entry-point']];
|
14
|
+
plugin.options.postReplacements = [[new RegExp('visible-entry-point', 'g'), '${VISIBLE_ENTRY_POINT}']];
|
18
15
|
}
|
19
16
|
}
|
20
17
|
|
@@ -0,0 +1,42 @@
|
|
1
|
+
from pyramid.config import Configurator
|
2
|
+
|
3
|
+
import {{cookiecutter.package}}_geoportal.authentication
|
4
|
+
import {{cookiecutter.package}}_geoportal.dev
|
5
|
+
import {{cookiecutter.package}}_geoportal.multi_organization
|
6
|
+
from c2cgeoportal_geoportal import add_interface_config, locale_negotiator
|
7
|
+
from c2cgeoportal_geoportal.lib.i18n import LOCALE_PATH
|
8
|
+
from {{cookiecutter.package}}_geoportal.resources import Root
|
9
|
+
|
10
|
+
|
11
|
+
def main(global_config, **settings):
|
12
|
+
"""
|
13
|
+
This function returns a Pyramid WSGI application.
|
14
|
+
"""
|
15
|
+
del global_config # Unused
|
16
|
+
|
17
|
+
config = Configurator(
|
18
|
+
root_factory=Root,
|
19
|
+
settings=settings,
|
20
|
+
locale_negotiator=locale_negotiator,
|
21
|
+
)
|
22
|
+
|
23
|
+
config.include("c2cgeoportal_commons")
|
24
|
+
|
25
|
+
config.include({{cookiecutter.package}}_geoportal.authentication.includeme)
|
26
|
+
|
27
|
+
config.add_translation_dirs(LOCALE_PATH)
|
28
|
+
|
29
|
+
config.include("c2cgeoportal_geoportal")
|
30
|
+
|
31
|
+
config.include({{cookiecutter.package}}_geoportal.multi_organization.includeme)
|
32
|
+
|
33
|
+
# Scan view decorator for adding routes
|
34
|
+
config.scan()
|
35
|
+
|
36
|
+
# Add the interfaces
|
37
|
+
for interface in config.get_settings().get("interfaces", []):
|
38
|
+
add_interface_config(config, interface)
|
39
|
+
|
40
|
+
config.include({{cookiecutter.package}}_geoportal.dev.includeme)
|
41
|
+
|
42
|
+
return config.make_wsgi_app()
|
@@ -0,0 +1,10 @@
|
|
1
|
+
from pyramid.authorization import ACLAuthorizationPolicy
|
2
|
+
from pyramid.config import Configurator
|
3
|
+
|
4
|
+
from c2cgeoportal_geoportal.lib.authentication import create_authentication
|
5
|
+
|
6
|
+
|
7
|
+
def includeme(config: Configurator) -> None:
|
8
|
+
"""Initialize the authentication( for a Pyramid app."""
|
9
|
+
config.set_authorization_policy(ACLAuthorizationPolicy())
|
10
|
+
config.set_authentication_policy(create_authentication(config.get_settings()))
|
@@ -0,0 +1,14 @@
|
|
1
|
+
from pyramid.config import Configurator
|
2
|
+
|
3
|
+
|
4
|
+
def includeme(config: Configurator) -> None:
|
5
|
+
"""Initialize the development tools for a Pyramid app."""
|
6
|
+
del config # Unused.
|
7
|
+
|
8
|
+
try:
|
9
|
+
import ptvsd # pylint: disable=import-outside-toplevel
|
10
|
+
|
11
|
+
ptvsd.enable_attach(address=("172.17.0.1", 5678))
|
12
|
+
# ptvsd.wait_for_attach()
|
13
|
+
except ModuleNotFoundError:
|
14
|
+
pass
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import logging
|
2
|
+
|
3
|
+
from pyramid.i18n import TranslationStringFactory
|
4
|
+
|
5
|
+
from c2cgeoportal_commons.models.main import * # noqa: ignore=F401, pylint: disable=unused-wildcard-import
|
6
|
+
|
7
|
+
_ = TranslationStringFactory("{{cookiecutter.package}}_geoportal-server")
|
8
|
+
LOG = logging.getLogger(__name__)
|