c2cgeoportal-admin 2.6.0__py3-none-any.whl → 2.8.1.180__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 (78) hide show
  1. c2cgeoportal_admin/__init__.py +32 -10
  2. c2cgeoportal_admin/lib/lingua_extractor.py +77 -0
  3. c2cgeoportal_admin/lib/ogcserver_synchronizer.py +168 -56
  4. c2cgeoportal_admin/py.typed +0 -0
  5. c2cgeoportal_admin/routes.py +7 -4
  6. c2cgeoportal_admin/schemas/dimensions.py +12 -10
  7. c2cgeoportal_admin/schemas/functionalities.py +62 -21
  8. c2cgeoportal_admin/schemas/interfaces.py +22 -18
  9. c2cgeoportal_admin/schemas/metadata.py +100 -47
  10. c2cgeoportal_admin/schemas/restriction_areas.py +21 -19
  11. c2cgeoportal_admin/schemas/roles.py +7 -5
  12. c2cgeoportal_admin/schemas/treegroup.py +38 -17
  13. c2cgeoportal_admin/schemas/treeitem.py +2 -3
  14. c2cgeoportal_admin/static/layertree.css +3 -4
  15. c2cgeoportal_admin/static/navbar.css +36 -35
  16. c2cgeoportal_admin/static/theme.css +16 -9
  17. c2cgeoportal_admin/subscribers.py +3 -3
  18. c2cgeoportal_admin/templates/404.jinja2 +18 -2
  19. c2cgeoportal_admin/templates/layertree.jinja2 +31 -9
  20. c2cgeoportal_admin/templates/navigation_navbar.jinja2 +33 -0
  21. c2cgeoportal_admin/templates/ogcserver_synchronize.jinja2 +12 -0
  22. c2cgeoportal_admin/templates/widgets/functionality_fields.pt +51 -0
  23. c2cgeoportal_admin/templates/widgets/metadata.pt +7 -1
  24. c2cgeoportal_admin/views/__init__.py +29 -0
  25. c2cgeoportal_admin/views/dimension_layers.py +7 -6
  26. c2cgeoportal_admin/views/functionalities.py +33 -6
  27. c2cgeoportal_admin/views/home.py +5 -5
  28. c2cgeoportal_admin/views/interfaces.py +7 -8
  29. c2cgeoportal_admin/views/layer_groups.py +9 -11
  30. c2cgeoportal_admin/views/layers.py +8 -7
  31. c2cgeoportal_admin/views/layers_vectortiles.py +30 -10
  32. c2cgeoportal_admin/views/layers_wms.py +41 -35
  33. c2cgeoportal_admin/views/layers_wmts.py +41 -35
  34. c2cgeoportal_admin/views/layertree.py +36 -28
  35. c2cgeoportal_admin/views/logged_views.py +80 -0
  36. c2cgeoportal_admin/views/logs.py +90 -0
  37. c2cgeoportal_admin/views/oauth2_clients.py +30 -22
  38. c2cgeoportal_admin/views/ogc_servers.py +119 -37
  39. c2cgeoportal_admin/views/restriction_areas.py +13 -11
  40. c2cgeoportal_admin/views/roles.py +16 -12
  41. c2cgeoportal_admin/views/themes.py +15 -14
  42. c2cgeoportal_admin/views/themes_ordering.py +13 -8
  43. c2cgeoportal_admin/views/treeitems.py +14 -12
  44. c2cgeoportal_admin/views/users.py +12 -7
  45. c2cgeoportal_admin/widgets.py +17 -14
  46. {c2cgeoportal_admin-2.6.0.dist-info → c2cgeoportal_admin-2.8.1.180.dist-info}/METADATA +17 -8
  47. c2cgeoportal_admin-2.8.1.180.dist-info/RECORD +95 -0
  48. {c2cgeoportal_admin-2.6.0.dist-info → c2cgeoportal_admin-2.8.1.180.dist-info}/WHEEL +1 -1
  49. c2cgeoportal_admin-2.8.1.180.dist-info/entry_points.txt +6 -0
  50. tests/__init__.py +11 -12
  51. tests/conftest.py +2 -1
  52. tests/test_edit_url.py +11 -14
  53. tests/test_functionalities.py +52 -14
  54. tests/test_home.py +0 -1
  55. tests/test_interface.py +34 -11
  56. tests/test_layer_groups.py +57 -27
  57. tests/test_layers_vectortiles.py +43 -20
  58. tests/test_layers_wms.py +67 -45
  59. tests/test_layers_wmts.py +47 -26
  60. tests/test_layertree.py +99 -16
  61. tests/test_left_menu.py +0 -1
  62. tests/test_lingua_extractor_config.py +64 -0
  63. tests/test_logs.py +103 -0
  64. tests/test_main.py +3 -1
  65. tests/test_metadatas.py +34 -21
  66. tests/test_oauth2_clients.py +37 -9
  67. tests/test_ogc_servers.py +84 -35
  68. tests/test_restriction_areas.py +38 -15
  69. tests/test_role.py +68 -41
  70. tests/test_themes.py +71 -37
  71. tests/test_themes_ordering.py +1 -2
  72. tests/test_treegroup.py +2 -2
  73. tests/test_user.py +48 -17
  74. tests/themes_ordering.py +1 -2
  75. c2cgeoportal_admin/templates/navigation_vertical.jinja2 +0 -33
  76. c2cgeoportal_admin-2.6.0.dist-info/RECORD +0 -89
  77. c2cgeoportal_admin-2.6.0.dist-info/entry_points.txt +0 -3
  78. {c2cgeoportal_admin-2.6.0.dist-info → c2cgeoportal_admin-2.8.1.180.dist-info}/top_level.txt +0 -0
