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.
- c2cgeoportal_admin/__init__.py +32 -10
- c2cgeoportal_admin/lib/lingua_extractor.py +77 -0
- c2cgeoportal_admin/lib/ogcserver_synchronizer.py +168 -56
- c2cgeoportal_admin/py.typed +0 -0
- c2cgeoportal_admin/routes.py +7 -4
- c2cgeoportal_admin/schemas/dimensions.py +12 -10
- c2cgeoportal_admin/schemas/functionalities.py +62 -21
- c2cgeoportal_admin/schemas/interfaces.py +22 -18
- c2cgeoportal_admin/schemas/metadata.py +100 -47
- c2cgeoportal_admin/schemas/restriction_areas.py +21 -19
- c2cgeoportal_admin/schemas/roles.py +7 -5
- c2cgeoportal_admin/schemas/treegroup.py +38 -17
- c2cgeoportal_admin/schemas/treeitem.py +2 -3
- c2cgeoportal_admin/static/layertree.css +3 -4
- c2cgeoportal_admin/static/navbar.css +36 -35
- c2cgeoportal_admin/static/theme.css +16 -9
- c2cgeoportal_admin/subscribers.py +3 -3
- c2cgeoportal_admin/templates/404.jinja2 +18 -2
- c2cgeoportal_admin/templates/layertree.jinja2 +31 -9
- c2cgeoportal_admin/templates/navigation_navbar.jinja2 +33 -0
- c2cgeoportal_admin/templates/ogcserver_synchronize.jinja2 +12 -0
- c2cgeoportal_admin/templates/widgets/functionality_fields.pt +51 -0
- c2cgeoportal_admin/templates/widgets/metadata.pt +7 -1
- c2cgeoportal_admin/views/__init__.py +29 -0
- c2cgeoportal_admin/views/dimension_layers.py +7 -6
- c2cgeoportal_admin/views/functionalities.py +33 -6
- c2cgeoportal_admin/views/home.py +5 -5
- c2cgeoportal_admin/views/interfaces.py +7 -8
- c2cgeoportal_admin/views/layer_groups.py +9 -11
- c2cgeoportal_admin/views/layers.py +8 -7
- c2cgeoportal_admin/views/layers_vectortiles.py +30 -10
- c2cgeoportal_admin/views/layers_wms.py +41 -35
- c2cgeoportal_admin/views/layers_wmts.py +41 -35
- c2cgeoportal_admin/views/layertree.py +36 -28
- c2cgeoportal_admin/views/logged_views.py +80 -0
- c2cgeoportal_admin/views/logs.py +90 -0
- c2cgeoportal_admin/views/oauth2_clients.py +30 -22
- c2cgeoportal_admin/views/ogc_servers.py +119 -37
- c2cgeoportal_admin/views/restriction_areas.py +13 -11
- c2cgeoportal_admin/views/roles.py +16 -12
- c2cgeoportal_admin/views/themes.py +15 -14
- c2cgeoportal_admin/views/themes_ordering.py +13 -8
- c2cgeoportal_admin/views/treeitems.py +14 -12
- c2cgeoportal_admin/views/users.py +12 -7
- c2cgeoportal_admin/widgets.py +17 -14
- {c2cgeoportal_admin-2.6.0.dist-info → c2cgeoportal_admin-2.8.1.180.dist-info}/METADATA +17 -8
- c2cgeoportal_admin-2.8.1.180.dist-info/RECORD +95 -0
- {c2cgeoportal_admin-2.6.0.dist-info → c2cgeoportal_admin-2.8.1.180.dist-info}/WHEEL +1 -1
- c2cgeoportal_admin-2.8.1.180.dist-info/entry_points.txt +6 -0
- tests/__init__.py +11 -12
- tests/conftest.py +2 -1
- tests/test_edit_url.py +11 -14
- tests/test_functionalities.py +52 -14
- tests/test_home.py +0 -1
- tests/test_interface.py +34 -11
- tests/test_layer_groups.py +57 -27
- tests/test_layers_vectortiles.py +43 -20
- tests/test_layers_wms.py +67 -45
- tests/test_layers_wmts.py +47 -26
- tests/test_layertree.py +99 -16
- tests/test_left_menu.py +0 -1
- tests/test_lingua_extractor_config.py +64 -0
- tests/test_logs.py +103 -0
- tests/test_main.py +3 -1
- tests/test_metadatas.py +34 -21
- tests/test_oauth2_clients.py +37 -9
- tests/test_ogc_servers.py +84 -35
- tests/test_restriction_areas.py +38 -15
- tests/test_role.py +68 -41
- tests/test_themes.py +71 -37
- tests/test_themes_ordering.py +1 -2
- tests/test_treegroup.py +2 -2
- tests/test_user.py +48 -17
- tests/themes_ordering.py +1 -2
- c2cgeoportal_admin/templates/navigation_vertical.jinja2 +0 -33
- c2cgeoportal_admin-2.6.0.dist-info/RECORD +0 -89
- c2cgeoportal_admin-2.6.0.dist-info/entry_points.txt +0 -3
- {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_{}"
|
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_{}"
|
29
|
-
email="mail{}@valid.net"
|
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/{
|
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
|
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.
|
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/{}"
|
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/{
|
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"
|
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
|
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/{
|
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"
|
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
|
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
|
-
"""
|
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_{}"
|
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,,
|
File without changes
|