c2cgeoportal-geoportal 2.5.0.100__py2.py3-none-any.whl → 2.7.1.156__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 (224) hide show
  1. c2cgeoportal_geoportal/__init__.py +261 -130
  2. c2cgeoportal_geoportal/lib/__init__.py +74 -120
  3. c2cgeoportal_geoportal/lib/authentication.py +170 -21
  4. c2cgeoportal_geoportal/lib/bashcolor.py +17 -13
  5. c2cgeoportal_geoportal/lib/cacheversion.py +19 -11
  6. c2cgeoportal_geoportal/lib/caching.py +66 -160
  7. c2cgeoportal_geoportal/lib/check_collector.py +17 -10
  8. c2cgeoportal_geoportal/lib/checker.py +62 -64
  9. c2cgeoportal_geoportal/lib/common_headers.py +170 -0
  10. c2cgeoportal_geoportal/lib/dbreflection.py +70 -31
  11. c2cgeoportal_geoportal/lib/filter_capabilities.py +127 -97
  12. c2cgeoportal_geoportal/lib/fulltextsearch.py +50 -0
  13. c2cgeoportal_geoportal/lib/functionality.py +36 -21
  14. c2cgeoportal_geoportal/lib/headers.py +14 -5
  15. c2cgeoportal_geoportal/lib/i18n.py +39 -0
  16. c2cgeoportal_geoportal/lib/layers.py +29 -10
  17. c2cgeoportal_geoportal/lib/lingua_extractor.py +408 -211
  18. c2cgeoportal_geoportal/lib/loader.py +18 -16
  19. c2cgeoportal_geoportal/lib/metrics.py +29 -18
  20. c2cgeoportal_geoportal/lib/oauth2.py +1036 -0
  21. c2cgeoportal_geoportal/lib/wmstparsing.py +115 -90
  22. c2cgeoportal_geoportal/lib/xsd.py +29 -19
  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/+dot+prospector.yaml → advance_create/{{cookiecutter.project}}/geoportal/.prospector.yaml} +8 -4
  29. c2cgeoportal_geoportal/scaffolds/{create/geoportal/Dockerfile_tmpl → advance_create/{{cookiecutter.project}}/geoportal/Dockerfile} +24 -15
  30. c2cgeoportal_geoportal/scaffolds/{create → advance_create/{{cookiecutter.project}}}/geoportal/alembic.ini +1 -0
  31. c2cgeoportal_geoportal/scaffolds/{create/geoportal/alembic.yaml_tmpl → advance_create/{{cookiecutter.project}}/geoportal/alembic.yaml} +1 -1
  32. c2cgeoportal_geoportal/scaffolds/{create/geoportal/development.ini_tmpl → advance_create/{{cookiecutter.project}}/geoportal/development.ini} +34 -15
  33. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/gunicorn.conf.py +102 -0
  34. c2cgeoportal_geoportal/scaffolds/{create → advance_create/{{cookiecutter.project}}}/geoportal/lingua-client.cfg +1 -0
  35. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/production.ini +38 -0
  36. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/requirements.txt +2 -0
  37. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/setup.py +25 -0
  38. c2cgeoportal_geoportal/scaffolds/{create → advance_create/{{cookiecutter.project}}}/geoportal/tools/extract-messages.js +8 -6
  39. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/tsconfig.json +8 -0
  40. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.api.js +75 -0
  41. c2cgeoportal_geoportal/scaffolds/{create/geoportal/webpack.apps.js_tmpl → advance_create/{{cookiecutter.project}}/geoportal/webpack.apps.js} +31 -28
  42. c2cgeoportal_geoportal/scaffolds/{create → advance_create/{{cookiecutter.project}}}/geoportal/webpack.commons.js +3 -7
  43. c2cgeoportal_geoportal/scaffolds/{create → advance_create/{{cookiecutter.project}}}/geoportal/webpack.config.js +4 -4
  44. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/__init__.py +47 -0
  45. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/authentication.py +10 -0
  46. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/dev.py +14 -0
  47. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/models.py +8 -0
  48. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/multi_organization.py +7 -0
  49. c2cgeoportal_geoportal/scaffolds/{create/geoportal/+package+_geoportal → advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/resources.py +4 -3
  50. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static-ngeo/api/index.js +12 -0
  51. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static-ngeo/js/{{cookiecutter.package}}module.js +25 -0
  52. c2cgeoportal_geoportal/scaffolds/{create/geoportal/+package+_geoportal/subscribers.py_tmpl → advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/subscribers.py} +3 -6
  53. c2cgeoportal_geoportal/scaffolds/advance_update/cookiecutter.json +18 -0
  54. c2cgeoportal_geoportal/scaffolds/{update/geoportal/CONST_Makefile_tmpl → advance_update/{{cookiecutter.project}}/geoportal/CONST_Makefile} +32 -20
  55. c2cgeoportal_geoportal/scaffolds/create/cookiecutter.json +18 -0
  56. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.dockerignore +14 -0
  57. c2cgeoportal_geoportal/scaffolds/create/{+dot+editorconfig → {{cookiecutter.project}}/.editorconfig} +4 -8
  58. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/main.yaml +43 -0
  59. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/rebuild.yaml +46 -0
  60. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/update_l10n.yaml +65 -0
  61. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.gitignore +16 -0
  62. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.prettierignore +1 -0
  63. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.prettierrc.yaml +2 -0
  64. c2cgeoportal_geoportal/scaffolds/create/{Dockerfile_tmpl → {{cookiecutter.project}}/Dockerfile} +34 -24
  65. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/Makefile +14 -0
  66. c2cgeoportal_geoportal/scaffolds/create/{README.rst_tmpl → {{cookiecutter.project}}/README.rst} +4 -4
  67. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/build +162 -0
  68. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/ci/config.yaml +25 -0
  69. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/ci/requirements.txt +1 -0
  70. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose-lib.yaml +474 -0
  71. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose.override.sample.yaml +67 -0
  72. c2cgeoportal_geoportal/scaffolds/create/{docker-compose.yaml → {{cookiecutter.project}}/docker-compose.yaml} +43 -18
  73. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/env.default +82 -0
  74. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/env.project +60 -0
  75. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/vars.yaml +396 -0
  76. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/mobile.css +0 -0
  77. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker-blue.png +0 -0
  78. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker-gold.png +0 -0
  79. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker-green.png +0 -0
  80. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker.png +0 -0
  81. c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/data/Readme.txt +1 -1
  82. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/demo.map.tmpl +224 -0
  83. c2cgeoportal_geoportal/scaffolds/create/{mapserver/mapserver.map.tmpl_tmpl → {{cookiecutter.project}}/mapserver/mapserver.map.tmpl} +7 -15
  84. c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/A3_Landscape.jrxml +17 -9
  85. c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/A3_Portrait.jrxml +17 -9
  86. c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/A4_Landscape.jrxml +17 -9
  87. c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/A4_Portrait.jrxml +17 -9
  88. c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/config.yaml.tmpl +30 -27
  89. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/legend.jrxml +109 -0
  90. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/localisation.properties +4 -0
  91. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/localisation_fr.properties +4 -0
  92. c2cgeoportal_geoportal/scaffolds/create/{project.yaml_tmpl → {{cookiecutter.project}}/project.yaml} +6 -6
  93. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/pyproject.toml +3 -0
  94. c2cgeoportal_geoportal/scaffolds/create/{qgisserver/pg_service.conf.tmpl_tmpl → {{cookiecutter.project}}/qgisserver/pg_service.conf.tmpl} +2 -2
  95. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/scripts/db-backup +110 -0
  96. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/scripts/db-restore +114 -0
  97. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/setup.cfg +7 -0
  98. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/spell-ignore-words.txt +3 -0
  99. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/tilegeneration/config.yaml.tmpl +195 -0
  100. c2cgeoportal_geoportal/scaffolds/update/cookiecutter.json +18 -0
  101. c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/.upgrade.yaml +191 -0
  102. c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/CONST_CHANGELOG.txt +1160 -0
  103. c2cgeoportal_geoportal/scaffolds/update/{geoportal → {{cookiecutter.project}}/geoportal}/CONST_config-schema.yaml +99 -47
  104. c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/geoportal/CONST_vars.yaml +1410 -0
  105. c2cgeoportal_geoportal/scripts/__init__.py +18 -32
  106. c2cgeoportal_geoportal/scripts/c2cupgrade.py +295 -200
  107. c2cgeoportal_geoportal/scripts/create_demo_theme.py +5 -6
  108. c2cgeoportal_geoportal/scripts/manage_users.py +34 -37
  109. c2cgeoportal_geoportal/scripts/pcreate.py +312 -0
  110. c2cgeoportal_geoportal/scripts/theme2fts.py +92 -25
  111. c2cgeoportal_geoportal/scripts/urllogin.py +23 -17
  112. c2cgeoportal_geoportal/templates/login.html +88 -84
  113. c2cgeoportal_geoportal/templates/notlogin.html +62 -0
  114. c2cgeoportal_geoportal/templates/testi18n.html +6 -8
  115. c2cgeoportal_geoportal/views/__init__.py +23 -4
  116. c2cgeoportal_geoportal/views/dev.py +9 -7
  117. c2cgeoportal_geoportal/views/dynamic.py +71 -40
  118. c2cgeoportal_geoportal/views/entry.py +93 -24
  119. c2cgeoportal_geoportal/views/fulltextsearch.py +36 -29
  120. c2cgeoportal_geoportal/views/geometry_processing.py +15 -7
  121. c2cgeoportal_geoportal/views/i18n.py +91 -9
  122. c2cgeoportal_geoportal/views/layers.py +173 -134
  123. c2cgeoportal_geoportal/views/login.py +206 -87
  124. c2cgeoportal_geoportal/views/mapserverproxy.py +59 -35
  125. c2cgeoportal_geoportal/views/memory.py +13 -13
  126. c2cgeoportal_geoportal/views/ogcproxy.py +48 -30
  127. c2cgeoportal_geoportal/views/pdfreport.py +31 -27
  128. c2cgeoportal_geoportal/views/printproxy.py +70 -54
  129. c2cgeoportal_geoportal/views/profile.py +25 -24
  130. c2cgeoportal_geoportal/views/proxy.py +100 -70
  131. c2cgeoportal_geoportal/views/raster.py +47 -29
  132. c2cgeoportal_geoportal/views/resourceproxy.py +13 -11
  133. c2cgeoportal_geoportal/views/shortener.py +31 -24
  134. c2cgeoportal_geoportal/views/theme.py +475 -365
  135. c2cgeoportal_geoportal/views/tinyowsproxy.py +46 -39
  136. c2cgeoportal_geoportal/views/vector_tiles.py +80 -0
  137. {c2cgeoportal_geoportal-2.5.0.100.dist-info → c2cgeoportal_geoportal-2.7.1.156.dist-info}/METADATA +17 -11
  138. c2cgeoportal_geoportal-2.7.1.156.dist-info/RECORD +185 -0
  139. {c2cgeoportal_geoportal-2.5.0.100.dist-info → c2cgeoportal_geoportal-2.7.1.156.dist-info}/WHEEL +1 -1
  140. {c2cgeoportal_geoportal-2.5.0.100.dist-info → c2cgeoportal_geoportal-2.7.1.156.dist-info}/entry_points.txt +3 -1
  141. tests/__init__.py +24 -3
  142. tests/test_cachebuster.py +1 -3
  143. tests/test_caching.py +19 -26
  144. tests/test_checker.py +2 -3
  145. tests/test_decimaljson.py +4 -4
  146. tests/test_headerstween.py +0 -3
  147. tests/test_i18n.py +31 -0
  148. tests/test_init.py +12 -27
  149. tests/test_locale_negociator.py +6 -6
  150. tests/test_mapserverproxy_route_predicate.py +0 -2
  151. tests/test_raster.py +18 -5
  152. tests/test_wmstparsing.py +7 -8
  153. c2cgeoportal_geoportal/scaffolds/__init__.py +0 -226
  154. c2cgeoportal_geoportal/scaffolds/create/+dot+dockerignore_tmpl +0 -11
  155. c2cgeoportal_geoportal/scaffolds/create/+dot+github/workflows/ci.yaml_tmpl +0 -56
  156. c2cgeoportal_geoportal/scaffolds/create/+dot+gitignore_tmpl +0 -12
  157. c2cgeoportal_geoportal/scaffolds/create/build_tmpl +0 -144
  158. c2cgeoportal_geoportal/scaffolds/create/docker-compose-lib.yaml_tmpl +0 -302
  159. c2cgeoportal_geoportal/scaffolds/create/docker-compose.override.sample.yaml_tmpl +0 -54
  160. c2cgeoportal_geoportal/scaffolds/create/env.default_tmpl +0 -49
  161. c2cgeoportal_geoportal/scaffolds/create/env.project_tmpl +0 -39
  162. c2cgeoportal_geoportal/scaffolds/create/geoportal/+dot+dockerignore_tmpl +0 -5
  163. c2cgeoportal_geoportal/scaffolds/create/geoportal/+dot+eslintrc_tmpl +0 -19
  164. c2cgeoportal_geoportal/scaffolds/create/geoportal/+package+_geoportal/__init__.py_tmpl +0 -48
  165. c2cgeoportal_geoportal/scaffolds/create/geoportal/+package+_geoportal/models.py_tmpl +0 -10
  166. c2cgeoportal_geoportal/scaffolds/create/geoportal/+package+_geoportal/static/images/favicon.ico +0 -0
  167. c2cgeoportal_geoportal/scaffolds/create/geoportal/+package+_geoportal/static/robot.txt +0 -3
  168. c2cgeoportal_geoportal/scaffolds/create/geoportal/+package+_geoportal/static-ngeo/api/index.js_tmpl +0 -37
  169. c2cgeoportal_geoportal/scaffolds/create/geoportal/+package+_geoportal/static-ngeo/js/+package+module.js_tmpl +0 -22
  170. c2cgeoportal_geoportal/scaffolds/create/geoportal/production.ini_tmpl +0 -106
  171. c2cgeoportal_geoportal/scaffolds/create/geoportal/requirements.txt +0 -2
  172. c2cgeoportal_geoportal/scaffolds/create/geoportal/setup.py_tmpl +0 -18
  173. c2cgeoportal_geoportal/scaffolds/create/geoportal/tsconfig.json_tmpl +0 -9
  174. c2cgeoportal_geoportal/scaffolds/create/geoportal/vars.yaml_tmpl +0 -224
  175. c2cgeoportal_geoportal/scaffolds/create/geoportal/webpack.api.js_tmpl +0 -71
  176. c2cgeoportal_geoportal/scaffolds/create/mapserver/demo.map.tmpl_tmpl +0 -262
  177. c2cgeoportal_geoportal/scaffolds/create/mapserver/tinyows.xml +0 -36
  178. c2cgeoportal_geoportal/scaffolds/create/print/print-apps/+package+/config.yaml +0 -166
  179. c2cgeoportal_geoportal/scaffolds/create/print/print-apps/+package+/legend.jrxml +0 -27
  180. c2cgeoportal_geoportal/scaffolds/create/qgisserver/geomapfish.yaml.tmpl_tmpl +0 -29
  181. c2cgeoportal_geoportal/scaffolds/create/scripts/publish-docker +0 -124
  182. c2cgeoportal_geoportal/scaffolds/create/setup.cfg_tmpl +0 -3
  183. c2cgeoportal_geoportal/scaffolds/create/spell-ignore-words.txt +0 -1
  184. c2cgeoportal_geoportal/scaffolds/create/tilegeneration/config.yaml.tmpl_tmpl +0 -169
  185. c2cgeoportal_geoportal/scaffolds/create/yamllint.yaml +0 -11
  186. c2cgeoportal_geoportal/scaffolds/update/+dot+upgrade.yaml_tmpl +0 -171
  187. c2cgeoportal_geoportal/scaffolds/update/CONST_CHANGELOG.txt_tmpl +0 -64
  188. c2cgeoportal_geoportal/scaffolds/update/geoportal/CONST_vars.yaml_tmpl +0 -783
  189. c2cgeoportal_geoportal/templates/dynamic.js +0 -21
  190. c2cgeoportal_geoportal-2.5.0.100.dist-info/RECORD +0 -162
  191. tests/test_get_url.py +0 -96
  192. tests/test_lib.py +0 -77
  193. /c2cgeoportal_geoportal/{scaffolds/create/geoportal/+package+_geoportal/static/css/desktop.css → py.typed} +0 -0
  194. /c2cgeoportal_geoportal/scaffolds/{create/geoportal/Makefile_tmpl → advance_create/{{cookiecutter.project}}/geoportal/Makefile} +0 -0
  195. /c2cgeoportal_geoportal/scaffolds/{create → advance_create/{{cookiecutter.project}}}/geoportal/language_mapping +0 -0
  196. /c2cgeoportal_geoportal/scaffolds/{create → advance_create/{{cookiecutter.project}}}/geoportal/lingua-server.cfg +0 -0
  197. /c2cgeoportal_geoportal/scaffolds/{create/geoportal/+package+_geoportal → advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/views/__init__.py +0 -0
  198. /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
  199. /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal/static/css/iframe_api.css → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/desktop.css} +0 -0
  200. /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal/static/css/mobile.css → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/iframe_api.css} +0 -0
  201. /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/static/images/banner_left.png +0 -0
  202. /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/static/images/banner_right.png +0 -0
  203. /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/static/images/blank.png +0 -0
  204. /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/static/robot.txt.tmpl +0 -0
  205. /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/data/TM_EUROPE_BORDERS-0.3.sql +0 -0
  206. /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Arial.ttf +0 -0
  207. /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Arialbd.ttf +0 -0
  208. /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Arialbi.ttf +0 -0
  209. /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Ariali.ttf +0 -0
  210. /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/NotoSans-Bold.ttf +0 -0
  211. /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/NotoSans-BoldItalic.ttf +0 -0
  212. /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/NotoSans-Italic.ttf +0 -0
  213. /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/NotoSans-Regular.ttf +0 -0
  214. /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Verdana.ttf +0 -0
  215. /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Verdanab.ttf +0 -0
  216. /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Verdanai.ttf +0 -0
  217. /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Verdanaz.ttf +0 -0
  218. /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts.conf +0 -0
  219. /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/tinyows.xml.tmpl +0 -0
  220. /c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/logo.png +0 -0
  221. /c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/north.svg +0 -0
  222. /c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/results.jrxml +0 -0
  223. /c2cgeoportal_geoportal/scaffolds/create/{run_alembic.sh → {{cookiecutter.project}}/run_alembic.sh} +0 -0
  224. {c2cgeoportal_geoportal-2.5.0.100.dist-info → c2cgeoportal_geoportal-2.7.1.156.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,47 @@
1
+ import distutils.core
2
+
3
+ from pyramid.config import Configurator
4
+
5
+ import {{cookiecutter.package}}_geoportal.authentication
6
+ import {{cookiecutter.package}}_geoportal.dev
7
+ import {{cookiecutter.package}}_geoportal.multi_organization
8
+ from c2cgeoportal_geoportal import INTERFACE_TYPE_NGEO, add_interface_config, locale_negotiator
9
+ from c2cgeoportal_geoportal.lib.i18n import LOCALE_PATH
10
+ from {{cookiecutter.package}}_geoportal.resources import Root
11
+
12
+
13
+ def main(global_config, **settings):
14
+ """
15
+ This function returns a Pyramid WSGI application.
16
+ """
17
+ del global_config # Unused
18
+
19
+ config = Configurator(
20
+ root_factory=Root,
21
+ settings=settings,
22
+ locale_negotiator=locale_negotiator,
23
+ )
24
+
25
+ config.include("c2cgeoportal_commons")
26
+
27
+ config.include({{cookiecutter.package}}_geoportal.authentication.includeme)
28
+
29
+ config.add_translation_dirs(LOCALE_PATH)
30
+
31
+ # Workaround to not have the error: distutils.errors.DistutilsArgError: no commands supplied
32
+ distutils.core._setup_stop_after = "config" # pylint: disable=protected-access
33
+ config.include("c2cgeoportal_geoportal")
34
+ distutils.core._setup_stop_after = None # pylint: disable=protected-access
35
+
36
+ config.include({{cookiecutter.package}}_geoportal.multi_organization.includeme)
37
+
38
+ # Scan view decorator for adding routes
39
+ config.scan()
40
+
41
+ # Add the interfaces
42
+ for interface in config.get_settings().get("interfaces", []):
43
+ add_interface_config(config, interface)
44
+
45
+ config.include({{cookiecutter.package}}_geoportal.dev.includeme)
46
+
47
+ return config.make_wsgi_app()
@@ -0,0 +1,10 @@
1
+ from pyramid.authorization import ACLAuthorizationPolicy
2
+ from pyramid.config import Configurator
3
+
4
+ from c2cgeoportal_geoportal.lib.authentication import create_authentication
5
+
6
+
7
+ def includeme(config: Configurator) -> None:
8
+ """Initialize the authentication( for a Pyramid app."""
9
+ config.set_authorization_policy(ACLAuthorizationPolicy())
10
+ config.set_authentication_policy(create_authentication(config.get_settings()))
@@ -0,0 +1,14 @@
1
+ from pyramid.config import Configurator
2
+
3
+
4
+ def includeme(config: Configurator) -> None:
5
+ """Initialize the development tools for a Pyramid app."""
6
+ del config # Unused.
7
+
8
+ try:
9
+ import ptvsd # pylint: disable=import-outside-toplevel
10
+
11
+ ptvsd.enable_attach(address=("172.17.0.1", 5678))
12
+ # ptvsd.wait_for_attach()
13
+ except ModuleNotFoundError:
14
+ pass
@@ -0,0 +1,8 @@
1
+ import logging
2
+
3
+ from pyramid.i18n import TranslationStringFactory
4
+
5
+ from c2cgeoportal_commons.models.main import * # noqa: ignore=F401, pylint: disable=unused-wildcard-import
6
+
7
+ _ = TranslationStringFactory("{{cookiecutter.package}}_geoportal-server")
8
+ LOG = logging.getLogger(__name__)
@@ -0,0 +1,7 @@
1
+ from pyramid.config import Configurator
2
+
3
+
4
+ def includeme(config: Configurator) -> None:
5
+ """Initialize the multi organization."""
6
+
7
+ del config # Unused
@@ -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
@@ -0,0 +1,12 @@
1
+ /* eslint-disable */
2
+ import Map from 'api/Map.js';
3
+ import {dynamicUrl} from 'api/constants.js';
4
+
5
+ // The URL to the dynamic constants service.
6
+ dynamicUrl.dynamicUrl = '{FULL_ENTRY_POINT}dynamic.json?interface=api';
7
+
8
+ const lib = {
9
+ Map,
10
+ };
11
+
12
+ export default lib;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * This file provides the "{{cookiecutter.package}}" namespace, which is the
3
+ * application's main namespace. And it defines the application's Angular
4
+ * module.
5
+ */
6
+
7
+ import angular from 'angular';
8
+ import {decodeQueryString} from 'ngeo/utils.js';
9
+
10
+ /**
11
+ * @type {!angular.IModule}
12
+ */
13
+ const myModule = angular.module('{{cookiecutter.package}}', []);
14
+
15
+ myModule.config([
16
+ '$compileProvider',
17
+ function ($compileProvider) {
18
+ if (!('debug' in decodeQueryString(window.location.search))) {
19
+ // Disable the debug info
20
+ $compileProvider.debugInfoEnabled(false);
21
+ }
22
+ },
23
+ ]);
24
+
25
+ export default myModule;
@@ -1,11 +1,8 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- from pyramid.i18n import get_localizer, TranslationStringFactory
4
- from pyramid.events import subscriber, BeforeRender, NewRequest
5
-
1
+ from pyramid.events import BeforeRender, NewRequest, subscriber
2
+ from pyramid.i18n import TranslationStringFactory, get_localizer
6
3
 
7
4
  # use two translator to translate each strings in Make
8
- tsf_server = TranslationStringFactory("{{package}}-server")
5
+ tsf_server = TranslationStringFactory("{{cookiecutter.package}}-server")
9
6
  tsf_geoportal = TranslationStringFactory("c2cgeoportal")
10
7
  tsf_admin = TranslationStringFactory("c2cgeoportal_admin")
11
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
@@ -10,15 +10,12 @@ ifneq ($(NGEO_API), "")
10
10
  DEFAULT_WEB_RULE += $(NGEO_API_OUTPUT_FILES)
11
11
  endif
12
12
 
13
- MO_FILES = $(addprefix {{package}}_geoportal/locale/,$(addsuffix /LC_MESSAGES/{{package}}_geoportal-client.mo, $(LANGUAGES)))
14
-
15
13
  WEB_RULE ?= $(DEFAULT_WEB_RULE)
16
14
 
17
15
  DEFAULT_BUILD_RULES ?= $(WEB_RULE) \
18
16
  alembic.ini \
19
17
  alembic.yaml \
20
- build-api \
21
- $(MO_FILES)
18
+ build-api
22
19
 
23
20
 
24
21
  # Make rules
@@ -32,11 +29,7 @@ export NODE_ENV
32
29
  NO_DEV_SERVER ?= TRUE
33
30
  export NO_DEV_SERVER
34
31
  APP_OUTPUT_DIR = /etc/static-ngeo
35
- GCC_JS_FILES = $(shell find /usr/lib/node_modules/openlayers/src/ol /usr/lib/node_modules/ngeo/src /usr/lib/node_modules/ol-cesium/src -type f -name '*.js' 2> /dev/null)
36
32
  APP_JS_FILES = $(shell find $(PACKAGE)_geoportal/static-ngeo/js -type f -name '*.js' 2> /dev/null)
37
- HTML_FILES += $(shell find $(PACKAGE)_geoportal/static-ngeo/js -type f -name '*.html' 2> /dev/null)
38
- SASS_FILES += $(shell find $(PACKAGE)_geoportal/static-ngeo/js -type f -name '*.scss' 2> /dev/null)
39
- CSS_FILES += $(shell find $(PACKAGE)_geoportal/static-ngeo/js -type f -name '*.css' 2> /dev/null)
40
33
  ANGULAR_LOCALES_FILES = $(addprefix $(APP_OUTPUT_DIR)/angular-locale_, $(addsuffix .js, $(LANGUAGES)))
41
34
  NGEO_OUTPUT_FILES = $(ANGULAR_LOCALES_FILES)
42
35
 
@@ -62,11 +55,11 @@ PY_FILES = $(shell find $(PACKAGE) -type f -name '*.py' -print 2> /dev/null)
62
55
  build: $(BUILD_RULES)
63
56
 
64
57
  .PHONY: checks
65
- checks: flake8 eslint
58
+ checks: prospector eslint
66
59
 
67
- .PHONY: flake8
68
- flake8:
69
- flake8 $(PACKAGE)
60
+ .PHONY: prospector
61
+ prospector:
62
+ prospector
70
63
 
71
64
  .PHONY: eslint
72
65
  eslint: $(APP_JS_FILES)
@@ -78,9 +71,32 @@ eslint-fix: $(APP_JS_FILES)
78
71
 
79
72
  # Server localisation
80
73
 
81
- .PRECIOUS: %.mo
82
- %.mo: %.po
83
- msgfmt -o $@ $<
74
+ PO_FILES = $(addprefix $(PACKAGE)_geoportal/locale/, $(addsuffix /LC_MESSAGES/$(PACKAGE)_geoportal-server.po, $(LANGUAGES)))
75
+
76
+ .INTERMEDIATE: $(PACKAGE)_geoportal/locale/$(PACKAGE)_geoportal-server.pot
77
+ $(PACKAGE)_geoportal/locale/$(PACKAGE)_geoportal-server.pot: lingua-server.cfg $(SRC_FILES)
78
+ mkdir --parent $(dir $@)
79
+ [ -z "$(SRC_FILES)" ] || pot-create --width=110 --config=$< --keyword=_ --output=$@ $(SRC_FILES)
80
+
81
+ .PRECIOUS: $(PACKAGE)_geoportal/locale/%/LC_MESSAGES/$(PACKAGE)_geoportal-server.po
82
+ $(PACKAGE)_geoportal/locale/%/LC_MESSAGES/$(PACKAGE)_geoportal-server.po: \
83
+ $(PACKAGE)_geoportal/locale/$(PACKAGE)_geoportal-server.pot
84
+ mkdir --parent $(dir $@)
85
+ [ ! -f $< ] || [ -f $@ ] || msginit --no-translator --input=$< --output-file=$@ -l $*
86
+ touch --no-create $@
87
+ [ ! -f $< ] || msgmerge --backup=none --update --sort-output --no-location $@ $<
88
+ touch $@
89
+ chown $(USER_ID):$(GROUP_ID) $@
90
+
91
+ .PHONY: update-server-po
92
+ update-server-po: $(PO_FILES)
93
+
94
+ .PHONY: update-client-po
95
+ update-client-po:
96
+ cd .. && SUFFIX= update-po $(USER_ID) $(GROUP_ID) $(LANGUAGES)
97
+
98
+ .PHONY: update-po
99
+ update-po: update-server-po update-client-po
84
100
 
85
101
  # ngeo
86
102
 
@@ -106,10 +122,6 @@ apps: webpack.apps.js
106
122
  for interface in $(NGEO_INTERFACES); \
107
123
  do \
108
124
  mv $(APP_OUTPUT_DIR)/$${interface}.html $(APP_OUTPUT_DIR)/$${interface}.html.tmpl; \
109
- ls -1 $(APP_OUTPUT_DIR)/$${interface}.*.css|while read file; \
110
- do \
111
- mv $${file} $${file}.tmpl; \
112
- done; \
113
125
  done
114
126
 
115
127
  # 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
@@ -7,15 +7,11 @@ charset = utf-8
7
7
  indent_style = space
8
8
  indent_size = 4
9
9
  trim_trailing_whitespace = true
10
+ max_line_length = 110
11
+ quote_type = single
10
12
 
11
- [*.js]
13
+ [*.{js,ts,css,scss,yaml,yml,json,html,md,yaml.tmpl}]
12
14
  indent_size = 2
13
15
 
14
- [*.yaml]
15
- indent_size = 2
16
-
17
- [*.yml]
18
- indent_size = 2
19
-
20
- [Makefile]
16
+ [{Makefile,*.mk}]
21
17
  indent_style = tab
@@ -0,0 +1,43 @@
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
+ # # Requires CI_GPG_PRIVATE_KEY and GOPASS_CI_GITHUB_TOKEN secrets.
12
+ # # The release branches
13
+ # HELM_RELEASE_NAMES: int-{{cookiecutter.geomapfish_main_version_dash}},prod-{{cookiecutter.geomapfish_main_version_dash}}
14
+
15
+ jobs:
16
+ main:
17
+ runs-on: ubuntu-22.04
18
+ name: Continuous integration
19
+ timeout-minutes: 10
20
+
21
+ steps:
22
+ - uses: actions/checkout@v2
23
+
24
+ # To publish the images to be used on Kubernetes
25
+ # - uses: camptocamp/initialise-gopass-summon-action@v2
26
+ # with:
27
+ # ci-gpg-private-key: ${{'{{'}} secrets.CI_GPG_PRIVATE_KEY }}
28
+ # github-gopass-ci-token: ${{'{{'}} secrets.GOPASS_CI_GITHUB_TOKEN }}
29
+ # patterns: docker
30
+ # if: env.HAS_SECRETS == 'HAS_SECRETS'
31
+
32
+ - run: echo "${HOME}/.local/bin" >> ${GITHUB_PATH}
33
+ - run: python3 -m pip install --user --requirement=ci/requirements.txt
34
+
35
+ - name: Checks
36
+ run: c2cciutils-checks
37
+
38
+ - name: Build
39
+ run: ./build --docker-compose-version-2
40
+
41
+ # To publish the images to be used on Kubernetes
42
+ # - name: Publish
43
+ # 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,65 @@
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-18.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
19
+ base_url: int.customer.ch
20
+ - branch: prod
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
+ )
63
+ # 422 is the return code when the pull request already exists
64
+ assert response.status_code < 300 or response.status_code == 422, f'{response.status_code} - {response.text}'"
65
+ 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
@@ -1,42 +1,44 @@
1
- FROM camptocamp/geomapfish-tools:{{geomapfish_version}} as builder
1
+ ARG {{cookiecutter.geomapfish_version_tag}}
2
+ ARG {{cookiecutter.geomapfish_major_version_tag}}
3
+
4
+ FROM camptocamp/geomapfish-tools:{{cookiecutter.geomapfish_version_tag_env}} as builder
2
5
 