tests/test_user.py CHANGED
@@ -20,13 +20,13 @@ def users_test_data(dbsession, transact):
20
20
 
21
21
  roles = []
22
22
  for i in range(0, 4):
23
- roles.append(Role("secretary_{}".format(i)))
23
+ roles.append(Role(f"secretary_{i}"))
24
24
  dbsession.add(roles[i])
25
25
  users = []
26
26
  for i in range(0, 23):
27
27
  user = User(
28
- "babar_{}".format(i),
29
- email="mail{}@valid.net".format(i),
28
+ f"babar_{i}",
29
+ email=f"mail{i}@valid.net",
30
30
  settings_role=roles[i % 4],
31
31
  roles=[roles[i % 4]],
32
32
  )
@@ -48,7 +48,6 @@ EXPECTED_WELCOME_MAIL = (
48
48
 
49
49
  @pytest.mark.usefixtures("users_test_data", "test_app")
50
50
  class TestUser(AbstractViewsTests):
51
-
52
51
  _prefix = "/admin/users"
53
52
 
54
53
  def test_index_rendering(self, test_app):
@@ -89,11 +88,14 @@ class TestUser(AbstractViewsTests):
89
88
  ]
90
89
  self.check_grid_headers(resp, expected, new="Nouveau")
91
90
 
92
- def test_view_edit(self, test_app, users_test_data):
91
+ def test_view_edit(self, test_app, users_test_data, dbsession):
92
+ from c2cgeoportal_commons.models.main import LogAction
93
+ from c2cgeoportal_commons.models.static import Log
94
+
93
95
  user = users_test_data["users"][9]
94
96
  roles = users_test_data["roles"]
95
97
 
96
- resp = test_app.get("/admin/users/{}".format(user.id), status=200)
98
+ resp = test_app.get(f"/admin/users/{user.id}", status=200)
97
99
 
98
100
  assert resp.form["username"].value == user.username
99
101
  assert resp.form["email"].value == user.email
@@ -120,17 +122,34 @@ class TestUser(AbstractViewsTests):
120
122
  assert value == getattr(user, key)
121
123
  else:
122
124
  assert str(value or "") == str(getattr(user, key) or "")
