wagtail 7.0.2__py3-none-any.whl → 7.0.4__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/templates/wagtailadmin/generic/form.html +3 -1
- wagtail/admin/tests/pages/test_preview.py +81 -0
- wagtail/admin/tests/test_views_generic.py +34 -0
- wagtail/admin/views/generic/preview.py +8 -1
- wagtail/admin/views/pages/preview.py +10 -1
- wagtail/contrib/forms/models.py +2 -0
- wagtail/contrib/forms/tests/test_views.py +23 -0
- wagtail/snippets/tests/test_preview.py +53 -0
- wagtail/test/testapp/urls.py +1 -0
- wagtail/test/testapp/views.py +15 -1
- {wagtail-7.0.2.dist-info → wagtail-7.0.4.dist-info}/METADATA +1 -1
- {wagtail-7.0.2.dist-info → wagtail-7.0.4.dist-info}/RECORD +17 -17
- {wagtail-7.0.2.dist-info → wagtail-7.0.4.dist-info}/WHEEL +1 -1
- {wagtail-7.0.2.dist-info → wagtail-7.0.4.dist-info}/entry_points.txt +0 -0
- {wagtail-7.0.2.dist-info → wagtail-7.0.4.dist-info}/licenses/LICENSE +0 -0
- {wagtail-7.0.2.dist-info → wagtail-7.0.4.dist-info}/top_level.txt +0 -0
wagtail/__init__.py
CHANGED
|
@@ -6,7 +6,7 @@ from wagtail.utils.version import get_semver_version, get_version
|
|
|
6
6
|
|
|
7
7
|
# major.minor.patch.release.number
|
|
8
8
|
# release must be one of alpha, beta, rc, or final
|
|
9
|
-
VERSION = (7, 0,
|
|
9
|
+
VERSION = (7, 0, 4, "final", 1)
|
|
10
10
|
|
|
11
11
|
__version__ = get_version(VERSION)
|
|
12
12
|
|
|
@@ -6,7 +6,9 @@
|
|
|
6
6
|
{% if breadcrumbs_items %}
|
|
7
7
|
<div class="nice-padding w-mt-8">
|
|
8
8
|
<h2 class="w-relative w-h1" id="header-title">
|
|
9
|
-
{%
|
|
9
|
+
{% if header_icon %}
|
|
10
|
+
{% icon classname="w-absolute w-top-1 -w-left-11 w-max-w-[1em] w-max-h-[1em]" name=header_icon %}
|
|
11
|
+
{% endif %}
|
|
10
12
|
{{ page_subtitle|default:page_title }}
|
|
11
13
|
</h2>
|
|
12
14
|
</div>
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import datetime
|
|
2
2
|
from functools import wraps
|
|
3
3
|
|
|
4
|
+
from django.contrib.auth.models import Permission
|
|
4
5
|
from django.test import TestCase, override_settings
|
|
5
6
|
from django.urls import reverse
|
|
6
7
|
from django.utils import timezone
|
|
@@ -358,6 +359,47 @@ class TestPreview(WagtailTestUtils, TestCase):
|
|
|
358
359
|
self.assertTemplateUsed(response, "tests/event_page.html")
|
|
359
360
|
self.assertContains(response, "Placeholder title")
|
|
360
361
|
|
|
362
|
+
def test_preview_on_create_without_permissions(self):
|
|
363
|
+
# Remove privileges from user
|
|
364
|
+
self.user.is_superuser = False
|
|
365
|
+
self.user.user_permissions.add(
|
|
366
|
+
Permission.objects.get(
|
|
367
|
+
content_type__app_label="wagtailadmin", codename="access_admin"
|
|
368
|
+
)
|
|
369
|
+
)
|
|
370
|
+
self.user.save()
|
|
371
|
+
|
|
372
|
+
preview_url = reverse(
|
|
373
|
+
"wagtailadmin_pages:preview_on_add",
|
|
374
|
+
args=("tests", "eventpage", self.home_page.id),
|
|
375
|
+
)
|
|
376
|
+
|
|
377
|
+
response = self.client.post(
|
|
378
|
+
preview_url,
|
|
379
|
+
self.post_data,
|
|
380
|
+
)
|
|
381
|
+
self.assertEqual(response.status_code, 302)
|
|
382
|
+
self.assertRedirects(response, reverse("wagtailadmin_home"))
|
|
383
|
+
|
|
384
|
+
def test_preview_on_create_get_without_permissions(self):
|
|
385
|
+
# Remove privileges from user
|
|
386
|
+
self.user.is_superuser = False
|
|
387
|
+
self.user.user_permissions.add(
|
|
388
|
+
Permission.objects.get(
|
|
389
|
+
content_type__app_label="wagtailadmin", codename="access_admin"
|
|
390
|
+
)
|
|
391
|
+
)
|
|
392
|
+
self.user.save()
|
|
393
|
+
|
|
394
|
+
preview_url = reverse(
|
|
395
|
+
"wagtailadmin_pages:preview_on_add",
|
|
396
|
+
args=("tests", "eventpage", self.home_page.id),
|
|
397
|
+
)
|
|
398
|
+
|
|
399
|
+
response = self.client.get(preview_url)
|
|
400
|
+
self.assertEqual(response.status_code, 302)
|
|
401
|
+
self.assertRedirects(response, reverse("wagtailadmin_home"))
|
|
402
|
+
|
|
361
403
|
def test_preview_on_edit_with_m2m_field(self):
|
|
362
404
|
preview_url = reverse(
|
|
363
405
|
"wagtailadmin_pages:preview_on_edit", args=(self.event_page.id,)
|
|
@@ -557,6 +599,45 @@ class TestPreview(WagtailTestUtils, TestCase):
|
|
|
557
599
|
response = self.client.get(preview_url)
|
|
558
600
|
self.assertEqual(response.status_code, 200)
|
|
559
601
|
|
|
602
|
+
def test_preview_on_edit_without_permissions(self):
|
|
603
|
+
# Remove privileges from user
|
|
604
|
+
self.user.is_superuser = False
|
|
605
|
+
self.user.user_permissions.add(
|
|
606
|
+
Permission.objects.get(
|
|
607
|
+
content_type__app_label="wagtailadmin", codename="access_admin"
|
|
608
|
+
)
|
|
609
|
+
)
|
|
610
|
+
self.user.save()
|
|
611
|
+
|
|
612
|
+
preview_url = reverse(
|
|
613
|
+
"wagtailadmin_pages:preview_on_edit", args=(self.event_page.id,)
|
|
614
|
+
)
|
|
615
|
+
|
|
616
|
+
response = self.client.post(
|
|
617
|
+
preview_url,
|
|
618
|
+
self.post_data,
|
|
619
|
+
)
|
|
620
|
+
self.assertEqual(response.status_code, 302)
|
|
621
|
+
self.assertRedirects(response, reverse("wagtailadmin_home"))
|
|
622
|
+
|
|
623
|
+
def test_preview_on_edit_get_without_permissions(self):
|
|
624
|
+
# Remove privileges from user
|
|
625
|
+
self.user.is_superuser = False
|
|
626
|
+
self.user.user_permissions.add(
|
|
627
|
+
Permission.objects.get(
|
|
628
|
+
content_type__app_label="wagtailadmin", codename="access_admin"
|
|
629
|
+
)
|
|
630
|
+
)
|
|
631
|
+
self.user.save()
|
|
632
|
+
|
|
633
|
+
preview_url = reverse(
|
|
634
|
+
"wagtailadmin_pages:preview_on_edit", args=(self.event_page.id,)
|
|
635
|
+
)
|
|
636
|
+
|
|
637
|
+
response = self.client.get(preview_url)
|
|
638
|
+
self.assertEqual(response.status_code, 302)
|
|
639
|
+
self.assertRedirects(response, reverse("wagtailadmin_home"))
|
|
640
|
+
|
|
560
641
|
def test_preview_on_create_clear_preview_data(self):
|
|
561
642
|
preview_session_key = "wagtail-preview-tests-eventpage-{}".format(
|
|
562
643
|
self.home_page.id
|
|
@@ -2,6 +2,7 @@ from django.contrib.admin.utils import quote
|
|
|
2
2
|
from django.test import TestCase
|
|
3
3
|
from django.urls import reverse
|
|
4
4
|
|
|
5
|
+
from wagtail.test.testapp.models import ModelWithStringTypePrimaryKey
|
|
5
6
|
from wagtail.test.utils import WagtailTestUtils
|
|
6
7
|
|
|
7
8
|
|
|
@@ -37,6 +38,39 @@ class TestGenericIndexViewWithoutModel(WagtailTestUtils, TestCase):
|
|
|
37
38
|
self.assertEqual(response_object_count, 4)
|
|
38
39
|
|
|
39
40
|
|
|
41
|
+
class TestGenericCreateView(WagtailTestUtils, TestCase):
|
|
42
|
+
fixtures = ["test.json"]
|
|
43
|
+
|
|
44
|
+
def get(self, params={}):
|
|
45
|
+
return self.client.get(reverse("testapp_generic_create"), params)
|
|
46
|
+
|
|
47
|
+
def test_get_create_view(self):
|
|
48
|
+
response = self.get()
|
|
49
|
+
self.assertEqual(response.status_code, 200)
|
|
50
|
+
soup = self.get_soup(response.content)
|
|
51
|
+
h2 = soup.select_one("main h2")
|
|
52
|
+
self.assertIsNotNone(h2)
|
|
53
|
+
self.assertEqual(h2.text.strip(), "Model with string type primary key")
|
|
54
|
+
form = soup.select_one("main form")
|
|
55
|
+
self.assertIsNotNone(form)
|
|
56
|
+
id_input = form.select_one("input[name='custom_id']")
|
|
57
|
+
self.assertIsNotNone(id_input)
|
|
58
|
+
self.assertEqual(id_input.get("type"), "text")
|
|
59
|
+
content_input = form.select_one("input[name='content']")
|
|
60
|
+
self.assertIsNotNone(content_input)
|
|
61
|
+
|
|
62
|
+
def test_post_create_view(self):
|
|
63
|
+
post_data = {
|
|
64
|
+
"custom_id": "string-pk-3",
|
|
65
|
+
"content": "third modelwithstringtypeprimarykey model",
|
|
66
|
+
}
|
|
67
|
+
response = self.client.post(reverse("testapp_generic_create"), post_data)
|
|
68
|
+
self.assertEqual(response.status_code, 302) # Redirect to index view
|
|
69
|
+
self.assertTrue(
|
|
70
|
+
ModelWithStringTypePrimaryKey.objects.filter(pk="string-pk-3").exists()
|
|
71
|
+
)
|
|
72
|
+
|
|
73
|
+
|
|
40
74
|
class TestGenericEditView(WagtailTestUtils, TestCase):
|
|
41
75
|
fixtures = ["test.json"]
|
|
42
76
|
|
|
@@ -17,13 +17,16 @@ from wagtail.blocks.base import Block
|
|
|
17
17
|
from wagtail.models import PreviewableMixin, RevisionMixin
|
|
18
18
|
from wagtail.utils.decorators import xframe_options_sameorigin_override
|
|
19
19
|
|
|
20
|
+
from .permissions import PermissionCheckedMixin
|
|
20
21
|
|
|
21
|
-
|
|
22
|
+
|
|
23
|
+
class PreviewOnEdit(PermissionCheckedMixin, View):
|
|
22
24
|
model = None
|
|
23
25
|
form_class = None
|
|
24
26
|
http_method_names = ("post", "get", "delete")
|
|
25
27
|
preview_expiration_timeout = 60 * 60 * 24 # seconds
|
|
26
28
|
session_key_prefix = "wagtail-preview-"
|
|
29
|
+
permission_required = "change"
|
|
27
30
|
|
|
28
31
|
def setup(self, request, *args, **kwargs):
|
|
29
32
|
super().setup(request, *args, **kwargs)
|
|
@@ -54,6 +57,8 @@ class PreviewOnEdit(View):
|
|
|
54
57
|
|
|
55
58
|
def get_object(self):
|
|
56
59
|
obj = get_object_or_404(self.model, pk=unquote(str(self.kwargs["pk"])))
|
|
60
|
+
if not self.user_has_permission_for_instance(self.permission_required, obj):
|
|
61
|
+
raise PermissionDenied
|
|
57
62
|
if isinstance(obj, RevisionMixin):
|
|
58
63
|
obj = obj.get_latest_revision_as_object()
|
|
59
64
|
return obj
|
|
@@ -133,6 +138,8 @@ class PreviewOnEdit(View):
|
|
|
133
138
|
|
|
134
139
|
|
|
135
140
|
class PreviewOnCreate(PreviewOnEdit):
|
|
141
|
+
permission_required = "add"
|
|
142
|
+
|
|
136
143
|
@property
|
|
137
144
|
def session_key(self):
|
|
138
145
|
app_label = self.model._meta.app_label
|
|
@@ -30,9 +30,13 @@ class PreviewOnEdit(GenericPreviewOnEdit):
|
|
|
30
30
|
return "{}{}".format(self.session_key_prefix, self.kwargs["page_id"])
|
|
31
31
|
|
|
32
32
|
def get_object(self):
|
|
33
|
-
|
|
33
|
+
page = get_object_or_404(
|
|
34
34
|
Page, id=self.kwargs["page_id"]
|
|
35
35
|
).get_latest_revision_as_object()
|
|
36
|
+
page_perms = page.permissions_for_user(self.request.user)
|
|
37
|
+
if not page_perms.can_edit():
|
|
38
|
+
raise PermissionDenied
|
|
39
|
+
return page
|
|
36
40
|
|
|
37
41
|
def get_form(self, query_dict):
|
|
38
42
|
form_class = self.object.get_edit_handler().get_form_class()
|
|
@@ -87,6 +91,11 @@ class PreviewOnCreate(PreviewOnEdit):
|
|
|
87
91
|
|
|
88
92
|
page = content_type.model_class()()
|
|
89
93
|
parent_page = get_object_or_404(Page, id=parent_page_id).specific
|
|
94
|
+
|
|
95
|
+
parent_page_perms = parent_page.permissions_for_user(self.request.user)
|
|
96
|
+
if not parent_page_perms.can_add_subpage():
|
|
97
|
+
raise PermissionDenied
|
|
98
|
+
|
|
90
99
|
# We need to populate treebeard's path / depth fields in order to
|
|
91
100
|
# pass validation. We can't make these 100% consistent with the rest
|
|
92
101
|
# of the tree without making actual database changes (such as
|
wagtail/contrib/forms/models.py
CHANGED
|
@@ -93,6 +93,8 @@ class AbstractFormField(Orderable):
|
|
|
93
93
|
field_type = models.CharField(
|
|
94
94
|
verbose_name=_("field type"), max_length=16, choices=FORM_FIELD_CHOICES
|
|
95
95
|
)
|
|
96
|
+
# field_type must be populated for previews to build the form field.
|
|
97
|
+
field_type.required_on_save = True
|
|
96
98
|
required = models.BooleanField(verbose_name=_("required"), default=True)
|
|
97
99
|
choices = models.TextField(
|
|
98
100
|
verbose_name=_("choices"),
|
|
@@ -2266,6 +2266,29 @@ class TestPreview(WagtailTestUtils, TestCase):
|
|
|
2266
2266
|
self.assertEqual(response.status_code, 200)
|
|
2267
2267
|
self.assertTemplateUsed(response, template)
|
|
2268
2268
|
|
|
2269
|
+
def test_empty_field_type_does_not_crash_preview(self):
|
|
2270
|
+
preview_url = reverse(
|
|
2271
|
+
"wagtailadmin_pages:preview_on_add",
|
|
2272
|
+
args=("tests", "formpage", self.homepage.pk),
|
|
2273
|
+
)
|
|
2274
|
+
|
|
2275
|
+
response = self.client.post(
|
|
2276
|
+
preview_url,
|
|
2277
|
+
{**self.post_data, "form_fields-0-field_type": ""},
|
|
2278
|
+
)
|
|
2279
|
+
self.assertEqual(response.status_code, 200)
|
|
2280
|
+
self.assertJSONEqual(
|
|
2281
|
+
response.content.decode(),
|
|
2282
|
+
{"is_valid": False, "is_available": False},
|
|
2283
|
+
)
|
|
2284
|
+
|
|
2285
|
+
response = self.client.get(preview_url)
|
|
2286
|
+
|
|
2287
|
+
self.assertContains(
|
|
2288
|
+
response,
|
|
2289
|
+
"Preview cannot display due to validation errors.",
|
|
2290
|
+
)
|
|
2291
|
+
|
|
2269
2292
|
|
|
2270
2293
|
class TestFormPageCreate(WagtailTestUtils, TestCase):
|
|
2271
2294
|
def setUp(self):
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import datetime
|
|
2
2
|
|
|
3
|
+
from django.contrib.auth.models import Permission
|
|
3
4
|
from django.test import TestCase, override_settings
|
|
4
5
|
from django.urls import reverse
|
|
5
6
|
from django.utils import timezone
|
|
@@ -145,6 +146,32 @@ class TestPreview(WagtailTestUtils, TestCase):
|
|
|
145
146
|
self.assertNotContains(response, "<li>Parties</li>")
|
|
146
147
|
self.assertContains(response, "<li>Holidays</li>")
|
|
147
148
|
|
|
149
|
+
def test_preview_on_create_without_permissions(self):
|
|
150
|
+
# Remove privileges from user
|
|
151
|
+
self.user.is_superuser = False
|
|
152
|
+
self.user.user_permissions.add(
|
|
153
|
+
Permission.objects.get(
|
|
154
|
+
content_type__app_label="wagtailadmin", codename="access_admin"
|
|
155
|
+
)
|
|
156
|
+
)
|
|
157
|
+
self.user.save()
|
|
158
|
+
response = self.client.post(self.preview_on_add_url, self.post_data)
|
|
159
|
+
self.assertEqual(response.status_code, 302)
|
|
160
|
+
self.assertRedirects(response, reverse("wagtailadmin_home"))
|
|
161
|
+
|
|
162
|
+
def test_preview_on_create_get_without_permissions(self):
|
|
163
|
+
# Remove privileges from user
|
|
164
|
+
self.user.is_superuser = False
|
|
165
|
+
self.user.user_permissions.add(
|
|
166
|
+
Permission.objects.get(
|
|
167
|
+
content_type__app_label="wagtailadmin", codename="access_admin"
|
|
168
|
+
)
|
|
169
|
+
)
|
|
170
|
+
self.user.save()
|
|
171
|
+
response = self.client.get(self.preview_on_add_url)
|
|
172
|
+
self.assertEqual(response.status_code, 302)
|
|
173
|
+
self.assertRedirects(response, reverse("wagtailadmin_home"))
|
|
174
|
+
|
|
148
175
|
def test_preview_on_edit_with_m2m_field(self):
|
|
149
176
|
response = self.client.post(self.preview_on_edit_url, self.post_data)
|
|
150
177
|
|
|
@@ -262,6 +289,32 @@ class TestPreview(WagtailTestUtils, TestCase):
|
|
|
262
289
|
self.client.session,
|
|
263
290
|
)
|
|
264
291
|
|
|
292
|
+
def test_preview_on_edit_without_permissions(self):
|
|
293
|
+
# Remove privileges from user
|
|
294
|
+
self.user.is_superuser = False
|
|
295
|
+
self.user.user_permissions.add(
|
|
296
|
+
Permission.objects.get(
|
|
297
|
+
content_type__app_label="wagtailadmin", codename="access_admin"
|
|
298
|
+
)
|
|
299
|
+
)
|
|
300
|
+
self.user.save()
|
|
301
|
+
response = self.client.post(self.preview_on_edit_url, self.post_data)
|
|
302
|
+
self.assertEqual(response.status_code, 302)
|
|
303
|
+
self.assertRedirects(response, reverse("wagtailadmin_home"))
|
|
304
|
+
|
|
305
|
+
def test_preview_on_edit_get_without_permissions(self):
|
|
306
|
+
# Remove privileges from user
|
|
307
|
+
self.user.is_superuser = False
|
|
308
|
+
self.user.user_permissions.add(
|
|
309
|
+
Permission.objects.get(
|
|
310
|
+
content_type__app_label="wagtailadmin", codename="access_admin"
|
|
311
|
+
)
|
|
312
|
+
)
|
|
313
|
+
self.user.save()
|
|
314
|
+
response = self.client.get(self.preview_on_edit_url)
|
|
315
|
+
self.assertEqual(response.status_code, 302)
|
|
316
|
+
self.assertRedirects(response, reverse("wagtailadmin_home"))
|
|
317
|
+
|
|
265
318
|
def test_preview_on_create_clear_preview_data(self):
|
|
266
319
|
# Set a fake preview session data for the page
|
|
267
320
|
self.client.session[self.session_key_prefix] = "test data"
|
wagtail/test/testapp/urls.py
CHANGED
|
@@ -6,6 +6,7 @@ urlpatterns = [
|
|
|
6
6
|
path("bob-only-zone", views.bob_only_zone, name="testapp_bob_only_zone"),
|
|
7
7
|
path("messages/", views.message_test, name="testapp_message_test"),
|
|
8
8
|
path("test-index/", views.TestIndexView.as_view(), name="testapp_generic_index"),
|
|
9
|
+
path("test-create/", views.TestCreateView.as_view(), name="testapp_generic_create"),
|
|
9
10
|
path(
|
|
10
11
|
"test-edit/<str:pk>/", views.TestEditView.as_view(), name="testapp_generic_edit"
|
|
11
12
|
),
|
wagtail/test/testapp/views.py
CHANGED
|
@@ -13,7 +13,13 @@ from wagtail.admin.auth import user_passes_test
|
|
|
13
13
|
from wagtail.admin.filters import WagtailFilterSet
|
|
14
14
|
from wagtail.admin.panels import FieldPanel
|
|
15
15
|
from wagtail.admin.ui.tables import BooleanColumn, Column, UpdatedAtColumn
|
|
16
|
-
from wagtail.admin.views.generic import
|
|
16
|
+
from wagtail.admin.views.generic import (
|
|
17
|
+
CreateView,
|
|
18
|
+
DeleteView,
|
|
19
|
+
EditView,
|
|
20
|
+
IndexView,
|
|
21
|
+
InspectView,
|
|
22
|
+
)
|
|
17
23
|
from wagtail.admin.viewsets.base import ViewSet, ViewSetGroup
|
|
18
24
|
from wagtail.admin.viewsets.chooser import ChooserViewSet
|
|
19
25
|
from wagtail.admin.viewsets.model import ModelViewSet, ModelViewSetGroup
|
|
@@ -79,6 +85,14 @@ class CustomModelEditForm(forms.ModelForm):
|
|
|
79
85
|
fields = ("content",)
|
|
80
86
|
|
|
81
87
|
|
|
88
|
+
class TestCreateView(CreateView):
|
|
89
|
+
model = ModelWithStringTypePrimaryKey
|
|
90
|
+
fields = ["custom_id", "content"]
|
|
91
|
+
add_url_name = "testapp_generic_create"
|
|
92
|
+
edit_url_name = "testapp_generic_edit"
|
|
93
|
+
index_url_name = "testapp_generic_index"
|
|
94
|
+
|
|
95
|
+
|
|
82
96
|
class TestEditView(EditView):
|
|
83
97
|
model = ModelWithStringTypePrimaryKey
|
|
84
98
|
context_object_name = "test_object"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
wagtail/__init__.py,sha256=
|
|
1
|
+
wagtail/__init__.py,sha256=455kVsVQPyP85D2dUKMdH5mtqot-AS_yocdlgF-xx7w,724
|
|
2
2
|
wagtail/apps.py,sha256=38kXTdHoQzFnpUqDNxFpsqn2dut4V0u9rLOkhqCoYkc,713
|
|
3
3
|
wagtail/compat.py,sha256=5z6X9d-h_VUFt44kuZ-Cw00e9Be5vIXy7yqAdfuv3Mc,1452
|
|
4
4
|
wagtail/coreutils.py,sha256=MbFcVZjqUChdHMCa993X_RUwLJQNUGwpkTpzJOFdtgU,19822
|
|
@@ -478,7 +478,7 @@ wagtail/admin/templates/wagtailadmin/generic/confirm_unpublish.html,sha256=vkVfX
|
|
|
478
478
|
wagtail/admin/templates/wagtailadmin/generic/confirm_workflow_cancellation.html,sha256=xNblpxN3QwhtMnIRNKU0N1Ygn1VDpzb-j-drtaDSnG4,1411
|
|
479
479
|
wagtail/admin/templates/wagtailadmin/generic/create.html,sha256=U3O8eOcRK-dYIKLDKPwW9Y9YIDBPvFquP8Vm2mSRck4,47
|
|
480
480
|
wagtail/admin/templates/wagtailadmin/generic/edit.html,sha256=U3O8eOcRK-dYIKLDKPwW9Y9YIDBPvFquP8Vm2mSRck4,47
|
|
481
|
-
wagtail/admin/templates/wagtailadmin/generic/form.html,sha256=
|
|
481
|
+
wagtail/admin/templates/wagtailadmin/generic/form.html,sha256=2lD-f-95FKe6OIAiqlVEqFLi2I_ZewEg_bH_QIrJzFU,3944
|
|
482
482
|
wagtail/admin/templates/wagtailadmin/generic/index.html,sha256=k8RcssMS8XjCPCS0AUulRR4pOEjnzMuQlZyXub_5Geg,1626
|
|
483
483
|
wagtail/admin/templates/wagtailadmin/generic/index_results.html,sha256=nERPqMUtEjbwTnKsPevT0esF48FKHoiKcRn0Y5f_taY,718
|
|
484
484
|
wagtail/admin/templates/wagtailadmin/generic/inspect.html,sha256=0GCZH1f0IVmCvpOHqvENjGS6aWaozEReDr1UvAa7jTo,659
|
|
@@ -885,7 +885,7 @@ wagtail/admin/tests/test_templatetags.py,sha256=HCU2EZwRYSVTlD5-dzCYtlbuQBakx-WG
|
|
|
885
885
|
wagtail/admin/tests/test_upgrade_notification.py,sha256=GnUZ5Nugp9SHtefdGNIUKA1La7P2DXu5Z1-UkwGkcRI,5990
|
|
886
886
|
wagtail/admin/tests/test_userbar.py,sha256=m8nslAEJFQN-ExNup6ueIeDlQ1NTziD5AI-xF12tE7c,23811
|
|
887
887
|
wagtail/admin/tests/test_views.py,sha256=r9V1hvg8r32nKkAQL_suihXl2HQzFgLwwHfM8UsVSBU,9463
|
|
888
|
-
wagtail/admin/tests/test_views_generic.py,sha256=
|
|
888
|
+
wagtail/admin/tests/test_views_generic.py,sha256=v3tCOnv4282nW3LOU0AWmxRhQ17mLbUyt4--Gfji2FA,5492
|
|
889
889
|
wagtail/admin/tests/test_whats_new.py,sha256=Vptrf94ilJephOP3O7s1FKLtjNxFLCne6Bi4c_VlJzw,5570
|
|
890
890
|
wagtail/admin/tests/test_widgets.py,sha256=mksHAnFN-EAt-ayxfBRDk8Icu22nE9ji1ZuFW8ARZBM,26174
|
|
891
891
|
wagtail/admin/tests/test_workflows.py,sha256=5N7inW2m1AODVsqdo5bDzWld9bV--PXGqGb3sGoUDe0,188682
|
|
@@ -911,7 +911,7 @@ wagtail/admin/tests/pages/test_page_locking.py,sha256=7CMYaBVzbvSdsLMtXNOoVYnG0i
|
|
|
911
911
|
wagtail/admin/tests/pages/test_page_search.py,sha256=VTVOvgIH1IicUsuTCWHnKRKowMJBRWhAX8M7_YK1Tbg,13133
|
|
912
912
|
wagtail/admin/tests/pages/test_page_usage.py,sha256=5kdKxoffOuz8cnPNPsqQbisT4QwlNdgyJZAXKGZPAdg,5091
|
|
913
913
|
wagtail/admin/tests/pages/test_parent_page_chooser_view.py,sha256=W_cFg5qmbxdaXvR6hkhvPnbQmmnSWjmu3_I5HoIIHt4,6055
|
|
914
|
-
wagtail/admin/tests/pages/test_preview.py,sha256=
|
|
914
|
+
wagtail/admin/tests/pages/test_preview.py,sha256=Wnrk0Twh5-0QYB0uINPye4gquMx7qGvpvsoL1DFtoGg,42658
|
|
915
915
|
wagtail/admin/tests/pages/test_reorder_page.py,sha256=FTw5XLai3dcdb5LAbGDpJc5LGZzAyGXaRVNaC94-MCw,8755
|
|
916
916
|
wagtail/admin/tests/pages/test_revisions.py,sha256=mmMbazjzfCn644dujr-uGnsJ8UuHb2qM12RwlfyZiqQ,26340
|
|
917
917
|
wagtail/admin/tests/pages/test_unpublish_page.py,sha256=Vu2zq74xcwYPQeMFI9zN2mXh27Iee13LSwnmiALTQgo,9682
|
|
@@ -971,7 +971,7 @@ wagtail/admin/views/generic/mixins.py,sha256=rRpvawcFqUxQjE0fZ4zhB2TJNYCMgd_PTWI
|
|
|
971
971
|
wagtail/admin/views/generic/models.py,sha256=1ootlZ37eNg2F6YxXTWs3_RdBOar1SJtZ6DC3Ru-agg,52302
|
|
972
972
|
wagtail/admin/views/generic/multiple_upload.py,sha256=KiE9T9Uv_EuMr2_MbHzSWJ2W3uaw3djwAnUXgxsjJ38,13383
|
|
973
973
|
wagtail/admin/views/generic/permissions.py,sha256=LETkWYmN1DjGC8rNYXplkqSZj3TIHEdYf3iWFVZ2jbE,1788
|
|
974
|
-
wagtail/admin/views/generic/preview.py,sha256=
|
|
974
|
+
wagtail/admin/views/generic/preview.py,sha256=aAb0hRUHx9LTHJ6FeKA_8gNS6Ac6qbSWaw2nIpEy29A,8010
|
|
975
975
|
wagtail/admin/views/generic/usage.py,sha256=leJNFgfZ7tXugIFyuuQ-oMlBKmq0xlTCybH3WtozqnA,5085
|
|
976
976
|
wagtail/admin/views/generic/workflow.py,sha256=wx5EukIJPNNGEGmWFHlP21_hUUNkwiefp6qVd6LZrvY,9947
|
|
977
977
|
wagtail/admin/views/pages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -986,7 +986,7 @@ wagtail/admin/views/pages/listing.py,sha256=Fx7UMoJSMI1dxfpCWQ2FXVmM6zX4pReZvM8W
|
|
|
986
986
|
wagtail/admin/views/pages/lock.py,sha256=Z4FxvYyr0eDJj5kgoCJfk-WgwgXhip6_I2CabaG4J1c,1209
|
|
987
987
|
wagtail/admin/views/pages/move.py,sha256=l8DSb6EGXau6kdD8gVUo9e-E8lfrIlP72Fi4S43T2OI,5940
|
|
988
988
|
wagtail/admin/views/pages/ordering.py,sha256=cabaYVsfbHZoxNkGQUqP5klUSlnZDisSFbPko1mX8kM,1633
|
|
989
|
-
wagtail/admin/views/pages/preview.py,sha256=
|
|
989
|
+
wagtail/admin/views/pages/preview.py,sha256=YbZX-VWBeHg9nTrSJBeLDuJVy_mTyvXYu-dms2LqKeM,4519
|
|
990
990
|
wagtail/admin/views/pages/revisions.py,sha256=paEcUjkDDrGgGnQNhwgSM4uanGcLClxb7KlFlEunGEM,4651
|
|
991
991
|
wagtail/admin/views/pages/search.py,sha256=_OUbbXQfKNB6Qq2n1T95CE5liyVJwLFfb018GUPDiRM,5098
|
|
992
992
|
wagtail/admin/views/pages/unpublish.py,sha256=p_lYd6x8k35UlFIhrZzEjQ6m68qbiHAWyvZrgCg4EoY,3716
|
|
@@ -1056,7 +1056,7 @@ wagtail/contrib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
1056
1056
|
wagtail/contrib/forms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1057
1057
|
wagtail/contrib/forms/apps.py,sha256=OY2eHr8Jetf9FYnTTcfWX4XgiG_gWfSGS7ndwMuq5po,285
|
|
1058
1058
|
wagtail/contrib/forms/forms.py,sha256=l6acbaXKeeks-pcb6iUMb1XsWGqyQ8EIiwUm1ft2VH4,9735
|
|
1059
|
-
wagtail/contrib/forms/models.py,sha256=
|
|
1059
|
+
wagtail/contrib/forms/models.py,sha256=T2_mI0MPiHIId4GZYmJGSwhbaDnnHBSND-EfcVgN5nQ,12181
|
|
1060
1060
|
wagtail/contrib/forms/panels.py,sha256=zI3bFM1X5iT_fnxQUe5BWWN5iQKm6tEFEiaFhNRZcwk,1556
|
|
1061
1061
|
wagtail/contrib/forms/urls.py,sha256=VZ4LDq6SkdEi3iXL7zoxDRSNZeGS5ZSeiNUsfqZ-nOI,776
|
|
1062
1062
|
wagtail/contrib/forms/utils.py,sha256=Gu3WS-X37KQeDuHZliEwkhHJaqDgUwF1ObuVp3ai2fM,1279
|
|
@@ -1194,7 +1194,7 @@ wagtail/contrib/forms/templates/wagtailforms/panels/form_responses_panel.html,sh
|
|
|
1194
1194
|
wagtail/contrib/forms/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1195
1195
|
wagtail/contrib/forms/tests/test_forms.py,sha256=pyTRQjBW9tIInrxnV1_Zy5ACsNTpUlF6SnAfcgOAUWk,16094
|
|
1196
1196
|
wagtail/contrib/forms/tests/test_models.py,sha256=lcifi_nJHHD9toYVtIY3P-zh-rdCTsLQTgxvAyFKbMM,32465
|
|
1197
|
-
wagtail/contrib/forms/tests/test_views.py,sha256=
|
|
1197
|
+
wagtail/contrib/forms/tests/test_views.py,sha256=hRyzalYKmZHnIvoNSioaS4a1AIOzYtHbNc692bUs-ww,91625
|
|
1198
1198
|
wagtail/contrib/forms/tests/utils.py,sha256=OESefxdqGRgL1lDItVPSFNw_FJNB4X0PvozdvAhrpkc,6043
|
|
1199
1199
|
wagtail/contrib/frontend_cache/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1200
1200
|
wagtail/contrib/frontend_cache/apps.py,sha256=y-TyHADOpdCrIQ7zfnVD6OOxjo28lnBhPJeBtjlPih4,407
|
|
@@ -3541,7 +3541,7 @@ wagtail/snippets/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5N
|
|
|
3541
3541
|
wagtail/snippets/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3542
3542
|
wagtail/snippets/tests/test_locking.py,sha256=QdaRVuX47tCbwoA62KYNJm9qxH33ekKs-nai5UeYDp4,25370
|
|
3543
3543
|
wagtail/snippets/tests/test_management.py,sha256=GQw8HCZSJWny8giAUua_5-RstN7U_QGcsOkVuG72YHM,894
|
|
3544
|
-
wagtail/snippets/tests/test_preview.py,sha256=
|
|
3544
|
+
wagtail/snippets/tests/test_preview.py,sha256=2dlYUfEhtLAfXt5oUuJO3QU2PtJwUnE8Wca57Iy_fT4,30209
|
|
3545
3545
|
wagtail/snippets/tests/test_snippets.py,sha256=5gLoWnoInYMEbEtdxXzURLnMdnkx0vFtAWPOIouNrCI,235641
|
|
3546
3546
|
wagtail/snippets/tests/test_usage.py,sha256=3Re4NCdt0M4WfzvUruJmpYEV0FsZ7lWkyAw7ZLyc6Lw,8642
|
|
3547
3547
|
wagtail/snippets/tests/test_viewset.py,sha256=3bEF13xPsUO7eVldchBYs-MJpNj8WCkRvRgH4dDt2UY,66196
|
|
@@ -3661,8 +3661,8 @@ wagtail/test/testapp/forms.py,sha256=jDu_6eF5DzRF3ww-9hGLKCyE90InGLQoiwkTjPQX5qo
|
|
|
3661
3661
|
wagtail/test/testapp/media_forms.py,sha256=TVphjCtSfK90cl6p8lfz7hb5fUzAFmBb4KW0u3pOFa4,798
|
|
3662
3662
|
wagtail/test/testapp/models.py,sha256=CySwTJomn9HTaDKmpTZyIW1niA2Ici2x59l5ik8u2PY,73259
|
|
3663
3663
|
wagtail/test/testapp/rich_text.py,sha256=3KZmR9QVZJbyOZwv4sODlitY4CzEYdFh-6OACLo4dwU,1033
|
|
3664
|
-
wagtail/test/testapp/urls.py,sha256=
|
|
3665
|
-
wagtail/test/testapp/views.py,sha256=
|
|
3664
|
+
wagtail/test/testapp/urls.py,sha256=5md_TvVXc9RXjyL9FpBp1VoTqwqqueJPmdxMzKCQKLo,805
|
|
3665
|
+
wagtail/test/testapp/views.py,sha256=XYdiUw8Gq-4ygCRa97syTN7uNM_dHkMUqkVTL8xTIes,10340
|
|
3666
3666
|
wagtail/test/testapp/wagtail_hooks.py,sha256=uHPLe83QaIIFYa09Jt-tCDo08UP6PtVfBlM-UM7ZiKg,13181
|
|
3667
3667
|
wagtail/test/testapp/fixtures/test.json,sha256=jOmw2-IcVIyNniwJQ2EWh61Lsz7Y6ulCyx7iVJO9pPY,23547
|
|
3668
3668
|
wagtail/test/testapp/fixtures/test_empty.json,sha256=4t6c6tfYLPQL55Q9lrsNsnmVaeO3paSKpoLq0Tm6YTs,1116
|
|
@@ -4033,9 +4033,9 @@ wagtail/utils/timestamps.py,sha256=wqaIvdtZLUENAYiCP9jN8QPPeud305BlPNJiyTNvxkM,1
|
|
|
4033
4033
|
wagtail/utils/urlpatterns.py,sha256=RDhVScxdm-RV4HSMjWElyrbEoTPsXu841_SKMgoFKtY,629
|
|
4034
4034
|
wagtail/utils/utils.py,sha256=nQhfy-fOiZfUFr67kTX4nF_2VVH7_MDtjTDOzZdpPTE,1407
|
|
4035
4035
|
wagtail/utils/version.py,sha256=jYCDKIGJD3bZHTpgXMXu14oSBArQnf2WVU979D8V4b0,1552
|
|
4036
|
-
wagtail-7.0.
|
|
4037
|
-
wagtail-7.0.
|
|
4038
|
-
wagtail-7.0.
|
|
4039
|
-
wagtail-7.0.
|
|
4040
|
-
wagtail-7.0.
|
|
4041
|
-
wagtail-7.0.
|
|
4036
|
+
wagtail-7.0.4.dist-info/licenses/LICENSE,sha256=0aiL7_RJ2YkOjscmRI7opwmuURrY6h8MR0B24nrdRQU,1512
|
|
4037
|
+
wagtail-7.0.4.dist-info/METADATA,sha256=F5MVyoQRKCkfPBJ2UpHYmB2-B837gl8r49OceW3fQRk,12600
|
|
4038
|
+
wagtail-7.0.4.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
4039
|
+
wagtail-7.0.4.dist-info/entry_points.txt,sha256=R14Z0xKoufNcDaku0EWDKM-K8J4ap0EImO8C-df8HVM,53
|
|
4040
|
+
wagtail-7.0.4.dist-info/top_level.txt,sha256=zcKgvuRTi0gSgVzJ1qMoERCwhQ_i0n9bkyxza3oh9as,8
|
|
4041
|
+
wagtail-7.0.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|