c2cgeoportal-geoportal 2.3.5.79__py3-none-any.whl → 2.9rc1__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 (197) hide show
  1. c2cgeoportal_geoportal/__init__.py +960 -0
  2. c2cgeoportal_geoportal/lib/__init__.py +256 -0
  3. c2cgeoportal_geoportal/lib/authentication.py +250 -0
  4. c2cgeoportal_geoportal/lib/bashcolor.py +46 -0
  5. c2cgeoportal_geoportal/lib/cacheversion.py +75 -0
  6. c2cgeoportal_geoportal/lib/caching.py +176 -0
  7. c2cgeoportal_geoportal/lib/check_collector.py +80 -0
  8. c2cgeoportal_geoportal/lib/checker.py +295 -0
  9. c2cgeoportal_geoportal/lib/common_headers.py +170 -0
  10. c2cgeoportal_geoportal/lib/dbreflection.py +266 -0
  11. c2cgeoportal_geoportal/lib/filter_capabilities.py +360 -0
  12. c2cgeoportal_geoportal/lib/fulltextsearch.py +50 -0
  13. c2cgeoportal_geoportal/lib/functionality.py +166 -0
  14. c2cgeoportal_geoportal/lib/headers.py +62 -0
  15. c2cgeoportal_geoportal/lib/i18n.py +38 -0
  16. c2cgeoportal_geoportal/lib/layers.py +132 -0
  17. c2cgeoportal_geoportal/lib/lingva_extractor.py +937 -0
  18. c2cgeoportal_geoportal/lib/loader.py +57 -0
  19. c2cgeoportal_geoportal/lib/metrics.py +117 -0
  20. c2cgeoportal_geoportal/lib/oauth2.py +1186 -0
  21. c2cgeoportal_geoportal/lib/oidc.py +302 -0
  22. c2cgeoportal_geoportal/lib/wmstparsing.py +353 -0
  23. c2cgeoportal_geoportal/lib/xsd.py +166 -0
  24. c2cgeoportal_geoportal/py.typed +0 -0
  25. c2cgeoportal_geoportal/resources.py +49 -0
  26. c2cgeoportal_geoportal/scaffolds/advance_create/ci/config.yaml +26 -0
  27. c2cgeoportal_geoportal/scaffolds/advance_create/cookiecutter.json +18 -0
  28. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/.dockerignore +6 -0
  29. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/.eslintrc.yaml +19 -0
  30. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/.prospector.yaml +30 -0
  31. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/Dockerfile +75 -0
  32. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/Makefile +6 -0
  33. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/alembic.ini +58 -0
  34. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/alembic.yaml +19 -0
  35. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/development.ini +121 -0
  36. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/gunicorn.conf.py +139 -0
  37. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/language_mapping +3 -0
  38. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/lingva-client.cfg +5 -0
  39. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/lingva-server.cfg +6 -0
  40. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/production.ini +38 -0
  41. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/requirements.txt +2 -0
  42. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/setup.py +25 -0
  43. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.api.js +41 -0
  44. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.apps.js +64 -0
  45. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.commons.js +11 -0
  46. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.config.js +22 -0
  47. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/__init__.py +42 -0
  48. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/authentication.py +10 -0
  49. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/dev.py +14 -0
  50. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/models.py +8 -0
  51. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/multi_organization.py +7 -0
  52. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/resources.py +11 -0
  53. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static-ngeo/api/index.js +12 -0
  54. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static-ngeo/js/{{cookiecutter.package}}module.js +25 -0
  55. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/subscribers.py +39 -0
  56. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/views/__init__.py +0 -0
  57. c2cgeoportal_geoportal/scaffolds/advance_update/cookiecutter.json +18 -0
  58. c2cgeoportal_geoportal/scaffolds/advance_update/{{cookiecutter.project}}/geoportal/CONST_Makefile +121 -0
  59. c2cgeoportal_geoportal/scaffolds/create/cookiecutter.json +18 -0
  60. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.dockerignore +14 -0
  61. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.editorconfig +17 -0
  62. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/main.yaml +73 -0
  63. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/rebuild.yaml +50 -0
  64. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/update_l10n.yaml +66 -0
  65. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.gitignore +16 -0
  66. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.pre-commit-config.yaml +35 -0
  67. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.prettierignore +1 -0
  68. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.prettierrc.yaml +2 -0
  69. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/Dockerfile +75 -0
  70. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/Makefile +70 -0
  71. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/README.rst +29 -0
  72. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/build +179 -0
  73. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/ci/config.yaml +22 -0
  74. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/ci/docker-compose-check +25 -0
  75. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/ci/requirements.txt +2 -0
  76. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose-db.yaml +24 -0
  77. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose-lib.yaml +511 -0
  78. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose-qgis.yaml +21 -0
  79. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose.override.sample.yaml +59 -0
  80. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose.yaml +121 -0
  81. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/env.default +102 -0
  82. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/env.project +69 -0
  83. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/vars.yaml +430 -0
  84. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/locale/en/LC_MESSAGES/{{cookiecutter.package}}_geoportal-client.po +6 -0
  85. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/desktop.css +0 -0
  86. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/iframe_api.css +0 -0
  87. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/mobile.css +0 -0
  88. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/banner_left.png +0 -0
  89. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/banner_right.png +0 -0
  90. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/blank.png +0 -0
  91. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker-blue.png +0 -0
  92. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker-gold.png +0 -0
  93. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker-green.png +0 -0
  94. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker.png +0 -0
  95. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/robot.txt.tmpl +3 -0
  96. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/data/Readme.txt +69 -0
  97. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/data/TM_EUROPE_BORDERS-0.3.sql +70 -0
  98. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/demo.map.tmpl +224 -0
  99. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Arial.ttf +0 -0
  100. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Arialbd.ttf +0 -0
  101. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Arialbi.ttf +0 -0
  102. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Ariali.ttf +0 -0
  103. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/NotoSans-Bold.ttf +0 -0
  104. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/NotoSans-BoldItalic.ttf +0 -0
  105. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/NotoSans-Italic.ttf +0 -0
  106. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/NotoSans-Regular.ttf +0 -0
  107. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Verdana.ttf +0 -0
  108. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Verdanab.ttf +0 -0
  109. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Verdanai.ttf +0 -0
  110. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Verdanaz.ttf +0 -0
  111. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts.conf +12 -0
  112. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/mapserver.conf +15 -0
  113. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/mapserver.map.tmpl +87 -0
  114. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/tinyows.xml.tmpl +36 -0
  115. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/A3_Landscape.jrxml +207 -0
  116. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/A3_Portrait.jrxml +185 -0
  117. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/A4_Landscape.jrxml +200 -0
  118. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/A4_Portrait.jrxml +170 -0
  119. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/config.yaml.tmpl +175 -0
  120. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/legend.jrxml +109 -0
  121. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/localisation.properties +4 -0
  122. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/localisation_fr.properties +4 -0
  123. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/logo.png +0 -0
  124. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/north.svg +93 -0
  125. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/results.jrxml +25 -0
  126. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/project.yaml +18 -0
  127. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/pyproject.toml +7 -0
  128. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/qgisserver/pg_service.conf.tmpl +15 -0
  129. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/run_alembic.sh +11 -0
  130. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/scripts/db-backup +126 -0
  131. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/scripts/db-restore +132 -0
  132. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/setup.cfg +7 -0
  133. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/spell-ignore-words.txt +5 -0
  134. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/tests/__init__.py +0 -0
  135. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/tests/test_app.py +43 -0
  136. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/tilegeneration/config.yaml.tmpl +195 -0
  137. c2cgeoportal_geoportal/scaffolds/update/cookiecutter.json +18 -0
  138. c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/.upgrade.yaml +67 -0
  139. c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/CONST_CHANGELOG.txt +295 -0
  140. c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/CONST_create_template/tests/test_testapp.py +48 -0
  141. c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/geoportal/CONST_config-schema.yaml +922 -0
  142. c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/geoportal/CONST_vars.yaml +1503 -0
  143. c2cgeoportal_geoportal/scripts/__init__.py +64 -0
  144. c2cgeoportal_geoportal/scripts/c2cupgrade.py +879 -0
  145. c2cgeoportal_geoportal/scripts/create_demo_theme.py +80 -0
  146. c2cgeoportal_geoportal/scripts/manage_users.py +140 -0
  147. c2cgeoportal_geoportal/scripts/pcreate.py +314 -0
  148. c2cgeoportal_geoportal/scripts/theme2fts.py +347 -0
  149. c2cgeoportal_geoportal/scripts/urllogin.py +81 -0
  150. c2cgeoportal_geoportal/templates/login.html +90 -0
  151. c2cgeoportal_geoportal/templates/notlogin.html +62 -0
  152. c2cgeoportal_geoportal/templates/testi18n.html +12 -0
  153. c2cgeoportal_geoportal/views/__init__.py +59 -0
  154. c2cgeoportal_geoportal/views/dev.py +57 -0
  155. c2cgeoportal_geoportal/views/dynamic.py +208 -0
  156. c2cgeoportal_geoportal/views/entry.py +174 -0
  157. c2cgeoportal_geoportal/views/fulltextsearch.py +189 -0
  158. c2cgeoportal_geoportal/views/geometry_processing.py +75 -0
  159. c2cgeoportal_geoportal/views/i18n.py +129 -0
  160. c2cgeoportal_geoportal/views/layers.py +713 -0
  161. c2cgeoportal_geoportal/views/login.py +679 -0
  162. c2cgeoportal_geoportal/views/mapserverproxy.py +191 -0
  163. c2cgeoportal_geoportal/views/memory.py +90 -0
  164. c2cgeoportal_geoportal/views/ogcproxy.py +120 -0
  165. c2cgeoportal_geoportal/views/pdfreport.py +245 -0
  166. c2cgeoportal_geoportal/views/printproxy.py +143 -0
  167. c2cgeoportal_geoportal/views/profile.py +127 -0
  168. c2cgeoportal_geoportal/views/proxy.py +259 -0
  169. c2cgeoportal_geoportal/views/raster.py +193 -0
  170. c2cgeoportal_geoportal/views/resourceproxy.py +73 -0
  171. c2cgeoportal_geoportal/views/shortener.py +152 -0
  172. c2cgeoportal_geoportal/views/theme.py +1322 -0
  173. c2cgeoportal_geoportal/views/tinyowsproxy.py +189 -0
  174. c2cgeoportal_geoportal/views/vector_tiles.py +83 -0
  175. {c2cgeoportal_geoportal-2.3.5.79.dist-info → c2cgeoportal_geoportal-2.9rc1.dist-info}/METADATA +21 -24
  176. c2cgeoportal_geoportal-2.9rc1.dist-info/RECORD +192 -0
  177. {c2cgeoportal_geoportal-2.3.5.79.dist-info → c2cgeoportal_geoportal-2.9rc1.dist-info}/WHEEL +1 -1
  178. c2cgeoportal_geoportal-2.9rc1.dist-info/entry_points.txt +28 -0
  179. c2cgeoportal_geoportal-2.9rc1.dist-info/top_level.txt +2 -0
  180. tests/__init__.py +100 -0
  181. tests/test_cachebuster.py +71 -0
  182. tests/test_caching.py +275 -0
  183. tests/test_checker.py +85 -0
  184. tests/test_decimaljson.py +47 -0
  185. tests/test_headerstween.py +64 -0
  186. tests/test_i18n.py +31 -0
  187. tests/test_init.py +193 -0
  188. tests/test_locale_negociator.py +69 -0
  189. tests/test_mapserverproxy_route_predicate.py +64 -0
  190. tests/test_raster.py +267 -0
  191. tests/test_wmstparsing.py +238 -0
  192. tests/xmlstr.py +103 -0
  193. c2cgeoportal_geoportal-2.3.5.79.dist-info/DESCRIPTION.rst +0 -8
  194. c2cgeoportal_geoportal-2.3.5.79.dist-info/RECORD +0 -7
  195. c2cgeoportal_geoportal-2.3.5.79.dist-info/entry_points.txt +0 -22
  196. c2cgeoportal_geoportal-2.3.5.79.dist-info/metadata.json +0 -1
  197. c2cgeoportal_geoportal-2.3.5.79.dist-info/top_level.txt +0 -1
