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,10 +1,11 @@
1
- # -*- coding: utf-8 -*-
2
-
1
+ import pyramid.request
3
2
  from pyramid.security import ALL_PERMISSIONS, Allow
4
3
 
5
4
 
6
5
  class Root:
6
+ """The Pyramid root object."""
7
+
7
8
  __acl__ = [(Allow, "role_admin", ALL_PERMISSIONS)]
8
9
 
9
- def __init__(self, request):
10
+ def __init__(self, request: pyramid.request.Request):
10
11
  self.request = request
@@ -2,12 +2,11 @@
2
2
  import Map from 'api/Map.js';
3
3
  import {dynamicUrl} from 'api/constants.js';
4
4
 
5
-
6
5
  // The URL to the dynamic constants service.
7
6
  dynamicUrl.dynamicUrl = '{FULL_ENTRY_POINT}dynamic.json?interface=api';
8
7
 
9
8
  const lib = {
10
- Map
9
+ Map,
11
10
  };
12
11
 
13
12
  export default lib;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file provides the "{{package}}" namespace, which is the
2
+ * This file provides the "{{cookiecutter.package}}" namespace, which is the
3
3
  * application's main namespace. And it defines the application's Angular
4
4
  * module.
5
5
  */
@@ -10,9 +10,9 @@ import {decodeQueryString} from 'ngeo/utils.js';
10
10
  /**
11
11
  * @type {!angular.IModule}
12
12
  */
13
- const module = angular.module('{{package}}', []);
13
+ const myModule = angular.module('{{cookiecutter.package}}', []);
14
14
 