123
- assert set([roles[2].id, roles[3].id]) == set([role.id for role in user.roles])
125
+ assert {roles[2].id, roles[3].id} == {role.id for role in user.roles}
126
+
127
+ log = dbsession.query(Log).one()
128
+ assert log.date != None
129
+ assert log.action == LogAction.UPDATE
130
+ assert log.element_type == "user"
131
+ assert log.element_id == user.id
132
+ assert log.element_name == user.username
133
+ assert log.username == "test_user"
124
134
 
125
135
  def test_delete(self, test_app, users_test_data, dbsession):
126
- from c2cgeoportal_commons.models.static import User, user_role
136
+ from c2cgeoportal_commons.models.main import LogAction
137
+ from c2cgeoportal_commons.models.static import Log, User, user_role
127
138
 
128
139
  user = users_test_data["users"][9]
129
140
  deleted_id = user.id
130
- test_app.delete("/admin/users/{}".format(deleted_id), status=200)
141
+ test_app.delete(f"/admin/users/{deleted_id}", status=200)
131
142
  assert dbsession.query(User).get(deleted_id) is None
132
143
  assert dbsession.query(user_role).filter(user_role.c.user_id == user.id).count() == 0
133
144
 
145
+ log = dbsession.query(Log).one()
146
+ assert log.date != None
147
+ assert log.action == LogAction.DELETE
148
+ assert log.element_type == "user"
149
+ assert log.element_id == user.id
150
+ assert log.element_name == user.username
151
+ assert log.username == "test_user"
152
+
134
153
  @patch("c2cgeoportal_commons.lib.email_.smtplib.SMTP")
135
154
  @patch("c2cgeoportal_admin.views.users.pwgenerator.generate")
136
155
  def test_submit_update(self, pw_gen_mock, smtp_mock, dbsession, test_app, users_test_data):
@@ -138,7 +157,7 @@ class TestUser(AbstractViewsTests):
138
157
  roles = users_test_data["roles"]
139
158
 
140
159
  resp = test_app.post(
141
- "/admin/users/{}".format(user.id),
160
+ f"/admin/users/{user.id}",
142
161
  (
143
162
  ("__formid__", "deform"),
144
163
  ("_charset_", "UTF-8"),
@@ -155,13 +174,13 @@ class TestUser(AbstractViewsTests):
155
174
  ),
156
175
  status=302,
157
176
  )
158
- assert resp.location == "http://localhost/admin/users/{}?msg_col=submit_ok".format(user.id)
177
+ assert resp.location == f"http://localhost/admin/users/{user.id}?msg_col=submit_ok"
159
178
 
160
179
  dbsession.expire(user)
161
180
  assert user.username == "new_name_withéàô"
162
181
  assert user.email == "new_mail@valid.net"
163
182
  assert user.settings_role.name == "secretary_2"
164
- assert set(r.id for r in user.roles) == set(roles[i].id for i in [0, 3])
183
+ assert {r.id for r in user.roles} == {roles[i].id for i in [0, 3]}
165
184
  assert user.validate_password("pré$ident")
166
185
 
167
186
  assert not pw_gen_mock.called, "method should not have been called"
@@ -172,7 +191,7 @@ class TestUser(AbstractViewsTests):
172
191
  roles = users_test_data["roles"]
173
192
 