@@ -0,0 +1,189 @@
1
+ # Copyright (c) 2015-2024, Camptocamp SA
2
+ # All rights reserved.
3
+
4
+ # Redistribution and use in source and binary forms, with or without
5
+ # modification, are permitted provided that the following conditions are met:
6
+
7
+ # 1. Redistributions of source code must retain the above copyright notice, this
8
+ # list of conditions and the following disclaimer.
9
+ # 2. Redistributions in binary form must reproduce the above copyright notice,
10
+ # this list of conditions and the following disclaimer in the documentation
11
+ # and/or other materials provided with the distribution.
12
+
13
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
14
+ # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
15
+ # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
16
+ # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
17
+ # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
18
+ # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
19
+ # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
20
+ # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21
+ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
22
+ # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23
+
24
+ # The views and conclusions contained in the software and documentation are those
25
+ # of the authors and should not be interpreted as representing official policies,
26
+ # either expressed or implied, of the FreeBSD Project.
27
+
28
+
29
+ import logging
30
+ from typing import Any
31
+
32
+ import pyramid.request
33
+ from defusedxml import ElementTree
34
+ from pyramid.httpexceptions import HTTPBadRequest, HTTPForbidden, HTTPInternalServerError, HTTPUnauthorized
35
+ from pyramid.view import view_config
36
+
37
+ from c2cgeoportal_commons import models
38
+ from c2cgeoportal_commons.lib.url import Url
39
+ from c2cgeoportal_commons.models import main
40
+ from c2cgeoportal_geoportal.lib.common_headers import Cache
41
+ from c2cgeoportal_geoportal.lib.filter_capabilities import (
42
+ filter_wfst_capabilities,
43
+ normalize_tag,
44
+ normalize_typename,
45
+ )
46
+ from c2cgeoportal_geoportal.lib.layers import get_writable_layers
47
+ from c2cgeoportal_geoportal.views.ogcproxy import OGCProxy
48
+
49
+ _LOG = logging.getLogger(__name__)
50
+
51
+
52
+ class TinyOWSProxy(OGCProxy):
53
+ """Proxy for the tiny OWN server."""
54
+
55
+ def __init__(self, request: pyramid.request.Request):
56
+ OGCProxy.__init__(self, request, has_default_ogc_server=True)
57
+
58
+ assert models.DBSession is not None
59
+ self.settings = request.registry.settings.get("tinyowsproxy", {})
60
+
61
+ assert "tinyows_url" in self.settings, "tinyowsproxy.tinyows_url must be set"
62
+ self.ogc_server = (
63
+ models.DBSession.query(main.OGCServer)
64
+ .filter(main.OGCServer.name == self.settings["ogc_server"])
65
+ .one()
66
+ )
67
+
68
+ self.user = self.request.user
69
+
70
+ # params hold the parameters we are going to send to TinyOWS
71
+ self.lower_params = self._get_lower_params(dict(self.request.params))
72
+
73
+ @view_config(route_name="tinyowsproxy") # type: ignore
74
+ def proxy(self) -> pyramid.response.Response:
75
+ if self.user is None:
76
+ raise HTTPUnauthorized(
77
+ "Authentication required", headers=[("WWW-Authenticate", 'Basic realm="TinyOWS"')]
78
+ )
79
+
80
+ operation = self.lower_params.get("request")
81
+ typenames = (
82
+ {normalize_typename(self.lower_params["typename"])} if "typename" in self.lower_params else set()
83
+ )
84
+
85
+ method = self.request.method
86
+ if method == "POST":
87
+ try:
88
+ (operation, typenames_post) = self._parse_body(self.request.body)
89
+ except Exception:
90
+ _LOG.exception("Error while parsing POST request body")
91
+ raise HTTPBadRequest( # pylint: disable=raise-missing-from
92
+ "Error parsing the request (see logs for more details)"
93
+ )
94
+
95
+ typenames = typenames.union(typenames_post)
96
+
97
+ if operation is None or operation == "":
98
+ operation = "getcapabilities"
99
+
100
+ if operation == "describefeaturetype":
101
+ # for DescribeFeatureType we require that exactly one type-name
102
+ # is given, otherwise we would have to filter the result
103
+ if len(typenames) != 1:
104
+ raise HTTPBadRequest("Exactly one type-name must be given for DescribeFeatureType requests")
105
+
106
+ if not self._is_allowed(typenames):
107
+ raise HTTPForbidden("No access rights for at least one of the given type-names")
108
+
109
+ # we want clients to cache GetCapabilities and DescribeFeatureType req.
110
+ use_cache = method == "GET" and operation in ("getcapabilities", "describefeaturetype")
111
+ cache_control = Cache.PRIVATE if use_cache else Cache.PRIVATE_NO
112
+
113
+ url = Url(self.settings.get("tinyows_url"))
114
+
115
+ response = self._proxy_callback(
116
+ operation,
117
+ cache_control,
118
+ url=url,
119
+ params=dict(self.request.params),
120
+ cache=use_cache,
121
+ headers=self._get_headers(),
122
+ body=self.request.body,
123
+ )
124
+ return response
125
+
126
+ def _is_allowed(self, typenames: set[str]) -> bool:
127
+ """Check if the current user has the rights to access the given type-names."""
128
+ writable_layers = set()
129
+ for gmflayer in list(get_writable_layers(self.request, [self.ogc_server.id]).values()):
130
+ assert isinstance(gmflayer, main.LayerWMS)
131
+ for ogclayer in gmflayer.layer.split(","):
132
+ writable_layers.add(ogclayer.lower())
133
+ return typenames.issubset(writable_layers)
134
+
135
+ def _get_headers(self) -> dict[str, str]:
136
+ headers = OGCProxy.get_headers(self)
137
+ if "tinyows_host" in self.settings:
138
+ headers["Host"] = self.settings.get("tinyows_host")
139
+ return headers
140
+
141
+ def _proxy_callback(
142
+ self, operation: str, cache_control: Cache, *args: Any, **kwargs: Any
143
+ ) -> pyramid.response.Response:
144
+ response = self._proxy(*args, **kwargs)
145
+ content = response.content.decode()
146
+
147
+ errors: set[str] = set()
148
+ url = super()._get_wfs_url(errors)
149
+ if url is None:
150
+ _LOG.error("Error getting the URL:\n%s", "\n".join(errors))
151
+ raise HTTPInternalServerError()
152
+
153
+ if operation == "getcapabilities":
154
+ content = filter_wfst_capabilities(content, url, self.request)
155
+
156
+ content = self._filter_urls(
157
+ content, self.settings.get("online_resource"), self.settings.get("proxy_online_resource")
158
+ )
159
+
160
+ return self._build_response(response, content.encode(), cache_control, "tinyows")
161
+
162
+ @staticmethod
163
+ def _filter_urls(content: str, online_resource: str, proxy_online_resource: str) -> str:
164
+ if online_resource is not None and proxy_online_resource is not None:
165
+ return content.replace(online_resource, proxy_online_resource)
166
+ return content
167
+
168
+ @staticmethod
169
+ def _parse_body(body: str) -> tuple[str, set[str]]:
170
+ """Read the WFS-T request body and extract the referenced type-names and request method."""
171
+ xml = ElementTree.fromstring(body)
172
+ wfs_request = normalize_tag(xml.tag)
173
+
174
+ # get the type names
175
+ typenames: set[str] = set()
176
+ for child in xml:
177
+ tag = normalize_tag(child.tag)
178
+ if tag == "typename":
179
+ typenames.add(child.text)
180
+ elif tag in ("query", "lock", "update", "delete"):
181
+ typenames.add(child.get("typeName"))
182
+ elif tag == "insert":
183
+ for insert_child in child:
184
+ typenames.add(normalize_tag(insert_child.tag))
185
+
186
+ # remove the namespace from the typenames
187
+ typenames = {normalize_typename(t) for t in typenames}
188
+
189
+ return (wfs_request, typenames)
@@ -0,0 +1,83 @@
1
+ # Copyright (c) 2021-2024, Camptocamp SA
2
+ # All rights reserved.
3
+
4
+ # Redistribution and use in source and binary forms, with or without
5
+ # modification, are permitted provided that the following conditions are met:
6
+
7
+ # 1. Redistributions of source code must retain the above copyright notice, this
8
+ # list of conditions and the following disclaimer.
9
+ # 2. Redistributions in binary form must reproduce the above copyright notice,
10
+ # this list of conditions and the following disclaimer in the documentation
11
+ # and/or other materials provided with the distribution.
12
+
13
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
14
+ # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
15
+ # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
16
+ # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
17
+ # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
18
+ # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
19
+ # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
20
+ # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21
+ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
22
+ # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23
+
24
+ # The views and conclusions contained in the software and documentation are those
25
+ # of the authors and should not be interpreted as representing official policies,
26
+ # either expressed or implied, of the FreeBSD Project.
27
+
28
+ import logging
29
+
30
+ import sqlalchemy
31
+ from pyramid.httpexceptions import HTTPNotFound
32
+ from pyramid.request import Request
33
+ from pyramid.response import Response
34
+ from pyramid.view import view_config
35
+ from tilecloud import TileCoord
36
+ from tilecloud.grid.free import FreeTileGrid
37
+
38
+ from c2cgeoportal_commons.models import DBSession, main
39
+ from c2cgeoportal_geoportal.lib.common_headers import Cache, set_common_headers
40
+
41
+ _LOG = logging.getLogger(__name__)
42
+
43
+
44
+ class VectorTilesViews:
45
+ """All the views concerning the vector tiles."""
46
+
47
+ def __init__(self, request: Request) -> None:
48
+ self.request = request
49
+
50
+ @view_config(route_name="vector_tiles") # type: ignore
51
+ def vector_tiles(self) -> Response:
52
+ assert DBSession is not None
53
+
54
+ settings = self.request.registry.settings["vector_tiles"]
55
+ grid = FreeTileGrid(settings["resolutions"], max_extent=settings["extent"], tile_size=256)
56
+
57
+ layer_name = self.request.matchdict["layer_name"]
58
+
59
+ z = int(self.request.matchdict["z"])
60
+ x = int(self.request.matchdict["x"])
61
+ y = int(self.request.matchdict["y"])
62
+ coord = TileCoord(z, x, y)
63
+ minx, miny, maxx, maxy = grid.extent(coord, 0)
64
+
65
+ layer = (
66
+ DBSession.query(main.LayerVectorTiles.sql)
67
+ .filter(main.LayerVectorTiles.name == layer_name)
68
+ .one_or_none()
69
+ )
70
+ if layer is None:
71
+ raise HTTPNotFound(f"Not found any vector tile layer named {layer_name}")
72
+
73
+ raw_sql = layer[0].format(
74
+ envelope=f"ST_MakeEnvelope({minx}, {miny}, {maxx}, {maxy}, {settings['srid']})"
75
+ )
76
+
77
+ result = DBSession.execute(sqlalchemy.text(raw_sql))
78
+ for row in result: # pylint: disable=not-an-iterable
79
+ set_common_headers(self.request, "vector_tiles", Cache.PUBLIC)
80
+ response = self.request.response
81
+ response.content_type = "application/vnd.mapbox-vector-tile"
82
+ response.body = row[0].tobytes()
83
+ return response
@@ -1,45 +1,45 @@
1
- Metadata-Version: 2.0
1
+ Metadata-Version: 2.1
2
2
  Name: c2cgeoportal-geoportal
