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.
Files changed (225) hide show
  1. c2cgeoportal_geoportal/__init__.py +245 -95
  2. c2cgeoportal_geoportal/lib/__init__.py +67 -43
  3. c2cgeoportal_geoportal/lib/authentication.py +50 -26
  4. c2cgeoportal_geoportal/lib/bashcolor.py +17 -13
  5. c2cgeoportal_geoportal/lib/cacheversion.py +16 -8
  6. c2cgeoportal_geoportal/lib/caching.py +65 -193
  7. c2cgeoportal_geoportal/lib/check_collector.py +17 -10
  8. c2cgeoportal_geoportal/lib/checker.py +67 -65
  9. c2cgeoportal_geoportal/lib/common_headers.py +167 -0
  10. c2cgeoportal_geoportal/lib/dbreflection.py +61 -46
  11. c2cgeoportal_geoportal/lib/filter_capabilities.py +126 -88
  12. c2cgeoportal_geoportal/lib/fulltextsearch.py +6 -5
  13. c2cgeoportal_geoportal/lib/functionality.py +20 -17
  14. c2cgeoportal_geoportal/lib/headers.py +14 -5
  15. c2cgeoportal_geoportal/lib/i18n.py +4 -4
  16. c2cgeoportal_geoportal/lib/layers.py +30 -11
  17. c2cgeoportal_geoportal/lib/lingua_extractor.py +363 -240
  18. c2cgeoportal_geoportal/lib/loader.py +11 -16
  19. c2cgeoportal_geoportal/lib/metrics.py +28 -17
  20. c2cgeoportal_geoportal/lib/oauth2.py +392 -206
  21. c2cgeoportal_geoportal/lib/wmstparsing.py +105 -84
  22. c2cgeoportal_geoportal/lib/xsd.py +26 -16
  23. c2cgeoportal_geoportal/resources.py +15 -9
  24. c2cgeoportal_geoportal/scaffolds/advance_create/ci/config.yaml +26 -0
  25. c2cgeoportal_geoportal/scaffolds/advance_create/cookiecutter.json +18 -0
  26. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/.dockerignore +6 -0
  27. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/.eslintrc.yaml +19 -0
  28. c2cgeoportal_geoportal/scaffolds/{create/geoportal/+dot+prospector.yaml → advance_create/{{cookiecutter.project}}/geoportal/.prospector.yaml} +8 -2
  29. c2cgeoportal_geoportal/scaffolds/{create/geoportal/Dockerfile_tmpl → advance_create/{{cookiecutter.project}}/geoportal/Dockerfile} +22 -15
  30. c2cgeoportal_geoportal/scaffolds/{create/geoportal/alembic.yaml_tmpl → advance_create/{{cookiecutter.project}}/geoportal/alembic.yaml} +1 -1
  31. c2cgeoportal_geoportal/scaffolds/{create/geoportal/development.ini_tmpl → advance_create/{{cookiecutter.project}}/geoportal/development.ini} +34 -15
  32. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/gunicorn.conf.py +100 -0
  33. c2cgeoportal_geoportal/scaffolds/{create → advance_create/{{cookiecutter.project}}}/geoportal/lingua-client.cfg +1 -0
  34. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/production.ini +38 -0
  35. c2cgeoportal_geoportal/scaffolds/{create/geoportal/setup.py_tmpl → advance_create/{{cookiecutter.project}}/geoportal/setup.py} +6 -7
  36. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/tsconfig.json +8 -0
  37. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.api.js +77 -0
  38. c2cgeoportal_geoportal/scaffolds/{create/geoportal/webpack.apps.js_tmpl → advance_create/{{cookiecutter.project}}/geoportal/webpack.apps.js} +29 -28
  39. c2cgeoportal_geoportal/scaffolds/{create → advance_create/{{cookiecutter.project}}}/geoportal/webpack.commons.js +4 -7
  40. c2cgeoportal_geoportal/scaffolds/{create → advance_create/{{cookiecutter.project}}}/geoportal/webpack.config.js +1 -1
  41. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/__init__.py +42 -0
  42. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/authentication.py +10 -0
  43. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/dev.py +14 -0
  44. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/models.py +8 -0
  45. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/multi_organization.py +7 -0
  46. c2cgeoportal_geoportal/scaffolds/{create/geoportal/+package+_geoportal → advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/resources.py +4 -3
  47. 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
  48. 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
  49. c2cgeoportal_geoportal/scaffolds/{create/geoportal/+package+_geoportal/subscribers.py_tmpl → advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/subscribers.py} +1 -3
  50. c2cgeoportal_geoportal/scaffolds/advance_update/cookiecutter.json +18 -0
  51. c2cgeoportal_geoportal/scaffolds/{update/geoportal/CONST_Makefile_tmpl → advance_update/{{cookiecutter.project}}/geoportal/CONST_Makefile} +3 -27
  52. c2cgeoportal_geoportal/scaffolds/create/cookiecutter.json +18 -0
  53. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.dockerignore +14 -0
  54. c2cgeoportal_geoportal/scaffolds/create/{+dot+editorconfig → {{cookiecutter.project}}/.editorconfig} +2 -5
  55. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/main.yaml +57 -0
  56. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/rebuild.yaml +46 -0
  57. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/update_l10n.yaml +66 -0
  58. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.gitignore +16 -0
  59. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.prettierignore +1 -0
  60. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.prettierrc.yaml +2 -0
  61. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/Dockerfile +76 -0
  62. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/Makefile +70 -0
  63. c2cgeoportal_geoportal/scaffolds/create/{README.rst_tmpl → {{cookiecutter.project}}/README.rst} +4 -4
  64. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/build +186 -0
  65. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/ci/config.yaml +22 -0
  66. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/ci/docker-compose-check +25 -0
  67. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/ci/requirements.txt +1 -0
  68. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose-db.yaml +26 -0
  69. c2cgeoportal_geoportal/scaffolds/create/{docker-compose-lib.yaml → {{cookiecutter.project}}/docker-compose-lib.yaml} +165 -22
  70. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose-qgis.yaml +23 -0
  71. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose.override.sample.yaml +66 -0
  72. c2cgeoportal_geoportal/scaffolds/create/{docker-compose.yaml → {{cookiecutter.project}}/docker-compose.yaml} +20 -15
  73. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/env.default +101 -0
  74. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/env.project +69 -0
  75. c2cgeoportal_geoportal/scaffolds/create/{geoportal/vars.yaml_tmpl → {{cookiecutter.project}}/geoportal/vars.yaml} +126 -36
  76. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/mobile.css +0 -0
  77. c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/data/Readme.txt +3 -3
  78. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/demo.map.tmpl +224 -0
  79. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/mapserver.conf +15 -0
  80. c2cgeoportal_geoportal/scaffolds/create/{mapserver/mapserver.map.tmpl_tmpl → {{cookiecutter.project}}/mapserver/mapserver.map.tmpl} +9 -18
  81. c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/A3_Landscape.jrxml +13 -8
  82. c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/A3_Portrait.jrxml +13 -8
  83. c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/A4_Landscape.jrxml +13 -8
  84. c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/A4_Portrait.jrxml +13 -8
  85. c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/config.yaml.tmpl +11 -4
  86. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/localisation.properties +4 -0
  87. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/localisation_fr.properties +4 -0
  88. c2cgeoportal_geoportal/scaffolds/create/{project.yaml_tmpl → {{cookiecutter.project}}/project.yaml} +6 -6
  89. c2cgeoportal_geoportal/scaffolds/create/{pyproject.toml → {{cookiecutter.project}}/pyproject.toml} +4 -0
  90. c2cgeoportal_geoportal/scaffolds/create/{qgisserver/pg_service.conf.tmpl_tmpl → {{cookiecutter.project}}/qgisserver/pg_service.conf.tmpl} +2 -2
  91. c2cgeoportal_geoportal/scaffolds/create/{run_alembic.sh → {{cookiecutter.project}}/run_alembic.sh} +3 -5
  92. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/scripts/db-backup +110 -0
  93. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/scripts/db-restore +114 -0
  94. c2cgeoportal_geoportal/scaffolds/create/{setup.cfg_tmpl → {{cookiecutter.project}}/setup.cfg} +1 -1
  95. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/spell-ignore-words.txt +5 -0
  96. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/tests/__init__.py +0 -0
  97. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/tests/test_app.py +38 -0
  98. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/tilegeneration/config.yaml.tmpl +195 -0
  99. c2cgeoportal_geoportal/scaffolds/update/cookiecutter.json +18 -0
  100. c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/.upgrade.yaml +61 -0
  101. c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/CONST_CHANGELOG.txt +273 -0
  102. c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/CONST_create_template/tests/test_testapp.py +48 -0
  103. c2cgeoportal_geoportal/scaffolds/update/{geoportal → {{cookiecutter.project}}/geoportal}/CONST_config-schema.yaml +64 -17
  104. c2cgeoportal_geoportal/scaffolds/update/{geoportal/CONST_vars.yaml_tmpl → {{cookiecutter.project}}/geoportal/CONST_vars.yaml} +396 -19
  105. c2cgeoportal_geoportal/scripts/__init__.py +16 -30
  106. c2cgeoportal_geoportal/scripts/c2cupgrade.py +272 -234
  107. c2cgeoportal_geoportal/scripts/create_demo_theme.py +3 -6
  108. c2cgeoportal_geoportal/scripts/manage_users.py +34 -39
  109. c2cgeoportal_geoportal/scripts/pcreate.py +310 -0
  110. c2cgeoportal_geoportal/scripts/theme2fts.py +128 -24
  111. c2cgeoportal_geoportal/scripts/urllogin.py +19 -11
  112. c2cgeoportal_geoportal/templates/login.html +88 -84
  113. c2cgeoportal_geoportal/templates/notlogin.html +59 -59
  114. c2cgeoportal_geoportal/templates/testi18n.html +6 -8
  115. c2cgeoportal_geoportal/views/__init__.py +23 -6
  116. c2cgeoportal_geoportal/views/dev.py +9 -7
  117. c2cgeoportal_geoportal/views/dynamic.py +56 -19
  118. c2cgeoportal_geoportal/views/entry.py +85 -24
  119. c2cgeoportal_geoportal/views/fulltextsearch.py +29 -23
  120. c2cgeoportal_geoportal/views/geometry_processing.py +17 -9
  121. c2cgeoportal_geoportal/views/i18n.py +91 -9
  122. c2cgeoportal_geoportal/views/layers.py +166 -133
  123. c2cgeoportal_geoportal/views/login.py +161 -93
  124. c2cgeoportal_geoportal/views/mapserverproxy.py +47 -31
  125. c2cgeoportal_geoportal/views/memory.py +12 -12
  126. c2cgeoportal_geoportal/views/ogcproxy.py +52 -30
  127. c2cgeoportal_geoportal/views/pdfreport.py +30 -26
  128. c2cgeoportal_geoportal/views/printproxy.py +60 -52
  129. c2cgeoportal_geoportal/views/profile.py +24 -23
  130. c2cgeoportal_geoportal/views/proxy.py +88 -72
  131. c2cgeoportal_geoportal/views/raster.py +37 -26
  132. c2cgeoportal_geoportal/views/resourceproxy.py +13 -11
  133. c2cgeoportal_geoportal/views/shortener.py +27 -25
  134. c2cgeoportal_geoportal/views/theme.py +472 -332
  135. c2cgeoportal_geoportal/views/tinyowsproxy.py +42 -44
  136. c2cgeoportal_geoportal/views/vector_tiles.py +80 -0
  137. {c2cgeoportal_geoportal-2.6.0.dist-info → c2cgeoportal_geoportal-2.8.1.180.dist-info}/METADATA +19 -8
  138. c2cgeoportal_geoportal-2.8.1.180.dist-info/RECORD +191 -0
  139. {c2cgeoportal_geoportal-2.6.0.dist-info → c2cgeoportal_geoportal-2.8.1.180.dist-info}/WHEEL +1 -1
  140. {c2cgeoportal_geoportal-2.6.0.dist-info → c2cgeoportal_geoportal-2.8.1.180.dist-info}/entry_points.txt +3 -0
  141. tests/__init__.py +10 -5
  142. tests/test_cachebuster.py +3 -5
  143. tests/test_caching.py +18 -26
  144. tests/test_checker.py +1 -3
  145. tests/test_decimaljson.py +5 -5
  146. tests/test_headerstween.py +1 -3
  147. tests/test_i18n.py +2 -2
  148. tests/test_init.py +16 -20
  149. tests/test_locale_negociator.py +4 -6
  150. tests/test_mapserverproxy_route_predicate.py +1 -4
  151. tests/test_raster.py +15 -17
  152. tests/test_wmstparsing.py +10 -12
  153. tests/xmlstr.py +1 -3
  154. c2cgeoportal_geoportal/scaffolds/__init__.py +0 -227
  155. c2cgeoportal_geoportal/scaffolds/create/+dot+dockerignore_tmpl +0 -12
  156. c2cgeoportal_geoportal/scaffolds/create/+dot+github/workflows/main.yaml_tmpl +0 -89
  157. c2cgeoportal_geoportal/scaffolds/create/+dot+github/workflows/rebuild.yaml_tmpl +0 -78
  158. c2cgeoportal_geoportal/scaffolds/create/+dot+gitignore_tmpl +0 -16
  159. c2cgeoportal_geoportal/scaffolds/create/Dockerfile_tmpl +0 -67
  160. c2cgeoportal_geoportal/scaffolds/create/Makefile +0 -3
  161. c2cgeoportal_geoportal/scaffolds/create/build_tmpl +0 -167
  162. c2cgeoportal_geoportal/scaffolds/create/ci/config.yaml_tmpl +0 -23
  163. c2cgeoportal_geoportal/scaffolds/create/ci/requirements.txt +0 -1
  164. c2cgeoportal_geoportal/scaffolds/create/ci/trigger +0 -68
  165. c2cgeoportal_geoportal/scaffolds/create/docker-compose.override.sample.yaml +0 -54
  166. c2cgeoportal_geoportal/scaffolds/create/env.default_tmpl +0 -67
  167. c2cgeoportal_geoportal/scaffolds/create/env.project_tmpl +0 -48
  168. c2cgeoportal_geoportal/scaffolds/create/geoportal/+dot+dockerignore_tmpl +0 -6
  169. c2cgeoportal_geoportal/scaffolds/create/geoportal/+dot+eslintrc_tmpl +0 -15
  170. c2cgeoportal_geoportal/scaffolds/create/geoportal/+package+_geoportal/__init__.py_tmpl +0 -58
  171. c2cgeoportal_geoportal/scaffolds/create/geoportal/+package+_geoportal/models.py_tmpl +0 -10
  172. c2cgeoportal_geoportal/scaffolds/create/geoportal/+package+_geoportal/static/robot.txt +0 -3
  173. c2cgeoportal_geoportal/scaffolds/create/geoportal/production.ini_tmpl +0 -106
  174. c2cgeoportal_geoportal/scaffolds/create/geoportal/tools/extract-messages.js +0 -39
  175. c2cgeoportal_geoportal/scaffolds/create/geoportal/tsconfig.json_tmpl +0 -9
  176. c2cgeoportal_geoportal/scaffolds/create/geoportal/webpack.api.js_tmpl +0 -72
  177. c2cgeoportal_geoportal/scaffolds/create/mapserver/demo.map.tmpl_tmpl +0 -262
  178. c2cgeoportal_geoportal/scaffolds/create/mapserver/tinyows.xml +0 -36
  179. c2cgeoportal_geoportal/scaffolds/create/print/print-apps/+package+/config.yaml +0 -168
  180. c2cgeoportal_geoportal/scaffolds/create/qgisserver/geomapfish.yaml.tmpl_tmpl +0 -16
  181. c2cgeoportal_geoportal/scaffolds/create/spell-ignore-words.txt +0 -1
  182. c2cgeoportal_geoportal/scaffolds/create/tilegeneration/config.yaml.tmpl_tmpl +0 -185
  183. c2cgeoportal_geoportal/scaffolds/create/yamllint.yaml +0 -11
  184. c2cgeoportal_geoportal/scaffolds/update/+dot+upgrade.yaml_tmpl +0 -181
  185. c2cgeoportal_geoportal/scaffolds/update/CONST_CHANGELOG.txt_tmpl +0 -454
  186. c2cgeoportal_geoportal/templates/dynamic.js +0 -21
  187. c2cgeoportal_geoportal-2.6.0.dist-info/RECORD +0 -173
  188. /c2cgeoportal_geoportal/{scaffolds/create/geoportal/+package+_geoportal/static/css/desktop.css → py.typed} +0 -0
  189. /c2cgeoportal_geoportal/scaffolds/{create/geoportal/Makefile_tmpl → advance_create/{{cookiecutter.project}}/geoportal/Makefile} +0 -0
  190. /c2cgeoportal_geoportal/scaffolds/{create → advance_create/{{cookiecutter.project}}}/geoportal/alembic.ini +0 -0
  191. /c2cgeoportal_geoportal/scaffolds/{create → advance_create/{{cookiecutter.project}}}/geoportal/language_mapping +0 -0
  192. /c2cgeoportal_geoportal/scaffolds/{create → advance_create/{{cookiecutter.project}}}/geoportal/lingua-server.cfg +0 -0
  193. /c2cgeoportal_geoportal/scaffolds/{create → advance_create/{{cookiecutter.project}}}/geoportal/requirements.txt +0 -0
  194. /c2cgeoportal_geoportal/scaffolds/{create/geoportal/+package+_geoportal → advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/views/__init__.py +0 -0
  195. /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
  196. /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal/static/css/iframe_api.css → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/desktop.css} +0 -0
  197. /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal/static/css/mobile.css → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/iframe_api.css} +0 -0
  198. /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/static/images/banner_left.png +0 -0
  199. /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/static/images/banner_right.png +0 -0
  200. /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/static/images/blank.png +0 -0
  201. /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/static/images/markers/marker-blue.png +0 -0
  202. /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/static/images/markers/marker-gold.png +0 -0
  203. /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/static/images/markers/marker-green.png +0 -0
  204. /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/static/images/markers/marker.png +0 -0
  205. /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/static/robot.txt.tmpl +0 -0
  206. /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/data/TM_EUROPE_BORDERS-0.3.sql +0 -0
  207. /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Arial.ttf +0 -0
  208. /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Arialbd.ttf +0 -0
  209. /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Arialbi.ttf +0 -0
  210. /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Ariali.ttf +0 -0
  211. /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/NotoSans-Bold.ttf +0 -0
  212. /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/NotoSans-BoldItalic.ttf +0 -0
  213. /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/NotoSans-Italic.ttf +0 -0
  214. /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/NotoSans-Regular.ttf +0 -0
  215. /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Verdana.ttf +0 -0
  216. /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Verdanab.ttf +0 -0
  217. /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Verdanai.ttf +0 -0
  218. /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Verdanaz.ttf +0 -0
  219. /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts.conf +0 -0
  220. /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/tinyows.xml.tmpl +0 -0
  221. /c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/legend.jrxml +0 -0
  222. /c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/logo.png +0 -0
  223. /c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/north.svg +0 -0
  224. /c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/results.jrxml +0 -0
  225. {c2cgeoportal_geoportal-2.6.0.dist-info → c2cgeoportal_geoportal-2.8.1.180.dist-info}/top_level.txt +0 -0
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  vars:
3
3
  # The package name