3
- ENV LANGUAGES="en fr de"
4
6
  ENV VARS_FILE=vars.yaml
5
7
  ENV CONFIG_VARS sqlalchemy.url sqlalchemy.pool_recycle sqlalchemy.pool_size sqlalchemy.max_overflow \
6
- sqlalchemy.use_batch_mode sqlalchemy_slave.url sqlalchemy_slave.pool_recycle sqlalchemy_slave.pool_size \
7
- sqlalchemy_slave.max_overflow sqlalchemy_slave.use_batch_mode schema schema_static enable_admin_interface \
8
- default_locale_name servers layers available_locale_names cache admin_interface getitfixed functionalities \
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 \
9
11
  raster shortener hide_capabilities tinyowsproxy resourceproxy print_url print_get_redirect \
10
12
  checker check_collector default_max_age package srid \
11
13
  reset_password fulltextsearch global_headers headers authorized_referers hooks stats db_chooser \
12
- dbsessions urllogin host_forward_host smtp c2c.base_path welcome_email \
13
- lingua_extractor interfaces_config interfaces devserver_url api authentication intranet metrics pdfreport
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
14
18
 
15
19
  COPY . /tmp/config/
16
20
 
17
- RUN \
18
- for lang in ${LANGUAGES}; \
19
- do \
20
- node /usr/bin/compile-catalog \
21
- /opt/c2cgeoportal/geoportal/c2cgeoportal_geoportal/locale/${lang}/LC_MESSAGES/ngeo.po \
22
- /opt/c2cgeoportal/geoportal/c2cgeoportal_geoportal/locale/${lang}/LC_MESSAGES/gmf.po \
23
- /tmp/config/geoportal/{{package}}_geoportal/locale/${lang}/LC_MESSAGES/{{package}}_geoportal-client.po \
24
- > /tmp/config/geoportal/{{package}}_geoportal/static/${lang}.json; \
25
- done && \
26
- rm -rf /tmp/config/geoportal/{{package}}_geoportal/locale
21
+ ARG SIMPLE
22
+ ENV SIMPLE=$SIMPLE
23
+
24
+ RUN build-l10n "{{cookiecutter.package}}"
25
+
26
+ ARG PGSCHEMA
27
+ ENV PGSCHEMA=$PGSCHEMA
27
28
 