15
- module.config([
15
+ myModule.config([
16
16
  '$compileProvider',
17
17
  function ($compileProvider) {
18
18
  if (!('debug' in decodeQueryString(window.location.search))) {
@@ -22,4 +22,4 @@ module.config([
22
22
  },
23
23
  ]);
24
24
 
25
- export default module;
25
+ export default myModule;
@@ -1,10 +1,8 @@
1
- # -*- coding: utf-8 -*-
2
-
3
1
  from pyramid.events import BeforeRender, NewRequest, subscriber
4
2
  from pyramid.i18n import TranslationStringFactory, get_localizer
5
3
 
6
4
  # use two translator to translate each strings in Make
7
- tsf_server = TranslationStringFactory("{{package}}-server")
5
+ tsf_server = TranslationStringFactory("{{cookiecutter.package}}-server")
8
6
  tsf_geoportal = TranslationStringFactory("c2cgeoportal")
9
7
  tsf_admin = TranslationStringFactory("c2cgeoportal_admin")
10
8
  tsf_c2cgeoform = TranslationStringFactory("c2cgeoform")
@@ -0,0 +1,18 @@
1
+ {
2
+ "project": "test_project",
3
+ "package": "test_project",
4
+ "srid": "2056",
5
+ "extent": "",
6
+ "extent_mapserver": "",
7
+ "authtkt_secret": "",
8
+ "unsafe_long_version": false,
9
+ "geomapfish_version": "",
10
+ "geomapfish_main_version": "",
11
+ "geomapfish_main_version_dash": "",
12
+ "geomapfish_main_minor_version": "",
13
+ "geomapfish_version_tag": "",
14
+ "geomapfish_version_tag_env": "",
15
+ "geomapfish_major_version_tag": "",
16
+ "geomapfish_major_version_tag_env": "",
17
+ "_copy_without_render": ["*.po", "*/contextualdata.html"]
18
+ }
@@ -1,4 +1,4 @@
1
- export PACKAGE = {{package}}
1
+ export PACKAGE = {{cookiecutter.package}}
2
2
 
3
3
  TEMPLATE_EXCLUDE += $(PACKAGE)_geoportal/static/lib
4
4
  FIND_OPTS = $(foreach ELEM, $(TEMPLATE_EXCLUDE),-path ./$(ELEM) -prune -o) -type f
@@ -43,32 +43,12 @@ VALIDATE_PY_FOLDERS = admin/$(PACKAGE)_admin \
43
43
  $(PACKAGE)_geoportal/scripts $(PACKAGE)_geoportal/views
44
44
  VALIDATE_PY_TEST_FOLDERS = $(PACKAGE)_geoportal/tests
45
45
 
46
- PY_FILES = $(shell find $(PACKAGE) -type f -name '*.py' -print 2> /dev/null)
47
-
48
- # Templates
49
-
50
-
51
46
  # Disabling Make built-in rules to speed up execution time
52
47
  .SUFFIXES:
53
48
 
54
49
  .PHONY: build
55
50
  build: $(BUILD_RULES)
56
51
 
57
- .PHONY: checks
58
- checks: prospector eslint
59
-
60
- .PHONY: prospector
61
- prospector:
62
- prospector
63
-
64
- .PHONY: eslint
65
- eslint: $(APP_JS_FILES)
66
- eslint $?
67
-
68
- .PHONY: eslint-fix
69
- eslint-fix: $(APP_JS_FILES)
70
- eslint --fix $?
71
-
72
52
  # Server localisation
73
53
 
74
54
  PO_FILES = $(addprefix $(PACKAGE)_geoportal/locale/, $(addsuffix /LC_MESSAGES/$(PACKAGE)_geoportal-server.po, $(LANGUAGES)))
@@ -76,7 +56,7 @@ PO_FILES = $(addprefix $(PACKAGE)_geoportal/locale/, $(addsuffix /LC_MESSAGES/$(
76
56
  .INTERMEDIATE: $(PACKAGE)_geoportal/locale/$(PACKAGE)_geoportal-server.pot
77
57
  $(PACKAGE)_geoportal/locale/$(PACKAGE)_geoportal-server.pot: lingua-server.cfg $(SRC_FILES)
78
58
  mkdir --parent $(dir $@)
79
- [ -z "$(SRC_FILES)" ] || pot-create --config $< --keyword _ --output $@ $(SRC_FILES)
59
+ [ -z "$(SRC_FILES)" ] || pot-create --width=110 --config=$< --keyword=_ --output=$@ $(SRC_FILES)
80
60
 
81
61
  .PRECIOUS: $(PACKAGE)_geoportal/locale/%/LC_MESSAGES/$(PACKAGE)_geoportal-server.po
82
62
  $(PACKAGE)_geoportal/locale/%/LC_MESSAGES/$(PACKAGE)_geoportal-server.po: \
@@ -93,7 +73,7 @@ update-server-po: $(PO_FILES)
93
73
 
94
74
  .PHONY: update-client-po
95
75
  update-client-po:
96
- cd .. && update-po $(USER_ID) $(GROUP_ID) $(LANGUAGES)
76
+ cd .. && SUFFIX= update-po $(USER_ID) $(GROUP_ID) $(LANGUAGES)
97
77
 
98
78
  .PHONY: update-po
99
79
  update-po: update-server-po update-client-po
@@ -122,10 +102,6 @@ apps: webpack.apps.js
122
102
  for interface in $(NGEO_INTERFACES); \
123
103
  do \
124
104
  mv $(APP_OUTPUT_DIR)/$${interface}.html $(APP_OUTPUT_DIR)/$${interface}.html.tmpl; \
125
- ls -1 $(APP_OUTPUT_DIR)/$${interface}.*.css|while read file; \
126
- do \
127
- mv $${file} $${file}.tmpl; \
128
- done; \
129
105
  done
130
106
 
131
107
  # API
@@ -0,0 +1,18 @@
1
+ {
2
+ "project": "test_project",
3
+ "package": "test_project",
4
+ "srid": "2056",
5
+ "extent": "",
6
+ "extent_mapserver": "",
7
+ "authtkt_secret": "",
8
+ "unsafe_long_version": false,
9
+ "geomapfish_version": "",
10
+ "geomapfish_main_version": "",
11
+ "geomapfish_main_version_dash": "",
12
+ "geomapfish_main_minor_version": "",
13
+ "geomapfish_version_tag": "",
14
+ "geomapfish_version_tag_env": "",
15
+ "geomapfish_major_version_tag": "",
16
+ "geomapfish_major_version_tag_env": "",
17
+ "_copy_without_render": ["*.po", "*/contextualdata.html"]
18
+ }
@@ -0,0 +1,14 @@
1
+ *
2
+ !bin/
3
+ !mapserver/
4
+ !qgisserver/
5
+ !tilegeneration/
6
+ !haproxy/
7
+ !print/print-apps/
8
+ !geoportal/vars*.yaml
9
+ !geoportal/interfaces/
10
+ !geoportal/CONST_vars.yaml
11
+ !geoportal/CONST_config-schema.yaml
12
+ !geoportal/{{cookiecutter.package}}_geoportal/static
13
+ !geoportal/{{cookiecutter.package}}_geoportal/locale
14
+ geoportal/{{cookiecutter.package}}_geoportal/locale/*.pot
@@ -10,11 +10,8 @@ trim_trailing_whitespace = true
10
10
  max_line_length = 110
11
11
  quote_type = single
12
12
 
13
- [*.{js,css,html,scss,html.ejs}]
13
+ [*.{js,ts,css,scss,yaml,yml,json,html,md,yaml.tmpl}]
14
14
  indent_size = 2
15
15
 
16
- [*.{yaml,yml,yaml.tmpl}]
17
- indent_size = 2
18
-
19
- [Makefile]
16
+ [{Makefile,*.mk}]
20
17
  indent_style = tab
@@ -0,0 +1,57 @@
1
+ ---
2
+ name: Continuous integration
3
+
4
+ on:
5
+ push:
6
+
7
+ # To publish the images to be used on Kubernetes
8
+ # env:
9
+ # PROJECT: {{cookiecutter.package}}
10
+ # HAS_SECRETS: ${{'{{'}} secrets.HAS_SECRETS }}
11
+
12
+ jobs:
13
+ main:
14
+ runs-on: ubuntu-22.04
15
+ name: Continuous integration
16
+ timeout-minutes: 10
17
+
18
+ steps:
19
+ - uses: actions/checkout@v2
20
+
21
+ # To publish the images to be used on Kubernetes
22
+ # - uses: camptocamp/initialise-gopass-summon-action@v2
23
+ # with:
24
+ # ci-gpg-private-key: ${{'{{'}} secrets.CI_GPG_PRIVATE_KEY }}
25
+ # github-gopass-ci-token: ${{'{{'}} secrets.GOPASS_CI_GITHUB_TOKEN }}
26
+ # patterns: docker
27
+ # if: env.HAS_SECRETS == 'HAS_SECRETS'
28
+
29
+ - run: echo "${HOME}/.local/bin" >> ${GITHUB_PATH}
30
+ - run: python3 -m pip install --user --requirement=ci/requirements.txt
31
+
32
+ # Can be used to have some secrets (with mask)
33
+ # - run: make secrets
34
+ # - run: cat env.secrets |grep '^[# A-Z0-9_]\+='|sed -e 's/^[# A-Z0-9_]\+=\(.*\)/::add-mask::\1/g'
35
+
36
+ - name: Checks
37
+ run: c2cciutils-checks
38
+
39
+ # - name: Initialize the acceptance tests
40
+ # run: make acceptance-init
41
+ # - run: c2cciutils-docker-logs
42
+ # if: always()
43
+
44
+ # - name: Run the acceptance tests
45
+ # run: make acceptance
46
+ # - run: c2cciutils-docker-logs
47
+ # if: always()
48
+
49
+ - name: Build
50
+ run: ./build --docker-compose-version-2
51
+
52
+ - name: Application checks
53
+ run: make checks
54
+
55
+ # To publish the images to be used on Kubernetes
56
+ # - name: Publish
57
+ # run: c2cciutils-publish
@@ -0,0 +1,46 @@
1
+ ---
2
+ name: Rebuild
3
+
4
+ on:
5
+ schedule:
6
+ - cron: '30 2 * * *'
7
+
8
+ env:
9
+ PROJECT: {{cookiecutter.package}}
10
+ # Requires CI_GPG_PRIVATE_KEY and GOPASS_CI_GITHUB_TOKEN secrets.
11
+ # OPENSHIFT_PROJECT: gs-gmf-{{cookiecutter.package}}
12
+ # The release branches
13
+ HELM_RELEASE_NAMES: int-{{cookiecutter.geomapfish_main_version_dash}},prod-{{cookiecutter.geomapfish_main_version_dash}}
14
+
15
+ jobs:
16
+ rebuild:
17
+ runs-on: ubuntu-22.04
18
+ name: Rebuild
19
+ timeout-minutes: 10
20
+
21
+ strategy:
22
+ fail-fast: false
23
+ matrix:
24
+ branch:
25
+ - int-{{cookiecutter.geomapfish_main_version_dash}}
26
+ - prod-{{cookiecutter.geomapfish_main_version_dash}}
27
+
28
+ steps:
29
+ - uses: actions/checkout@v2
30
+ with:
31
+ ref: ${{'{{'}} matrix.branch }}
32
+
33
+ - uses: camptocamp/initialise-gopass-summon-action@v2
34
+ with:
35
+ ci-gpg-private-key: ${{'{{'}} secrets.CI_GPG_PRIVATE_KEY }}
36
+ github-gopass-ci-token: ${{'{{'}} secrets.GOPASS_CI_GITHUB_TOKEN }}
37
+ patterns: docker
38
+
39
+ - run: echo "${HOME}/.local/bin" >> ${GITHUB_PATH}
40
+ - run: python3 -m pip install --user --requirement=ci/requirements.txt
41
+
42
+ - name: Build
43
+ run: ./build --docker-compose-version-2
44
+
45
+ - name: Publish
46
+ run: c2cciutils-publish --branch=${{'{{'}} matrix.branch }} --type=rebuild
@@ -0,0 +1,66 @@
1
+ ---
2
+ name: Update l10n cron job
3
+
4
+ on:
5
+ schedule:
6
+ - cron: '0 3 * * *'
7
+
8
+ jobs:
9
+ l10n:
10
+ runs-on: ubuntu-22.04
11
+ name: Update l10n cron job
12
+ timeout-minutes: 10
13
+
14
+ strategy:
15
+ fail-fast: false
16
+ matrix:
17
+ include:
18
+ - branch: int-{{cookiecutter.geomapfish_main_version_dash}}
19
+ base_url: int.customer.ch
20
+ - branch: prod-{{cookiecutter.geomapfish_main_version_dash}}
21
+ base_url: prod.customer.ch
22
+
23
+ steps:
24
+ - uses: actions/checkout@v2
25
+ with:
26
+ ref: ${{'{{'}} matrix.branch {{'}}'}}
27
+ token: ${{'{{'}} secrets.GOPASS_CI_GITHUB_TOKEN {{'}}'}}
28
+
29
+ - run: ./build --env
30
+ - run: PROJECT_PUBLIC_URL=${{'{{'}} matrix.base_url {{'}}'}} make -e update-po-from-url
31
+
32
+ - name: Init Git
33
+ run: |
34
+ git config --global user.email "geospatial-bot@camptocamp.com"
35
+ git config --global user.name CI
36
+
37
+ - id: status
38
+ run: echo "status=$(git diff --exit-code --quiet && echo 'unchanged' || echo 'changed')" >> $GITHUB_OUTPUT
39
+
40
+ - name: Push l10n branch and create pull request
41
+ run: |
42
+ sudo chown -R $(id -u) .
43
+ git add --all || true
44
+ git status
45
+ git commit -m "Update the l10n files"
46
+ git push --force origin HEAD:l10n-${{'{{'}} matrix.branch {{'}}'}}
47
+ python3 -c "import requests
48
+ response = requests.post(
49
+ 'https://api.github.com/repos/${GITHUB_REPOSITORY}/pulls',
50
+ json={
51
+ 'title': 'Update the l10n files on ${{'{{'}} matrix.branch {{'}}'}}',
52
+ 'body': '',
53
+ 'head': 'l10n-${{'{{'}} matrix.branch {{'}}'}}',
54
+ 'base': '${{'{{'}} matrix.branch {{'}}'}}',
55
+ 'maintainer_can_modify': True
56
+ },
57
+ headers={
58
+ 'Accept': 'application/vnd.github.v3+json',
59
+ 'Authorization': 'Bearer ${{'{{'}} secrets.GOPASS_CI_GITHUB_TOKEN {{'}}'}}',
60
+ 'Content-Type': 'application/json',
61
+ },
62
+ timeout=120,
63
+ )
64
+ # 422 is the return code when the pull request already exists
65
+ assert response.status_code < 300 or response.status_code == 422, f'{response.status_code} - {response.text}'"
66
+ if: steps.status.outputs.status != 'unchanged'
@@ -0,0 +1,16 @@
1
+ *.pyc
2
+ *.pyo
3
+ __pycache__/
4
+ /.env
5
+ /env.personal
6
+ /docker-compose.override.yaml
7
+ /upgrade
8
+ /.upgrade.yaml
9
+ /.UPGRADE*
10
+ /geoportal/{{cookiecutter.package}}_geoportal/locale/{{cookiecutter.package}}_geoportal-client.pot
11
+
12
+ # Generated with dev mode
13
+ /geoportal/{{cookiecutter.package}}_geoportal/static/apihelp/index.html
14
+ /geoportal/{{cookiecutter.package}}_geoportal/static/robot.txt
15
+ /print/print-apps/{{cookiecutter.package}}/config.yaml
16
+ /mapserver/tinyows.xml
@@ -0,0 +1,2 @@
1
+ bracketSpacing: false
2
+ quoteProps: preserve
@@ -0,0 +1,76 @@
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
5
+
6
+ ENV VARS_FILE=vars.yaml
7
+ ENV CONFIG_VARS sqlalchemy.url sqlalchemy.pool_recycle sqlalchemy.pool_size sqlalchemy.max_overflow \
8
+ sqlalchemy.executemany_mode sqlalchemy_slave.url sqlalchemy_slave.pool_recycle sqlalchemy_slave.pool_size \
9
+ sqlalchemy_slave.max_overflow sqlalchemy_slave.executemany_mode schema schema_static enable_admin_interface \
10
+ default_locale_name servers layers cache admin_interface getitfixed functionalities \
11
+ raster shortener hide_capabilities tinyowsproxy resourceproxy print_url print_get_redirect \
12
+ checker check_collector default_max_age package srid \
13
+ reset_password fulltextsearch global_headers headers authorized_referers hooks stats db_chooser \
14
+ dbsessions urllogin host_forward_host headers_whitelist headers_blacklist \
15
+ smtp c2c.base_path welcome_email \
16
+ lingua_extractor interfaces_config interfaces devserver_url api authentication intranet metrics pdfreport \
17
+ vector_tiles i18next main_ogc_server
18
+
19
+ COPY . /tmp/config/
20
+
21
+ ARG SIMPLE
22
+ ENV SIMPLE=$SIMPLE
23
+
24
+ RUN build-l10n "{{cookiecutter.package}}"
25
+
26
+ ARG PGSCHEMA
27
+ ENV PGSCHEMA=$PGSCHEMA
28
+
29
+ RUN \
30
+ cd /tmp/config/geoportal/ \
31
+ && c2c-template --vars ${VARS_FILE} \
32
+ --get-config {{cookiecutter.package}}_geoportal/config.yaml \
33
+ ${CONFIG_VARS} \
34
+ && pykwalify --data-file {{cookiecutter.package}}_geoportal/config.yaml \
35
+ --schema-file CONST_config-schema.yaml \
36
+ && rm CONST_* vars.yaml \
37
+ && qgisserver-plugin-config {{cookiecutter.package}}_geoportal/config.yaml ../qgisserver/geomapfish.yaml.tmpl
38
+
39
+ ###############################################################################
40
+
41
+ FROM camptocamp/geomapfish-config:{{cookiecutter.geomapfish_major_version_tag_env}} AS gmf_config
42
+
43
+ ARG PGSCHEMA
44
+ ENV PGSCHEMA=$PGSCHEMA
45
+
46
+ COPY --from=builder /tmp/config/ /tmp/config/
47
+
48
+ RUN \
49
+ mvif /tmp/config/mapserver /etc/ \
50
+ && mvif /tmp/config/tilegeneration /etc/ \
51
+ && mvif /tmp/config/qgisserver /etc/qgisserver \
52
+ && mvif /tmp/config/haproxy/* /etc/haproxy/ \
53
+ && mkdir --parent /usr/local/tomcat/webapps/ROOT/ \
54
+ && mvif /tmp/config/print /tmp/config/print/print-apps /usr/local/tomcat/webapps/ROOT/ \
55
+ && mv /tmp/config/geoportal/{{cookiecutter.package}}_geoportal/ /etc/geomapfish/ \
56
+ && mv /tmp/config/geoportal/* /etc/geomapfish/ || true \
57
+ && chmod g+w -R \
58
+ /etc/geomapfish \
59
+ /etc/mapserver \
60
+ /etc/qgisserver \
61
+ /etc/tilegeneration \
62
+ /usr/local/tomcat/webapps/ROOT/print-apps \
63
+ /etc/haproxy_dev \
64
+ /etc/haproxy \
65
+ && adduser www-data root \
66
+ && sed 's#bind :80#bind *:443 ssl crt /etc/haproxy_dev/localhost.pem#g' /etc/haproxy/haproxy.cfg.tmpl \
67
+ > /etc/haproxy_dev/haproxy.cfg.tmpl \
68
+ && echo ' http-request set-header X-Forwarded-Proto https' >> /etc/haproxy_dev/haproxy.cfg.tmpl
69
+
70
+ VOLUME /etc/geomapfish \
71
+ /etc/mapserver \
72
+ /etc/qgisserver \
73
+ /etc/tilegeneration \
74
+ /usr/local/tomcat/webapps/ROOT/print-apps \
75
+ /etc/haproxy_dev \
76
+ /etc/haproxy
@@ -0,0 +1,70 @@
1
+ PROJECT_PUBLIC_URL=https://example.camptocamp.com/
2
+ DUMP_FILE=dump.backup
3
+ PACKAGE={{cookiecutter.package}}
4
+ LANGUAGES=en fr de it
5
+
6
+ .PHONY: help
7
+ help: ## Display this help message
8
+ @echo "Usage: make <target>"
9
+ @echo
10
+ @echo "Available targets:"
11
+ @grep --extended-regexp --no-filename '^[a-zA-Z_-]+:.*## ' $(MAKEFILE_LIST) | sort | \
12
+ awk 'BEGIN {FS = ":.*?## "}; {printf " %-20s%s\n", $$1, $$2}'
13
+
14
+ .PHONY: update-po-from-url
15
+ update-po-from-url: ## Update the po files from the URL provide by PROJECT_PUBLIC_URL
16
+ curl --fail --retry 5 --retry-delay 1 \
17
+ $(PROJECT_PUBLIC_URL)locale.pot > geoportal/${PACKAGE}_geoportal/locale/${PACKAGE}_geoportal-client${SUFFIX}.pot
18
+ sed -i '/^"POT-Creation-Date: /d' geoportal/${PACKAGE}_geoportal/locale/${PACKAGE}_geoportal-client${SUFFIX}.pot
19
+ docker-compose run --rm -T tools update-po-only `id --user` `id --group` $(LANGUAGES)
20
+
21
+ .PHONY: update-po
22
+ update-po: ## Update the po files from the running composition
23
+ docker-compose exec -T tools sh -c "USER_ID=`id --user` GROUP_ID=`id --group` make --directory=geoportal update-po"
24
+
25
+ .PHONY: checks
26
+ checks: prospector eslint ## Runs the checks
27
+
28
+ .PHONY: prospector
29
+ prospector: ## Runs the Prospector checks
30
+ docker-compose run --entrypoint= --no-deps --rm --volume=$(CURDIR)/geoportal:/app geoportal \
31
+ prospector --output-format=pylint --die-on-tool-error
32
+
33
+ .PHONY: eslint
34
+ eslint: ## Runs the eslint checks
35
+ docker-compose run --entrypoint= --no-deps --rm --volume=$(CURDIR)/geoportal:/app geoportal \
36
+ eslint $(find {{cookiecutter.package}} -type f -name '*.js' -print 2> /dev/null)
37
+ docker-compose run --entrypoint= --no-deps --rm --volume=$(CURDIR)/geoportal:/app geoportal \
38
+ eslint $(find {{cookiecutter.package}} -type f -name '*.ts' -print 2> /dev/null)
39
+
40
+ .PHONY: qgis
41
+ qgis: ## Run QGIS desktop
42
+ docker-compose -f docker-compose.yaml -f docker-compose-qgis.yaml run --rm qgis
43
+
44
+ secrets.tar.bz2.gpg: env.secrets ## Encrypt the secrets for committing changes
45
+ tar -jcf secrets.tar.bz2 $^
46
+ rm -f $@
47
+ gpg --symmetric --cipher-algo AES256 --batch \
48
+ --passphrase=$(shell gopass show gs/ci/large-secret-passphrase) secrets.tar.bz2
49
+ rm secrets.tar.bz2
50
+
51
+ .PHONY: secrets
52
+ secrets: ## Decrypt the secrets.tar.bz2.gpg file
53
+ gpg --quiet --batch --yes --decrypt --passphrase=$(shell gopass show gs/ci/large-secret-passphrase) \
54
+ --output secrets.tar.bz2 secrets.tar.bz2.gpg
55
+ tar --touch -jxf secrets.tar.bz2
56
+ rm secrets.tar.bz2
57
+
58
+ .PHONY: acceptance-init
59
+ acceptance-init: ## Initialize the acceptance tests
60
+ docker-compose --file=docker-compose.yaml --file=docker-compose-db.yaml up -d db tools
61
+ docker-compose exec -T tools wait-db
62
+ docker-compose exec -T tools psql --command="DROP EXTENSION IF EXISTS postgis CASCADE"
63
+ scripts/db-restore --docker-compose-file=docker-compose.yaml --docker-compose-file=docker-compose-db.yaml \
64
+ --arg=--clean --arg=--if-exists --arg=--verbose $(DUMP_FILE) || true
65
+ docker-compose --file=docker-compose.yaml --file=docker-compose-db.yaml up -d
66
+
67
+ .PHONY: acceptance
68
+ acceptance: ## Run the acceptance tests
69
+ docker-compose exec -T tools pytest -vv tests/
70
+ ci/docker-compose-check
@@ -1,16 +1,16 @@
1
- {{project}} project
1
+ {{cookiecutter.project}} project
2
2
  ===================
3
3
 
4
- Read the `Documentation <https://camptocamp.github.io/c2cgeoportal/{{geomapfish_main_version}}/>`_
4
+ Read the `Documentation <https://camptocamp.github.io/c2cgeoportal/{{cookiecutter.geomapfish_main_version}}/>`_
5
5
 
6
6
  Checkout
7
7
  --------
8
8
 
9
9
  .. code::
10
10
 
11
- git clone git@github.com:camptocamp/{{project}}.git
11
+ git clone git@github.com:camptocamp/{{cookiecutter.project}}.git
12
12
 
13
- cd {{project}}
13
+ cd {{cookiecutter.project}}
14
14
 
15
15
  Build
16
16
  -----