4
- package: '{{package}}'
4
+ package: '{{cookiecutter.package}}'
5
5
  main_ogc_server: source for image/png
6
6
 
7
7
  srid: EPSG:-1
@@ -39,7 +39,7 @@ vars:
39
39
 
40
40
  authentication:
41
41
  two_factor: false
42
- two_factor_issuer_name: '{{project}}'
42
+ two_factor_issuer_name: '{{cookiecutter.project}}'
43
43
  oauth2_token_expire_minutes: 60
44
44
  oauth2_authorization_expire_minutes: 10
45
45
  max_consecutive_failures: 10
@@ -47,6 +47,33 @@ vars:
47
47
  intranet:
48
48
  networks: []
49
49
 
50
+ i18next:
51
+ ns:
52
+ - geomapfish
53
+ defaultNS: geomapfish
54
+ keySeparator: false
55
+ debug: false
56
+ detection:
57
+ order:
58
+ - querystring
59
+ - cookie
60
+ - localStorage
61
+ - sessionStorage
62
+ - navigator
63
+ - htmlTag
64
+ lookupQuerystring: lang
65
+ lookupCookie: i18next
66
+ lookupLocalStorage: i18nextLng
67
+ lookupSessionStorage: i18nextLng
68
+ caches:
69
+ - localStorage
70
+ excludeCacheFor:
71
+ - cimode
72
+ fallbackLng: false
73
+ interpolation:
74
+ escapeValue: false
75
+ backend: {}
76
+
50
77
  interfaces_config:
51
78
  default:
52
79
  constants:
@@ -84,7 +111,9 @@ vars:
84
111
  attachStacktrace: True
85
112
  tags:
86
113
  service: js
87
- gmfAuthenticationConfig: {}
114
+ gmfAuthenticationConfig:
115
+ allowPasswordChange: true
116
+ allowPasswordReset: true
88
117
  ngeoWfsPermalinkOptions:
89
118
  wfsTypes: []
90
119
  defaultFeatureNS: http://mapserver.gis.umn.edu/mapserver
@@ -127,6 +156,8 @@ vars:
127
156
  ngeoMeasureDecimals: 0
128
157
  ngeoMeasureSpherical: False
129
158
  gmfSnappingConfig: {}
159
+ gmfSnappingOptions:
160
+ maxFeatures: 50
130
161
  ngeoSnappingTolerance: 20
131
162
  gmfObjectEditingToolsOptions: {}
132
163
  gmfTreeManagerModeFlush: True
@@ -142,7 +173,7 @@ vars:
142
173
  ngeoCsvSeparator: ','
143
174
  gmfCsvFilename: query-results.csv
144
175
  gmfDisplayQueryWindowOptions:
145
- featureStyle: &featureStyle
176
+ featuresStyle: &featureStyle
146
177
  fill:
147
178
  color: [255, 170, 0, 0.6]
148
179
  stroke:
@@ -173,11 +204,14 @@ vars:
173
204
  gmfLayerTreeOptions:
174
205
  openLinksInNewWindow: False
175
206
  isExpanded: False
207
+ layerIcon:
208
+ width: 20
209
+ height: 20
176
210
  gmfDisclaimerOptions: {}
177
211
  gmfBackgroundLayerSelectorOptions: {}
178
212
  defaultTheme: Demo
179
213
  defaultLang: en
180
- gmfOptions:
214
+ gmfOptions: &gmfOptions
181
215
  map: {}
182
216
  view:
183
217
  srid: '{srid}'
@@ -185,6 +219,8 @@ vars:
185
219
  zoom: 3
186
220
  resolutions: [250, 100, 50, 20, 10, 5, 2, 1, 0.5, 0.25, 0.1, 0.05]
187
221
  extent: [2420000, 1030000, 2900000, 1350000]
222
+ constrainRotation: false
223
+ constrainResolution: true
188
224
  gmfSearchOptions:
189
225
  styles:
190
226
  default:
@@ -221,12 +257,31 @@ vars:
221
257
  projection: EPSG:{srid}
222
258
  gmfPermalinkOptions:
223
259
  crosshairStyle:
260
+ - regularShape:
261
+ stroke:
262
+ color: white
263
+ width: 5
264
+ points: 4
265
+ radius: 10
266
+ radius2: 0
267
+ angle: 0
268
+ - regularShape:
269
+ stroke:
270
+ color: red
271
+ width: 2
272
+ points: 4
273
+ radius: 10
274
+ radius2: 0
275
+ angle: 0
224
276
  crosshairEnabledByDefault: False
225
277
  useLocalStorage: False
226
278
  pointRecenterZoom:
227
279
  gmfElevationOptions:
228
280
  layers: []
229
281
  layersConfig: {}
282
+ gmfVectorTilesOptions:
283
+ projection: EPSG:{srid}
284
+ tileGrid: {}
230
285
  ngeoGeolocationOptions:
231
286
  positionFeatureStyle:
232
287
  circle:
@@ -244,16 +299,22 @@ vars:
244
299
  width: 2
245
300
  zoom:
246
301
  autoRotate: False
302
+ gmfWMSSourceOptions:
303
+ # The default value is 1.5 but it add a slight blur on the layer,
304
+ # 1 is also possible but the application will do a getMap on all the pan.
305
+ ratio: 2
306
+
247
307
  dynamic_constants:
248
308
  interface: interface
249
309
  cacheVersion: cache_version
250
310
  langUrls: lang_urls
311
+ gmfI18nextConfiguration: i18next_configuration
251
312
  gmfTwoFactorAuth: two_factor
252
313
  gmfSearchGroups: fulltextsearch_groups
253
314
  static:
254
315
  angularLocaleScript:
255
316
  name: '/etc/static-ngeo/'
256
- append: angular-locale_\{\{locale\}\}.js
317
+ append: angular-locale_{{'{{'}}locale{{'}}'}}.js
257
318
  routes:
258
319
  currentInterfaceUrl:
259
320
  currentInterface: True
@@ -282,11 +343,14 @@ vars:
282
343
  background: background
283
344
  dynamic_params:
284
345
  interface: interface
346
+ gmfVectorTilesUrl:
347
+ name: vector_tiles_root
285
348
  desktop:
286
349
  extends: default
287
350
  redirect_interface: mobile
288
351
  do_redirect: True
289
352
  constants:
353
+ gmfOptions: *gmfOptions
290
354
  ngeoProfileOptions: {}
291
355
  ngeoStreetviewOptions:
292
356
  viewer: 'mapillary'
@@ -307,9 +371,11 @@ vars:
307
371
  LAYERFONTSIZE: '10'