3
- Version: 2.3.5.79
3
+ Version: 2.9rc1
4
4
  Summary: c2cgeoportal geoportal
5
- Home-page: http://www.camptocamp.com/solutions/geospatial/
5
+ Home-page: https://github.com/camptocamp/c2cgeoportal/
6
6
  Author: Camptocamp
7
7
  Author-email: info@camptocamp.com
8
- License: UNKNOWN
9
8
  Keywords: web gis geoportail c2cgeoportal geocommune pyramid
10
- Platform: UNKNOWN
9
+ Classifier: Development Status :: 6 - Mature
10
+ Classifier: Environment :: Web Environment
11
+ Classifier: Framework :: Pyramid
12
+ Classifier: Intended Audience :: Other Audience
13
+ Classifier: License :: OSI Approved :: BSD License
14
+ Classifier: Operating System :: OS Independent
11
15
  Classifier: Programming Language :: Python
12
16
  Classifier: Programming Language :: Python :: 3
13
- Classifier: Programming Language :: Python :: 3.5
14
- Classifier: Programming Language :: Python :: 3.6
15
- Classifier: Framework :: Pyramid
16
- Classifier: Topic :: Internet :: WWW/HTTP
17
- Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Topic :: Scientific/Engineering :: GIS
19
+ Classifier: Typing :: Typed
20
+ Requires-Python: >=3.10
21
+ Description-Content-Type: text/markdown
18
22
  Requires-Dist: Fiona
