c2cgeoportal-admin 2.5.0.100__py3-none-any.whl → 2.7.1.83__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.
Potentially problematic release.
This version of c2cgeoportal-admin might be problematic. Click here for more details.
- 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.83.dist-info}/METADATA +16 -11
- c2cgeoportal_admin-2.7.1.83.dist-info/RECORD +92 -0
- {c2cgeoportal_admin-2.5.0.100.dist-info → c2cgeoportal_admin-2.7.1.83.dist-info}/WHEEL +1 -1
- c2cgeoportal_admin-2.7.1.83.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.83.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.83.dist-info}/top_level.txt
RENAMED
|
File without changes
|