308
372
  ITEMFONTSIZE: '8'
309
373
  hiddenAttributes:
374
+ - debug
310
375
  - timezone
376
+ - username
311
377
  gmfDisplayQueryGridOptions:
312
- featureStyle: *featureStyle
378
+ featuresStyle: *featureStyle
313
379
  selectedFeatureStyle: *selectedFeatureStyle
314
380
  gmfEditFeatureOptions:
315
381
  tolerance: 10
@@ -336,15 +402,20 @@ vars:
336
402
  radius: 3
337
403
  gmfShareOptions:
338
404
  enableEmail: True
405
+ gmfFitOptions:
406
+ # Padding (in pixels) to be correctly fitted inside the view. Values in the array are top, right, bottom and left padding.
407
+ padding: [50, 10, 50, 50]
339
408
  routes:
340
409
  gmfProfileJsonUrl:
341
410
  name: profile.json
342
411
  gmfPrintUrl:
343
412
  name: printproxy
413
+
344
414
  mobile:
345
415
  extends: default
346
416
  redirect_interface: desktop
347
417
  constants:
418
+ gmfOptions: *gmfOptions
348
419
  gmfMobileMeasureAreaOptions:
349
420
  precision: 2
350
421
  sketchStyle: &mobileMeasureStyle
@@ -384,10 +455,19 @@ vars:
384
455
  radius: 8
385
456
  radius2: 0
386
457
  angle: 0
458
+ gmfFitOptions:
459
+ # Padding (in pixels) to be correctly fitted inside the view. Values in the array are top, right, bottom and left padding.
460
+ padding: [60, 60, 42, 10]
461
+
387
462
  iframe_api:
388
463
  extends: default
389
464
  constants:
465
+ gmfOptions: *gmfOptions
390
466
  gmfSearchGroups: []
467
+ gmfFitOptions:
468
+ # Padding (in pixels) to be correctly fitted inside the view. Values in the array are top, right, bottom and left padding.
469
+ padding: [20, 20, 20, 20]
470
+
391
471
  api:
392
472
  constants:
393
473
  projections: *projections
@@ -413,15 +493,19 @@ vars:
413
493
  cache:
414
494
  std:
415
495
  backend: c2cgeoportal.hybridsentinel
416
- arguments:
496
+ arguments: &redis-cache-arguments
417
497
  lock_timeout: '{REDIS_LOCK_TIMEOUT}' # seconds
418
498
  redis_expiration_time: '{REDIS_EXPIRATION_TIME}' # seconds
419
499
  distributed_lock: True
500
+ thread_local_lock: False
420
501
  service_name: '{REDIS_SERVICENAME}'
421
502
  socket_timeout: '{REDIS_TIMEOUT}' # seconds
422
503
  db: 0
423
504
  obj:
424
505
  backend: dogpile.cache.memory
506
+ ogc-server:
507
+ backend: c2cgeoportal.hybridsentinel
508
+ arguments: *redis-cache-arguments
425
509
 
426
510
  admin_interface:
427
511
  layer_tree_max_nodes: 1000
@@ -431,89 +515,331 @@ vars:
431
515
  # TreeItem
432
516
  - name: searchAlias
433
517
  type: list
518
+ description: >
519
+ Comma separated list of search aliases (keywords) to be added to the tsearch.ts field for
520
+ the considered tree item (theme, layer group or layer), that is to say that considered
521
+ tree item will match when searching for the search aliases.
522
+ relevant_for:
523
+ - treeitem
524
+ - name: searchLabelPattern
525
+ description: >
526
+ Template string for the label of tree items in the search results, for example: "{name} ({theme})"
527
+ Supported parameters:
528
+ <ul>
529
+ <li>name (name of the tree item)</li>
530
+ <li>parent (parent of the item, may be a group, a block or a theme)</li>
531
+ <li>block (name of the block to which the item belongs)</li>
532
+ <li>theme (name of the theme to which the item belongs)</li>
533
+ </ul>
534
+ relevant_for:
535
+ - treeitem
434
536
  # Layers group
435
537
  - name: exclusiveGroup
436
538
  type: boolean
539
+ description: >
540
+ Whether the group contains children that have to be mutually exclusive, meaning that only
541
+ one child may be ON at any time.
542
+ relevant_for:
543
+ - layergroup
437
544
  - name: isExpanded
438
545
  type: boolean
546
+ description: >
547
+ Whether the layer group is expanded by default.
548
+ relevant_for:
549
+ - layergroup
439
550
  - name: printNativeAngle
440
551
  type: boolean
552
+ description: >
553
+ Whether the print should rotate the symbols.
554
+ relevant_for:
555
+ - layergroup
441
556
  # Layer
442
557
  - name: copyable
443
558
  type: boolean
559
+ description: >
560
+ Whether the geometry from this data source can be copied to other data sources or not.
561
+ relevant_for:
562
+ - layer_wms
444
563
  - name: legend
445
564
  type: boolean
565
+ description: >
566
+ Display the legend of this layer.
567
+ relevant_for:
568
+ - layer_wms
569
+ - layer_wmts
446
570
  - name: isLegendExpanded
447
571
  type: boolean
572
+ description: >
573
+ Whether the legend is expanded by default.
574
+ relevant_for:
575
+ - layer_wms
576
+ - layer_wmts
448
577
  - name: legendRule
578
+ description: >
579
+ The WMS "RULE" parameter used to display the icon in the layer tree. "Short version" of
580
+ the "iconURL" metadata.
581
+ relevant_for:
582
+ - layer_wms
449
583
  - name: legendImage
450
584
  type: url
585
+ description: >
586
+ The URL to the image used as a legend in the layer tree.
587
+ relevant_for:
588
+ - layer_wms
589
+ - layer_wmts
451
590
  - name: hiDPILegendImages
452
591
  type: json
592
+ description: >
593
+ The URLs to the hi DPI images used to print the legend of this layer.
594
+ It will contain a JSON mapping object with the DPI as key and the URL as value.
595
+ Note that the URL can't use the config scheme.
596
+ relevant_for:
597
+ - layer_wms
598
+ - layer_wmts
453
599
  - name: iconUrl
454
600
  type: url
601
+ description: >
602
+ The URL of the icon to display in the layer tree.
603
+ relevant_for:
604
+ - layer_wms
605
+ - layer_wmts
455
606
  - name: metadataUrl
456
607
  type: url
608
+ description: >
609
+ The URL to the information on this layer.
610
+ relevant_for:
611
+ - layer_wms
612
+ - layer_wmts
613
+ - layergroup
457
614
  - name: disclaimer