28
29
  RUN \
29
30
  cd /tmp/config/geoportal/ && \
30
31
  c2c-template --vars ${VARS_FILE} \
31
- --get-config {{package}}_geoportal/config.yaml \
32
+ --get-config {{cookiecutter.package}}_geoportal/config.yaml \
32
33
  ${CONFIG_VARS} && \
33
- pykwalify --data-file {{package}}_geoportal/config.yaml \
34
+ pykwalify --data-file {{cookiecutter.package}}_geoportal/config.yaml \
34
35
  --schema-file CONST_config-schema.yaml && \
35
- rm CONST_* vars.yaml
36
+ rm CONST_* vars.yaml && \
37
+ qgisserver-plugin-config {{cookiecutter.package}}_geoportal/config.yaml ../qgisserver/geomapfish.yaml.tmpl
36
38
 
37
39
  ###############################################################################
38
40
 
39
- FROM camptocamp/geomapfish-config:{{geomapfish_version}}
41
+ FROM camptocamp/geomapfish-config:{{cookiecutter.geomapfish_major_version_tag_env}} AS gmf_config
40
42
 
41
43
  ARG PGSCHEMA
42
44
  ENV PGSCHEMA=$PGSCHEMA
@@ -47,10 +49,19 @@ RUN \
47
49
  if [ -e /tmp/config/mapserver ]; then mv /tmp/config/mapserver /etc/; fi && \
