wagtail 6.0.2__py3-none-any.whl → 6.0.3__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.
- wagtail/__init__.py +1 -1
- wagtail/admin/static/wagtailadmin/js/core.js +1 -1
- wagtail/admin/tests/pages/test_page_search.py +39 -0
- wagtail/admin/tests/viewsets/test_model_viewset.py +35 -10
- wagtail/admin/views/generic/models.py +27 -1
- wagtail/admin/views/pages/search.py +1 -0
- wagtail/contrib/settings/tests/generic/test_admin.py +88 -1
- wagtail/contrib/settings/tests/site_specific/test_admin.py +92 -3
- wagtail/contrib/styleguide/tests.py +8 -0
- wagtail/contrib/styleguide/views.py +1 -1
- wagtail/management/commands/convert_mariadb_uuids.py +43 -0
- wagtail/snippets/views/snippets.py +0 -19
- wagtail/test/testapp/migrations/0034_testpermissionedgenericsetting_and_more.py +42 -0
- wagtail/test/testapp/models.py +46 -0
- wagtail/test/testapp/views.py +1 -1
- wagtail/users/tests/test_admin_views.py +7 -1
- {wagtail-6.0.2.dist-info → wagtail-6.0.3.dist-info}/METADATA +1 -1
- {wagtail-6.0.2.dist-info → wagtail-6.0.3.dist-info}/RECORD +22 -20
- {wagtail-6.0.2.dist-info → wagtail-6.0.3.dist-info}/LICENSE +0 -0
- {wagtail-6.0.2.dist-info → wagtail-6.0.3.dist-info}/WHEEL +0 -0
- {wagtail-6.0.2.dist-info → wagtail-6.0.3.dist-info}/entry_points.txt +0 -0
- {wagtail-6.0.2.dist-info → wagtail-6.0.3.dist-info}/top_level.txt +0 -0
|
@@ -14,6 +14,7 @@ from wagtail.test.testapp.models import (
|
|
|
14
14
|
PanelGenericSettings,
|
|
15
15
|
TabbedGenericSettings,
|
|
16
16
|
TestGenericSetting,
|
|
17
|
+
TestPermissionedGenericSetting,
|
|
17
18
|
)
|
|
18
19
|
from wagtail.test.utils import WagtailTestUtils
|
|
19
20
|
|
|
@@ -76,6 +77,11 @@ class BaseTestGenericSettingView(WagtailTestUtils, TestCase):
|
|
|
76
77
|
class TestGenericSettingCreateView(BaseTestGenericSettingView):
|
|
77
78
|
def setUp(self):
|
|
78
79
|
self.user = self.login()
|
|
80
|
+
self.user.user_permissions.add(
|
|
81
|
+
Permission.objects.get(
|
|
82
|
+
content_type__app_label="wagtailadmin", codename="access_admin"
|
|
83
|
+
)
|
|
84
|
+
)
|
|
79
85
|
|
|
80
86
|
def test_get_edit(self):
|
|
81
87
|
response = self.get()
|
|
@@ -107,6 +113,38 @@ class TestGenericSettingCreateView(BaseTestGenericSettingView):
|
|
|
107
113
|
# Ensure the form supports file uploads
|
|
108
114
|
self.assertContains(response, 'enctype="multipart/form-data"')
|
|
109
115
|
|
|
116
|
+
def test_create_restricted_field_without_permission(self):
|
|
117
|
+
self.user.is_superuser = False
|
|
118
|
+
self.user.save()
|
|
119
|
+
|
|
120
|
+
self.assertFalse(TestPermissionedGenericSetting.objects.exists())
|
|
121
|
+
response = self.post(
|
|
122
|
+
post_data={"sensitive_email": "test@example.com", "title": "test"},
|
|
123
|
+
setting=TestPermissionedGenericSetting,
|
|
124
|
+
)
|
|
125
|
+
self.assertEqual(response.status_code, 302)
|
|
126
|
+
|
|
127
|
+
settings = TestPermissionedGenericSetting.objects.get()
|
|
128
|
+
self.assertEqual(settings.title, "test")
|
|
129
|
+
self.assertEqual(settings.sensitive_email, "")
|
|
130
|
+
|
|
131
|
+
def test_create_restricted_field(self):
|
|
132
|
+
self.user.is_superuser = False
|
|
133
|
+
self.user.save()
|
|
134
|
+
self.user.user_permissions.add(
|
|
135
|
+
Permission.objects.get(codename="can_edit_sensitive_email_generic_setting")
|
|
136
|
+
)
|
|
137
|
+
self.assertFalse(TestPermissionedGenericSetting.objects.exists())
|
|
138
|
+
response = self.post(
|
|
139
|
+
post_data={"sensitive_email": "test@example.com", "title": "test"},
|
|
140
|
+
setting=TestPermissionedGenericSetting,
|
|
141
|
+
)
|
|
142
|
+
self.assertEqual(response.status_code, 302)
|
|
143
|
+
|
|
144
|
+
settings = TestPermissionedGenericSetting.objects.get()
|
|
145
|
+
self.assertEqual(settings.title, "test")
|
|
146
|
+
self.assertEqual(settings.sensitive_email, "test@example.com")
|
|
147
|
+
|
|
110
148
|
|
|
111
149
|
class TestGenericSettingEditView(BaseTestGenericSettingView):
|
|
112
150
|
def setUp(self):
|
|
@@ -114,7 +152,12 @@ class TestGenericSettingEditView(BaseTestGenericSettingView):
|
|
|
114
152
|
self.test_setting.title = "Setting title"
|
|
115
153
|
self.test_setting.save()
|
|
116
154
|
|
|
117
|
-
self.login()
|
|
155
|
+
self.user = self.login()
|
|
156
|
+
self.user.user_permissions.add(
|
|
157
|
+
Permission.objects.get(
|
|
158
|
+
content_type__app_label="wagtailadmin", codename="access_admin"
|
|
159
|
+
)
|
|
160
|
+
)
|
|
118
161
|
|
|
119
162
|
def test_get_edit(self):
|
|
120
163
|
response = self.get()
|
|
@@ -153,6 +196,50 @@ class TestGenericSettingEditView(BaseTestGenericSettingView):
|
|
|
153
196
|
expected_url=f"{url}{TestGenericSetting.objects.first().pk}/",
|
|
154
197
|
)
|
|
155
198
|
|
|
199
|
+
def test_edit_restricted_field(self):
|
|
200
|
+
test_setting = TestPermissionedGenericSetting()
|
|
201
|
+
test_setting.sensitive_email = "test@example.com"
|
|
202
|
+
test_setting.save()
|
|
203
|
+
self.user.is_superuser = False
|
|
204
|
+
self.user.save()
|
|
205
|
+
|
|
206
|
+
self.user.user_permissions.add(
|
|
207
|
+
Permission.objects.get(codename="can_edit_sensitive_email_generic_setting")
|
|
208
|
+
)
|
|
209
|
+
|
|
210
|
+
response = self.get(setting=TestPermissionedGenericSetting)
|
|
211
|
+
self.assertEqual(response.status_code, 200)
|
|
212
|
+
self.assertIn("sensitive_email", list(response.context["form"].fields))
|
|
213
|
+
|
|
214
|
+
response = self.post(
|
|
215
|
+
setting=TestPermissionedGenericSetting,
|
|
216
|
+
post_data={"sensitive_email": "test-updated@example.com", "title": "title"},
|
|
217
|
+
)
|
|
218
|
+
self.assertEqual(response.status_code, 302)
|
|
219
|
+
|
|
220
|
+
test_setting.refresh_from_db()
|
|
221
|
+
self.assertEqual(test_setting.sensitive_email, "test-updated@example.com")
|
|
222
|
+
|
|
223
|
+
def test_edit_restricted_field_without_permission(self):
|
|
224
|
+
test_setting = TestPermissionedGenericSetting()
|
|
225
|
+
test_setting.sensitive_email = "test@example.com"
|
|
226
|
+
test_setting.save()
|
|
227
|
+
self.user.is_superuser = False
|
|
228
|
+
self.user.save()
|
|
229
|
+
|
|
230
|
+
response = self.get(setting=TestPermissionedGenericSetting)
|
|
231
|
+
self.assertEqual(response.status_code, 200)
|
|
232
|
+
self.assertNotIn("sensitive_email", list(response.context["form"].fields))
|
|
233
|
+
|
|
234
|
+
response = self.post(
|
|
235
|
+
setting=TestPermissionedGenericSetting,
|
|
236
|
+
post_data={"sensitive_email": "test-updated@example.com", "title": "title"},
|
|
237
|
+
)
|
|
238
|
+
self.assertEqual(response.status_code, 302)
|
|
239
|
+
|
|
240
|
+
test_setting.refresh_from_db()
|
|
241
|
+
self.assertEqual(test_setting.sensitive_email, "test@example.com")
|
|
242
|
+
|
|
156
243
|
|
|
157
244
|
class TestAdminPermission(WagtailTestUtils, TestCase):
|
|
158
245
|
def test_registered_permission(self):
|
|
@@ -14,6 +14,7 @@ from wagtail.test.testapp.models import (
|
|
|
14
14
|
IconSiteSetting,
|
|
15
15
|
PanelSiteSettings,
|
|
16
16
|
TabbedSiteSettings,
|
|
17
|
+
TestPermissionedSiteSetting,
|
|
17
18
|
TestSiteSetting,
|
|
18
19
|
)
|
|
19
20
|
from wagtail.test.utils import WagtailTestUtils
|
|
@@ -72,6 +73,11 @@ class BaseTestSiteSettingView(WagtailTestUtils, TestCase):
|
|
|
72
73
|
class TestSiteSettingCreateView(BaseTestSiteSettingView):
|
|
73
74
|
def setUp(self):
|
|
74
75
|
self.user = self.login()
|
|
76
|
+
self.user.user_permissions.add(
|
|
77
|
+
Permission.objects.get(
|
|
78
|
+
content_type__app_label="wagtailadmin", codename="access_admin"
|
|
79
|
+
)
|
|
80
|
+
)
|
|
75
81
|
|
|
76
82
|
def test_get_edit(self):
|
|
77
83
|
response = self.get()
|
|
@@ -103,18 +109,55 @@ class TestSiteSettingCreateView(BaseTestSiteSettingView):
|
|
|
103
109
|
# Ensure the form supports file uploads
|
|
104
110
|
self.assertContains(response, 'enctype="multipart/form-data"')
|
|
105
111
|
|
|
112
|
+
def test_create_restricted_field_without_permission(self):
|
|
113
|
+
self.user.is_superuser = False
|
|
114
|
+
self.user.save()
|
|
115
|
+
|
|
116
|
+
self.assertFalse(TestPermissionedSiteSetting.objects.exists())
|
|
117
|
+
response = self.post(
|
|
118
|
+
post_data={"sensitive_email": "test@example.com", "title": "test"},
|
|
119
|
+
setting=TestPermissionedSiteSetting,
|
|
120
|
+
)
|
|
121
|
+
self.assertEqual(response.status_code, 302)
|
|
122
|
+
|
|
123
|
+
settings = TestPermissionedSiteSetting.objects.get()
|
|
124
|
+
self.assertEqual(settings.title, "test")
|
|
125
|
+
self.assertEqual(settings.sensitive_email, "")
|
|
126
|
+
|
|
127
|
+
def test_create_restricted_field(self):
|
|
128
|
+
self.user.is_superuser = False
|
|
129
|
+
self.user.save()
|
|
130
|
+
self.user.user_permissions.add(
|
|
131
|
+
Permission.objects.get(codename="can_edit_sensitive_email_site_setting")
|
|
132
|
+
)
|
|
133
|
+
self.assertFalse(TestPermissionedSiteSetting.objects.exists())
|
|
134
|
+
response = self.post(
|
|
135
|
+
post_data={"sensitive_email": "test@example.com", "title": "test"},
|
|
136
|
+
setting=TestPermissionedSiteSetting,
|
|
137
|
+
)
|
|
138
|
+
self.assertEqual(response.status_code, 302)
|
|
139
|
+
|
|
140
|
+
settings = TestPermissionedSiteSetting.objects.get()
|
|
141
|
+
self.assertEqual(settings.title, "test")
|
|
142
|
+
self.assertEqual(settings.sensitive_email, "test@example.com")
|
|
143
|
+
|
|
106
144
|
|
|
107
145
|
class TestSiteSettingEditView(BaseTestSiteSettingView):
|
|
108
146
|
def setUp(self):
|
|
109
|
-
default_site = Site.objects.get(is_default_site=True)
|
|
147
|
+
self.default_site = Site.objects.get(is_default_site=True)
|
|
110
148
|
|
|
111
149
|
self.test_setting = TestSiteSetting()
|
|
112
150
|
self.test_setting.title = "Site title"
|
|
113
151
|
self.test_setting.email = "initial@example.com"
|
|
114
|
-
self.test_setting.site = default_site
|
|
152
|
+
self.test_setting.site = self.default_site
|
|
115
153
|
self.test_setting.save()
|
|
116
154
|
|
|
117
|
-
self.login()
|
|
155
|
+
self.user = self.login()
|
|
156
|
+
self.user.user_permissions.add(
|
|
157
|
+
Permission.objects.get(
|
|
158
|
+
content_type__app_label="wagtailadmin", codename="access_admin"
|
|
159
|
+
)
|
|
160
|
+
)
|
|
118
161
|
|
|
119
162
|
def test_get_edit(self):
|
|
120
163
|
response = self.get()
|
|
@@ -158,6 +201,52 @@ class TestSiteSettingEditView(BaseTestSiteSettingView):
|
|
|
158
201
|
response = self.client.get(url)
|
|
159
202
|
self.assertRedirects(response, status_code=302, expected_url="/admin/")
|
|
160
203
|
|
|
204
|
+
def test_edit_restricted_field(self):
|
|
205
|
+
test_setting = TestPermissionedSiteSetting()
|
|
206
|
+
test_setting.sensitive_email = "test@example.com"
|
|
207
|
+
test_setting.site = self.default_site
|
|
208
|
+
test_setting.save()
|
|
209
|
+
self.user.is_superuser = False
|
|
210
|
+
self.user.save()
|
|
211
|
+
|
|
212
|
+
self.user.user_permissions.add(
|
|
213
|
+
Permission.objects.get(codename="can_edit_sensitive_email_site_setting")
|
|
214
|
+
)
|
|
215
|
+
|
|
216
|
+
response = self.get(setting=TestPermissionedSiteSetting)
|
|
217
|
+
self.assertEqual(response.status_code, 200)
|
|
218
|
+
self.assertIn("sensitive_email", list(response.context["form"].fields))
|
|
219
|
+
|
|
220
|
+
response = self.post(
|
|
221
|
+
setting=TestPermissionedSiteSetting,
|
|
222
|
+
post_data={"sensitive_email": "test-updated@example.com", "title": "title"},
|
|
223
|
+
)
|
|
224
|
+
self.assertEqual(response.status_code, 302)
|
|
225
|
+
|
|
226
|
+
test_setting.refresh_from_db()
|
|
227
|
+
self.assertEqual(test_setting.sensitive_email, "test-updated@example.com")
|
|
228
|
+
|
|
229
|
+
def test_edit_restricted_field_without_permission(self):
|
|
230
|
+
test_setting = TestPermissionedSiteSetting()
|
|
231
|
+
test_setting.sensitive_email = "test@example.com"
|
|
232
|
+
test_setting.site = self.default_site
|
|
233
|
+
test_setting.save()
|
|
234
|
+
self.user.is_superuser = False
|
|
235
|
+
self.user.save()
|
|
236
|
+
|
|
237
|
+
response = self.get(setting=TestPermissionedSiteSetting)
|
|
238
|
+
self.assertEqual(response.status_code, 200)
|
|
239
|
+
self.assertNotIn("sensitive_email", list(response.context["form"].fields))
|
|
240
|
+
|
|
241
|
+
response = self.post(
|
|
242
|
+
setting=TestPermissionedSiteSetting,
|
|
243
|
+
post_data={"sensitive_email": "test-updated@example.com", "title": "title"},
|
|
244
|
+
)
|
|
245
|
+
self.assertEqual(response.status_code, 302)
|
|
246
|
+
|
|
247
|
+
test_setting.refresh_from_db()
|
|
248
|
+
self.assertEqual(test_setting.sensitive_email, "test@example.com")
|
|
249
|
+
|
|
161
250
|
|
|
162
251
|
@override_settings(
|
|
163
252
|
ALLOWED_HOSTS=["testserver", "example.com", "noneoftheabove.example.com"]
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from django.test import TestCase
|
|
2
2
|
from django.urls import reverse
|
|
3
3
|
|
|
4
|
+
from wagtail.admin.staticfiles import versioned_static
|
|
4
5
|
from wagtail.test.utils import WagtailTestUtils
|
|
5
6
|
|
|
6
7
|
|
|
@@ -13,3 +14,10 @@ class TestStyleGuide(WagtailTestUtils, TestCase):
|
|
|
13
14
|
|
|
14
15
|
self.assertEqual(response.status_code, 200)
|
|
15
16
|
self.assertTemplateUsed(response, "wagtailstyleguide/base.html")
|
|
17
|
+
|
|
18
|
+
custom_css = versioned_static("wagtailstyleguide/css/animate-progress.css")
|
|
19
|
+
widget_css = versioned_static("wagtailadmin/css/panels/draftail.css")
|
|
20
|
+
widget_js = versioned_static("wagtailadmin/js/draftail.js")
|
|
21
|
+
self.assertContains(response, custom_css)
|
|
22
|
+
self.assertContains(response, widget_css)
|
|
23
|
+
self.assertContains(response, widget_js)
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
from django.apps import apps
|
|
2
|
+
from django.core.management.base import BaseCommand
|
|
3
|
+
from django.db import connection, models
|
|
4
|
+
|
|
5
|
+
from wagtail.models import (
|
|
6
|
+
BaseLogEntry,
|
|
7
|
+
BootstrapTranslatableMixin,
|
|
8
|
+
ReferenceIndex,
|
|
9
|
+
TranslatableMixin,
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class Command(BaseCommand):
|
|
14
|
+
help = "Converts UUID columns from char type to the native UUID type used in MariaDB 10.7+ and Django 5.0+."
|
|
15
|
+
|
|
16
|
+
def convert_field(self, model, field_name, null=False):
|
|
17
|
+
if model._meta.get_field(field_name).model != model:
|
|
18
|
+
# Field is inherited from a parent model
|
|
19
|
+
return
|
|
20
|
+
|
|
21
|
+
if not model._meta.managed:
|
|
22
|
+
# The migration framework skips unmanaged models, so we should too
|
|
23
|
+
return
|
|
24
|
+
|
|
25
|
+
old_field = models.CharField(null=null, max_length=36)
|
|
26
|
+
old_field.set_attributes_from_name(field_name)
|
|
27
|
+
|
|
28
|
+
new_field = models.UUIDField(null=null)
|
|
29
|
+
new_field.set_attributes_from_name(field_name)
|
|
30
|
+
|
|
31
|
+
with connection.schema_editor() as schema_editor:
|
|
32
|
+
schema_editor.alter_field(model, old_field, new_field)
|
|
33
|
+
|
|
34
|
+
def handle(self, **options):
|
|
35
|
+
self.convert_field(ReferenceIndex, "content_path_hash")
|
|
36
|
+
|
|
37
|
+
for model in apps.get_models():
|
|
38
|
+
if issubclass(model, BaseLogEntry):
|
|
39
|
+
self.convert_field(model, "uuid", null=True)
|
|
40
|
+
elif issubclass(model, BootstrapTranslatableMixin):
|
|
41
|
+
self.convert_field(model, "translation_key", null=True)
|
|
42
|
+
elif issubclass(model, TranslatableMixin):
|
|
43
|
+
self.convert_field(model, "translation_key")
|
|
@@ -235,22 +235,6 @@ class CreateView(generic.CreateEditViewOptionalFeaturesMixin, generic.CreateView
|
|
|
235
235
|
def _get_action_menu(self):
|
|
236
236
|
return SnippetActionMenu(self.request, view=self.view_name, model=self.model)
|
|
237
237
|
|
|
238
|
-
def _get_initial_form_instance(self):
|
|
239
|
-
instance = self.model()
|
|
240
|
-
|
|
241
|
-
# Set locale of the new instance
|
|
242
|
-
if self.locale:
|
|
243
|
-
instance.locale = self.locale
|
|
244
|
-
|
|
245
|
-
return instance
|
|
246
|
-
|
|
247
|
-
def get_form_kwargs(self):
|
|
248
|
-
return {
|
|
249
|
-
**super().get_form_kwargs(),
|
|
250
|
-
"instance": self._get_initial_form_instance(),
|
|
251
|
-
"for_user": self.request.user,
|
|
252
|
-
}
|
|
253
|
-
|
|
254
238
|
def get_side_panels(self):
|
|
255
239
|
side_panels = [
|
|
256
240
|
SnippetStatusSidePanel(
|
|
@@ -310,9 +294,6 @@ class EditView(generic.CreateEditViewOptionalFeaturesMixin, generic.EditView):
|
|
|
310
294
|
locked_for_user=self.locked_for_user,
|
|
311
295
|
)
|
|
312
296
|
|
|
313
|
-
def get_form_kwargs(self):
|
|
314
|
-
return {**super().get_form_kwargs(), "for_user": self.request.user}
|
|
315
|
-
|
|
316
297
|
def get_side_panels(self):
|
|
317
298
|
side_panels = [
|
|
318
299
|
SnippetStatusSidePanel(
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Generated by Django 4.2.11 on 2024-04-25 15:51
|
|
2
|
+
|
|
3
|
+
from django.db import migrations, models
|
|
4
|
+
import django.db.models.deletion
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class Migration(migrations.Migration):
|
|
8
|
+
|
|
9
|
+
dependencies = [
|
|
10
|
+
('wagtailcore', '0091_remove_revision_submitted_for_moderation'),
|
|
11
|
+
('tests', '0033_customcopyformpage'),
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
operations = [
|
|
15
|
+
migrations.CreateModel(
|
|
16
|
+
name='TestPermissionedGenericSetting',
|
|
17
|
+
fields=[
|
|
18
|
+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
19
|
+
('title', models.CharField(max_length=100)),
|
|
20
|
+
('sensitive_email', models.EmailField(max_length=50)),
|
|
21
|
+
],
|
|
22
|
+
options={
|
|
23
|
+
'permissions': [('can_edit_sensitive_email_generic_setting', 'Can edit sensitive email generic setting.')],
|
|
24
|
+
},
|
|
25
|
+
),
|
|
26
|
+
migrations.AlterModelOptions(
|
|
27
|
+
name='featurecompletetoy',
|
|
28
|
+
options={'permissions': [('can_set_release_date', 'Can set release date')]},
|
|
29
|
+
),
|
|
30
|
+
migrations.CreateModel(
|
|
31
|
+
name='TestPermissionedSiteSetting',
|
|
32
|
+
fields=[
|
|
33
|
+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
34
|
+
('title', models.CharField(max_length=100)),
|
|
35
|
+
('sensitive_email', models.EmailField(max_length=50)),
|
|
36
|
+
('site', models.OneToOneField(editable=False, on_delete=django.db.models.deletion.CASCADE, to='wagtailcore.site')),
|
|
37
|
+
],
|
|
38
|
+
options={
|
|
39
|
+
'permissions': [('can_edit_sensitive_email_site_setting', 'Can edit sensitive email site setting.')],
|
|
40
|
+
},
|
|
41
|
+
),
|
|
42
|
+
]
|
wagtail/test/testapp/models.py
CHANGED
|
@@ -1640,6 +1640,49 @@ class TestGenericSetting(BaseGenericSetting):
|
|
|
1640
1640
|
email = models.EmailField(max_length=50)
|
|
1641
1641
|
|
|
1642
1642
|
|
|
1643
|
+
@register_setting
|
|
1644
|
+
class TestPermissionedGenericSetting(BaseGenericSetting):
|
|
1645
|
+
title = models.CharField(max_length=100)
|
|
1646
|
+
sensitive_email = models.EmailField(max_length=50)
|
|
1647
|
+
|
|
1648
|
+
panels = [
|
|
1649
|
+
FieldPanel("title"),
|
|
1650
|
+
FieldPanel(
|
|
1651
|
+
"sensitive_email",
|
|
1652
|
+
permission="tests.can_edit_sensitive_email_generic_setting",
|
|
1653
|
+
),
|
|
1654
|
+
]
|
|
1655
|
+
|
|
1656
|
+
class Meta:
|
|
1657
|
+
permissions = [
|
|
1658
|
+
(
|
|
1659
|
+
"can_edit_sensitive_email_generic_setting",
|
|
1660
|
+
"Can edit sensitive email generic setting.",
|
|
1661
|
+
),
|
|
1662
|
+
]
|
|
1663
|
+
|
|
1664
|
+
|
|
1665
|
+
@register_setting
|
|
1666
|
+
class TestPermissionedSiteSetting(BaseSiteSetting):
|
|
1667
|
+
title = models.CharField(max_length=100)
|
|
1668
|
+
sensitive_email = models.EmailField(max_length=50)
|
|
1669
|
+
|
|
1670
|
+
panels = [
|
|
1671
|
+
FieldPanel("title"),
|
|
1672
|
+
FieldPanel(
|
|
1673
|
+
"sensitive_email", permission="tests.can_edit_sensitive_email_site_setting"
|
|
1674
|
+
),
|
|
1675
|
+
]
|
|
1676
|
+
|
|
1677
|
+
class Meta:
|
|
1678
|
+
permissions = [
|
|
1679
|
+
(
|
|
1680
|
+
"can_edit_sensitive_email_site_setting",
|
|
1681
|
+
"Can edit sensitive email site setting.",
|
|
1682
|
+
),
|
|
1683
|
+
]
|
|
1684
|
+
|
|
1685
|
+
|
|
1643
1686
|
@register_setting
|
|
1644
1687
|
class ImportantPagesSiteSetting(BaseSiteSetting):
|
|
1645
1688
|
sign_up_page = models.ForeignKey(
|
|
@@ -2229,6 +2272,9 @@ class FeatureCompleteToy(index.Indexed, models.Model):
|
|
|
2229
2272
|
def __str__(self):
|
|
2230
2273
|
return f"{self.name} ({self.release_date})"
|
|
2231
2274
|
|
|
2275
|
+
class Meta:
|
|
2276
|
+
permissions = [("can_set_release_date", "Can set release date")]
|
|
2277
|
+
|
|
2232
2278
|
|
|
2233
2279
|
class PurgeRevisionsProtectedTestModel(models.Model):
|
|
2234
2280
|
revision = models.OneToOneField(
|
wagtail/test/testapp/views.py
CHANGED
|
@@ -2029,7 +2029,13 @@ class TestGroupEditView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
|
|
2029
2029
|
perm.content_type.model,
|
|
2030
2030
|
)
|
|
2031
2031
|
for perm_set in object_perms
|
|
2032
|
-
for perm in [
|
|
2032
|
+
for perm in [
|
|
2033
|
+
next(
|
|
2034
|
+
v
|
|
2035
|
+
for v in flatten(perm_set)
|
|
2036
|
+
if isinstance(v, dict) and "perm" in v
|
|
2037
|
+
)["perm"]
|
|
2038
|
+
]
|
|
2033
2039
|
]
|
|
2034
2040
|
|
|
2035
2041
|
# Set order on two objects, should appear first and second
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
wagtail/__init__.py,sha256=
|
|
1
|
+
wagtail/__init__.py,sha256=AalpcuhGeGc_ikrSLxCWo5wCAh7hnaKFfzdXnh58BGY,724
|
|
2
2
|
wagtail/apps.py,sha256=38kXTdHoQzFnpUqDNxFpsqn2dut4V0u9rLOkhqCoYkc,713
|
|
3
3
|
wagtail/compat.py,sha256=L41FhlX4xy5KgTdJ63smtM78mtKf1mxkPeOs8kyOwS0,538
|
|
4
4
|
wagtail/coreutils.py,sha256=2eFnlfuyzu8wr5_u2j_zbrHhQDPxPfnaIlgRc4433J0,20660
|
|
@@ -378,7 +378,7 @@ wagtail/admin/static/wagtailadmin/js/chooser-modal.js,sha256=4xHYE6KEL_vh98wzMS7
|
|
|
378
378
|
wagtail/admin/static/wagtailadmin/js/chooser-widget-telepath.js,sha256=2IaIEgHWjHgVmJXVr3dPpuiU1PB8rwlm5zruq46gX2E,1682
|
|
379
379
|
wagtail/admin/static/wagtailadmin/js/chooser-widget.js,sha256=SekmMrwRwf2LcgjW56VjpCbNwF4rEcrcPH4PjiqEIbI,1637
|
|
380
380
|
wagtail/admin/static/wagtailadmin/js/comments.js,sha256=xSxMNoWCTCdSXVXe4Ot799uHejwwancQFQR3lLhnHuw,52898
|
|
381
|
-
wagtail/admin/static/wagtailadmin/js/core.js,sha256=
|
|
381
|
+
wagtail/admin/static/wagtailadmin/js/core.js,sha256=lK7y9vQhM8ooGwQoxqskaAURauV3btT4mErJHrJBouo,75108
|
|
382
382
|
wagtail/admin/static/wagtailadmin/js/core.js.LICENSE.txt,sha256=M7UXSQDHTF-vamFVtlKAOaGSMARk8bKbMLR7Mss5V1U,125
|
|
383
383
|
wagtail/admin/static/wagtailadmin/js/date-time-chooser.js,sha256=cKc3vHN8jLrrUKErdE888TN2lkn-3OvfPyX2aKeUUQM,3470
|
|
384
384
|
wagtail/admin/static/wagtailadmin/js/draftail.js,sha256=ao5nvS6a-gUQNAf4M06kjPuBCTALpIpF9GSSZsqOzEg,293625
|
|
@@ -882,7 +882,7 @@ wagtail/admin/tests/pages/test_edit_page.py,sha256=P6iLTAwxVlexvlurUhQgItQs9ZNnS
|
|
|
882
882
|
wagtail/admin/tests/pages/test_explorer_view.py,sha256=6hOC35sU2HAQMQ7v_CY3iqlNIyIKoX1PDwTATGJvJMA,54349
|
|
883
883
|
wagtail/admin/tests/pages/test_move_page.py,sha256=o-2onhDQ6eb6oqpSL29D8_r-zr-ubhUNb_exuVo4dtI,10175
|
|
884
884
|
wagtail/admin/tests/pages/test_page_locking.py,sha256=7CMYaBVzbvSdsLMtXNOoVYnG0iSf7RMedFmGMRdguf8,11766
|
|
885
|
-
wagtail/admin/tests/pages/test_page_search.py,sha256=
|
|
885
|
+
wagtail/admin/tests/pages/test_page_search.py,sha256=HdcZr41y72YDl3X9qWgEqMWdBFcM7KgW3X-ZgbA7Qgg,12707
|
|
886
886
|
wagtail/admin/tests/pages/test_page_usage.py,sha256=2cnZXdCaCjqi7PRJ4tyfIyhUIx2j360jgPDFKA8wJUw,2736
|
|
887
887
|
wagtail/admin/tests/pages/test_preview.py,sha256=S9MkzSxCpfEJgwefe3ZffGzwgzTuZVmGr2zvz1ubSGI,24493
|
|
888
888
|
wagtail/admin/tests/pages/test_reorder_page.py,sha256=71G4x9n6mgLbHrit5Hvk-it5SoRlkhwVo8nC4MLJiH8,5809
|
|
@@ -902,7 +902,7 @@ wagtail/admin/tests/ui/test_tables.py,sha256=MTBnyrWWIFsgYDzU5QbDQ1ZIqu4BTZHh8U8
|
|
|
902
902
|
wagtail/admin/tests/viewsets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
903
903
|
wagtail/admin/tests/viewsets/test_base_viewset.py,sha256=_6DhpxiinfXr-wjQfh0tcL1skZi1KXVlZLJpxCwazog,1537
|
|
904
904
|
wagtail/admin/tests/viewsets/test_chooser_viewset.py,sha256=fIoBQ3u_J-ZhWvpATq7BLEzCet7_hOl383xGIgFtf7E,2039
|
|
905
|
-
wagtail/admin/tests/viewsets/test_model_viewset.py,sha256=
|
|
905
|
+
wagtail/admin/tests/viewsets/test_model_viewset.py,sha256=XzHAzvKa5vAOJDgO28Zbi7Bz1SfnWKYW3UUoPcaOHCM,61379
|
|
906
906
|
wagtail/admin/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
907
907
|
wagtail/admin/ui/components.py,sha256=UbrSfXbeCo2vmsk69NXOodL82dI7H9U0WxW3-7GbX-4,146
|
|
908
908
|
wagtail/admin/ui/fields.py,sha256=QQBV9L8w6L5w8E6DG8LKqrlIzz1K5leFSxfM67v6L1Q,1377
|
|
@@ -937,7 +937,7 @@ wagtail/admin/views/generic/chooser.py,sha256=pjOYGcYBHc1ZkZJ4LWcHkoGNQ7U7GdKBsJ
|
|
|
937
937
|
wagtail/admin/views/generic/history.py,sha256=gsjOYx5aHv1s3klx_5VuZwsPqEaxV_8kucswr6MUTVE,10764
|
|
938
938
|
wagtail/admin/views/generic/lock.py,sha256=dvZ613n3itNAhO3zdQzGRewm2kH-dyemx-LSuUC2AHM,1435
|
|
939
939
|
wagtail/admin/views/generic/mixins.py,sha256=s17uj8lGDOI2zi3oH3HDJUem3tDddYQc3mrNxc-J_-I,28349
|
|
940
|
-
wagtail/admin/views/generic/models.py,sha256=
|
|
940
|
+
wagtail/admin/views/generic/models.py,sha256=5RDc5QmY4dPC0lKGdE2eR3cQbE2jnc4rP8QXLvQbAig,50900
|
|
941
941
|
wagtail/admin/views/generic/multiple_upload.py,sha256=rgf3uXZShyZ_2rnidfk_tnU4YhHcXyPwrIKMKWIk78s,13031
|
|
942
942
|
wagtail/admin/views/generic/permissions.py,sha256=8WY3Pd3jt3sPH4CNaQqmhUvgb1YjD3fjIgkqh7zRjbc,1476
|
|
943
943
|
wagtail/admin/views/generic/preview.py,sha256=9tvUJoz55b0bKY4vvfqnDMNke3TTeSPaEamvrICYR9Q,5655
|
|
@@ -956,7 +956,7 @@ wagtail/admin/views/pages/move.py,sha256=tk2AT98mb3RcjjvvCEIczhw4orAzakmXCbdV4LB
|
|
|
956
956
|
wagtail/admin/views/pages/ordering.py,sha256=cabaYVsfbHZoxNkGQUqP5klUSlnZDisSFbPko1mX8kM,1633
|
|
957
957
|
wagtail/admin/views/pages/preview.py,sha256=kMizr-BU4oMHoXhHm7SmkPWBUNa6kq3eXZXj2eQ1yMI,3728
|
|
958
958
|
wagtail/admin/views/pages/revisions.py,sha256=1CkUrB6gtroB9FTiYv6rxhR9rE8CQuPhRCMwvDuFrIk,7060
|
|
959
|
-
wagtail/admin/views/pages/search.py,sha256=
|
|
959
|
+
wagtail/admin/views/pages/search.py,sha256=Yd1McpbRW0JzhpYJJbBXlfmmhC7efYfUvrlmriH_7Bs,5987
|
|
960
960
|
wagtail/admin/views/pages/unpublish.py,sha256=p_lYd6x8k35UlFIhrZzEjQ6m68qbiHAWyvZrgCg4EoY,3716
|
|
961
961
|
wagtail/admin/views/pages/usage.py,sha256=ywEomHNsPUiHxAAwEIfiO6wwv5Xe0VSsphe58v6msY0,2755
|
|
962
962
|
wagtail/admin/views/pages/utils.py,sha256=TcZQmy-WQ2SJVeitqKz1kEJb5Svb80qg-ET9SAjMub8,123
|
|
@@ -1648,13 +1648,13 @@ wagtail/contrib/settings/templatetags/wagtailsettings_tags.py,sha256=_YT4sMMUcuL
|
|
|
1648
1648
|
wagtail/contrib/settings/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1649
1649
|
wagtail/contrib/settings/tests/generic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1650
1650
|
wagtail/contrib/settings/tests/generic/base.py,sha256=ROErYgcjkO7ll5NpleP0Y0gin0J6CxFDDFrS7zfJy48,780
|
|
1651
|
-
wagtail/contrib/settings/tests/generic/test_admin.py,sha256=
|
|
1651
|
+
wagtail/contrib/settings/tests/generic/test_admin.py,sha256=J2909d8VRaJXrbXb4-9sm6hz82wefoQrIVDsjbHbIh0,10685
|
|
1652
1652
|
wagtail/contrib/settings/tests/generic/test_model.py,sha256=6fvP7I4L-NBsQAqZwrVSyvc828p1DEaPZr8RwjiYqZM,5276
|
|
1653
1653
|
wagtail/contrib/settings/tests/generic/test_register.py,sha256=J_E6KrlYeQtQqGD8P_4YTjVu3ZLiin3epeU2MsBrq2s,907
|
|
1654
1654
|
wagtail/contrib/settings/tests/generic/test_templates.py,sha256=Pvm0ZwMBkCf1Z8EYiJ9Xyv_NEY4OScfDawFwU6oTUbc,7250
|
|
1655
1655
|
wagtail/contrib/settings/tests/site_specific/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1656
1656
|
wagtail/contrib/settings/tests/site_specific/base.py,sha256=F0AGRh-k87W5qaYtX_hOLX9fX_DQn8V1rA3vM5lG9_Q,1186
|
|
1657
|
-
wagtail/contrib/settings/tests/site_specific/test_admin.py,sha256=
|
|
1657
|
+
wagtail/contrib/settings/tests/site_specific/test_admin.py,sha256=i29kYwRbSj0FuXxTm0zZw-TtTgnIUrWDQBMlflawWuc,15094
|
|
1658
1658
|
wagtail/contrib/settings/tests/site_specific/test_forms.py,sha256=ObrofQc5X6J19sezBRIkodk67fmfAVNahl-85vv34Zk,1226
|
|
1659
1659
|
wagtail/contrib/settings/tests/site_specific/test_model.py,sha256=Sxpvta-DmfYa0oL7Hqjk8AA8OPWMSWbGnBSwN8xkBiQ,9634
|
|
1660
1660
|
wagtail/contrib/settings/tests/site_specific/test_register.py,sha256=Zi8VC7vaZ8XA_JwM_0OQLCd4npnIZQA5Y6EMSpWGWq0,860
|
|
@@ -1755,8 +1755,8 @@ wagtail/contrib/sitemaps/views.py,sha256=fDC4cNGrJcTknK00jJVKyUHi_NFm3KcE3speobP
|
|
|
1755
1755
|
wagtail/contrib/styleguide/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1756
1756
|
wagtail/contrib/styleguide/apps.py,sha256=KQDm53k-F3HMKFSrBumdxvqMQl-I6cD9Tn4_YBEkAQ4,252
|
|
1757
1757
|
wagtail/contrib/styleguide/models.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1758
|
-
wagtail/contrib/styleguide/tests.py,sha256=
|
|
1759
|
-
wagtail/contrib/styleguide/views.py,sha256=
|
|
1758
|
+
wagtail/contrib/styleguide/tests.py,sha256=7HhA6ZUHm9W8s2YnMwNEqBreLbcQ9ps1GHoLAy6hAjs,866
|
|
1759
|
+
wagtail/contrib/styleguide/views.py,sha256=yyfVD6PEPasWWVKKwOLOnZ7A11iysJ5jQGEHnLsGwGQ,6286
|
|
1760
1760
|
wagtail/contrib/styleguide/wagtail_hooks.py,sha256=35TZx-2LUKKrdh78_JR3kLBMYqpvNi2EPXISLm1NQUg,600
|
|
1761
1761
|
wagtail/contrib/styleguide/locale/af/LC_MESSAGES/django.mo,sha256=Vgou-T2iEQM17_IjA1WCZ0twa7fYsPSDrRxqzVbnpC8,455
|
|
1762
1762
|
wagtail/contrib/styleguide/locale/af/LC_MESSAGES/django.po,sha256=sRQbU8GkoWn3Q-TdbUGX_xbWkm7SE1ZbVUVM3VbLTCc,667
|
|
@@ -2884,6 +2884,7 @@ wagtail/locales/templates/wagtaillocales/create.html,sha256=rOJbRZ9Y6Nf3oAjGIgRv
|
|
|
2884
2884
|
wagtail/locales/templates/wagtaillocales/edit.html,sha256=Z6BKLxPMJzIBOZW-X2pmBh5r2dGQOP4fm5PEXxscUjQ,411
|
|
2885
2885
|
wagtail/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2886
2886
|
wagtail/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2887
|
+
wagtail/management/commands/convert_mariadb_uuids.py,sha256=J-qLmgxq2jgciJUtz6bBsTv-7OUHLgXpAG4Br8QVdbc,1568
|
|
2887
2888
|
wagtail/management/commands/create_log_entries_from_revisions.py,sha256=0FnmvrUo9jW1N1OaB9DA1SzIT7e2YYiPn6ATX4Ak9Ys,5020
|
|
2888
2889
|
wagtail/management/commands/fixtree.py,sha256=O5mwQ-k4-8Zq2e47mbBtJjJ_ODOHFlA_MOl8XxIFdmU,6786
|
|
2889
2890
|
wagtail/management/commands/move_pages.py,sha256=SZVk8AwDJQOROr4lZ56jM9KzryZe31ZBTUJib_u8x2w,852
|
|
@@ -3472,7 +3473,7 @@ wagtail/snippets/tests/test_bulk_actions/test_bulk_delete.py,sha256=h19bHzxx0FiP
|
|
|
3472
3473
|
wagtail/snippets/tests/test_bulk_actions/test_custom_models.py,sha256=ymcv9FcRzaqA9P_QXIkCLDS2SBhV2Kc9jDrw1W51LZo,2156
|
|
3473
3474
|
wagtail/snippets/views/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3474
3475
|
wagtail/snippets/views/chooser.py,sha256=Yhr19rpjifwu3YWE0k1ULZkcXWVKXP0mXc4o-ul7f88,2178
|
|
3475
|
-
wagtail/snippets/views/snippets.py,sha256=
|
|
3476
|
+
wagtail/snippets/views/snippets.py,sha256=VentPtabHVJJhkG5g9Gu-105vKCA7J7Rikvs7LUdhIE,47429
|
|
3476
3477
|
wagtail/templates/wagtailcore/login.html,sha256=OFcM7lpacqi4vTcHAwmh6-FjYl2fWEKKMJsqPYWhinM,998
|
|
3477
3478
|
wagtail/templates/wagtailcore/page.html,sha256=731rpIL3MbL3oNEEIzrwQ-a7KgJITGnyCRJa5K8EuU4,343
|
|
3478
3479
|
wagtail/templates/wagtailcore/password_required.html,sha256=cHsx0GRU8EaXeEyR_jigoKuf4gzS1leEuhFmoU4wmUM,726
|
|
@@ -3568,10 +3569,10 @@ wagtail/test/testapp/apps.py,sha256=NIqHOtcWNoM35crZpziUcE5nzmHtcb-PQgtDKjOKV34,
|
|
|
3568
3569
|
wagtail/test/testapp/blocks.py,sha256=GUzxM5RVmRHiDk7fmNtFGzfuO1WKJnmAEzJK8Ot52mU,971
|
|
3569
3570
|
wagtail/test/testapp/forms.py,sha256=jDu_6eF5DzRF3ww-9hGLKCyE90InGLQoiwkTjPQX5qo,1438
|
|
3570
3571
|
wagtail/test/testapp/media_forms.py,sha256=TVphjCtSfK90cl6p8lfz7hb5fUzAFmBb4KW0u3pOFa4,798
|
|
3571
|
-
wagtail/test/testapp/models.py,sha256=
|
|
3572
|
+
wagtail/test/testapp/models.py,sha256=PhTZlYp3amUGPccVa8khvhq5AGTi8ZatLZKRgLtsmQQ,62634
|
|
3572
3573
|
wagtail/test/testapp/rich_text.py,sha256=qxaGVLd9eW69Ii4ERRiJz6VXSuYjDkZCG0DM11LEzR0,1037
|
|
3573
3574
|
wagtail/test/testapp/urls.py,sha256=2zQPbGiM8e53nGkxu4ZtECjlalBk_t-pTPyapfiKwXc,559
|
|
3574
|
-
wagtail/test/testapp/views.py,sha256=
|
|
3575
|
+
wagtail/test/testapp/views.py,sha256=ewiVqyxEq7jCxy4pBroZ9RikkV1g0MJFDbkM_rVuNYM,9068
|
|
3575
3576
|
wagtail/test/testapp/wagtail_hooks.py,sha256=v4NOwh8rkL38GxRAQjCkW0UOIyLDUZYlBjXtIoEjzxI,11969
|
|
3576
3577
|
wagtail/test/testapp/fixtures/test.json,sha256=ZyzV2cVz2Pt1JwcB-XzgGV2JXU3-RJONO2RKUGTRaYM,22906
|
|
3577
3578
|
wagtail/test/testapp/fixtures/test_empty.json,sha256=4t6c6tfYLPQL55Q9lrsNsnmVaeO3paSKpoLq0Tm6YTs,1116
|
|
@@ -3621,6 +3622,7 @@ wagtail/test/testapp/migrations/0030_purgerevisionsprotectedtestmodel.py,sha256=
|
|
|
3621
3622
|
wagtail/test/testapp/migrations/0031_searchtestmodel.py,sha256=tStn9eArZZHCloMdFZSvsE0VbyPpxY03GMFfGxxUwS8,760
|
|
3622
3623
|
wagtail/test/testapp/migrations/0032_custompermissionpage.py,sha256=Gu7xVwRd_nVUWODB410mLjxOGMhSmVKVuFmXFjl3_qY,975
|
|
3623
3624
|
wagtail/test/testapp/migrations/0033_customcopyformpage.py,sha256=-P6SCgXXgDeBiIlkqcrOWus7Tm6UCaILmLLaIL11egE,989
|
|
3625
|
+
wagtail/test/testapp/migrations/0034_testpermissionedgenericsetting_and_more.py,sha256=LfMd61MVj3rrd0-sHWpzQ3zfFTcoG2xQlUQKMFEMAxE,1715
|
|
3624
3626
|
wagtail/test/testapp/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3625
3627
|
wagtail/test/testapp/templates/customprefix/confirm_delete.html,sha256=bP1C1d-aA9Jf68jeda2zgMgtMY_nQLCeInhpofijjsc,160
|
|
3626
3628
|
wagtail/test/testapp/templates/customprefix/tests/edit.html,sha256=dMh5LvHjW9LkFlT5jKsdtJRjHjtL0Z_yGhP7mlcjk5E,150
|
|
@@ -3890,7 +3892,7 @@ wagtail/users/templates/wagtailusers/users/list.html,sha256=-n-BB6Q2nnhztNWmQTJw
|
|
|
3890
3892
|
wagtail/users/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3891
3893
|
wagtail/users/templatetags/wagtailusers_tags.py,sha256=lo5TbX0YS6siSDlWj9gFtzHQv3gtaYpxmvbImUmJd5Q,4493
|
|
3892
3894
|
wagtail/users/tests/__init__.py,sha256=-_5MwigQVfaxvNytkEKUk-0sG90N-APaWajAxNmQgX0,192
|
|
3893
|
-
wagtail/users/tests/test_admin_views.py,sha256=
|
|
3895
|
+
wagtail/users/tests/test_admin_views.py,sha256=W2L9VgGvnZcZsjFyvtw-SM8zGJEEenSM43pTP7j90NM,93007
|
|
3894
3896
|
wagtail/users/tests/test_bulk_actions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3895
3897
|
wagtail/users/tests/test_bulk_actions/test_bulk_assign_role.py,sha256=A2_YxqNftl0XcUCmZ38ozaNeO9Q4fwonCdJZ9mFVoqE,3906
|
|
3896
3898
|
wagtail/users/tests/test_bulk_actions/test_bulk_delete.py,sha256=76AqkoE5wALzIUOhbaQg4FDeYHi3YrXgTkJX-lxwW1k,5304
|
|
@@ -3921,9 +3923,9 @@ wagtail/utils/urlpatterns.py,sha256=RDhVScxdm-RV4HSMjWElyrbEoTPsXu841_SKMgoFKtY,
|
|
|
3921
3923
|
wagtail/utils/utils.py,sha256=UALGn0KOyqi5ZoXOozWX99ZPUsVZP51ET8d7sZ1jlm0,430
|
|
3922
3924
|
wagtail/utils/version.py,sha256=40WGMIy8nSPQJFF01p7c38L444SexH2Cb-bQmR8ztXg,1478
|
|
3923
3925
|
wagtail/utils/widgets.py,sha256=ibAvxHCjNw06bMlTD7wvrwmGEMNS3NzrnSKREGfPF44,1775
|
|
3924
|
-
wagtail-6.0.
|
|
3925
|
-
wagtail-6.0.
|
|
3926
|
-
wagtail-6.0.
|
|
3927
|
-
wagtail-6.0.
|
|
3928
|
-
wagtail-6.0.
|
|
3929
|
-
wagtail-6.0.
|
|
3926
|
+
wagtail-6.0.3.dist-info/LICENSE,sha256=0aiL7_RJ2YkOjscmRI7opwmuURrY6h8MR0B24nrdRQU,1512
|
|
3927
|
+
wagtail-6.0.3.dist-info/METADATA,sha256=15prseYYe8ZY201sM-jy7zJxSCF0YDR-j76oBBRjuis,3797
|
|
3928
|
+
wagtail-6.0.3.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
|
|
3929
|
+
wagtail-6.0.3.dist-info/entry_points.txt,sha256=R14Z0xKoufNcDaku0EWDKM-K8J4ap0EImO8C-df8HVM,53
|
|
3930
|
+
wagtail-6.0.3.dist-info/top_level.txt,sha256=zcKgvuRTi0gSgVzJ1qMoERCwhQ_i0n9bkyxza3oh9as,8
|
|
3931
|
+
wagtail-6.0.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|