458
615
  translate: True
616
+ description: >
617
+ The disclaimer text for this element.
618
+ relevant_for:
619
+ - treeitem
459
620
  - name: isChecked
460
621
  type: boolean
622
+ description: >
623
+ Is the layer checked by default.
624
+ relevant_for:
625
+ - layer_wms
626
+ - layer_wmts
461
627
  - name: identifierAttributeField
628
+ description: >
629
+ The field used in the "display query window" as feature title.
630
+ relevant_for:
631
+ - layer_wms
462
632
  - name: maxResolution
463
633
  type: float
634
+ description: >
635
+ The max resolution where the layer is visible. On WMTS layers it will
636
+ have an effect on the node in the layertree but not on the layertree directly.
637
+ relevant_for:
638
+ - layer_wms
639
+ - layer_wmts
464
640
  - name: minResolution
465
641
  type: float
642
+ description: >
643
+ The min resolution where the layer is visible. On WMTS layers it will
644
+ have an effect on the node in the layertree but not on the layer directly.
645
+ relevant_for:
646
+ - layer_wms
647
+ - layer_wmts
466
648
  - name: opacity
467
649
  type: float
650
+ description: >
651
+ Layer opacity. 1.0 means fully visible, 0 means invisible.
652
+ relevant_for:
653
+ - layer_wms
654
+ - layer_wmts
468
655
  - name: thumbnail
469
656
  type: url
657
+ description: >
658
+ The icon visible in the background selector.
659
+ relevant_for:
660
+ - layer_wms
661
+ - layer_wmts
470
662
  - name: timeAttribute
663
+ description: >
664
+ The name of the time attribute. For WMS(-T) layers.
665
+ relevant_for:
666
+ - layer_wms
471
667
  - name: geotablePrimaryKey
668
+ description: >
669
+ The name of the primary key field for edition.
670
+ relevant_for:
671
+ - layer_wms
472
672
  - name: lastUpdateDateColumn
673
+ description: >
674
+ Define a column which will be automatically filled with the date of the last edit.
675
+ relevant_for:
676
+ - layer_wms
473
677
  - name: lastUpdateUserColumn
678
+ description: >
679
+ Define a column which will be automatically filled with the user of the last edit.
680
+ relevant_for:
681
+ - layer_wms
474
682
  - name: snappingConfig
475
683
  type: json
684
+ description: >
685
+ The snapping configuration for the layer. If set, even if empty, the layer is considered to be
686
+ "snappable" and snapping is activated by default. To disable snapping by default, set "activated"
687
+ to false. Example value: {"tolerance": 50, "edge": false}.
688
+ relevant_for:
689
+ - layer_wms
476
690
  - name: geometryValidation
477
691
  type: boolean
692
+ description: >
693
+ Force validation of the geometries according to the layer type (point, line, polygon),
694
+ for example, to prevent creation of a 2-point polygon.
695
+ relevant_for:
696
+ - layer_wms
478
697
  - name: customOpenLayersOptions
479
698
  type: json
699
+ description: >
700
+ The custom OpenLayers WMS layer options.
701
+ relevant_for:
702
+ - layer_wms
703
+ - layer_wmts
480
704
  - name: editingAttributesOrder
481
705
  type: list
706
+ description: >
707
+ Specify the order of the editable attributes in the edit interface.
708
+ relevant_for:
709
+ - layer_wms
482
710
  - name: editingEnumerations
483
711
  type: json
712
+ description: >
713
+ Specify the value column and the order column on the relationship's target table of the
714
+ enumeration.
715
+ relevant_for:
716
+ - layer_wms
484
717
  - name: readonlyAttributes
485
718
  type: list
719
+ description: >
720
+ Set attributes as read only in the Editing form.
721
+ relevant_for:
722
+ - layer_wms
486
723
  - name: queryIconPosition
487
724
  type: list
725
+ description: >
726
+ Values to define the shape (bbox) to use to query the layer. The values are used like a
727
+ padding in css with 1, 2, 3 or 4 comma separated values: all / top-bottom, left-right /
728
+ top, right-left, bottom / top, right, bottom, left.
729
+ relevant_for:
730
+ - layer_wms
731
+ - layer_wmts
732
+ - name: editingSelectionAttribute
733
+ description: >
734
+ The field used in the selector tooltip to name the layer when multiple ones are selected on the map.
735
+ relevant_for:
736
+ - layer_wms
488
737
  # WMS
489
738
  - name: directedFilterAttributes
490
739
  type: list
740
+ description: >
741
+ List of attribute names which should have rules already ready when using the filter
742
+ tools.
743
+ relevant_for:
744
+ - layer_wms
491
745
  - name: enumeratedAttributes
492
746
  type: list
747
+ description: >
748
+ List of attribute names which have enumerated attribute values (for filters purpose).
749
+ relevant_for:
750
+ - layer_wms
493
751
  # WMTS layers
494
752
  - name: ogcServer
753
+ description: >
754
+ The corresponding OGC server for a WMTS layer.
755
+ relevant_for:
756
+ - layer_wmts
495
757
  - name: wmsLayers
758
+ description: >
759
+ Corresponding WMS/WFS layers (comma separated) that will be used instead of the WMTS layer
760
+ to do the query and for the print.
761
+ An OGCServer metadata must be set with the name of the OGC server.
762
+ See also printLayers and queryLayers metadata for more granularity.
763
+ relevant_for:
764
+ - layer_wmts
496
765
  - name: queryLayers
766
+ description: >
767
+ Corresponding WFS layers (comma separated) that will be used instead of the WMTS layer
768
+ to do the query.
769
+ An OGCServer metadata must be set with the name of the OGC server.
770
+ relevant_for:
771
+ - layer_wmts
497
772
  - name: printLayers
773
+ description: >
774
+ Corresponding WMS layers (comma separated) that will be used instead of the WMTS layer
775
+ for the print.
776
+ Used to increase the quality of the printed layer, by using native rotation and
777
+ generating an image in hi-DPI.
778
+ An OGCServer metadata must be set with the name of the OGC server.
779
+ relevant_for:
780
+ - layer_wmts
498
781
  - name: maxQueryResolution
499
782
  type: float
783
+ description: >
784
+ The max resolution where the layer is queryable.
785
+ relevant_for:
786
+ - layer_wmts
500
787
  - name: minQueryResolution
501
788
  type: float
789
+ description: >
790
+ The min resolution where the layer is queryable.
791
+ relevant_for:
792
+ - layer_wmts
793
+ - name: timeout
794
+ type: float
795
+ description: The fetch capabilities timeout in seconds. Use `300` by default.
796
+ relevant_for:
797
+ - layer_wmts
502
798
 