48
50
  if [ -e /tmp/config/tilegeneration ]; then mv /tmp/config/tilegeneration /etc/; fi && \
49
51
  if [ -e /tmp/config/qgisserver ]; then mv /tmp/config/qgisserver /etc/qgisserver; fi && \
52
+ if [ -e /tmp/config/haproxy ]; then mv /tmp/config/haproxy/* /etc/haproxy/; fi && \
50
53
  mkdir --parent /usr/local/tomcat/webapps/ROOT/ && \
51
54
  if [ -e /tmp/config/print ]; then mv /tmp/config/print/print-apps /usr/local/tomcat/webapps/ROOT/; fi && \
52
- mv /tmp/config/geoportal/{{package}}_geoportal/ /etc/geomapfish/ && \
53
- chmod g+w -R /etc /usr/local/tomcat/webapps && \
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 && \
54
65
  adduser www-data root && \
55
66
  sed 's#bind :80#bind *:443 ssl crt /etc/haproxy_dev/localhost.pem#g' /etc/haproxy/haproxy.cfg.tmpl \
56
67
  > /etc/haproxy_dev/haproxy.cfg.tmpl && \
@@ -61,6 +72,5 @@ VOLUME /etc/geomapfish \
61
72
  /etc/qgisserver \
62
73
  /etc/tilegeneration \
63
74
  /usr/local/tomcat/webapps/ROOT/print-apps \
64
- /etc/gunicorn \
65
75
  /etc/haproxy_dev \
66
76
  /etc/haproxy
@@ -0,0 +1,14 @@
1
+ PROJECT_PUBLIC_URL=https://example.camptocamp.com/
2
+ PACKAGE={{cookiecutter.package}}
3
+ LANGUAGES=en fr de it
4
+
5
+ .PHONY: update-po-from-url
6
+ update-po-from-url: ## Update the po files from the URL provide by PROJECT_PUBLIC_URL
7
+ curl --fail --retry 5 --retry-delay 1 \
8
+ $(PROJECT_PUBLIC_URL)locale.pot > geoportal/${PACKAGE}_geoportal/locale/${PACKAGE}_geoportal-client${SUFFIX}.pot
9
+ sed -i '/^"POT-Creation-Date: /d' geoportal/${PACKAGE}_geoportal/locale/${PACKAGE}_geoportal-client${SUFFIX}.pot
10
+ docker-compose run --rm -T tools update-po-only `id --user` `id --group` $(LANGUAGES)
11
+
12
+ .PHONY: update-po
13
+ update-po:
14
+ docker-compose exec -T tools sh -c "USER_ID=`id --user` GROUP_ID=`id --group` make -C geoportal update-po"
@@ -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
  -----