19
23
  Requires-Dist: GeoAlchemy2
20
24
  Requires-Dist: Mako
21
- Requires-Dist: OWSLib (>=0.6.0)
22
- Requires-Dist: PasteScript
25
+ Requires-Dist: OWSLib >=0.6.0
23
26
  Requires-Dist: PyYAML
24
27
  Requires-Dist: SQLAlchemy
25
28
  Requires-Dist: Shapely
26
29
  Requires-Dist: alembic
27
30
  Requires-Dist: bottle
28
- Requires-Dist: c2c.template (>=2.0.7)
29
31
  Requires-Dist: c2cgeoportal-commons[upgrade]
30
32
  Requires-Dist: c2cwsgiutils
31
- Requires-Dist: dateutils
32
33
  Requires-Dist: defusedxml
33
- Requires-Dist: dogpile.cache (>=0.6)
34
+ Requires-Dist: dogpile.cache >=0.6
34
35
  Requires-Dist: geojson
35
- Requires-Dist: httplib2
36
- Requires-Dist: ipcalc
37
36
  Requires-Dist: isodate
38
- Requires-Dist: lingua
37
+ Requires-Dist: lingva
39
38
  Requires-Dist: papyrus
40
- Requires-Dist: psycopg2-binary
39
+ Requires-Dist: psycopg2
41
40
  Requires-Dist: pycryptodome
42
- Requires-Dist: pyramid (<=1.9.99)
41
+ Requires-Dist: pyotp
42
+ Requires-Dist: pyramid
43
43
  Requires-Dist: pyramid-debugtoolbar
44
44
  Requires-Dist: pyramid-mako
45
45
  Requires-Dist: pyramid-multiauth
@@ -48,14 +48,11 @@ Requires-Dist: python-dateutil
48
48
  Requires-Dist: rasterio
49
49
  Requires-Dist: redis
50
50
  Requires-Dist: requests
51
- Requires-Dist: simplejson
52
51
  Requires-Dist: transaction
53
52
 
54
53
  c2cgeoportal is the server part of `GeoMapFish <http://geomapfish.org/>`_,
55
- the client part is `ngeo <https://github.com/camptocamp/ngeo/>`_,
56
- the old client and API part is `CGXP <https://github.com/camptocamp/cgxp/>`_.
54
+ the client part is `ngeo <https://github.com/camptocamp/ngeo/>`_.
57
55
 
58
56
  Read the `Documentation <https://camptocamp.github.io/c2cgeoportal/master/>`_.
59
57
 
60
58
  `Sources <https://github.com/camptocamp/c2cgeoportal/>`_