503
799
  # The list of functionalities that can be configured
504
800
  # through the admin interface.
505
801
  available_functionalities:
506
802
  - name: default_basemap
507
803
  single: true
804
+ description: >
805
+ The background layer to load when the user select this theme.
806
+ relevant_for:
807
+ - theme
508
808
  - name: default_theme
509
809
  single: true
810
+ description: >
811
+ The theme to load when the user log in.
812
+ relevant_for:
813
+ - role
510
814
  - name: print_template
815
+ description: >
816
+ Grant access to considered print template.
817
+ relevant_for:
818
+ - role
511
819
  - name: mapserver_substitution
820
+ relevant_for:
821
+ - role
822
+ description: >
823
+ MapServer substitution of a variable in the mapfile.
824
+ See the documentation here:
825
+ https://camptocamp.github.io/c2cgeoportal/{{cookiecutter.geomapfish_main_version}}/administrator/mapfile.html?highlight=mapserver_substitution#variable-substitution
512
826
  - name: filterable_layers
827
+ description: >
828
+ Grant access for filtering considered layer.
829
+ relevant_for:
830
+ - role
513
831
  - name: preset_layer_filter
514
832
  single: true
833
+ description: >
834
+ Name of the layer (data source) to select in the filter tool upon loading an application.
835
+ relevant_for:
836
+ - role
515
837
  - name: open_panel
516
838
  single: true
839
+ description: >
840
+ Name of a panel to open upon loading an application.
841
+ relevant_for:
842
+ - role
517
843
 
518
844
  getitfixed:
519
845
  enabled: false
@@ -582,17 +908,25 @@ vars:
582
908
  qgisserver: '{QGISSERVER_URL}'
583
909
 
584
910
  host_forward_host: []
911
+ headers_whitelist: []
912
+ headers_blacklist: []
585
913
 
586
914
  # The "raster web services" configuration. See the "raster"
587
915
  # chapter in the integrator documentation.
588
916
  raster: {}
589
917
 
918
+ # the "vector tiles service" configuration. See the "vector tiles"
919
+ # chapter in the integrator documentation.
920
+ vector_tiles: {}
921
+
590
922
  # Used by enumeration in the query builder
591
923
  layers:
592
924
  geometry_validation: True
593
925
 
594
926
  # Used by reset_password and shortener to send emails
595
- smtp: {}
927
+ smtp:
928
+ ssl: false
929
+ starttls: false
596
930
 
597
931
  # Used to send an email on password reset
598
932
  reset_password: {}
@@ -623,11 +957,17 @@ vars:
623
957
  content_security_policy_main_script_src_extra: '
624
958
  https://maps.google.com/
625
959
  https://maps.googleapis.com/
626
- https://www.google-analytics.com/'
960
+ https://www.google-analytics.com/
961
+ https://*.googletagmanager.com/'
627
962
  content_security_policy_main_style_src_extra: '
628
963
  https://fonts.googleapis.com/'
629
- content_security_policy_main_img_src_extra: ''
630
- content_security_policy_main_connect_src_extra: ''
964
+ content_security_policy_main_img_src_extra: '
965
+ https://*.google-analytics.com/
966
+ https://*.googletagmanager.com/'
967
+ content_security_policy_main_connect_src_extra: '
968
+ https://*.google-analytics.com/
969
+ https://*.analytics.google.com/
970
+ https://*.googletagmanager.com/'
631
971
  content_security_policy_main_default_src: "
632
972
  'self'
633
973
  https://*
@@ -635,8 +975,6 @@ vars:
635
975
  content_security_policy_main_script_src: "
636
976
  'self'
637
977
  'unsafe-inline'
638
- 'unsafe-eval'
639
- https://cdn.polyfill.io/
640
978
  {content_security_policy_main_script_src_extra}"
641
979
  content_security_policy_main_style_src: "
642
980
  'self'
@@ -645,7 +983,6 @@ vars:
645
983
  content_security_policy_main_img_src: '
646
984
  *
647
985
  data:
648
- blob:
649
986
  {content_security_policy_main_img_src_extra}'
650
987
  content_security_policy_main_connect_src: '
651
988
  *
@@ -690,7 +1027,6 @@ vars:
690
1027
  'self'
691
1028
  'unsafe-inline'
692
1029
  'unsafe-eval'
693
- https://cdn.polyfill.io/
694
1030
  {content_security_policy_apihelp_script_src_extra}"
695
1031
  content_security_policy_apihelp_style_src: "
696
1032
  'self'
@@ -720,6 +1056,8 @@ vars:
720
1056
  https://stackpath.bootstrapcdn.com/
721
1057
  {content_security_policy_c2c_style_src_extra}"
722
1058
 
1059
+ content_security_policy_iframe_api_frame_ancestors: "'self'"
1060
+
723
1061
  global_headers:
724
1062
  - pattern: '^/admin/.*'
725
1063
  headers: &c2cgeoform_headers
@@ -743,6 +1081,10 @@ vars:
743
1081
  headers:
744
1082
  Access-Control-Allow-Origin: '*'
745
1083
  Access-Control-Allow-Headers: X-Requested-With, Content-Type
1084
+ - pattern: '^/static-geomapfish/.*'
1085
+ headers:
1086
+ Access-Control-Allow-Origin: '*'
1087
+ Access-Control-Allow-Headers: X-Requested-With, Content-Type
746
1088
  - pattern: '^/c2c$'
747
1089
  headers:
748
1090
  Content-Security-Policy: 'default-src {content_security_policy_c2c_default_src};
@@ -753,11 +1095,20 @@ vars:
753
1095
  Content-Security-Policy: 'default-src {content_security_policy_c2c_default_src};
754
1096
  script-src {content_security_policy_c2c_script_src};
755
1097
  style-src {content_security_policy_c2c_style_src};'
1098
+ - pattern: '^/iframe_api(/theme/.*)?$'
1099
+ headers:
1100
+ Content-Security-Policy: 'default-src {content_security_policy_main_default_src};
1101
+ script-src {content_security_policy_main_script_src};
1102
+ style-src {content_security_policy_main_style_src};
1103
+ img-src {content_security_policy_main_img_src};
1104
+ connect-src {content_security_policy_main_connect_src};
1105
+ frame-ancestors {content_security_policy_iframe_api_frame_ancestors};'
756
1106
 
757
1107
  # Control the HTTP headers
758
1108
  headers:
759
1109
  dynamic: &header
760
1110
  cache_control_max_age: 600 # 10 minutes
