wagtail 5.2.3__py3-none-any.whl → 5.2.5__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/panels/title_field_panel.py +5 -1
- wagtail/admin/static/wagtailadmin/js/vendor.js +1 -1
- wagtail/admin/tests/api/test_pages.py +26 -10
- wagtail/admin/tests/pages/test_page_search.py +39 -0
- wagtail/admin/tests/test_edit_handlers.py +19 -0
- wagtail/admin/tests/test_workflows.py +25 -1
- wagtail/admin/tests/viewsets/test_model_viewset.py +27 -0
- wagtail/admin/views/generic/history.py +17 -1
- wagtail/admin/views/generic/usage.py +8 -0
- wagtail/admin/views/pages/search.py +1 -0
- wagtail/admin/views/reports/workflows.py +19 -4
- wagtail/management/commands/convert_mariadb_uuids.py +43 -0
- wagtail/search/backends/elasticsearch5.py +9 -2
- wagtail/search/tests/test_elasticsearch5_backend.py +25 -0
- {wagtail-5.2.3.dist-info → wagtail-5.2.5.dist-info}/METADATA +1 -1
- {wagtail-5.2.3.dist-info → wagtail-5.2.5.dist-info}/RECORD +21 -20
- {wagtail-5.2.3.dist-info → wagtail-5.2.5.dist-info}/LICENSE +0 -0
- {wagtail-5.2.3.dist-info → wagtail-5.2.5.dist-info}/WHEEL +0 -0
- {wagtail-5.2.3.dist-info → wagtail-5.2.5.dist-info}/entry_points.txt +0 -0
- {wagtail-5.2.3.dist-info → wagtail-5.2.5.dist-info}/top_level.txt +0 -0
|
@@ -1309,7 +1309,7 @@ class TestCopyPageAction(AdminAPITestCase, TestCase):
|
|
|
1309
1309
|
self.assertEqual(response.status_code, 403)
|
|
1310
1310
|
content = json.loads(response.content.decode("utf-8"))
|
|
1311
1311
|
self.assertEqual(
|
|
1312
|
-
content, {"detail": "You do not have permission to
|
|
1312
|
+
content, {"detail": "You do not have permission to copy this page"}
|
|
1313
1313
|
)
|
|
1314
1314
|
|
|
1315
1315
|
def test_recursively_copy_into_self(self):
|
|
@@ -1347,7 +1347,7 @@ class TestCopyPageAction(AdminAPITestCase, TestCase):
|
|
|
1347
1347
|
self.assertEqual(response.status_code, 403)
|
|
1348
1348
|
content = json.loads(response.content.decode("utf-8"))
|
|
1349
1349
|
self.assertEqual(
|
|
1350
|
-
content, {"detail": "You do not have permission to
|
|
1350
|
+
content, {"detail": "You do not have permission to copy this page"}
|
|
1351
1351
|
)
|
|
1352
1352
|
|
|
1353
1353
|
def test_without_publish_permissions_at_destination_with_keep_live(self):
|
|
@@ -1374,7 +1374,12 @@ class TestCopyPageAction(AdminAPITestCase, TestCase):
|
|
|
1374
1374
|
self.assertEqual(response.status_code, 403)
|
|
1375
1375
|
content = json.loads(response.content.decode("utf-8"))
|
|
1376
1376
|
self.assertEqual(
|
|
1377
|
-
content,
|
|
1377
|
+
content,
|
|
1378
|
+
{
|
|
1379
|
+
"detail": (
|
|
1380
|
+
"You do not have permission to publish a page at the destination"
|
|
1381
|
+
)
|
|
1382
|
+
},
|
|
1378
1383
|
)
|
|
1379
1384
|
|
|
1380
1385
|
def test_respects_page_creation_rules(self):
|
|
@@ -1384,7 +1389,7 @@ class TestCopyPageAction(AdminAPITestCase, TestCase):
|
|
|
1384
1389
|
self.assertEqual(response.status_code, 403)
|
|
1385
1390
|
content = json.loads(response.content.decode("utf-8"))
|
|
1386
1391
|
self.assertEqual(
|
|
1387
|
-
content, {"detail": "You do not have permission to
|
|
1392
|
+
content, {"detail": "You do not have permission to copy this page"}
|
|
1388
1393
|
)
|
|
1389
1394
|
|
|
1390
1395
|
def test_copy_page_slug_in_use(self):
|
|
@@ -1511,7 +1516,7 @@ class TestDeletePageAction(AdminAPITestCase, TestCase):
|
|
|
1511
1516
|
self.assertEqual(response.status_code, 403)
|
|
1512
1517
|
content = json.loads(response.content.decode("utf-8"))
|
|
1513
1518
|
self.assertEqual(
|
|
1514
|
-
content, {"detail": "You do not have permission to
|
|
1519
|
+
content, {"detail": "You do not have permission to delete this page"}
|
|
1515
1520
|
)
|
|
1516
1521
|
|
|
1517
1522
|
# Page is still there
|
|
@@ -1559,7 +1564,7 @@ class TestPublishPageAction(AdminAPITestCase, TestCase):
|
|
|
1559
1564
|
self.assertEqual(response.status_code, 403)
|
|
1560
1565
|
content = json.loads(response.content.decode("utf-8"))
|
|
1561
1566
|
self.assertEqual(
|
|
1562
|
-
content, {"detail": "You do not have permission to
|
|
1567
|
+
content, {"detail": "You do not have permission to publish this page"}
|
|
1563
1568
|
)
|
|
1564
1569
|
|
|
1565
1570
|
def test_publish_alias_page(self):
|
|
@@ -1649,7 +1654,7 @@ class TestUnpublishPageAction(AdminAPITestCase, TestCase):
|
|
|
1649
1654
|
self.assertEqual(response.status_code, 403)
|
|
1650
1655
|
content = json.loads(response.content.decode("utf-8"))
|
|
1651
1656
|
self.assertEqual(
|
|
1652
|
-
content, {"detail": "You do not have permission to
|
|
1657
|
+
content, {"detail": "You do not have permission to unpublish this page"}
|
|
1653
1658
|
)
|
|
1654
1659
|
|
|
1655
1660
|
|
|
@@ -1681,7 +1686,13 @@ class TestMovePageAction(AdminAPITestCase, TestCase):
|
|
|
1681
1686
|
|
|
1682
1687
|
content = json.loads(response.content.decode("utf-8"))
|
|
1683
1688
|
self.assertEqual(
|
|
1684
|
-
content,
|
|
1689
|
+
content,
|
|
1690
|
+
{
|
|
1691
|
+
"detail": (
|
|
1692
|
+
"You do not have permission to move the page to the "
|
|
1693
|
+
"target specified."
|
|
1694
|
+
),
|
|
1695
|
+
},
|
|
1685
1696
|
)
|
|
1686
1697
|
|
|
1687
1698
|
def test_move_page_without_destination_page_id(self):
|
|
@@ -1884,7 +1895,12 @@ class TestCreatePageAliasAction(AdminAPITestCase, TestCase):
|
|
|
1884
1895
|
|
|
1885
1896
|
content = json.loads(response.content.decode("utf-8"))
|
|
1886
1897
|
self.assertEqual(
|
|
1887
|
-
content,
|
|
1898
|
+
content,
|
|
1899
|
+
{
|
|
1900
|
+
"detail": (
|
|
1901
|
+
"You do not have permission to publish a page at the destination"
|
|
1902
|
+
),
|
|
1903
|
+
},
|
|
1888
1904
|
)
|
|
1889
1905
|
|
|
1890
1906
|
|
|
@@ -1941,7 +1957,7 @@ class TestRevertToPageRevisionAction(AdminAPITestCase, TestCase):
|
|
|
1941
1957
|
|
|
1942
1958
|
content = json.loads(response.content.decode("utf-8"))
|
|
1943
1959
|
self.assertEqual(
|
|
1944
|
-
content, {"detail": "You do not have permission to
|
|
1960
|
+
content, {"detail": "You do not have permission to edit this page"}
|
|
1945
1961
|
)
|
|
1946
1962
|
|
|
1947
1963
|
def test_revert_to_page_revision_without_revision_id(self):
|
|
@@ -4,6 +4,7 @@ from django.contrib.auth.models import Permission
|
|
|
4
4
|
from django.core import management
|
|
5
5
|
from django.test import TransactionTestCase
|
|
6
6
|
from django.urls import reverse
|
|
7
|
+
from django.utils.http import urlencode
|
|
7
8
|
|
|
8
9
|
from wagtail.models import Page
|
|
9
10
|
from wagtail.test.testapp.models import EventIndex, SimplePage, SingleEventPage
|
|
@@ -33,10 +34,29 @@ class TestPageSearch(WagtailTestUtils, TransactionTestCase):
|
|
|
33
34
|
self.assertEqual(response.status_code, 200)
|
|
34
35
|
|
|
35
36
|
def test_search(self):
|
|
37
|
+
# Find root page
|
|
38
|
+
root_page = Page.objects.get(id=2)
|
|
39
|
+
|
|
40
|
+
# Create a page
|
|
41
|
+
new_page = root_page.add_child(
|
|
42
|
+
instance=SimplePage(
|
|
43
|
+
title="Hello from Cauldron Lake",
|
|
44
|
+
slug="bright-falls",
|
|
45
|
+
content="It's not a lake, it's an ocean",
|
|
46
|
+
live=True,
|
|
47
|
+
has_unpublished_changes=False,
|
|
48
|
+
)
|
|
49
|
+
)
|
|
50
|
+
|
|
36
51
|
response = self.get({"q": "Hello"})
|
|
37
52
|
self.assertEqual(response.status_code, 200)
|
|
38
53
|
self.assertTemplateUsed(response, "wagtailadmin/pages/search.html")
|
|
39
54
|
self.assertEqual(response.context["query_string"], "Hello")
|
|
55
|
+
next_url = urlencode({"next": reverse("wagtailadmin_pages:search")})
|
|
56
|
+
expected_new_page_copy_url = (
|
|
57
|
+
reverse("wagtailadmin_pages:copy", args=(new_page.pk,)) + f"?{next_url}"
|
|
58
|
+
)
|
|
59
|
+
self.assertContains(response, f'href="{expected_new_page_copy_url}"')
|
|
40
60
|
|
|
41
61
|
def test_search_searchable_fields(self):
|
|
42
62
|
# Find root page
|
|
@@ -62,6 +82,20 @@ class TestPageSearch(WagtailTestUtils, TransactionTestCase):
|
|
|
62
82
|
self.assertContains(response, "There is one matching page")
|
|
63
83
|
|
|
64
84
|
def test_ajax(self):
|
|
85
|
+
# Find root page
|
|
86
|
+
root_page = Page.objects.get(id=2)
|
|
87
|
+
|
|
88
|
+
# Create a page
|
|
89
|
+
new_page = root_page.add_child(
|
|
90
|
+
instance=SimplePage(
|
|
91
|
+
title="Hello from Cauldron Lake",
|
|
92
|
+
slug="bright-falls",
|
|
93
|
+
content="It's not a lake, it's an ocean",
|
|
94
|
+
live=True,
|
|
95
|
+
has_unpublished_changes=False,
|
|
96
|
+
)
|
|
97
|
+
)
|
|
98
|
+
|
|
65
99
|
response = self.get(
|
|
66
100
|
{"q": "Hello"}, url_name="wagtailadmin_pages:search_results"
|
|
67
101
|
)
|
|
@@ -69,6 +103,11 @@ class TestPageSearch(WagtailTestUtils, TransactionTestCase):
|
|
|
69
103
|
self.assertTemplateNotUsed(response, "wagtailadmin/pages/search.html")
|
|
70
104
|
self.assertTemplateUsed(response, "wagtailadmin/pages/search_results.html")
|
|
71
105
|
self.assertEqual(response.context["query_string"], "Hello")
|
|
106
|
+
next_url = urlencode({"next": reverse("wagtailadmin_pages:search")})
|
|
107
|
+
expected_new_page_copy_url = (
|
|
108
|
+
reverse("wagtailadmin_pages:copy", args=(new_page.pk,)) + f"?{next_url}"
|
|
109
|
+
)
|
|
110
|
+
self.assertContains(response, f'href="{expected_new_page_copy_url}"')
|
|
72
111
|
|
|
73
112
|
def test_pagination(self):
|
|
74
113
|
# page numbers in range should be accepted
|
|
@@ -2260,6 +2260,25 @@ class TestTitleFieldPanel(WagtailTestUtils, TestCase):
|
|
|
2260
2260
|
"focus->w-sync#check blur->w-sync#apply change->w-sync#apply keyup->w-sync#apply",
|
|
2261
2261
|
)
|
|
2262
2262
|
|
|
2263
|
+
def test_form_without_slugfield(self):
|
|
2264
|
+
html = self.get_edit_handler_html(ObjectList([TitleFieldPanel("title")]))
|
|
2265
|
+
|
|
2266
|
+
self.assertIsNotNone(html.find(attrs={"class": "w-panel title"}))
|
|
2267
|
+
|
|
2268
|
+
attrs = html.find("input").attrs
|
|
2269
|
+
self.assertEqual(attrs["data-w-sync-target-value"], "")
|
|
2270
|
+
|
|
2271
|
+
def test_form_with_readonly_slugfield(self):
|
|
2272
|
+
html = self.get_edit_handler_html(
|
|
2273
|
+
ObjectList([TitleFieldPanel("title"), FieldPanel("slug", read_only=True)]),
|
|
2274
|
+
instance=EventPage(),
|
|
2275
|
+
)
|
|
2276
|
+
|
|
2277
|
+
self.assertIsNotNone(html.find(attrs={"class": "w-panel title"}))
|
|
2278
|
+
|
|
2279
|
+
attrs = html.find("input").attrs
|
|
2280
|
+
self.assertEqual(attrs["data-w-sync-target-value"], "")
|
|
2281
|
+
|
|
2263
2282
|
def test_not_using_apply_actions_if_live(self):
|
|
2264
2283
|
"""
|
|
2265
2284
|
If the Page (or any model) has `live = True`, do not apply the actions by default.
|
|
@@ -2412,7 +2412,7 @@ class TestPageWorkflowReport(BasePageWorkflowTests):
|
|
|
2412
2412
|
self.submitter.first_name = "Sebastian"
|
|
2413
2413
|
self.submitter.last_name = "Mitter"
|
|
2414
2414
|
self.submitter.save()
|
|
2415
|
-
self.post("submit")
|
|
2415
|
+
self.post("submit", follow=True)
|
|
2416
2416
|
self.login(user=self.moderator)
|
|
2417
2417
|
|
|
2418
2418
|
def setup_workflow_and_tasks(self):
|
|
@@ -2545,11 +2545,35 @@ class TestPageWorkflowReport(BasePageWorkflowTests):
|
|
|
2545
2545
|
self.assertEqual(response.status_code, 200)
|
|
2546
2546
|
self.assertNotIn("Hello world!", content)
|
|
2547
2547
|
|
|
2548
|
+
def test_workflow_report_deleted(self):
|
|
2549
|
+
self.object.delete()
|
|
2550
|
+
response = self.client.get(reverse("wagtailadmin_reports:workflow"))
|
|
2551
|
+
self.assertEqual(response.status_code, 200)
|
|
2552
|
+
self.assertNotContains(response, "Hello world!")
|
|
2553
|
+
# test_workflow is only rendered in the filter, not the results
|
|
2554
|
+
self.assertContains(response, "test_workflow", count=1)
|
|
2555
|
+
self.assertNotContains(response, "Sebastian Mitter")
|
|
2556
|
+
self.assertNotContains(response, "March 31, 2020")
|
|
2557
|
+
|
|
2558
|
+
response = self.client.get(reverse("wagtailadmin_reports:workflow_tasks"))
|
|
2559
|
+
self.assertEqual(response.status_code, 200)
|
|
2560
|
+
self.assertNotContains(response, "Hello world!")
|
|
2561
|
+
|
|
2548
2562
|
|
|
2549
2563
|
class TestSnippetWorkflowReport(TestPageWorkflowReport, BaseSnippetWorkflowTests):
|
|
2550
2564
|
pass
|
|
2551
2565
|
|
|
2552
2566
|
|
|
2567
|
+
class TestNonLockableSnippetWorkflowReport(
|
|
2568
|
+
TestPageWorkflowReport, BaseSnippetWorkflowTests
|
|
2569
|
+
):
|
|
2570
|
+
# This model does not use LockableMixin, and it also does not have a
|
|
2571
|
+
# GenericRelation to WorkflowState and Revision, but it should not break
|
|
2572
|
+
# the report page.
|
|
2573
|
+
# See https://github.com/wagtail/wagtail/issues/11300 for more details.
|
|
2574
|
+
model = ModeratedModel
|
|
2575
|
+
|
|
2576
|
+
|
|
2553
2577
|
class TestPageNotificationPreferences(BasePageWorkflowTests):
|
|
2554
2578
|
def setUp(self):
|
|
2555
2579
|
super().setUp()
|
|
@@ -13,6 +13,7 @@ from django.utils.timezone import make_aware
|
|
|
13
13
|
from openpyxl import load_workbook
|
|
14
14
|
|
|
15
15
|
from wagtail.admin.admin_url_finder import AdminURLFinder
|
|
16
|
+
from wagtail.log_actions import log
|
|
16
17
|
from wagtail.models import ModelLogEntry
|
|
17
18
|
from wagtail.test.testapp.models import (
|
|
18
19
|
FeatureCompleteToy,
|
|
@@ -777,6 +778,18 @@ class TestBreadcrumbs(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
|
|
777
778
|
]
|
|
778
779
|
self.assertBreadcrumbsItemsRendered(items, response.content)
|
|
779
780
|
|
|
781
|
+
def test_history_view_pagination(self):
|
|
782
|
+
for i in range(25):
|
|
783
|
+
log(instance=self.object, action="wagtail.edit", user=self.user)
|
|
784
|
+
|
|
785
|
+
history_url = reverse(
|
|
786
|
+
"feature_complete_toy:history",
|
|
787
|
+
args=(quote(self.object.pk),),
|
|
788
|
+
)
|
|
789
|
+
response = self.client.get(history_url)
|
|
790
|
+
self.assertContains(response, "Page 1 of 2")
|
|
791
|
+
self.assertContains(response, f'<a href="{history_url}?p=2">')
|
|
792
|
+
|
|
780
793
|
def test_usage_view(self):
|
|
781
794
|
usage_url = reverse(
|
|
782
795
|
"feature_complete_toy:usage",
|
|
@@ -801,6 +814,20 @@ class TestBreadcrumbs(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
|
|
801
814
|
]
|
|
802
815
|
self.assertBreadcrumbsItemsRendered(items, response.content)
|
|
803
816
|
|
|
817
|
+
def test_usage_view_pagination(self):
|
|
818
|
+
for i in range(25):
|
|
819
|
+
VariousOnDeleteModel.objects.create(
|
|
820
|
+
text=f"Toybox {i}", cascading_toy=self.object
|
|
821
|
+
)
|
|
822
|
+
|
|
823
|
+
usage_url = reverse(
|
|
824
|
+
"feature_complete_toy:usage",
|
|
825
|
+
args=(quote(self.object.pk),),
|
|
826
|
+
)
|
|
827
|
+
response = self.client.get(usage_url)
|
|
828
|
+
self.assertContains(response, "Page 1 of 2")
|
|
829
|
+
self.assertContains(response, f'<a href="{usage_url}?p=2">')
|
|
830
|
+
|
|
804
831
|
def test_inspect_view(self):
|
|
805
832
|
inspect_url = reverse(
|
|
806
833
|
"feature_complete_toy:inspect",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from datetime import timedelta
|
|
2
2
|
|
|
3
3
|
import django_filters
|
|
4
|
-
from django.contrib.admin.utils import unquote
|
|
4
|
+
from django.contrib.admin.utils import quote, unquote
|
|
5
5
|
from django.core.paginator import Paginator
|
|
6
6
|
from django.shortcuts import get_object_or_404
|
|
7
7
|
from django.urls import reverse
|
|
@@ -57,6 +57,8 @@ class HistoryView(IndexView):
|
|
|
57
57
|
any_permission_required = ["add", "change", "delete"]
|
|
58
58
|
page_title = gettext_lazy("History")
|
|
59
59
|
results_template_name = "wagtailadmin/generic/history_results.html"
|
|
60
|
+
history_url_name = None
|
|
61
|
+
history_results_url_name = None
|
|
60
62
|
header_icon = "history"
|
|
61
63
|
is_searchable = False
|
|
62
64
|
paginate_by = 20
|
|
@@ -97,6 +99,20 @@ class HistoryView(IndexView):
|
|
|
97
99
|
{"url": "", "label": gettext("History")},
|
|
98
100
|
]
|
|
99
101
|
|
|
102
|
+
def get_history_url(self, instance):
|
|
103
|
+
if self.history_url_name:
|
|
104
|
+
return reverse(self.history_url_name, args=(quote(instance.pk),))
|
|
105
|
+
|
|
106
|
+
def get_history_results_url(self, instance):
|
|
107
|
+
if self.history_results_url_name:
|
|
108
|
+
return reverse(self.history_results_url_name, args=(quote(instance.pk),))
|
|
109
|
+
|
|
110
|
+
def get_index_url(self): # used for pagination links
|
|
111
|
+
return self.get_history_url(self.object)
|
|
112
|
+
|
|
113
|
+
def get_index_results_url(self):
|
|
114
|
+
return self.get_history_results_url(self.object)
|
|
115
|
+
|
|
100
116
|
def get_context_data(self, *args, object_list=None, **kwargs):
|
|
101
117
|
context = super().get_context_data(*args, object_list=object_list, **kwargs)
|
|
102
118
|
context["object"] = self.object
|
|
@@ -24,6 +24,7 @@ class UsageView(PermissionCheckedMixin, BaseObjectMixin, BaseListingView):
|
|
|
24
24
|
page_title = gettext_lazy("Usage of")
|
|
25
25
|
index_url_name = None
|
|
26
26
|
edit_url_name = None
|
|
27
|
+
usage_url_name = None
|
|
27
28
|
permission_required = "change"
|
|
28
29
|
|
|
29
30
|
def setup(self, request, *args, **kwargs):
|
|
@@ -40,6 +41,13 @@ class UsageView(PermissionCheckedMixin, BaseObjectMixin, BaseListingView):
|
|
|
40
41
|
return object.get_latest_revision_as_object()
|
|
41
42
|
return object
|
|
42
43
|
|
|
44
|
+
def get_usage_url(self, instance):
|
|
45
|
+
if self.usage_url_name:
|
|
46
|
+
return reverse(self.usage_url_name, args=(quote(instance.pk),))
|
|
47
|
+
|
|
48
|
+
def get_index_url(self): # used for pagination links
|
|
49
|
+
return self.get_usage_url(self.object)
|
|
50
|
+
|
|
43
51
|
def get_page_subtitle(self):
|
|
44
52
|
return get_latest_str(self.object)
|
|
45
53
|
|
|
@@ -165,6 +165,7 @@ class BaseSearchView(PermissionCheckedMixin, BaseListingView):
|
|
|
165
165
|
def get_table_kwargs(self):
|
|
166
166
|
kwargs = super().get_table_kwargs()
|
|
167
167
|
kwargs["show_locale_labels"] = self.show_locale_labels
|
|
168
|
+
kwargs["actions_next_url"] = self.get_index_url()
|
|
168
169
|
return kwargs
|
|
169
170
|
|
|
170
171
|
def get_context_data(self, **kwargs: Any) -> Dict[str, Any]:
|
|
@@ -187,10 +187,16 @@ class WorkflowView(ReportView):
|
|
|
187
187
|
content_type_id__in=get_editable_content_type_ids(self.request)
|
|
188
188
|
)
|
|
189
189
|
|
|
190
|
-
return
|
|
191
|
-
|
|
190
|
+
return (
|
|
191
|
+
WorkflowState.objects.filter(editable_pages | editable_objects)
|
|
192
|
+
.select_related("workflow", "requested_by")
|
|
193
|
+
.prefetch_related("content_object", "content_object__latest_revision")
|
|
194
|
+
.order_by("-created_at")
|
|
192
195
|
)
|
|
193
196
|
|
|
197
|
+
def decorate_paginated_queryset(self, object_list):
|
|
198
|
+
return [obj for obj in object_list if obj.content_object]
|
|
199
|
+
|
|
194
200
|
|
|
195
201
|
class WorkflowTasksView(ReportView):
|
|
196
202
|
template_name = "wagtailadmin/reports/workflow_tasks.html"
|
|
@@ -248,6 +254,15 @@ class WorkflowTasksView(ReportView):
|
|
|
248
254
|
self.request
|
|
249
255
|
)
|
|
250
256
|
)
|
|
251
|
-
return
|
|
252
|
-
|
|
257
|
+
return (
|
|
258
|
+
TaskState.objects.filter(editable_pages | editable_objects)
|
|
259
|
+
.select_related("workflow_state", "task")
|
|
260
|
+
.prefetch_related(
|
|
261
|
+
"workflow_state__content_object",
|
|
262
|
+
"workflow_state__content_object__latest_revision",
|
|
263
|
+
)
|
|
264
|
+
.order_by("-started_at")
|
|
253
265
|
)
|
|
266
|
+
|
|
267
|
+
def decorate_paginated_queryset(self, object_list):
|
|
268
|
+
return [obj for obj in object_list if obj.workflow_state.content_object]
|
|
@@ -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")
|
|
@@ -653,8 +653,15 @@ class ElasticsearchAutocompleteQueryCompilerImpl:
|
|
|
653
653
|
if len(fields) == 0:
|
|
654
654
|
# No fields. Return a query that'll match nothing
|
|
655
655
|
return {"bool": {"mustNot": {"match_all": {}}}}
|
|
656
|
-
|
|
657
|
-
|
|
656
|
+
elif isinstance(self.query, PlainText):
|
|
657
|
+
return self._compile_plaintext_query(self.query, fields)
|
|
658
|
+
elif isinstance(self.query, MatchAll):
|
|
659
|
+
return {"match_all": {}}
|
|
660
|
+
else:
|
|
661
|
+
raise NotImplementedError(
|
|
662
|
+
"`%s` is not supported for autocomplete queries."
|
|
663
|
+
% self.query.__class__.__name__
|
|
664
|
+
)
|
|
658
665
|
|
|
659
666
|
|
|
660
667
|
class Elasticsearch5AutocompleteQueryCompiler(
|
|
@@ -70,6 +70,31 @@ class TestElasticsearch5SearchQuery(TestCase):
|
|
|
70
70
|
}
|
|
71
71
|
self.assertDictEqual(query_compiler.get_query(), expected_result)
|
|
72
72
|
|
|
73
|
+
def test_match_all_autocomplete(self):
|
|
74
|
+
# Create a query
|
|
75
|
+
query = self.autocomplete_query_compiler_class(
|
|
76
|
+
models.Book.objects.all(), MATCH_ALL
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
# Check it
|
|
80
|
+
expected_result = {
|
|
81
|
+
"bool": {
|
|
82
|
+
"filter": {"match": {"content_type": "searchtests.Book"}},
|
|
83
|
+
"must": {"match_all": {}},
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
self.assertDictEqual(query.get_query(), expected_result)
|
|
87
|
+
|
|
88
|
+
def test_non_supported_queries_autocomplete(self):
|
|
89
|
+
# Create a query
|
|
90
|
+
query = self.autocomplete_query_compiler_class(
|
|
91
|
+
models.Book.objects.all(), Fuzzy("Hello")
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
# Check it
|
|
95
|
+
with self.assertRaises(NotImplementedError):
|
|
96
|
+
query.get_query()
|
|
97
|
+
|
|
73
98
|
def test_match_all(self):
|
|
74
99
|
# Create a query
|
|
75
100
|
query_compiler = self.query_compiler_class(models.Book.objects.all(), MATCH_ALL)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
wagtail/__init__.py,sha256=
|
|
1
|
+
wagtail/__init__.py,sha256=KYmHJ6c9rsbNHoePtUu5AJdDUqxY5EDr_WGSAGWkFlc,724
|
|
2
2
|
wagtail/apps.py,sha256=38kXTdHoQzFnpUqDNxFpsqn2dut4V0u9rLOkhqCoYkc,713
|
|
3
3
|
wagtail/compat.py,sha256=L41FhlX4xy5KgTdJ63smtM78mtKf1mxkPeOs8kyOwS0,538
|
|
4
4
|
wagtail/coreutils.py,sha256=ZlmtoHC5YzXmhdKi13QkCSmBryAmS7k8s5jgQjahpEQ,20660
|
|
@@ -334,7 +334,7 @@ wagtail/admin/panels/page_chooser_panel.py,sha256=aOOvkbN0ONy2aeJWcsAc926O1NFttk
|
|
|
334
334
|
wagtail/admin/panels/page_utils.py,sha256=dBvYHofWP7-yWMY2KcmSVsC4-JJWdr9nNM5cQxUb4Mc,2297
|
|
335
335
|
wagtail/admin/panels/publishing_panel.py,sha256=zMUYL1ybwoiv3f1Za7pCOBKbzWHeA7dshTWV8Q3SN0A,2452
|
|
336
336
|
wagtail/admin/panels/signal_handlers.py,sha256=BOpF4PKqvGqz1qarMM2P7uzJaELDF9uYMOieXY2Xh-o,705
|
|
337
|
-
wagtail/admin/panels/title_field_panel.py,sha256=
|
|
337
|
+
wagtail/admin/panels/title_field_panel.py,sha256=md9ZV0IImKNKavALsQjVrO3kijKhHF9HUOknKXB4mEA,4868
|
|
338
338
|
wagtail/admin/rich_text/__init__.py,sha256=HcMHRljUQSC4nomdfxT44cNrTtdFp-OHMOlpzb_Fnhs,965
|
|
339
339
|
wagtail/admin/rich_text/converters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
340
340
|
wagtail/admin/rich_text/converters/contentstate.py,sha256=kdeaIioSf3bbKD7bAoESdQHirXzC6nzJdSAehQAyTWA,4927
|
|
@@ -395,7 +395,7 @@ wagtail/admin/static/wagtailadmin/js/task-chooser-modal.js,sha256=Bc2tiZEZUCmYPZ
|
|
|
395
395
|
wagtail/admin/static/wagtailadmin/js/task-chooser.js,sha256=24TD8x4mFBUdTznitFx-wlAF0lg89aEikMbo6ctwpOo,1930
|
|
396
396
|
wagtail/admin/static/wagtailadmin/js/userbar.js,sha256=N08FC9IY7z0lJGjZGYkmrsYyq6fsanJ0uNFJBQpi1nE,604331
|
|
397
397
|
wagtail/admin/static/wagtailadmin/js/userbar.js.LICENSE.txt,sha256=BG16-0U6KNp-5ETc68CysKoj38lQWBs8-ISO5mjz6BQ,444
|
|
398
|
-
wagtail/admin/static/wagtailadmin/js/vendor.js,sha256=
|
|
398
|
+
wagtail/admin/static/wagtailadmin/js/vendor.js,sha256=AVkXvHdPXSXaXyTZKnD001ipRlF9CU-DB1UOMorbdis,268921
|
|
399
399
|
wagtail/admin/static/wagtailadmin/js/vendor.js.LICENSE.txt,sha256=0SPOUf-7WUvxOSTxvbXQSakggB31Oz09ZyhGCKymUaU,1487
|
|
400
400
|
wagtail/admin/static/wagtailadmin/js/wagtailadmin.js,sha256=NhHDxr6iOtdaREbuGWsckEmcp9AwAtROBN4bnCOoi4Q,11558
|
|
401
401
|
wagtail/admin/static/wagtailadmin/js/workflow-action.js,sha256=6pdfZFM19njXdpC0YvHCsvZuYdV5pt8wQknAeFTBWXk,3031
|
|
@@ -846,7 +846,7 @@ wagtail/admin/tests/test_compare.py,sha256=NpPtmLNWdArAp91-OIFRozcXjKA1FUV5tgI3r
|
|
|
846
846
|
wagtail/admin/tests/test_contentstate.py,sha256=C8hzm30KP6KJH6Q7CzNojamPl_78aUdqRkq3VybPhGE,73011
|
|
847
847
|
wagtail/admin/tests/test_dbwhitelister.py,sha256=uKlqTviGnlD1dClroq9Y1wOXLIfZWA4LvsfCtYW5S-E,6069
|
|
848
848
|
wagtail/admin/tests/test_dismissibles.py,sha256=JKXt8SucZcAp4IkKNMQU7-qrm8oMu8vDKnyTdTUbAYo,2671
|
|
849
|
-
wagtail/admin/tests/test_edit_handlers.py,sha256=
|
|
849
|
+
wagtail/admin/tests/test_edit_handlers.py,sha256=yURSoqfc5bHJatbPuXVP-dnjY5JXSC_NqTgFcd8KznI,99249
|
|
850
850
|
wagtail/admin/tests/test_filters.py,sha256=PVRp_XbxggZ0IT-ZnZJZF0SZVxAtV39nZcDSSQxtBFU,3843
|
|
851
851
|
wagtail/admin/tests/test_forms.py,sha256=RsIFiDlE5b3Wbm7bJAfvSjElM8qA-Iaxrzqwmiq_kW0,994
|
|
852
852
|
wagtail/admin/tests/test_html_ruleset.py,sha256=QCSL8JGVyHQapCdGSgCFUTlsIgi2p8weugyQo4A-X7k,1743
|
|
@@ -869,12 +869,12 @@ wagtail/admin/tests/test_views.py,sha256=1i8N2Ao6rIbCY9wRXqNQzfSsAojnFxJ1TtI7JYf
|
|
|
869
869
|
wagtail/admin/tests/test_views_generic.py,sha256=FQJLz9aD7OtToCCwtlYs-Bu_0BxSM99R-jGE4ZPnfAM,2934
|
|
870
870
|
wagtail/admin/tests/test_whats_new.py,sha256=Vptrf94ilJephOP3O7s1FKLtjNxFLCne6Bi4c_VlJzw,5570
|
|
871
871
|
wagtail/admin/tests/test_widgets.py,sha256=3NIcu5Ktx6i5kAn8kSdW3HBg-SSVi8BspR-THj8aQ0Y,24656
|
|
872
|
-
wagtail/admin/tests/test_workflows.py,sha256=
|
|
872
|
+
wagtail/admin/tests/test_workflows.py,sha256=f2zd-Baa0ZW3zA-WztgKTAGLkwksUlAQRdA6osnWmdU,145781
|
|
873
873
|
wagtail/admin/tests/tests.py,sha256=GveGPLq49kvtr6J6Qz1-Cv1YHgjPxGk_amOgTeNslaU,22323
|
|
874
874
|
wagtail/admin/tests/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
875
875
|
wagtail/admin/tests/api/test_documents.py,sha256=2dfjTi6Bj3otRQ-ok9f3rwl-HpSmprfcmhWyYPDnXcs,5051
|
|
876
876
|
wagtail/admin/tests/api/test_images.py,sha256=JTVOPWDeI5y1dZfuL1wS_kXuNC2q45QoMpflSTtvreI,9304
|
|
877
|
-
wagtail/admin/tests/api/test_pages.py,sha256=
|
|
877
|
+
wagtail/admin/tests/api/test_pages.py,sha256=30_NuekkimRUJX0Lr6eekP-9Wf69-R_YkKiMt59lpms,71794
|
|
878
878
|
wagtail/admin/tests/api/utils.py,sha256=VW2E7P-Yq-n6rsgvRhwXk3Tuyic8uVIx6xcFZV5yoN4,236
|
|
879
879
|
wagtail/admin/tests/pages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
880
880
|
wagtail/admin/tests/pages/test_content_type_use_view.py,sha256=4ekBbMbIjpvEW7cmXuy2bP2tmI3rUNk1sx6cL7A_EW4,1336
|
|
@@ -888,7 +888,7 @@ wagtail/admin/tests/pages/test_explorer_view.py,sha256=cKMfvtWIVpsj312WW9B4AQCdP
|
|
|
888
888
|
wagtail/admin/tests/pages/test_moderation.py,sha256=tqovSSM6skG0AdV2ED65C5s7WnSJ5aHMyIZn87aqFiE,19241
|
|
889
889
|
wagtail/admin/tests/pages/test_move_page.py,sha256=o-2onhDQ6eb6oqpSL29D8_r-zr-ubhUNb_exuVo4dtI,10175
|
|
890
890
|
wagtail/admin/tests/pages/test_page_locking.py,sha256=7CMYaBVzbvSdsLMtXNOoVYnG0iSf7RMedFmGMRdguf8,11766
|
|
891
|
-
wagtail/admin/tests/pages/test_page_search.py,sha256=
|
|
891
|
+
wagtail/admin/tests/pages/test_page_search.py,sha256=HdcZr41y72YDl3X9qWgEqMWdBFcM7KgW3X-ZgbA7Qgg,12707
|
|
892
892
|
wagtail/admin/tests/pages/test_page_usage.py,sha256=tXaY1nuPAPJKofBsUGkzgD0fuHpBbpceFlE_toG4kZU,2745
|
|
893
893
|
wagtail/admin/tests/pages/test_preview.py,sha256=iOPpLg0WWlMihnJ5-w5c-Sw91BvahPXMwaH2BqeixfQ,25191
|
|
894
894
|
wagtail/admin/tests/pages/test_reorder_page.py,sha256=71G4x9n6mgLbHrit5Hvk-it5SoRlkhwVo8nC4MLJiH8,5809
|
|
@@ -908,7 +908,7 @@ wagtail/admin/tests/ui/test_tables.py,sha256=LSZu_E8pD7l4yJz4YjJlZ0vdk1edkHdHejV
|
|
|
908
908
|
wagtail/admin/tests/viewsets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
909
909
|
wagtail/admin/tests/viewsets/test_base_viewset.py,sha256=_6DhpxiinfXr-wjQfh0tcL1skZi1KXVlZLJpxCwazog,1537
|
|
910
910
|
wagtail/admin/tests/viewsets/test_chooser_viewset.py,sha256=fIoBQ3u_J-ZhWvpATq7BLEzCet7_hOl383xGIgFtf7E,2039
|
|
911
|
-
wagtail/admin/tests/viewsets/test_model_viewset.py,sha256=
|
|
911
|
+
wagtail/admin/tests/viewsets/test_model_viewset.py,sha256=xK11mvtyCD7DU9bNzVkIHuC2m1Pn5pAoKbKyWTGhMTI,50082
|
|
912
912
|
wagtail/admin/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
913
913
|
wagtail/admin/ui/components.py,sha256=He-K0puoWcxgH_vyXfO2OoO9iSo-pCTM-aVBqYHSrFs,1074
|
|
914
914
|
wagtail/admin/ui/fields.py,sha256=QQBV9L8w6L5w8E6DG8LKqrlIzz1K5leFSxfM67v6L1Q,1377
|
|
@@ -940,14 +940,14 @@ wagtail/admin/views/bulk_action/registry.py,sha256=e9-rN9TdHUmRwDfTeauvPUjE6p3ip
|
|
|
940
940
|
wagtail/admin/views/generic/__init__.py,sha256=_FnNGhm9fVAblGcipJ0DLyqKZ3syQYG3v4OZK6qOR-4,650
|
|
941
941
|
wagtail/admin/views/generic/base.py,sha256=xm3Z2jnHkTWMWdZKlZ68yjeaIfcTwTPYndI7-uhfAV4,7056
|
|
942
942
|
wagtail/admin/views/generic/chooser.py,sha256=pjOYGcYBHc1ZkZJ4LWcHkoGNQ7U7GdKBsJZ0vyOO4kc,18061
|
|
943
|
-
wagtail/admin/views/generic/history.py,sha256=
|
|
943
|
+
wagtail/admin/views/generic/history.py,sha256=1agfpkggAJb6-2P0tFj0CVphtZ8fynlcHSwLF_NlQ08,10269
|
|
944
944
|
wagtail/admin/views/generic/lock.py,sha256=dvZ613n3itNAhO3zdQzGRewm2kH-dyemx-LSuUC2AHM,1435
|
|
945
945
|
wagtail/admin/views/generic/mixins.py,sha256=Gxt02gof4SRdEGtUkWBygiDK01OsmhL-7nZK00fAbAI,28123
|
|
946
946
|
wagtail/admin/views/generic/models.py,sha256=XthJ6TaXDXvlxWCRMmNXGAGBwlqGfdW60TzmH9h0sJ4,50194
|
|
947
947
|
wagtail/admin/views/generic/multiple_upload.py,sha256=rgf3uXZShyZ_2rnidfk_tnU4YhHcXyPwrIKMKWIk78s,13031
|
|
948
948
|
wagtail/admin/views/generic/permissions.py,sha256=yOZFjz9pteBTnI2KayW-lYOu4mCl-kDDGjN029AptzA,1477
|
|
949
949
|
wagtail/admin/views/generic/preview.py,sha256=9tvUJoz55b0bKY4vvfqnDMNke3TTeSPaEamvrICYR9Q,5655
|
|
950
|
-
wagtail/admin/views/generic/usage.py,sha256=
|
|
950
|
+
wagtail/admin/views/generic/usage.py,sha256=CVdvz47WOr9xfYu5RaZltUPJII5VyG5eMLkQtDQ1S8U,4531
|
|
951
951
|
wagtail/admin/views/generic/workflow.py,sha256=u8mv-rdFeO0UmDaWVzzwtlXRaTZ_ZQzTEl1dwMtW-r8,9429
|
|
952
952
|
wagtail/admin/views/pages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
953
953
|
wagtail/admin/views/pages/convert_alias.py,sha256=hWKn1Uc2w4Z5ciq_ncsznRihiRXLFOgC2mNNFUgI7bM,1858
|
|
@@ -963,7 +963,7 @@ wagtail/admin/views/pages/move.py,sha256=tk2AT98mb3RcjjvvCEIczhw4orAzakmXCbdV4LB
|
|
|
963
963
|
wagtail/admin/views/pages/ordering.py,sha256=cabaYVsfbHZoxNkGQUqP5klUSlnZDisSFbPko1mX8kM,1633
|
|
964
964
|
wagtail/admin/views/pages/preview.py,sha256=kMizr-BU4oMHoXhHm7SmkPWBUNa6kq3eXZXj2eQ1yMI,3728
|
|
965
965
|
wagtail/admin/views/pages/revisions.py,sha256=6AVJcSo00Vyz8nLgeqAXOVI0MplvDTlvtyttDUSxMKY,6627
|
|
966
|
-
wagtail/admin/views/pages/search.py,sha256=
|
|
966
|
+
wagtail/admin/views/pages/search.py,sha256=WAjOoIrA8UM5XY4kBOve3c_wlMTPFDfn2jy6ZgWVO0E,6129
|
|
967
967
|
wagtail/admin/views/pages/unpublish.py,sha256=p_lYd6x8k35UlFIhrZzEjQ6m68qbiHAWyvZrgCg4EoY,3716
|
|
968
968
|
wagtail/admin/views/pages/usage.py,sha256=Xo3tdAH7n_VYjkEHzNtvUCcRWYL_fqb8ik1BVmqjrSU,2867
|
|
969
969
|
wagtail/admin/views/pages/utils.py,sha256=TcZQmy-WQ2SJVeitqKz1kEJb5Svb80qg-ET9SAjMub8,123
|
|
@@ -979,7 +979,7 @@ wagtail/admin/views/reports/aging_pages.py,sha256=AgdoEXa5Y8Gvfv6DpCiZV-A6YSF5Vk
|
|
|
979
979
|
wagtail/admin/views/reports/audit_logging.py,sha256=YAcNFGgVhUTp-XX0QZ8vuTKdiI3TLpMctdOAra3f0mY,8350
|
|
980
980
|
wagtail/admin/views/reports/base.py,sha256=ePpmLbRS5wsH3Z_02sC8x97S3p1uoWlIOffBtrw2f1E,1581
|
|
981
981
|
wagtail/admin/views/reports/locked_pages.py,sha256=9CVqHRYODp3Y3gw1IE4Q4M6iizmgXZCzQcD7o-5FtcQ,2206
|
|
982
|
-
wagtail/admin/views/reports/workflows.py,sha256=
|
|
982
|
+
wagtail/admin/views/reports/workflows.py,sha256=25KeVcZvApN4Xhah-fpLdObeFg3M6eHYl9lZSqM7WCQ,8899
|
|
983
983
|
wagtail/admin/viewsets/__init__.py,sha256=k_ZRVEmUEHmj7mVPJSTfJGDlsauTLX6loPPN0aD2v14,1476
|
|
984
984
|
wagtail/admin/viewsets/base.py,sha256=BNEM5XeX7TPetydJ7Dhh3qFRCDrCt8HlgN6e8JE_ws8,4998
|
|
985
985
|
wagtail/admin/viewsets/chooser.py,sha256=t9fzFyilR_5kYfTls4s9N-WYuwwniLZOlvkZ0-R0McQ,9356
|
|
@@ -3018,6 +3018,7 @@ wagtail/locales/templates/wagtaillocales/create.html,sha256=rOJbRZ9Y6Nf3oAjGIgRv
|
|
|
3018
3018
|
wagtail/locales/templates/wagtaillocales/edit.html,sha256=Z6BKLxPMJzIBOZW-X2pmBh5r2dGQOP4fm5PEXxscUjQ,411
|
|
3019
3019
|
wagtail/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3020
3020
|
wagtail/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3021
|
+
wagtail/management/commands/convert_mariadb_uuids.py,sha256=J-qLmgxq2jgciJUtz6bBsTv-7OUHLgXpAG4Br8QVdbc,1568
|
|
3021
3022
|
wagtail/management/commands/create_log_entries_from_revisions.py,sha256=0FnmvrUo9jW1N1OaB9DA1SzIT7e2YYiPn6ATX4Ak9Ys,5020
|
|
3022
3023
|
wagtail/management/commands/fixtree.py,sha256=O5mwQ-k4-8Zq2e47mbBtJjJ_ODOHFlA_MOl8XxIFdmU,6786
|
|
3023
3024
|
wagtail/management/commands/move_pages.py,sha256=SZVk8AwDJQOROr4lZ56jM9KzryZe31ZBTUJib_u8x2w,852
|
|
@@ -3176,7 +3177,7 @@ wagtail/search/signal_handlers.py,sha256=Md4dhmwLF7kX7YLG-MsqTLQ6NdfkFIavBJ9n5Os
|
|
|
3176
3177
|
wagtail/search/utils.py,sha256=PnF65FM5Udc7mZ8J2oBMJ15T6vYGL0N69awp_RgEDmc,6210
|
|
3177
3178
|
wagtail/search/backends/__init__.py,sha256=nJEc435WnprL13v7OwcUCyHz0CTXMCMar9xTRqn1rH8,3455
|
|
3178
3179
|
wagtail/search/backends/base.py,sha256=M7lyovOz2Wau_UwjyEk7AYeQOLt6Q3Lm2hUHDUoEVNg,16806
|
|
3179
|
-
wagtail/search/backends/elasticsearch5.py,sha256=
|
|
3180
|
+
wagtail/search/backends/elasticsearch5.py,sha256=lfhUvXUafpmnw0kqdZVr9LBSUMjUuehMkixzj6rYYls,39018
|
|
3180
3181
|
wagtail/search/backends/elasticsearch6.py,sha256=L9B3rh1T9q5rFjtWh8CRgntSmoMbv5CVGTGEQIJmRpM,9048
|
|
3181
3182
|
wagtail/search/backends/elasticsearch7.py,sha256=hpjj_SA5yjTs2lrjTguI1o1XVepXqgO-1_XWwhLiiUk,4864
|
|
3182
3183
|
wagtail/search/backends/elasticsearch8.py,sha256=n3y05d_atzbnkaM4F1BXp3OhayE-J6uzfggYBdw2rBo,3750
|
|
@@ -3309,7 +3310,7 @@ wagtail/search/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
|
|
|
3309
3310
|
wagtail/search/tests/elasticsearch_common_tests.py,sha256=aifEijThsfzK7NYwbvjVdr36fW_ckXMesHtX-tDwPpw,7817
|
|
3310
3311
|
wagtail/search/tests/test_backends.py,sha256=DBOFXu2W6hAtH-KHnOjn7IBXWHfOWkJJW2Ery7eKzSs,40719
|
|
3311
3312
|
wagtail/search/tests/test_db_backend.py,sha256=X_x2yDApntvCRq4pL9UM1Q-DRY5WFCR_aaSnCbkcf4s,2031
|
|
3312
|
-
wagtail/search/tests/test_elasticsearch5_backend.py,sha256=
|
|
3313
|
+
wagtail/search/tests/test_elasticsearch5_backend.py,sha256=rObmzJmZ4-iM7UXUterLfCoT7rIYIGVUGNEUmB1EaME,43702
|
|
3313
3314
|
wagtail/search/tests/test_elasticsearch6_backend.py,sha256=M1QmKDJrTQulbsiEX0AFQDyihoieusZ0UVW17rNDoeo,47213
|
|
3314
3315
|
wagtail/search/tests/test_elasticsearch7_backend.py,sha256=NxjMGh1vUjgmaLn6MqULX-FA4OlGOZ7VvOslOnW_JKs,46344
|
|
3315
3316
|
wagtail/search/tests/test_elasticsearch8_backend.py,sha256=3EKGnVO8ldl8em5rE0xG4b_BXVFvh7QGk719FSXGbzE,482
|
|
@@ -4070,9 +4071,9 @@ wagtail/utils/urlpatterns.py,sha256=RDhVScxdm-RV4HSMjWElyrbEoTPsXu841_SKMgoFKtY,
|
|
|
4070
4071
|
wagtail/utils/utils.py,sha256=UALGn0KOyqi5ZoXOozWX99ZPUsVZP51ET8d7sZ1jlm0,430
|
|
4071
4072
|
wagtail/utils/version.py,sha256=40WGMIy8nSPQJFF01p7c38L444SexH2Cb-bQmR8ztXg,1478
|
|
4072
4073
|
wagtail/utils/widgets.py,sha256=oTpTMcmQ0Y4MugbSKp_Uigl97ftWdHvMfvhrrLyVmBs,1529
|
|
4073
|
-
wagtail-5.2.
|
|
4074
|
-
wagtail-5.2.
|
|
4075
|
-
wagtail-5.2.
|
|
4076
|
-
wagtail-5.2.
|
|
4077
|
-
wagtail-5.2.
|
|
4078
|
-
wagtail-5.2.
|
|
4074
|
+
wagtail-5.2.5.dist-info/LICENSE,sha256=0aiL7_RJ2YkOjscmRI7opwmuURrY6h8MR0B24nrdRQU,1512
|
|
4075
|
+
wagtail-5.2.5.dist-info/METADATA,sha256=Rb8f_0eDycmk9VJu0Ug6xY5Sfx0juLgiLsrFnN69r3Q,3855
|
|
4076
|
+
wagtail-5.2.5.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
|
|
4077
|
+
wagtail-5.2.5.dist-info/entry_points.txt,sha256=R14Z0xKoufNcDaku0EWDKM-K8J4ap0EImO8C-df8HVM,53
|
|
4078
|
+
wagtail-5.2.5.dist-info/top_level.txt,sha256=zcKgvuRTi0gSgVzJ1qMoERCwhQ_i0n9bkyxza3oh9as,8
|
|
4079
|
+
wagtail-5.2.5.dist-info/RECORD,,
|
|
File without changes
|