c2cgeoportal-admin 2.5.0.100__py3-none-any.whl → 2.7.1.156__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 +19 -12
- c2cgeoportal_admin/lib/__init__.py +0 -0
- c2cgeoportal_admin/lib/lingua_extractor.py +77 -0
- c2cgeoportal_admin/lib/ogcserver_synchronizer.py +409 -0
- c2cgeoportal_admin/py.typed +0 -0
- c2cgeoportal_admin/routes.py +18 -10
- c2cgeoportal_admin/schemas/dimensions.py +13 -11
- c2cgeoportal_admin/schemas/functionalities.py +63 -22
- c2cgeoportal_admin/schemas/interfaces.py +23 -19
- c2cgeoportal_admin/schemas/metadata.py +121 -47
- c2cgeoportal_admin/schemas/restriction_areas.py +22 -20
- c2cgeoportal_admin/schemas/roles.py +8 -6
- c2cgeoportal_admin/schemas/treegroup.py +84 -18
- c2cgeoportal_admin/schemas/treeitem.py +2 -3
- c2cgeoportal_admin/static/layertree.css +26 -4
- c2cgeoportal_admin/static/navbar.css +59 -36
- c2cgeoportal_admin/static/theme.css +48 -11
- c2cgeoportal_admin/subscribers.py +3 -3
- c2cgeoportal_admin/templates/404.jinja2 +23 -0
- c2cgeoportal_admin/templates/edit.jinja2 +23 -0
- c2cgeoportal_admin/templates/home.jinja2 +23 -0
- c2cgeoportal_admin/templates/index.jinja2 +23 -0
- c2cgeoportal_admin/templates/layertree.jinja2 +55 -11
- c2cgeoportal_admin/templates/layout.jinja2 +23 -0
- c2cgeoportal_admin/templates/navigation_navbar.jinja2 +56 -0
- c2cgeoportal_admin/templates/ogcserver_synchronize.jinja2 +90 -0
- c2cgeoportal_admin/templates/widgets/child.pt +35 -3
- c2cgeoportal_admin/templates/widgets/children.pt +121 -92
- c2cgeoportal_admin/templates/widgets/dimension.pt +23 -0
- c2cgeoportal_admin/templates/widgets/dimensions.pt +23 -0
- c2cgeoportal_admin/templates/widgets/functionality_fields.pt +51 -0
- c2cgeoportal_admin/templates/widgets/layer_fields.pt +23 -0
- c2cgeoportal_admin/templates/widgets/layer_group_fields.pt +23 -0
- c2cgeoportal_admin/templates/widgets/layer_v1_fields.pt +23 -0
- c2cgeoportal_admin/templates/widgets/metadata.pt +30 -1
- c2cgeoportal_admin/templates/widgets/metadatas.pt +23 -0
- c2cgeoportal_admin/templates/widgets/ogcserver_fields.pt +23 -0
- c2cgeoportal_admin/templates/widgets/restriction_area_fields.pt +25 -9
- c2cgeoportal_admin/templates/widgets/role_fields.pt +52 -25
- c2cgeoportal_admin/templates/widgets/theme_fields.pt +23 -0
- c2cgeoportal_admin/templates/widgets/user_fields.pt +23 -0
- c2cgeoportal_admin/views/dimension_layers.py +7 -6
- c2cgeoportal_admin/views/functionalities.py +31 -5
- c2cgeoportal_admin/views/home.py +5 -5
- c2cgeoportal_admin/views/interfaces.py +8 -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 +45 -37
- c2cgeoportal_admin/views/layers_wmts.py +39 -33
- c2cgeoportal_admin/views/layertree.py +34 -26
- c2cgeoportal_admin/views/oauth2_clients.py +89 -0
- c2cgeoportal_admin/views/ogc_servers.py +130 -27
- c2cgeoportal_admin/views/restriction_areas.py +50 -8
- c2cgeoportal_admin/views/roles.py +60 -8
- c2cgeoportal_admin/views/themes.py +15 -14
- c2cgeoportal_admin/views/themes_ordering.py +38 -18
- c2cgeoportal_admin/views/treeitems.py +12 -11
- c2cgeoportal_admin/views/users.py +7 -5
- c2cgeoportal_admin/widgets.py +79 -28
- {c2cgeoportal_admin-2.5.0.100.dist-info → c2cgeoportal_admin-2.7.1.156.dist-info}/METADATA +16 -11
- c2cgeoportal_admin-2.7.1.156.dist-info/RECORD +92 -0
- {c2cgeoportal_admin-2.5.0.100.dist-info → c2cgeoportal_admin-2.7.1.156.dist-info}/WHEEL +1 -1
- c2cgeoportal_admin-2.7.1.156.dist-info/entry_points.txt +5 -0
- tests/__init__.py +23 -18
- tests/conftest.py +4 -15
- tests/test_edit_url.py +16 -18
- tests/test_functionalities.py +23 -10
- tests/test_interface.py +8 -8
- tests/test_layer_groups.py +15 -23
- tests/test_layers_vectortiles.py +16 -20
- tests/test_layers_wms.py +37 -75
- tests/test_layers_wmts.py +20 -24
- tests/test_layertree.py +107 -100
- tests/test_learn.py +1 -1
- tests/test_lingua_extractor_config.py +66 -0
- tests/test_main.py +4 -2
- tests/test_metadatas.py +79 -70
- tests/test_oauth2_clients.py +157 -0
- tests/test_ogc_servers.py +51 -7
- tests/test_restriction_areas.py +81 -17
- tests/test_role.py +110 -76
- tests/test_themes.py +44 -37
- tests/test_themes_ordering.py +1 -1
- tests/test_treegroup.py +2 -2
- tests/test_user.py +31 -64
- tests/themes_ordering.py +1 -1
- c2cgeoportal_admin/templates/navigation_vertical.jinja2 +0 -10
- c2cgeoportal_admin-2.5.0.100.dist-info/RECORD +0 -84
- c2cgeoportal_admin-2.5.0.100.dist-info/entry_points.txt +0 -3
- {c2cgeoportal_admin-2.5.0.100.dist-info → c2cgeoportal_admin-2.7.1.156.dist-info}/top_level.txt +0 -0
tests/test_user.py
CHANGED
@@ -4,11 +4,10 @@ import email
|
|
4
4
|
import re
|
5
5
|
from unittest.mock import MagicMock, patch
|
6
6
|
|
7
|
-
from pyramid.testing import DummyRequest
|
8
7
|
import pytest
|
8
|
+
from pyramid.testing import DummyRequest
|
9
9
|
|
10
|
-
from . import AbstractViewsTests
|
11
|
-
from .selenium.page import IndexPage
|
10
|
+
from . import AbstractViewsTests
|
12
11
|
|
13
12
|
|
14
13
|
@pytest.fixture(scope="function")
|
@@ -16,18 +15,18 @@ from .selenium.page import IndexPage
|
|
16
15
|
def users_test_data(dbsession, transact):
|
17
16
|
del transact
|
18
17
|
|
19
|
-
from c2cgeoportal_commons.models.static import User
|
20
18
|
from c2cgeoportal_commons.models.main import Role
|
19
|
+
from c2cgeoportal_commons.models.static import User
|
21
20
|
|
22
21
|
roles = []
|
23
22
|
for i in range(0, 4):
|
24
|
-
roles.append(Role("secretary_{}"
|
23
|
+
roles.append(Role(f"secretary_{i}"))
|
25
24
|
dbsession.add(roles[i])
|
26
25
|
users = []
|
27
26
|
for i in range(0, 23):
|
28
27
|
user = User(
|
29
|
-
"babar_{}"
|
30
|
-
email="mail{}@valid.net"
|
28
|
+
f"babar_{i}",
|
29
|
+
email=f"mail{i}@valid.net",
|
31
30
|
settings_role=roles[i % 4],
|
32
31
|
roles=[roles[i % 4]],
|
33
32
|
)
|
@@ -71,20 +70,30 @@ class TestUser(AbstractViewsTests):
|
|
71
70
|
|
72
71
|
self.check_grid_headers(resp, expected)
|
73
72
|
|
74
|
-
@pytest.mark.skip(reason="
|
73
|
+
@pytest.mark.skip(reason="Translations seems not available in tests")
|
75
74
|
def test_index_rendering_fr(self, test_app):
|
76
75
|
resp = self.get(test_app, locale="fr")
|
77
76
|
|
78
77
|
self.check_left_menu(resp, "Utilisateurs")
|
79
78
|
|
80
|
-
expected = [
|
81
|
-
|
79
|
+
expected = [
|
80
|
+
("actions", "", "false"),
|
81
|
+
("id", "id", "true"),
|
82
|
+
("username", "Nom d'utilisateur"),
|
83
|
+
("email", "Email"),
|
84
|
+
("last_login", "Dernière connection"),
|
85
|
+
("expire_on", "Date d'expiration"),
|
86
|
+
("deactivated", "Désactivé"),
|
87
|
+
("settings_role", "Rôle de configuration"),
|
88
|
+
("roles", "Rôles", "false"),
|
89
|
+
]
|
90
|
+
self.check_grid_headers(resp, expected, new="Nouveau")
|
82
91
|
|
83
92
|
def test_view_edit(self, test_app, users_test_data):
|
84
93
|
user = users_test_data["users"][9]
|
85
94
|
roles = users_test_data["roles"]
|
86
95
|
|
87
|
-
resp = test_app.get("/admin/users/{
|
96
|
+
resp = test_app.get(f"/admin/users/{user.id}", status=200)
|
88
97
|
|
89
98
|
assert resp.form["username"].value == user.username
|
90
99
|
assert resp.form["email"].value == user.email
|
@@ -111,14 +120,14 @@ class TestUser(AbstractViewsTests):
|
|
111
120
|
assert value == getattr(user, key)
|
112
121
|
else:
|
113
122
|
assert str(value or "") == str(getattr(user, key) or "")
|
114
|
-
assert
|
123
|
+
assert {roles[2].id, roles[3].id} == {role.id for role in user.roles}
|
115
124
|
|
116
125
|
def test_delete(self, test_app, users_test_data, dbsession):
|
117
126
|
from c2cgeoportal_commons.models.static import User, user_role
|
118
127
|
|
119
128
|
user = users_test_data["users"][9]
|
120
129
|
deleted_id = user.id
|
121
|
-
test_app.delete("/admin/users/{}"
|
130
|
+
test_app.delete(f"/admin/users/{deleted_id}", status=200)
|
122
131
|
assert dbsession.query(User).get(deleted_id) is None
|
123
132
|
assert dbsession.query(user_role).filter(user_role.c.user_id == user.id).count() == 0
|
124
133
|
|
@@ -129,7 +138,7 @@ class TestUser(AbstractViewsTests):
|
|
129
138
|
roles = users_test_data["roles"]
|
130
139
|
|
131
140
|
resp = test_app.post(
|
132
|
-
"/admin/users/{
|
141
|
+
f"/admin/users/{user.id}",
|
133
142
|
(
|
134
143
|
("__formid__", "deform"),
|
135
144
|
("_charset_", "UTF-8"),
|
@@ -146,13 +155,13 @@ class TestUser(AbstractViewsTests):
|
|
146
155
|
),
|
147
156
|
status=302,
|
148
157
|
)
|
149
|
-
assert resp.location == "http://localhost/admin/users/{}?msg_col=submit_ok"
|
158
|
+
assert resp.location == f"http://localhost/admin/users/{user.id}?msg_col=submit_ok"
|
150
159
|
|
151
160
|
dbsession.expire(user)
|
152
161
|
assert user.username == "new_name_withéàô"
|
153
162
|
assert user.email == "new_mail@valid.net"
|
154
163
|
assert user.settings_role.name == "secretary_2"
|
155
|
-
assert
|
164
|
+
assert {r.id for r in user.roles} == {roles[i].id for i in [0, 3]}
|
156
165
|
assert user.validate_password("pré$ident")
|
157
166
|
|
158
167
|
assert not pw_gen_mock.called, "method should not have been called"
|
@@ -163,7 +172,7 @@ class TestUser(AbstractViewsTests):
|
|
163
172
|
roles = users_test_data["roles"]
|
164
173
|
|
165
174
|
resp = test_app.post(
|
166
|
-
"/admin/users/{
|
175
|
+
f"/admin/users/{user.id}",
|
167
176
|
{
|
168
177
|
"__formid__": "deform",
|
169
178
|
"_charset_": "UTF-8",
|
@@ -190,7 +199,7 @@ class TestUser(AbstractViewsTests):
|
|
190
199
|
user = users_test_data["users"][7]
|
191
200
|
roles = users_test_data["roles"]
|
192
201
|
|
193
|
-
resp = test_app.get("/admin/users/{}/duplicate"
|
202
|
+
resp = test_app.get(f"/admin/users/{user.id}/duplicate", status=200)
|
194
203
|
form = resp.form
|
195
204
|
|
196
205
|
assert "" == form["id"].value
|
@@ -210,7 +219,7 @@ class TestUser(AbstractViewsTests):
|
|
210
219
|
).group(1)
|
211
220
|
assert user.id != new_user.id
|
212
221
|
assert user.settings_role_id == new_user.settings_role_id
|
213
|
-
assert
|
222
|
+
assert {role.id for role in user.roles} == {role.id for role in new_user.roles}
|
214
223
|
assert not new_user.is_password_changed
|
215
224
|
assert not new_user.validate_password("pré$ident")
|
216
225
|
|
@@ -295,52 +304,10 @@ class TestUser(AbstractViewsTests):
|
|
295
304
|
assert info.status_int == 500, "Expected 500 status when db error"
|
296
305
|
|
297
306
|
def test_grid_settings_role_none(self, dbsession, test_app):
|
298
|
-
"""
|
307
|
+
"""
|
308
|
+
Grid view must work even if a user's settings_role is None.
|
309
|
+
"""
|
299
310
|
from c2cgeoportal_commons.models.static import User
|
300
311
|
|
301
312
|
dbsession.add(User("test", email="test@valid.net"))
|
302
313
|
self.check_search(test_app, "test", total=1)
|
303
|
-
|
304
|
-
|
305
|
-
@skip_if_ci
|
306
|
-
@pytest.mark.selenium
|
307
|
-
@pytest.mark.usefixtures("selenium", "selenium_app", "users_test_data")
|
308
|
-
class TestUserSelenium:
|
309
|
-
|
310
|
-
_prefix = "/admin/users"
|
311
|
-
|
312
|
-
def test_index(self, selenium, selenium_app, users_test_data, dbsession):
|
313
|
-
from c2cgeoportal_commons.models.static import User
|
314
|
-
|
315
|
-
selenium.get(selenium_app + self._prefix)
|
316
|
-
|
317
|
-
index_page = IndexPage(selenium)
|
318
|
-
index_page.select_language("en")
|
319
|
-
index_page.check_pagination_info("Showing 1 to 23 of 23 rows", 10)
|
320
|
-
index_page.select_page_size(10)
|
321
|
-
index_page.check_pagination_info("Showing 1 to 10 of 23 rows", 10)
|
322
|
-
|
323
|
-
# delete
|
324
|
-
user = users_test_data["users"][3]
|
325
|
-
deleted_id = user.id
|
326
|
-
index_page.click_delete(deleted_id)
|
327
|
-
index_page.check_pagination_info("Showing 1 to 10 of 22 rows", 10)
|
328
|
-
assert dbsession.query(User).get(deleted_id) is None
|
329
|
-
|
330
|
-
# edit
|
331
|
-
user = users_test_data["users"][4]
|
332
|
-
index_page.find_item_action(user.id, "edit").click()
|
333
|
-
|
334
|
-
elem = selenium.find_element_by_xpath("//input[@name ='username']")
|
335
|
-
elem.clear()
|
336
|
-
elem.send_keys("new_name_éôù")
|
337
|
-
elem = selenium.find_element_by_xpath("//input[@name ='email']")
|
338
|
-
elem.clear()
|
339
|
-
elem.send_keys("new_email@valid.net")
|
340
|
-
elem = selenium.find_element_by_xpath("//button[@name='formsubmit']")
|
341
|
-
elem.click()
|
342
|
-
|
343
|
-
user = dbsession.query(User).filter(User.id == user.id).one()
|
344
|
-
dbsession.expire(user)
|
345
|
-
assert user.username == "new_name_éôù"
|
346
|
-
assert user.email == "new_email@valid.net"
|
tests/themes_ordering.py
CHANGED
@@ -1,10 +0,0 @@
|
|
1
|
-
<ul id="main-menu" class="nav nav-pills nav-stacked">
|
2
|
-
<li role="presentation" class="{{'active' if request.matched_route.name == 'layertree' else ''}}">
|
3
|
-
<a href="{{request.route_url('layertree')}}">{{_("Layer tree")}}</a>
|
4
|
-
</li>
|
5
|
-
{% for table in tables %}
|
6
|
-
<li role="presentation" class="{{'active' if request.matchdict and request.matchdict.get('table') == table['key'] else ''}}">
|
7
|
-
<a href="{{request.route_url('c2cgeoform_index', table=table['key'])}}">{{table['plural']}}</a>
|
8
|
-
</li>
|
9
|
-
{% endfor %}
|
10
|
-
</ul>
|
@@ -1,84 +0,0 @@
|
|
1
|
-
c2cgeoportal_admin/__init__.py,sha256=IsfveDX7hmzIRTY5sTWOk3xeC1gD7DakbwVH_wxq_NI,4677
|
2
|
-
c2cgeoportal_admin/routes.py,sha256=FVOOEopeJJUNRxQA2QLoUFzaJSJ3u67-lLPs19pXBxY,4384
|
3
|
-
c2cgeoportal_admin/subscribers.py,sha256=NKvpObGpgVqmTTU7q-A_EsPMEaA6eyKfa6kezlR11H4,2362
|
4
|
-
c2cgeoportal_admin/widgets.py,sha256=aKI3VWB4MCLo0kfIrhPgkxPTrsRHdozCrGnQBJnAi6o,4276
|
5
|
-
c2cgeoportal_admin/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
6
|
-
c2cgeoportal_admin/schemas/dimensions.py,sha256=NOmXFqfF5-P5aM5OOUqChXbG7HpXjrNd_SEq_JpRuKc,2070
|
7
|
-
c2cgeoportal_admin/schemas/functionalities.py,sha256=naxGaZlyI7Oqsl8qSC9-VXJ9xa6sx0Y0NVxoyWqhoKE,2476
|
8
|
-
c2cgeoportal_admin/schemas/interfaces.py,sha256=CesXI7TInAYYkhpPRCXnEGhiVIMfbuXOOBDHyZEiAqk,2277
|
9
|
-
c2cgeoportal_admin/schemas/metadata.py,sha256=XV8N4P79Kf7wDrxpqdPGMut5HsbLHiSFNjQD6zp2h2g,5925
|
10
|
-
c2cgeoportal_admin/schemas/restriction_areas.py,sha256=mumAc30YV8e6jIRlCOJ7QX99MIhXoRda9ulTGoz-Rxc,2343
|
11
|
-
c2cgeoportal_admin/schemas/roles.py,sha256=suFYgwYCSlQ1qIWghin_Z-HXDShGy9xajjTcQRc3IEY,2253
|
12
|
-
c2cgeoportal_admin/schemas/treegroup.py,sha256=AJ_FjeiQCwsd0hUxmUDRUqg_jnM_J0DPDOyvTOj7km0,4991
|
13
|
-
c2cgeoportal_admin/schemas/treeitem.py,sha256=P0qZZrxbAPo878p36-yyQ0k_slxuml2ij8Ev9GeWUJE,2094
|
14
|
-
c2cgeoportal_admin/static/layertree.css,sha256=uBXaWDb4tJKLfZU45-_SY0RCiQWYZGt7z-93kPiJj2U,2038
|
15
|
-
c2cgeoportal_admin/static/navbar.css,sha256=BL4YfSRoVFXBF2AZHKCfQ1AyW5IeKrvPYKA3yxl5xiA,1245
|
16
|
-
c2cgeoportal_admin/static/theme.css,sha256=NfJVztoQJ1ycdR_osMoZpC958oQAn5hMJOyei59hz3E,645
|
17
|
-
c2cgeoportal_admin/templates/404.jinja2,sha256=m0V-yCVQjg_yHCMiXuk3vvRBqy7X7fLT8B95IaMapMw,281
|
18
|
-
c2cgeoportal_admin/templates/edit.jinja2,sha256=CJgEKPgTuXBEutu1ry45-5aQ68h_0fXhfjt2GtnRkoA,163
|
19
|
-
c2cgeoportal_admin/templates/home.jinja2,sha256=Wm3rl2Ap8a5FBPsPAXxSNV5LHLqyF232uNmjFhfNIac,377
|
20
|
-
c2cgeoportal_admin/templates/index.jinja2,sha256=-lsyqoKzcwstQLhkqQqyyiMOf6kwcJxTn05_BTOMXaA,866
|
21
|
-
c2cgeoportal_admin/templates/layertree.jinja2,sha256=PVjDbNIBy7bdwnjsxCPk-5Ed2T-_eBChNN0WfdStgrM,7952
|
22
|
-
c2cgeoportal_admin/templates/layout.jinja2,sha256=DeWDkY22JEIvTdaO2df8HHB95tl8irCTzjxtgy-1C6E,2966
|
23
|
-
c2cgeoportal_admin/templates/navigation_navbar.jinja2,sha256=MchXa1LGlBFrPkBwCO5qTCDhWzstZd7B75GUO8eXoEI,1962
|
24
|
-
c2cgeoportal_admin/templates/navigation_vertical.jinja2,sha256=8uqlbGcIIWEPrdv8Ej_rbO6h2tFVhER2ILzQOGrl6mk,521
|
25
|
-
c2cgeoportal_admin/templates/widgets/child.pt,sha256=lRyyakHSAb9uHn8xEJEvUSunVZ3YRv3W4-1lIZ6MzeQ,619
|
26
|
-
c2cgeoportal_admin/templates/widgets/children.pt,sha256=a3RC86vcDIlGw1kc_RjCEUiTRY6Z4aFN09m2kGzK6Ps,5102
|
27
|
-
c2cgeoportal_admin/templates/widgets/dimension.pt,sha256=Yhr5nGu2aSASoWISD-ElMc32997Y2vM8hgVVZy_VeKw,1504
|
28
|
-
c2cgeoportal_admin/templates/widgets/dimensions.pt,sha256=TA1lz5OUKIXRzq7yWcN36dJyqtdmY0vqNZpJXo13LZQ,88
|
29
|
-
c2cgeoportal_admin/templates/widgets/layer_fields.pt,sha256=uB2zLbuhXVhU3ywB10mWkjCNd_eKeEa2Q3fgR73BFG4,2100
|
30
|
-
c2cgeoportal_admin/templates/widgets/layer_group_fields.pt,sha256=NeZUF19bjqZia0heFIQ_YxTxdfxGLq54MNt7-U7r3ik,1336
|
31
|
-
c2cgeoportal_admin/templates/widgets/layer_v1_fields.pt,sha256=mV5ml6bRKYeZkNMp9BTBiJWv2R48SZVKixhCZXqNK_k,2833
|
32
|
-
c2cgeoportal_admin/templates/widgets/metadata.pt,sha256=OFVXCIW9esL2KM0iR29nb5mg5C8dFGep8uOUfQhTpT8,2415
|
33
|
-
c2cgeoportal_admin/templates/widgets/metadatas.pt,sha256=6PQarLFl-KQIezWs4S89W9TKizeWaRP5BalLpaLqhi4,353
|
34
|
-
c2cgeoportal_admin/templates/widgets/ogcserver_fields.pt,sha256=eN0Jxg0y7M0q_Z0Wug7blzhl0V62P43ZUU6qssSjPHk,601
|
35
|
-
c2cgeoportal_admin/templates/widgets/restriction_area_fields.pt,sha256=wWjSdgZpfv9pD1IO1PpnEaOXjEW4Ya_V1078bb2Enj4,807
|
36
|
-
c2cgeoportal_admin/templates/widgets/role_fields.pt,sha256=6CmfKzilScsVde-zme5Y-jzwUfNs46aDJ3fxfn5W2_g,1285
|
37
|
-
c2cgeoportal_admin/templates/widgets/theme_fields.pt,sha256=AkJlQ3BUM7h1MbDRyU2RNpabZ9CzL84m31omyMhO6Vc,1960
|
38
|
-
c2cgeoportal_admin/templates/widgets/user_fields.pt,sha256=G-DMCwQVC-53ly87-B4Am4lqCTtX8av9zyzDtK6GDhM,630
|
39
|
-
c2cgeoportal_admin/views/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
40
|
-
c2cgeoportal_admin/views/dimension_layers.py,sha256=brEA1L7RXABKQLoScK5S2tjWn7jm9xRHgzAj3BjmgHw,2465
|
41
|
-
c2cgeoportal_admin/views/functionalities.py,sha256=SfMoEShBTOFj_20V3JHVDToOMrmHoLWd4K87Yf_TDgM,3144
|
42
|
-
c2cgeoportal_admin/views/home.py,sha256=_WJgyna095opx_b9PuchjeVEztj3tFWCx5Low3RVK-s,1804
|
43
|
-
c2cgeoportal_admin/views/interfaces.py,sha256=7LzocSnJ1JeSroVc-UBdJdDnOF1mZR4zGgnuOvsoutA,3438
|
44
|
-
c2cgeoportal_admin/views/layer_groups.py,sha256=OBM48lbCDfeI772k3ypukGEbhIwzt5hW4REr-Bs78Zw,3826
|
45
|
-
c2cgeoportal_admin/views/layers.py,sha256=OhEITd5AWEYCztGmrK_PP59CeTOcgRp2AE3g_ghdG6U,2897
|
46
|
-
c2cgeoportal_admin/views/layers_vectortiles.py,sha256=gOAwB7j2esEKuDvZtNQEVy8SCAfICNvXWMcx61x4qiE,4103
|
47
|
-
c2cgeoportal_admin/views/layers_wms.py,sha256=7uIAvQuLSRKC5Cbq4aq029W6cRHj0WIABUIpyw2_fjs,7178
|
48
|
-
c2cgeoportal_admin/views/layers_wmts.py,sha256=tqNCG_X6FqHnxUh4W3FI2Ls9uWCtdjneSF7nN1fsu-I,7055
|
49
|
-
c2cgeoportal_admin/views/layertree.py,sha256=OtviGiVJyHosC77WQ7F6Bbu5DwHeV0LVL_udv7gnrMM,7925
|
50
|
-
c2cgeoportal_admin/views/ogc_servers.py,sha256=ABoPPdhxN_sThc_98eRXCluNOYwCG-TdNBiSgdOPfLo,3512
|
51
|
-
c2cgeoportal_admin/views/restriction_areas.py,sha256=hUhr8pk3o6ksjNcDN_t4_PV00dlWcLK-P4hPWGHrjMc,4092
|
52
|
-
c2cgeoportal_admin/views/roles.py,sha256=1ki172UOlSM7eYuB8adah8gAfnZ85_Pr_-uLR8RBjks,4116
|
53
|
-
c2cgeoportal_admin/views/themes.py,sha256=q7dnR-SzsvnXbH5pHrvpYeF2FuazBLZsmvWTnjxPx88,5502
|
54
|
-
c2cgeoportal_admin/views/themes_ordering.py,sha256=x9I9tDIuiNkub96AWR12lV91ECOHxsdUdBAI4-dThUs,4945
|
55
|
-
c2cgeoportal_admin/views/treeitems.py,sha256=GRGHu1ixeALE2PoLw1xOAHkJbICtS6xozKqn8pSXg6U,3787
|
56
|
-
c2cgeoportal_admin/views/users.py,sha256=bA4Ym5xmNIBgqNBk2H5bWHhdR4saYN2Ee_k1unzgrlQ,5193
|
57
|
-
tests/__init__.py,sha256=iZt9bPZHkTFojfQqeFCqVrBMkYjewdVbcKQ79vppf-s,9311
|
58
|
-
tests/conftest.py,sha256=ip0JDR3ujOGyKzHZ8ZaLWU1an7GYnuysjGeaeFW2qlw,2380
|
59
|
-
tests/test_edit_url.py,sha256=tufOWTFZoOABRpr_H-aWpq6o1QPdWYgfvfMkdcgOs6s,4654
|
60
|
-
tests/test_functionalities.py,sha256=ZgGeRP0eNLAxhgfT6Wj3zxtnClKuNqEGGl8oMVs9tZ4,3857
|
61
|
-
tests/test_home.py,sha256=oA4i-V9jJQQgHD9Gz79mgIEMUCRw3tmIQVqdhM9Q2Fo,426
|
62
|
-
tests/test_interface.py,sha256=RP0nkQvbSR8qYy3OtTB-pmjupJ-tD6hQcLfcYjaGHn4,4768
|
63
|
-
tests/test_layer_groups.py,sha256=n4jaqSIk_3YiFsVt5569BaeUQMCwtPPxuUivrqPu5wA,11609
|
64
|
-
tests/test_layers_vectortiles.py,sha256=nY2inouZBfvQrsGsjpYNag1fPbtSPVKpvBWPY8I6cIg,9590
|
65
|
-
tests/test_layers_wms.py,sha256=QGYptpJm83d6KQCva7XSfhOkXz5JozmzbvN_sFxcs1c,19490
|
66
|
-
tests/test_layers_wmts.py,sha256=NhVoNCkixwQSjh9KOoAQV7i2T9Uu_mWJQ4CWUzINyxI,11358
|
67
|
-
tests/test_layertree.py,sha256=5qOF32GalHLxHb-wH_FjGVUjgSlAAHtZ06r70JhzJk0,11502
|
68
|
-
tests/test_learn.py,sha256=tXOGW_jktJeb_QpXXlXlGzi0WD3GRKkA71wS1q8VQDI,2307
|
69
|
-
tests/test_left_menu.py,sha256=-K_429ZcW5Hsz317StIRVz8VtU7GDMH7UCTzZDfckUo,920
|
70
|
-
tests/test_main.py,sha256=sLkSzalgvkgLold7fFLKJYnYsjSW5n8bxYFzYoXa3JY,354
|
71
|
-
tests/test_metadatas.py,sha256=3oBF7KTI4I59tPb9zW_eujHSdep25J_ARM9JqgLNAOg,11977
|
72
|
-
tests/test_ogc_servers.py,sha256=_UyZOCQLcM84DvVwu2m9l1rdIS47ZwWHswAWTJVYk10,4661
|
73
|
-
tests/test_restriction_areas.py,sha256=pEVs8E2AG5GFDkb0Mg4FZVSvnR5b0nrTRcTOWT_TNJs,5583
|
74
|
-
tests/test_role.py,sha256=wdY38WySSxkJ3o_nKtTw3CIRlKOYZRJg70LB8lSga44,10350
|
75
|
-
tests/test_themes.py,sha256=770fiV-5Jwz9aYjmfTntnlZ2ca4q5_n_9KL9otFTlj4,15119
|
76
|
-
tests/test_themes_ordering.py,sha256=AqJ8HOfL6__QnZIjl7RqsQLbH352iR8pokNshctQOeQ,2260
|
77
|
-
tests/test_treegroup.py,sha256=CBM77NxjWygcikjgci20R4MEnnwQLpFI9AExM83s118,592
|
78
|
-
tests/test_user.py,sha256=UGbT96AY1OirMy3w4fCoCEx1uoOD9Nf69oqxCogswT4,13040
|
79
|
-
tests/themes_ordering.py,sha256=b6PpQQbbB9RqKKiBl5iF7T3tQGgvJ18LGTJCbP31FVQ,1351
|
80
|
-
c2cgeoportal_admin-2.5.0.100.dist-info/METADATA,sha256=_R5eERE72mN6yhKb8fnT8fLzWKdqDcWtCMF0o3TJWr4,1178
|
81
|
-
c2cgeoportal_admin-2.5.0.100.dist-info/WHEEL,sha256=g4nMs7d-Xl9-xC9XovUrsDHGXt-FT0E17Yqo92DEfvY,92
|
82
|
-
c2cgeoportal_admin-2.5.0.100.dist-info/entry_points.txt,sha256=CroEMatntjAOxN-0qHPOOjVrtmBg_WxpUcUmvRtUJZA,52
|
83
|
-
c2cgeoportal_admin-2.5.0.100.dist-info/top_level.txt,sha256=DgcTJgTvpJUB8HqwYB14PdLBPAOAFk0B8oqnSTFoAU4,25
|
84
|
-
c2cgeoportal_admin-2.5.0.100.dist-info/RECORD,,
|
{c2cgeoportal_admin-2.5.0.100.dist-info → c2cgeoportal_admin-2.7.1.156.dist-info}/top_level.txt
RENAMED
File without changes
|