1111
+ cache_control_max_age_nocache: 10 # 10 seconds, to avoid too many call
761
1112
  access_control_max_age: 600 # 10 minutes
762
1113
  access_control_allow_origin:
763
1114
  - '*'
@@ -786,9 +1137,11 @@ vars:
786
1137
  connect-src {content_security_policy_apihelp_connect_src}'
787
1138
  profile: *header
788
1139
  raster: *header
1140
+ vector_tiles: *header
789
1141
  error: *header
790
1142
  themes: &auth_header
791
1143
  cache_control_max_age: 600 # 10 minutes
1144
+ cache_control_max_age_nocache: 10 # 10 seconds, to avoid too many call
792
1145
  access_control_max_age: 600 # 10 minutes
793
1146
  access_control_allow_origin:
794
1147
  - '{VISIBLE_WEB_PROTOCOL}://{VISIBLE_WEB_HOST}'
@@ -800,7 +1153,9 @@ vars:
800
1153
  fulltextsearch: *auth_header
801
1154
  mapserver: *auth_header
802
1155
  tinyows: *auth_header
803
- layers: *auth_header
1156
+ layers:
1157
+ <<: *auth_header
1158
+ cache_control_max_age_nocache: 0 # to refresh issue in editing
804
1159
  shortener: *auth_header
805
1160
  login:
806
1161
  <<: *auth_header
@@ -899,7 +1254,7 @@ vars:
899
1254
  # application. The value is the full python name
900
1255
  # (full.module.path.function_name) of the function to call
901
1256
  hooks: {}
902
- # after_settings: {{package}}.after_settings_hook
1257
+ # after_settings: {{cookiecutter.package}}.after_settings_hook
903
1258
  # Called just after the settings have been loaded. Allows to modify
904
1259
  # the settings at runtime (they are constructed at build time).
905
1260
  # The function receives one parameter: the settings object.
@@ -909,7 +1264,7 @@ vars:
909
1264
 
910
1265
  # The c2cwsgiutils base path
911
1266
  c2c:
912
- base_path: '{VISIBLE_ENTRY_POINT}c2c'
1267
+ base_path: /c2c
913
1268
 
914
1269
  db_chooser:
915
1270
  # List of {method path} regexes to force the usage of the master, even for GET and OPTIONS
@@ -998,6 +1353,10 @@ runtime_postprocess:
998
1353
  - cache.std.arguments.redis_expiration_time
999
1354
  - cache.std.arguments.socket_timeout
1000
1355
  - cache.std.arguments.db
1356
+ - cache.ogc-server.arguments.lock_timeout
1357
+ - cache.ogc-server.arguments.redis_expiration_time
1358
+ - cache.ogc-server.arguments.socket_timeout
1359
+ - cache.ogc-server.arguments.db
1001
1360
  - sqlalchemy\.pool_recycle
1002
1361
  - sqlalchemy\.pool_size
1003
1362
  - sqlalchemy\.max_overflow
@@ -1009,36 +1368,52 @@ runtime_postprocess:
1009
1368
  - authentication.oauth2_token_expire_minutes
1010
1369
  - headers.login.access_control_max_age
1011
1370
  - headers.login.cache_control_max_age
1371
+ - headers.login.cache_control_max_age_nocache
1012
1372
  - headers.index.access_control_max_age
1013
1373
  - headers.index.cache_control_max_age
1374
+ - headers.index.cache_control_max_age_nocache
1014
1375
  - headers.dynamic.access_control_max_age
1015
1376
  - headers.dynamic.cache_control_max_age
1377
+ - headers.dynamic.cache_control_max_age_nocache
1016
1378
  - headers.config.access_control_max_age
1017
1379
  - headers.config.cache_control_max_age
1380
+ - headers.config.cache_control_max_age_nocache
1018
1381
  - headers.api.access_control_max_age
1019
1382
  - headers.api.cache_control_max_age
1383
+ - headers.api.cache_control_max_age_nocache
1020
1384
  - headers.apihelp.access_control_max_age
1021
1385
  - headers.apihelp.cache_control_max_age
1386
+ - headers.apihelp.cache_control_max_age_nocache
1022
1387
  - headers.themes.access_control_max_age
1023
1388
  - headers.themes.cache_control_max_age
1389
+ - headers.themes.cache_control_max_age_nocache
1024
1390
  - headers.fulltextsearch.access_control_max_age
1025
1391
  - headers.fulltextsearch.cache_control_max_age
1392
+ - headers.fulltextsearch.cache_control_max_age_nocache
1026
1393
  - headers.mapserver.access_control_max_age
1027
1394
  - headers.mapserver.cache_control_max_age
1395
+ - headers.mapserver.cache_control_max_age_nocache
1028
1396
  - headers.tinyows.access_control_max_age
1029
1397
  - headers.tinyows.cache_control_max_age
1398
+ - headers.tinyows.cache_control_max_age_nocache
1030
1399
  - headers.layers.access_control_max_age
1031
1400
  - headers.layers.cache_control_max_age
1401
+ - headers.layers.cache_control_max_age_nocache
1032
1402
  - headers.print.access_control_max_age
1033
1403
  - headers.print.cache_control_max_age
1404
+ - headers.print.cache_control_max_age_nocache
1034
1405
  - headers.profile.access_control_max_age
1035
1406
  - headers.profile.cache_control_max_age
1407
+ - headers.profile.cache_control_max_age_nocache
1036
1408
  - headers.raster.access_control_max_age
1037
1409
  - headers.raster.cache_control_max_age
1410
+ - headers.raster.cache_control_max_age_nocache
1038
1411
  - headers.shortener.access_control_max_age
1039
1412
  - headers.shortener.cache_control_max_age
1413
+ - headers.shortener.cache_control_max_age_nocache
1040
1414
  - headers.error.access_control_max_age
1041
1415
  - headers.error.cache_control_max_age
1416
+ - headers.error.cache_control_max_age_nocache
1042
1417
  - shortener.length
1043
1418
  - checker.fulltextsearch.level
1044
1419
  - checker.lang.level
@@ -1065,6 +1440,8 @@ runtime_postprocess:
1065
1440
  - metrics.total_python_object_memory
1066
1441
 
1067
1442
  no_interpreted:
1443
+ - admin_interface.available_functionalities[].description
1444
+ - admin_interface.available_metadata[].description
1068
1445
  - interfaces_config.default.static.angularLocaleScript.append
1069
1446
  - interfaces_config.default.constants.gmfMousePositionOptions.projections[].filter
1070
1447
  - interfaces_config.default.constants.gmfMobileMeasurePointOptions.format