61
-
@@ -0,0 +1,192 @@
1
+ c2cgeoportal_geoportal/__init__.py,sha256=5-7394kNTaBZOvSFSv5XxMHKqmKaYKg4RNzyqjbtxzQ,38735
2
+ c2cgeoportal_geoportal/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ c2cgeoportal_geoportal/resources.py,sha256=n42Gns8DKw32GstDoUdNgud6xdAidaRwgAuNHqGH-c4,2158
4
+ c2cgeoportal_geoportal/lib/__init__.py,sha256=_67fO_aXQZRnxPXcShHBcs38mdYU5ch0FNX89RwMTgA,10431
5
+ c2cgeoportal_geoportal/lib/authentication.py,sha256=Bfws50nNiboVa2qm3Hdy_-38tygnlB8sX5AW9Zfikw0,9833
6
+ c2cgeoportal_geoportal/lib/bashcolor.py,sha256=LQgOgtFUvgJ4Ed3-YW3RPjvhBMZBbXBBkUZKE4unRCI,1889
7
+ c2cgeoportal_geoportal/lib/cacheversion.py,sha256=8ETNA02fh7AX39pNAkDrEJsCmPXVzYRShjTzJHoAJL0,2946
8
+ c2cgeoportal_geoportal/lib/caching.py,sha256=BZzIjgEUfv7puP8XvWY6PAni7HybcLMZrGam3D3mCyA,7124
9
+ c2cgeoportal_geoportal/lib/check_collector.py,sha256=98N43jvjzCOh19Agipf8varCD9S9I9V8XYQcrSujv0k,3396
10
+ c2cgeoportal_geoportal/lib/checker.py,sha256=QLe0SUzfSwKYQFpGgFecWkJJlVjA1O2phwf-FvQQOUc,12547
11
+ c2cgeoportal_geoportal/lib/common_headers.py,sha256=IYMMo1IT33o83h79_9yN2Ol6fqqIEHaXPTBzLkYX8go,6472
12
+ c2cgeoportal_geoportal/lib/dbreflection.py,sha256=viQotACmEAoLtJYHhQqAtcT3UQUvNVz9P_MlRCKgR9g,9759
13
+ c2cgeoportal_geoportal/lib/filter_capabilities.py,sha256=nah7A3A_m87M5lSXcw3HRaEnHMCLnXcwTQ3PdoGN4js,14343
14
+ c2cgeoportal_geoportal/lib/fulltextsearch.py,sha256=DrqO51QbDp56VpZa__2-8vp8U39izvLpyGhRCLTCaYc,2265
15
+ c2cgeoportal_geoportal/lib/functionality.py,sha256=XawlxN0gIb1IB34j9vVyxyMsh0VraZXOPcGTCxg9D4c,6279
16
+ c2cgeoportal_geoportal/lib/headers.py,sha256=zezJJ122edkNg41lGpK7ogE-almayvRKnEAopXI2pA8,2631
17
+ c2cgeoportal_geoportal/lib/i18n.py,sha256=MoEPu4mj02KeuTJQDA1Y1btK6Ll7d089dzjRTLmedfs,1852
18
+ c2cgeoportal_geoportal/lib/layers.py,sha256=DK_G0XBo1IWMOPmndWv_gYbRnE9Lg9zRTlnoXbZNgrI,4911
19
+ c2cgeoportal_geoportal/lib/lingva_extractor.py,sha256=pGBbrNxRtwB8NHn2mW-zvXdGe4hCbcrbA47toVZLxnE,37603
20
+ c2cgeoportal_geoportal/lib/loader.py,sha256=vfjyuN2ry33Djc5KMTbibQ96uAw8oZyomAAwk0gbW5Q,2613
21
+ c2cgeoportal_geoportal/lib/metrics.py,sha256=5HryUs6Rk6cmVvag5_FN-W2gcwsyJt3Xf9105TSO4mQ,4847
22
+ c2cgeoportal_geoportal/lib/oauth2.py,sha256=1hXo78-8lg3OBvB0TK5zG5QawZnvroPhaVpTBtPZg8I,41107
23
+ c2cgeoportal_geoportal/lib/oidc.py,sha256=mggahqQk9XoTVTx63ZV_utVKxhEcthWnnI3rnznTvoE,12191
24
+ c2cgeoportal_geoportal/lib/wmstparsing.py,sha256=EWFXxZ_nK3vpx8H3dSKIJTnNAXoJmfhhHYkcG1bXluI,12379
25
+ c2cgeoportal_geoportal/lib/xsd.py,sha256=V5dXPWTVIz04LoI5GDkorFnaLrLUhlw--c6NzWsAxfk,7031
26
+ c2cgeoportal_geoportal/scaffolds/advance_create/cookiecutter.json,sha256=1LVOM-j_nd00J89q0EI3bQUvIysbidApaVHDibA2ydk,524
27
+ c2cgeoportal_geoportal/scaffolds/advance_create/ci/config.yaml,sha256=LiDYqdnRyOXmGoSuvjMBxwfL7tYd1i1PXx5u8TU-Hs8,592
28
+ c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/.dockerignore,sha256=rPtGQNYXYoj-D94VwnVT_x-HvqldTNoz2oT7DjGpyqk,147
29
+ c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/.eslintrc.yaml,sha256=txdVU8ikuADtWxCHWjyOBtT8wiXzf-LhT9ZMVtBiwhY,241
30
+ c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/.prospector.yaml,sha256=rtVvKNsow04qQr_yXZ1yF1mPvLsyt_6Cp4Og-8yjUf4,378
31
+ c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/Dockerfile,sha256=3Uig6_mmuff53pSv_sUzTNF-El_jN6r8zfy6bR_9AXA,2603
32
+ c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/Makefile,sha256=ctHZV0-kh9voLpmgVK_ya68GI5VAKmxN9UiZVZKPyBo,147
33
+ c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/alembic.ini,sha256=KpgEj3uVRBdgiTjaQDqUjy_C0z5s8t2DUPFPTUSm7_w,985
34
+ c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/alembic.yaml,sha256=9HMFJ_UekLUzXM5bPtixNNkeHMalo50hKjkxM_2tG2E,458
35
+ c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/development.ini,sha256=NNBSPTGrK9D5kwR1WV1yV1wXQuPFBSQG5QkW16-OcVo,3042
36
+ c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/gunicorn.conf.py,sha256=JD94EpO_tVaipTxP-fL83L-hmkx1hS-_U819SdCjMlA,4981
37
+ c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/language_mapping,sha256=jZNiCuWh5-LsU0oDmNviVfNyNqZibBXNc_rsv_OpUuE,27
38
+ c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/lingva-client.cfg,sha256=Q5OugT3Ns7HEFxcBCejDHEkMtEUGhk__6-yONGg2ImM,117
39
+ c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/lingva-server.cfg,sha256=1mRNwhmqmxlJwKucLauitmY9MHgWAyCr4N6TaqHkKsU,107
40
+ c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/production.ini,sha256=ptWxF3jAE1A3IAQ7KdYSpGbPdAm3g-S-SIFXdZuFk3o,1137
41
+ c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/requirements.txt,sha256=n6hSj_r5f8NmSamv1Jo7Ly6bxby8ziEeXoMmY_psgtY,55
42
+ c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/setup.py,sha256=dZ-f23wZNh4TuHXCmyHRrlWR0kTVN3PKTT1FQilDeDk,694
43
+ c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.api.js,sha256=w_NXNXu_m6lE0fUrdxyyo-I1CfEyLWUzaMXMdHD4n5I,1102
44
+ c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.apps.js,sha256=jjfTSIbQMwsoHwRtm5nEzsRjQETBQMOFPtfFVQwiHoo,2009
45
+ c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.commons.js,sha256=0i3s1Bi1pKQzCxTR-tfAxLsHWq3SEUF7Cw5YJxMBzMM,216
46
+ c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.config.js,sha256=IFHj1YVu2aitTtQWVV6E5BaU0YDHz1qeoixaLbtRXPA,643
47
+ c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/__init__.py,sha256=GEqdw3Q7gov4KlUsZNcEIbk86HipezUMVHTzzQJSdBk,1282
48
+ c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/authentication.py,sha256=mjPjpZfgPPeMneKe4u95aPYIJlWcUpbSsR5-3ObWirA,426
49
+ c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/dev.py,sha256=2Et_4LUWO_82DAYsPxEnH5yCX0YVY2XPhv9pzOTl8Zs,387
50
+ c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/models.py,sha256=_l0vjJq6O-p2angXFtzqRy2cWU1sZz8FvPbYA6XZ0tA,285
51
+ c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/multi_organization.py,sha256=qNxledzv8JeIWTFFF8-XO163qmxztiBY_NhxLvEOCAM,158
52
+ c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/resources.py,sha256=8Ey8_zvzge1A9yid7LDggHZlulbWsm21gM6Mf9LgzlI,270
53
+ c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/subscribers.py,sha256=8ChZ7xVzcaOqRXIErrO4JtJqEnGWJ3y1C6Tu0ExjwGs,1352
54
+ c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static-ngeo/api/index.js,sha256=rxXFRQeGxBTLmhOUmFpIaGZda1Gk5Qi_VsXdbaOfwXo,260
55
+ c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static-ngeo/js/{{cookiecutter.package}}module.js,sha256=TYZUcLOinHKhzn-l35pwqe0kNOhX90TzFOVj1KyaVaI,614
56
+ c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/views/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
+ c2cgeoportal_geoportal/scaffolds/advance_update/cookiecutter.json,sha256=1LVOM-j_nd00J89q0EI3bQUvIysbidApaVHDibA2ydk,524
58
+ c2cgeoportal_geoportal/scaffolds/advance_update/{{cookiecutter.project}}/geoportal/CONST_Makefile,sha256=aclNEH4Lw_Ih98MeA15prkJhZzob4ph2pJTDGcCca-g,4023
59
+ c2cgeoportal_geoportal/scaffolds/create/cookiecutter.json,sha256=1LVOM-j_nd00J89q0EI3bQUvIysbidApaVHDibA2ydk,524
60
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.dockerignore,sha256=aU-IzKK1qmFAJNiCLYT6yB6LVTEsDBcO5nBW3q8M-MQ,351
61
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.editorconfig,sha256=cpHwgH23FLEQ6gV2O0Xa-iKxCaaVHhTKiFA91moh1sQ,297
62
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.gitignore,sha256=NNaSfLn7_4sIXta39BzRfGQJfUqBq-U4lbgtkXStgkY,449
63
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.pre-commit-config.yaml,sha256=rW61ldm4Yhzj_8XSb2tZHQ10hlQ6avm-3WIv7yS5S64,774
64
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.prettierignore,sha256=PcDfauWwzv1pnJgC9HR1zvv06Q01CwzGzzc0iLSNcZk,9
65
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.prettierrc.yaml,sha256=WbjZCtw0hBlDB2FYJanFJzAvUsNTxgwn62YBZ-Xbwkw,43
66
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/Dockerfile,sha256=rHfi8wr8yzUbnLtJnpnp8xdmDwCfFko7OLQ6vELoquQ,3176
67
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/Makefile,sha256=UzIF0yY73ddsnAD5ghwJhedupn6632l0va0IpzZVKbw,3087
68
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/README.rst,sha256=QJcaUtT05atb5x8SJYflSt0YIJkbAz0Zh39_FYtyFks,423
69
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/build,sha256=CjYe1cIL-TsKPbdxy1zStTUEGguILXpyUC63X2_Cy8c,7010
70
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose-db.yaml,sha256=sNzJxDQX54WfKgJhhVhDm4a05z3Rz1j6Oocl1QHzeyQ,518
71
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose-lib.yaml,sha256=h2sJ976jL2lmMxoRKTfzyInd6Rc0bLeF3BLQTyMO9R0,13537
72
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose-qgis.yaml,sha256=YE44s31kI79j5ypud4RS69sSDGFH1ROHNNAkyWxZ4jk,576
73
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose.override.sample.yaml,sha256=HJhSIl2yk69AoXn6F0KQY4KLP2UM_A_ZypWGylRYiLk,2490
74
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose.yaml,sha256=ZpQ33JhdBxkoUNBV9kB5f07p8DpqgvJ3-Mp0SzLnJ6w,2380
75
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/env.default,sha256=VaswczJuv2GJMvhQmXrXQCmroHwADsjL1hxj78k9woQ,3158
76
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/env.project,sha256=EoeIag5EnozSNMSETW7G9-dGPnG5NIfRhcxU5ihM_rU,2070
77
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/project.yaml,sha256=3tNtVcoIug5LNZoZsUpjm_YRCZQMAKzYWNL9ZdjkPC8,495
78
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/pyproject.toml,sha256=RnvMmtD40v3rju1HoIOX7pQfVHUKPptxaVDoZxuF7oU,107
79
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/run_alembic.sh,sha256=VcrDFPAGlrxXtn4N8RcPhI90uZ8shDrGowALuwx8gnM,235
80
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/setup.cfg,sha256=_Oj7PwahkYUSneIrjn2mXwo0m6b27dTCZhAwWXFWqUA,221
81
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/spell-ignore-words.txt,sha256=xREYVDbYmOz5vpSU0A6Lijb_I--zz6JSTmirxyX0dwI,30
82
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/main.yaml,sha256=VL1OmQUaFXZ9xBM7YnMhoUzPyHb9MQqNyBK7afPz-qA,2181
83
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/rebuild.yaml,sha256=2vW0rj6-_RpguWIwY58wTDcIDA1nN5qCEjYjDIg8OwQ,1374
84
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/update_l10n.yaml,sha256=AEm3dpJDVnYKy61mduSkPk10tJEkQMmhb1TQdbm0nlU,2335
85
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/ci/config.yaml,sha256=D60Qw2XxSF66PAFAjiZatEDI0Jjh2Le91X4FKnCAMgE,488
86
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/ci/docker-compose-check,sha256=7lnVTaaoUrC5MPGpwH2IWbzYc2KaeQMWguahsoY9Rf8,615
87
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/ci/requirements.txt,sha256=rnKiGx4tuYTDhwgZQWUdAPSfU3DPQ1DfHh3Rd8yyhl8,52
88
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/vars.yaml,sha256=ePV2VwlIS7_ZSu5Dwh1VHOkPqNw3BxxLZeOYWx6Qx_U,12002
89
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/locale/en/LC_MESSAGES/{{cookiecutter.package}}_geoportal-client.po,sha256=hKLs5f7EJz05ACRtyTlCtssCo99PMuj-FfOJXchMZFk,162
90
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/robot.txt.tmpl,sha256=JR_vIqMlHq1oSgyWPN2mtZyEpsqhjKQQecaW2pxvK54,88
91
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/desktop.css,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
92
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/iframe_api.css,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
93
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/mobile.css,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
94
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/banner_left.png,sha256=ExK_hOKzWaD4rgrSFy3xw88JrJai5n8JEXy-dEmvSLo,13799
95
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/banner_right.png,sha256=t65I5iM-wl_7a6k3NLbVT5d725siXigH2dsOhtmC3PU,6018
96
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/blank.png,sha256=zp8uuLPeZ13bYveFL5dI20zQMqzo_0SSMZGNV49JZfI,259
97
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker-blue.png,sha256=aALxnIGsafvssGB3fEmLWUNb7X3xz7JQlnoxUJhkNgg,758
98
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker-gold.png,sha256=O5qV6Vb1Y9QMiszH34x5PA1wX_SnVZ6Qhv7vsy8zr-g,703
99
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker-green.png,sha256=ucJpwxgJnaA4dUnDk779X1ZLxnYowMOTAq_CMeGw8PQ,753
100
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker.png,sha256=wj0-D2abaL-A-OIoUbEeuSwMc_e1zf8zE4lVpra9xYY,601
101
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/demo.map.tmpl,sha256=mFtC2pzbN3-KQpZxQbhV8fMeQaZikMyZ5N-A9RXaxYE,7269
102
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts.conf,sha256=uG3B6GUKIvTRVLO025Ecm5lh27sEMpmmzWUzFjNh8Qg,351
103
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/mapserver.conf,sha256=xRv4CqlYGLUm5t2y4G2PVCQKMRgufX0snvNz2-uBJVY,187
104
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/mapserver.map.tmpl,sha256=1kpzZv7rME0MbXw-2rQAvoh1_AshvbVFTzMqb6bXAnc,2698
105
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/tinyows.xml.tmpl,sha256=hI6mHamiwQW40t2Rf-NRHwOtkPdxL4YrkVS7MlUYPb8,816
106
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/data/Readme.txt,sha256=cOp2unb8vqlUqADg501IDzQbyLGZodCXyGH19fCEVUo,2891
107
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/data/TM_EUROPE_BORDERS-0.3.sql,sha256=pYpbBi2P61thQtpochj_-tl_kQIIVAJgZsemTYdRUBo,1588593
108
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Arial.ttf,sha256=NcDzVZ2NtWnjbDEJW4pg1EFkPZX1kTneQOI_ragZuDM,275572
109
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Arialbd.ttf,sha256=QESqa1vrvDaYAga0WwqqqlaBVSpIvK20F0bV0dcf17Q,286620
110
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Arialbi.ttf,sha256=Lzcc2dlrOsVEUZ2FwW3EPOrN_Oo1CQ7o3fPsWFfFAyg,224692
111
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Ariali.ttf,sha256=cK3iMxdaamZ15FAUYa-TJub3ix_994fKDaWrD8jJz9Y,206132
112
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/NotoSans-Bold.ttf,sha256=aL3Veh4eYmY6CzcsciQgS4KomCC5zzA5Ezf2HwxecSM,415132
113
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/NotoSans-BoldItalic.ttf,sha256=i-2wEn6RSsOt4je0AtM-VzrMS9ugueOYEnLK40_5hXo,290436
114
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/NotoSans-Italic.ttf,sha256=fWFOfubTLPuiYxv5hrx-xlodmXO7QUy55a632thch4c,279268
115
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/NotoSans-Regular.ttf,sha256=nptMU70lytnATTcPEzpeMtFm0NVOKprWy6SjH804LVs,414820
116
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Verdana.ttf,sha256=lu0UlJyktzks_yNbnEHVXBJTgqu-DA08K53WaJfK4Ms,139640
117
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Verdanab.ttf,sha256=yPUGW6kWgPWWrzsDeOLD5xO5WlI749Vq4YXKK49fCyM,136032
118
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Verdanai.ttf,sha256=kbWRhmVvUpclMaEUM8hm_VbmLsTmHiYhotunDI8ZqCg,154264
119
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Verdanaz.ttf,sha256=aY4iD0j0pA53r36zSVjI_QLx4Yw7o_Nl2Tv6LtRHTIA,153324
120
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/A3_Landscape.jrxml,sha256=LWasD8pgHCedWvKcByvnzzASgae3XzNH3MGqG-rEpSM,10262
121
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/A3_Portrait.jrxml,sha256=WVXAQAvaKYDEFE3cS6gwEeHsN_n-EKmsq9y0oiu05HU,8967
122
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/A4_Landscape.jrxml,sha256=eO4CQt8iCyWVDs2pGPm6dYEQtjA6PADcqe0t5tagR1Y,9822
123
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/A4_Portrait.jrxml,sha256=pNgpWqChIMOVP9AEcloSRlNjgWRaxtgCRMxNyRDP9Bw,7096
124
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/config.yaml.tmpl,sha256=QxH5xgjetuB_d3z0ktD5ZKctyNDAb8K9Ku0Y6yaOO24,4914
125
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/legend.jrxml,sha256=qRxN0MC4KIyxxLNiCdriO0FEUZerzrkTu-cSjexx7dE,5310
126
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/localisation.properties,sha256=n7F7W9ELl53JsNCDMwoFIlWravXB-K4VCQdo_Yjanx8,98
127
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/localisation_fr.properties,sha256=OBh4sWxMNW8dNgcXr7VpTW8HemJIQoxRmPBLZ9MDVmI,102
128
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/logo.png,sha256=ExK_hOKzWaD4rgrSFy3xw88JrJai5n8JEXy-dEmvSLo,13799
129
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/north.svg,sha256=rnHO-cNiy9ZyfwvI-o2dYipzuu-vh9rn0nE45FjfOPo,2925
130
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/results.jrxml,sha256=gf5grUvt-oG_H0LnsNvBWMDGqvH3uuW_wfy0O-n5ui4,1309
131
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/qgisserver/pg_service.conf.tmpl,sha256=WcjfsfsfNLHAfbg84HgEIb64EDnnJJWGnyAdPTXD0PI,296
132
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/scripts/db-backup,sha256=48fii_o6y9VbAb-ToG9qU0flS6kEXk6lfHsgtufgrwg,5205
133
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/scripts/db-restore,sha256=dfOEwiN8us_JulAZCEgM9WyqHUWEbnlowOgm5nQ0NR8,5425
134
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
135
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/tests/test_app.py,sha256=5zk1UE2E8fObwSjE0ynM5qFEUkPUDy2yceoD-nm7U8Q,1681
136
+ c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/tilegeneration/config.yaml.tmpl,sha256=OK6ZFMlYMx1wcx8leK42LA8p0P56HuEAP8fupuxDI34,6181
137
+ c2cgeoportal_geoportal/scaffolds/update/cookiecutter.json,sha256=x3FFn3b67GPGCsjg36iGXCudjaTSfwGHcwHS6HHVpPQ,539
138
+ c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/.upgrade.yaml,sha256=8tPCziX4Wh6a2EOdjpLtvyqNtKcI7Rtjo8-bLQO8_Gg,2741
139
+ c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/CONST_CHANGELOG.txt,sha256=MjaYrGj-JE54Ds_yaxXuxkkPl_AgIlmaR7IGugy7XTg,9868
140
+ c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/CONST_create_template/tests/test_testapp.py,sha256=yqlLYGeD-GdZtZRX-J9lp-fOnqtSqzUYvgCiz6CLuYM,1795
141
+ c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/geoportal/CONST_config-schema.yaml,sha256=Q_H2EPrZ5g0rA0Mn7vb2wbpZU82ZtF4PIG760Abqjyw,23458
142
+ c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/geoportal/CONST_vars.yaml,sha256=eafKkn_K87pXrtX1pGoEav3_1ELz3oiGLviNEV6vkOI,49133
143
+ c2cgeoportal_geoportal/scripts/__init__.py,sha256=hHwjhQaM_T2EaupeFIyjl0N67Bcl3M99UMcCdYAjQlQ,2929
144
+ c2cgeoportal_geoportal/scripts/c2cupgrade.py,sha256=7smnq2yxs1hAF1CiyE9WfgAqNKjjtrtHevY321i-wio,36826
145
+ c2cgeoportal_geoportal/scripts/create_demo_theme.py,sha256=HgU3vf_1lzbqAGLPhrQioqR74kuT4aHpayICBJ6y5iA,3082
146
+ c2cgeoportal_geoportal/scripts/manage_users.py,sha256=Ih3X_V_xUw59Ums4a1x6qQQtz9VtE7PaxAj-tiZIOPg,5586
147
+ c2cgeoportal_geoportal/scripts/pcreate.py,sha256=1zy-khluuf2gnqA_hJAFy6HFBxDdrqf-__iSZx4R9rs,11588
148
+ c2cgeoportal_geoportal/scripts/theme2fts.py,sha256=Tx1jUfDUwNtwZ5TCyfpldZIbIkzZiQ3dq-kv_YQ9yFE,13737
149
+ c2cgeoportal_geoportal/scripts/urllogin.py,sha256=qGOOvx2ZN3qnENGzo8NScRqfFC06l1yc48vU6Qx3MBo,3319
150
+ c2cgeoportal_geoportal/templates/login.html,sha256=Jy8CUw2KrSviePknsvWJLDqCUXam-vPhnMUv7UcD4Pc,2475
151
+ c2cgeoportal_geoportal/templates/notlogin.html,sha256=XLCwJ8q7hqk6GIaxwhyMOaMZZZvsD_MMZaCERO8n2AY,1528
152
+ c2cgeoportal_geoportal/templates/testi18n.html,sha256=Br6Vf5zTDdaH0L07saV_8dIIT3C9xnSqh4quzTELo2s,369
153
+ c2cgeoportal_geoportal/views/__init__.py,sha256=KNfldZFuKFfNjGJsE2HyW3gUfWUY5IKSPlQbwZpLH3Y,2639
154
+ c2cgeoportal_geoportal/views/dev.py,sha256=e1oZkKwwQvssMOzg3Zao3Jm4WNIFVwEI3EOR1Xj3-_Y,2533
155
+ c2cgeoportal_geoportal/views/dynamic.py,sha256=gJoYjKeKpYz8ulULsyKIshCxAUp-k9y01GHlSpWRTCo,8846
156
+ c2cgeoportal_geoportal/views/entry.py,sha256=bY0H9XKjPF95u4s4Yfr7n4ymEVlxYTgWhM_xe6xm2T8,6925
157
+ c2cgeoportal_geoportal/views/fulltextsearch.py,sha256=uiidVzz-mQ-_eF1GL3ZCWd67-p-PNnqE7QZkBxsro4Q,8397
158
+ c2cgeoportal_geoportal/views/geometry_processing.py,sha256=6dNDjl09mEKGZwJ3ZZkECmMXaPBvzd18i9fI-QOr40w,2952
159
+ c2cgeoportal_geoportal/views/i18n.py,sha256=RUuH_HPyjQrij8tfjlketSdRZkE_fpZzgtFq4jSKCr4,5331
160
+ c2cgeoportal_geoportal/views/layers.py,sha256=aEF2Z-eG6bP6B8aSl653wY7BcM7UDMYpSsf_yta_yBM,29178
161
+ c2cgeoportal_geoportal/views/login.py,sha256=s17aSGm-RnmOns9X1etTXjDBMSnJI3HkaaUX8AOKe_s,28833
162
+ c2cgeoportal_geoportal/views/mapserverproxy.py,sha256=SFFs8JSoBWytoPz1sdh1HLFky70LR2D8tk8EEXRkHtM,8161
163
+ c2cgeoportal_geoportal/views/memory.py,sha256=ttkX7DVcnlA1KsTtQEGZv66qGbjVFbeJGbrvxp6uh04,3748
164
+ c2cgeoportal_geoportal/views/ogcproxy.py,sha256=2i3cuZ2cRybEH-DvAQbrLnUxd9y3B0iKnwkpaJvhwSc,5215
165
+ c2cgeoportal_geoportal/views/pdfreport.py,sha256=nJ_V4Z74YHtYFw1ZIAJer8iz5KMedHPPbgBUy2qkpCU,9616
166
+ c2cgeoportal_geoportal/views/printproxy.py,sha256=b-fNcRPNFYXouTmLNnDeja45APFQoA6i9fU3h5kcE6g,5928
167
+ c2cgeoportal_geoportal/views/profile.py,sha256=lKMBzrt0wVtUyDghgtbiocn4yUajAOOGL9LyuDtM5Ns,5375
168
+ c2cgeoportal_geoportal/views/proxy.py,sha256=BCjFtnsrIQ2U30wk08YFLyt3Cq0yX3Rtwv5y7hCNpJ0,10390
169
+ c2cgeoportal_geoportal/views/raster.py,sha256=94rMGBQ7zHTvlKewBl-18LdoYRdLjW4880XlODDvhsE,7535
170
+ c2cgeoportal_geoportal/views/resourceproxy.py,sha256=S8PEqBpeJKsoLJlzA5lsqQoVDvh8pu5FEPh4OhJQU0Y,3183
171
+ c2cgeoportal_geoportal/views/shortener.py,sha256=54HNEDpueIdsKIpbWuk1MDpFC2gyo01MoAXc0uMVcl8,6167
172
+ c2cgeoportal_geoportal/views/theme.py,sha256=jVp5DWObPL4YGJRDetbzL4iBx1V-E0goag9uCEhZFvs,55966
173
+ c2cgeoportal_geoportal/views/tinyowsproxy.py,sha256=ydq3mKFd_KeQ0DG5ct59BlcIY8_2rsMAtGrAFE0407g,7916
174
+ c2cgeoportal_geoportal/views/vector_tiles.py,sha256=t_pZ4l6JpispZFr42EodcDIwAwG2q-MX12yI03w7Y6I,3569
175
+ tests/__init__.py,sha256=KxmbgvRWDSJoEDH1cXnDIjbfBsgCzs2KdkTPuzYMq84,3826
176
+ tests/test_cachebuster.py,sha256=asI1X_qI0MGklYuKuWyqvCPVbvhQcUe4fX91Dk-hUsE,2923
177
+ tests/test_caching.py,sha256=8exM2zAPPIoJLalFi8l3e1KA_l2WSwWGjTXDYN_tC9o,12493
178
+ tests/test_checker.py,sha256=NaU6Ejg9XbwS2cwqXCtz5mJPRdBIPZb3d1MkXVufr0k,3638
179
+ tests/test_decimaljson.py,sha256=CQrkqWs66kmq1iYur5kjzKhvdhw9b4TMcKEsuVayxA4,2223
180
+ tests/test_headerstween.py,sha256=3PkfTbsUq2C7fEsckO_4aYu9-XGBSeOgf86ENSqx76o,2524
181
+ tests/test_i18n.py,sha256=-mAW0UyeNF9uqkq6O_Z0mK8gGwlHlTWI0gb9Ri_bk1M,994
182
+ tests/test_init.py,sha256=79KRDBpYZ62wOHKHwkkjvq1_UuYHpPU88TNk-ZC83oM,7624
183
+ tests/test_locale_negociator.py,sha256=JDRzF8_yzsgYOWHlyd_7ezOqSCvudKjeN2QjExS0a4A,3044
184
+ tests/test_mapserverproxy_route_predicate.py,sha256=SzILSSzIuilzIkUYVPZiVzLwW1duQvCxxEvxSLk4p1o,3043
185
+ tests/test_raster.py,sha256=82NJ2MXgZlMqs0ytN-VgNw376iURdk4PkAg__dyh5ns,11948
186
+ tests/test_wmstparsing.py,sha256=xjA8nJuXFl3H5Bfs4sJw_8qX8E8qvAALK7Hs2-DTP2A,9054
187
+ tests/xmlstr.py,sha256=rkTKSU4FGjupBKLx75H8o-goB0KbQrxDvdpc6xVX_uQ,5985
188
+ c2cgeoportal_geoportal-2.9rc1.dist-info/METADATA,sha256=o2EHWDdWni4Wj1iWwKCwHQbrqoT6dyhXdMbe9doRfFw,1885
189
+ c2cgeoportal_geoportal-2.9rc1.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
190
+ c2cgeoportal_geoportal-2.9rc1.dist-info/entry_points.txt,sha256=3dnX260FsLX_AubeNMdyeta_z1X4CxcD3steAlfPx2I,1414
191
+ c2cgeoportal_geoportal-2.9rc1.dist-info/top_level.txt,sha256=PJIbY7Nx51dDrJ052f5mDA7c6Tehm5aD-Gb32L_CtJA,29
192
+ c2cgeoportal_geoportal-2.9rc1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.30.0)
2
+ Generator: bdist_wheel (0.42.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -0,0 +1,28 @@
1
+ [console_scripts]
2
+ c2cupgrade = c2cgeoportal_geoportal.scripts.c2cupgrade:main
3
+ create-demo-theme = c2cgeoportal_geoportal.scripts.create_demo_theme:main
4
+ manage-users = c2cgeoportal_geoportal.scripts.manage_users:main
5
+ pcreate = c2cgeoportal_geoportal.scripts.pcreate:main
6
+ theme2fts = c2cgeoportal_geoportal.scripts.theme2fts:main
7
+ urllogin = c2cgeoportal_geoportal.scripts.urllogin:main
8
+
9
+ [lingva.extractors]
10
+ geomapfish-angular = c2cgeoportal_geoportal.lib.lingva_extractor:GeomapfishAngularExtractor
11
+ geomapfish-config = c2cgeoportal_geoportal.lib.lingva_extractor:GeomapfishConfigExtractor
12
+ geomapfish-theme = c2cgeoportal_geoportal.lib.lingva_extractor:GeomapfishThemeExtractor
13
+
14
+ [plaster.loader_factory]
15
+ c2cgeoportal = c2cgeoportal_geoportal.lib.loader:Loader
16
+ c2cgeoportal+egg = c2cgeoportal_geoportal.lib.loader:Loader
17
+ c2cgeoportal+ini = c2cgeoportal_geoportal.lib.loader:Loader
18
+
19
+ [plaster.wsgi_loader_factory]
20
+ c2cgeoportal = c2cgeoportal_geoportal.lib.loader:Loader
21
+ c2cgeoportal+egg = c2cgeoportal_geoportal.lib.loader:Loader
22
+ c2cgeoportal+ini = c2cgeoportal_geoportal.lib.loader:Loader
23
+
24
+ [pyramid.scaffold]
25
+ c2cgeoportal_advance_create = c2cgeoportal_geoportal.scaffolds:TemplateAdvanceCreate
26
+ c2cgeoportal_advance_update = c2cgeoportal_geoportal.scaffolds:TemplateAdvanceUpdate
27
+ c2cgeoportal_create = c2cgeoportal_geoportal.scaffolds:TemplateCreate
28
+ c2cgeoportal_update = c2cgeoportal_geoportal.scaffolds:TemplateUpdate
@@ -0,0 +1,2 @@
1
+ c2cgeoportal_geoportal
2
+ tests