174
193
  resp = test_app.post(
175
- "/admin/users/{}".format(user.id),
194
+ f"/admin/users/{user.id}",
176
195
  {
177
196
  "__formid__": "deform",
178
197
  "_charset_": "UTF-8",
@@ -199,7 +218,7 @@ class TestUser(AbstractViewsTests):
199
218
  user = users_test_data["users"][7]
200
219
  roles = users_test_data["roles"]
201
220
 
202
- resp = test_app.get("/admin/users/{}/duplicate".format(user.id), status=200)
221
+ resp = test_app.get(f"/admin/users/{user.id}/duplicate", status=200)
203
222
  form = resp.form
204
223
 
205
224
  assert "" == form["id"].value
@@ -219,7 +238,7 @@ class TestUser(AbstractViewsTests):
219
238
  ).group(1)
220
239
  assert user.id != new_user.id
221
240
  assert user.settings_role_id == new_user.settings_role_id
222
- assert set([role.id for role in user.roles]) == set([role.id for role in new_user.roles])
241
+ assert {role.id for role in user.roles} == {role.id for role in new_user.roles}
223
242
  assert not new_user.is_password_changed
224
243
  assert not new_user.validate_password("pré$ident")
225
244
 
@@ -233,10 +252,12 @@ class TestUser(AbstractViewsTests):
233
252
  @patch("c2cgeoportal_admin.views.users.pwgenerator.generate")
234
253
  @pytest.mark.usefixtures("test_app")
235
254
  def test_submit_new(self, pw_gen_mock, smtp_mock, dbsession, test_app, users_test_data):
255
+ from c2cgeoportal_commons.models.main import LogAction
256
+ from c2cgeoportal_commons.models.static import Log, User
257
+
236
258
  sender_mock = MagicMock()
237
259
  smtp_mock.return_value = sender_mock
238
260
  pw_gen_mock.return_value = "basile"
239
- from c2cgeoportal_commons.models.static import User
240
261
 
241
262
  roles = users_test_data["roles"]
242
263
 
@@ -275,6 +296,14 @@ class TestUser(AbstractViewsTests):
275
296
  ).decode("utf8")
276
297
  assert "valid@email.net" == parts[0].items()[3][1]
277
298
 
299
+ log = dbsession.query(Log).one()
300
+ assert log.date != None
301
+ assert log.action == LogAction.INSERT
302
+ assert log.element_type == "user"
303
+ assert log.element_id == user.id
304
+ assert log.element_name == user.username
305
+ assert log.username == "test_user"
306
+
278
307
  def test_invalid_email(self, test_app):
279
308
  resp = test_app.post(
280
309
  "/admin/users/new",
@@ -304,7 +333,9 @@ class TestUser(AbstractViewsTests):
304
333
  assert info.status_int == 500, "Expected 500 status when db error"
305
334
 
306
335
  def test_grid_settings_role_none(self, dbsession, test_app):
307
- """Grid view must work even if a user's settings_role is None"""
336
+ """
337
+ Grid view must work even if a user's settings_role is None.
338
+ """
308
339
  from c2cgeoportal_commons.models.static import User
309
340
 
310
341
  dbsession.add(User("test", email="test@valid.net"))
tests/themes_ordering.py CHANGED
@@ -14,7 +14,7 @@ def themes_ordering_test_data(dbsession, transact):
14
14
 
15
15
  themes = []
16
16
  for i in range(0, 25):
17
- theme = Theme(name="theme_{}".format(i), ordering=100)
17
+ theme = Theme(name=f"theme_{i}", ordering=100)
18
18
  dbsession.add(theme)
19
19
  themes.append(theme)
20
20
 
@@ -25,7 +25,6 @@ def themes_ordering_test_data(dbsession, transact):
25
25
 
26
26
  @pytest.mark.usefixtures("themes_ordering_test_data", "test_app")
27
27
  class TestThemesOrdering(TestTreeGroup):
28
-
29
28
  _prefix = "/admin/layertree/ordering"
30
29
 
31
30
  def test_edit(self, test_app, themes_ordering_test_data):
@@ -1,33 +0,0 @@
1
- {#
2
- # The MIT License (MIT)
3
- #
4
- # Copyright (c) Camptocamp SA
5
- #
6
- # Permission is hereby granted, free of charge, to any person obtaining a copy of
7
- # this software and associated documentation files (the "Software"), to deal in
8
- # the Software without restriction, including without limitation the rights to
9
- # use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
10
- # the Software, and to permit persons to whom the Software is furnished to do so,
11
- # subject to the following conditions:
12
- #
13
- # The above copyright notice and this permission notice shall be included in all
14
- # copies or substantial portions of the Software.
15
- #
16
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
18
- # FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
19
- # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
20
- # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21
- # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
- #}
23
-
24
- <ul id="main-menu" class="nav nav-pills nav-stacked">
25
- <li role="presentation" class="{{'active' if request.matched_route.name == 'layertree' else ''}}">
26
- <a href="{{request.route_url('layertree')}}">{{_("Layer tree")}}</a>
27
- </li>
28
- {% for table in tables %}
29
- <li role="presentation" class="{{'active' if request.matchdict and request.matchdict.get('table') == table['key'] else ''}}">
30
- <a href="{{request.route_url('c2cgeoform_index', table=table['key'])}}">{{table['plural']}}</a>
31
- </li>
32
- {% endfor %}
33
- </ul>
@@ -1,89 +0,0 @@
1
- c2cgeoportal_admin/__init__.py,sha256=8rMRUDG1AT8jV6PgIE8T1AZF0-3yt0ffd7SuKRl8_FM,4677
2
- c2cgeoportal_admin/routes.py,sha256=wCZstX9oqUQDN9ztnitCgaM5Q38q9CYpOnSgVE_5nHI,4592
3
- c2cgeoportal_admin/subscribers.py,sha256=NKvpObGpgVqmTTU7q-A_EsPMEaA6eyKfa6kezlR11H4,2362
4
- c2cgeoportal_admin/widgets.py,sha256=oi88Ot2swpnlLOFpdQ014KBrkaynq_nRbqtm7r7xJWA,6043
5
- c2cgeoportal_admin/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- c2cgeoportal_admin/lib/ogcserver_synchronizer.py,sha256=KBJPQCSt8b67_u2rhRGr8AsbfcxaCTaRaCkWKPW5ufg,10962
7
- c2cgeoportal_admin/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
- c2cgeoportal_admin/schemas/dimensions.py,sha256=U9-JvFZhCbrQp7Y0WaghJF6tBvXPoSbPBbHIRjCd6hM,2070
9
- c2cgeoportal_admin/schemas/functionalities.py,sha256=K8O5Fkave5XiT2tGwi8emLzOPRUdZhSvachiZ93c3Js,2476
10
- c2cgeoportal_admin/schemas/interfaces.py,sha256=r-EaDPMrrGoJopzqqLqZbYU1uVU4ezwMvoyt-FnBAm0,2277
11
- c2cgeoportal_admin/schemas/metadata.py,sha256=ihKGWiaT5ZT98sqTKySitlDWXYEUEkfwpFt_Xcwf8lE,6537
12
- c2cgeoportal_admin/schemas/restriction_areas.py,sha256=SX5KBXTg8w-JFscGZrfiiJRJmJ6eIzONnhInBF6yHcc,2343
13
- c2cgeoportal_admin/schemas/roles.py,sha256=Ye_b5pyB5-xtPMO1IYO64JuLmr5EKHb2BjhFbS6fJaE,2253
14
- c2cgeoportal_admin/schemas/treegroup.py,sha256=x9zB3JW86tt2tXNRlqk4Ac811uTkMdhbGvA82vHVxww,6274
15
- c2cgeoportal_admin/schemas/treeitem.py,sha256=P0qZZrxbAPo878p36-yyQ0k_slxuml2ij8Ev9GeWUJE,2094
16
- c2cgeoportal_admin/static/layertree.css,sha256=QwAOIswiqDx0u6Nnu1SD2L9Mcdj58hM6uQy-KxnLXCk,3178
17
- c2cgeoportal_admin/static/navbar.css,sha256=ibw_qIqf2KtBy1u48t4v1qFJcBsTBlUX1582nEjo3Sw,2383
18
- c2cgeoportal_admin/static/theme.css,sha256=GSAn136wI5FslMJf3N9D3OA2e-85GmlHmWjlxQ_UiKo,1888
19
- c2cgeoportal_admin/templates/404.jinja2,sha256=F05OZUzJljcieoCFMP7Oz1F6Jb-VZ06hTOSc9mrb87g,1420
20
- c2cgeoportal_admin/templates/edit.jinja2,sha256=rkBQiz0JZdL7VDq8XrhRLTv6JaiFt_QB8CwP3NMHWQY,1302
21
- c2cgeoportal_admin/templates/home.jinja2,sha256=WDQwmBGMZxsiOLw9YeYPLuca_mjjntjrTh529euzd1o,1516
22
- c2cgeoportal_admin/templates/index.jinja2,sha256=HPgilbqh5dv-yc_T_bc1hV2DEtV2wD617_aAERC2VSk,2005
23
- c2cgeoportal_admin/templates/layertree.jinja2,sha256=WE1Omy_zL29JsoOzWMk-Q-1JTkNatBtaFtDIAY_R-3E,9027
24
- c2cgeoportal_admin/templates/layout.jinja2,sha256=KCDwATUYBu-ZXv7ijo0S0PlTmKtU-JxW8gMhvPA_kAE,4105
25
- c2cgeoportal_admin/templates/navigation_navbar.jinja2,sha256=7H2QbvQqyUB76dicBR9wCQKdoYV8-J0cr4Yg8WXg9M4,3101
26
- c2cgeoportal_admin/templates/navigation_vertical.jinja2,sha256=-sktZjkK3MbtVYNihx2UNmjOAYS1V1ur1NlJcfoZsDk,1660
27
- c2cgeoportal_admin/templates/ogcserver_synchronize.jinja2,sha256=XA28459fEr_REXoWlxa9aUaRbsVSbdr05LuknoeZm08,3567
28
- c2cgeoportal_admin/templates/widgets/child.pt,sha256=JjxI0oVADhS3SoFgg0iN8P4ca1I_UGr7fWRp3wpZXsE,2159
29
- c2cgeoportal_admin/templates/widgets/children.pt,sha256=0TPpatvmZcU2TxbcZMjDz8VQcLGtoHkuDJ-eAGvjXho,6625
30
- c2cgeoportal_admin/templates/widgets/dimension.pt,sha256=1BXmE7s9JpzaJSHAQEtZk0DHB11pQ4FNQPaG_4c8CYo,2627
31
- c2cgeoportal_admin/templates/widgets/dimensions.pt,sha256=LjWjsgdcFYZxpB_30-3NOfvq5KYkKTu49F-P-r9d5Jg,1211
32
- c2cgeoportal_admin/templates/widgets/layer_fields.pt,sha256=RJBYt8ji6YQp9ZaNZJD-caLgy856a6rzlKSMnuZWphw,3223
33
- c2cgeoportal_admin/templates/widgets/layer_group_fields.pt,sha256=xnqIqFjPPan81OqLwKeDnvNtlhEvYss6h2J9txH5neE,2459
34
- c2cgeoportal_admin/templates/widgets/layer_v1_fields.pt,sha256=w-MujUevHWmnOkOTbbvES6alDoL_UO1eiMj8SCxcQEY,3956
35
- c2cgeoportal_admin/templates/widgets/metadata.pt,sha256=YKgOJSnGidbwug5umzhBQ4eHPDbdzNR3DH7M15m3IKg,3538
36
- c2cgeoportal_admin/templates/widgets/metadatas.pt,sha256=ErgAH0DA94MO7gqEJ2iZdQ9LRptP2YKH78yze-jdl2Q,1476
37
- c2cgeoportal_admin/templates/widgets/ogcserver_fields.pt,sha256=x0bDmgrnj9SA6RCVpg3k2lTkkXPkuBFPKMScDgDeyGU,1724
38
- c2cgeoportal_admin/templates/widgets/restriction_area_fields.pt,sha256=pZVE0KcitAF7HXc3ZlniLr0QwSD05TOhlgieLUR1i7Q,1731
39
- c2cgeoportal_admin/templates/widgets/role_fields.pt,sha256=gVd9eRYaqw8fGmZauqEUS_Igmyxaa71qcmdC1KUx5nY,2623
40
- c2cgeoportal_admin/templates/widgets/theme_fields.pt,sha256=68G1Ya8-Dc6pCeP-taQ0ofCIpnY_v0rouazkFhfQflU,3083
41
- c2cgeoportal_admin/templates/widgets/user_fields.pt,sha256=twmajhUYL1xa47Eu-iATKifNPA5lu3SGpqdKajH6gL8,1753
42
- c2cgeoportal_admin/views/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
- c2cgeoportal_admin/views/dimension_layers.py,sha256=brEA1L7RXABKQLoScK5S2tjWn7jm9xRHgzAj3BjmgHw,2465
44
- c2cgeoportal_admin/views/functionalities.py,sha256=SfMoEShBTOFj_20V3JHVDToOMrmHoLWd4K87Yf_TDgM,3144
45
- c2cgeoportal_admin/views/home.py,sha256=_WJgyna095opx_b9PuchjeVEztj3tFWCx5Low3RVK-s,1804
46
- c2cgeoportal_admin/views/interfaces.py,sha256=EEcwNqzk9ZNJ5o7Fcbdf62iMkyjBQSv04y7SQT-XvtA,3468
47
- c2cgeoportal_admin/views/layer_groups.py,sha256=OBM48lbCDfeI772k3ypukGEbhIwzt5hW4REr-Bs78Zw,3826
48
- c2cgeoportal_admin/views/layers.py,sha256=OhEITd5AWEYCztGmrK_PP59CeTOcgRp2AE3g_ghdG6U,2897
49
- c2cgeoportal_admin/views/layers_vectortiles.py,sha256=gOAwB7j2esEKuDvZtNQEVy8SCAfICNvXWMcx61x4qiE,4103
50
- c2cgeoportal_admin/views/layers_wms.py,sha256=V7PHrimLs_l5iS7zhxDFRfhWSRFBsohtWpE_OM7gkPs,7314
51
- c2cgeoportal_admin/views/layers_wmts.py,sha256=xvhxifKtyixmswwSUj8mSWBnWMdFc1Rpmexh0apzEXs,7084
52
- c2cgeoportal_admin/views/layertree.py,sha256=0sxWBWljqCWKM1rEZek1a6K7gRWVIXXfWn-sr5UVqBA,7954
53
- c2cgeoportal_admin/views/oauth2_clients.py,sha256=j6kPtxU7vpeJ8Hx58twCLBV-jkVl3_gsxEx6tOLEkms,3342
54
- c2cgeoportal_admin/views/ogc_servers.py,sha256=zy7dE8DLl811d4hdOFopknD8xhkEKGJwIeOhlUBSlTM,6178
55
- c2cgeoportal_admin/views/restriction_areas.py,sha256=ozR86-lo3DXBSr_CPn9-AxpDhZWscXUvqKsqIHovSKk,5369
56
- c2cgeoportal_admin/views/roles.py,sha256=wSBtpX8CuPhI5L9UHS1rxck8-r3mlFz5oGUiIaPU1EA,5578
57
- c2cgeoportal_admin/views/themes.py,sha256=q7dnR-SzsvnXbH5pHrvpYeF2FuazBLZsmvWTnjxPx88,5502
58
- c2cgeoportal_admin/views/themes_ordering.py,sha256=eRR81U6ocvmnUtwtdBR20ir525g2FSIEDNaC5DAY-NY,5405
59
- c2cgeoportal_admin/views/treeitems.py,sha256=GRGHu1ixeALE2PoLw1xOAHkJbICtS6xozKqn8pSXg6U,3787
60
- c2cgeoportal_admin/views/users.py,sha256=bA4Ym5xmNIBgqNBk2H5bWHhdR4saYN2Ee_k1unzgrlQ,5193
61
- tests/__init__.py,sha256=ro7p4MDwv2b8wIQ3jDKErfrDahzvQBYKlKXhixxzvfI,9599
62
- tests/conftest.py,sha256=ahIRbwn9t6Nmb-4ZE-slO2dOQDQbPX9RYrLOn2qGzGw,2065
63
- tests/test_edit_url.py,sha256=u-0HNUgMu0CVtYbdgixSyqy961Ii2Yh2At07LSObgPI,4654
64
- tests/test_functionalities.py,sha256=ZgGeRP0eNLAxhgfT6Wj3zxtnClKuNqEGGl8oMVs9tZ4,3857
65
- tests/test_home.py,sha256=oA4i-V9jJQQgHD9Gz79mgIEMUCRw3tmIQVqdhM9Q2Fo,426
66
- tests/test_interface.py,sha256=VzMlV6k73V0mKIP8RFcrDe7TS8OOonUXhey_Z5hQC3Q,4768
67
- tests/test_layer_groups.py,sha256=7PWhPegITgdsy7c8blyw3QRAUOXfecKgA2IaVXaxPpg,11441
68
- tests/test_layers_vectortiles.py,sha256=lYd27gKbQBewYmdK128M8c9SbruBupfx0-OpBlMYF3Q,9509
69
- tests/test_layers_wms.py,sha256=5x5i1EUTyCu_LRt9uTkYHPrnQuBozS8xk6_e02qmDjA,18503
70
- tests/test_layers_wmts.py,sha256=UF1xVSjF-ETN8JMRtwvGZwWAfqUk66hZOcJvKlXNvik,11355
71
- tests/test_layertree.py,sha256=5HWTY_R_eSfN3C2JOVv0zA9r6PxlK05MnhPFobLkz_U,8336
72
- tests/test_learn.py,sha256=gQwe-Bim0eihZH0rbBWDn6_rIBxvQD_lyu9MlOljupM,2307
73
- tests/test_left_menu.py,sha256=-K_429ZcW5Hsz317StIRVz8VtU7GDMH7UCTzZDfckUo,920
74
- tests/test_main.py,sha256=r2CibHqXh4MoX7bjwRr1pXPAfhCGK7Jbmfu7XmMm_gQ,354
75
- tests/test_metadatas.py,sha256=fFbOx8wd_e4fZ0XTbt8uDD9Rkrialrj4pWXnCc61Jl8,11637
76
- tests/test_oauth2_clients.py,sha256=-Ib4npWgWzbc8PcufPEEklwsb9DdNMqsV02eEfva2nc,5814
77
- tests/test_ogc_servers.py,sha256=grjAruIQG7PMvsJdu_OQZlk4hrBEWHFJ-R960PL08Go,6150
78
- tests/test_restriction_areas.py,sha256=iVWz_dhQ-jjIoW4ZhZlP9mNVy5vW--wUqMuJ4efuEWA,8026
79
- tests/test_role.py,sha256=absegjdV2cK6l9urH15iOf-dj_KLqglJvyyyfHVpD5U,11730
80
- tests/test_themes.py,sha256=cHbAKuDATv5cR3Y0kqaSfGCzcH9114mv3lwI_9uDmKg,15119
81
- tests/test_themes_ordering.py,sha256=AqJ8HOfL6__QnZIjl7RqsQLbH352iR8pokNshctQOeQ,2260
82
- tests/test_treegroup.py,sha256=CBM77NxjWygcikjgci20R4MEnnwQLpFI9AExM83s118,592
83
- tests/test_user.py,sha256=-m1t50cazeTWDRQtLogFDP2iwJ14cko6bWkovFOpol4,11738
84
- tests/themes_ordering.py,sha256=b6PpQQbbB9RqKKiBl5iF7T3tQGgvJ18LGTJCbP31FVQ,1351
85
- c2cgeoportal_admin-2.6.0.dist-info/METADATA,sha256=iNHLMRs8cbvEDbPmQw9M7LOMaZOmB_OWchUNNQ95kkw,1276
86
- c2cgeoportal_admin-2.6.0.dist-info/WHEEL,sha256=g4nMs7d-Xl9-xC9XovUrsDHGXt-FT0E17Yqo92DEfvY,92
87
- c2cgeoportal_admin-2.6.0.dist-info/entry_points.txt,sha256=CroEMatntjAOxN-0qHPOOjVrtmBg_WxpUcUmvRtUJZA,52
88
- c2cgeoportal_admin-2.6.0.dist-info/top_level.txt,sha256=DgcTJgTvpJUB8HqwYB14PdLBPAOAFk0B8oqnSTFoAU4,25
89
- c2cgeoportal_admin-2.6.0.dist-info/RECORD,,
@@ -1,3 +0,0 @@
1
- [paste.app_factory]
2
- main = c2cgeoportal_admin:main
3
-