wagtail 5.2.4__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.
@@ -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
@@ -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]:
@@ -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")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: wagtail
3
- Version: 5.2.4
3
+ Version: 5.2.5
4
4
  Summary: A Django content management system.
5
5
  Home-page: https://wagtail.org/
6
6
  Author: Wagtail core team + contributors
@@ -1,4 +1,4 @@
1
- wagtail/__init__.py,sha256=jmetSduAfAHcC7kBOOD1M45uLzWe4wMk5AUNoUO9Z5g,724
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
@@ -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=1qgKkgRNRi4wOBDOYgA415hQup4e9iOXAMf1RmJko2U,268919
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
@@ -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=9_e1lllYdWAYByegC_7ZQTISmomB4_reywGtz2HEGew,11269
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
@@ -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=oYOKthY-FjaeOAWbC4H9Z7FnfnSFPPjpmtA1rn9tmbI,6071
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
@@ -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
@@ -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.4.dist-info/LICENSE,sha256=0aiL7_RJ2YkOjscmRI7opwmuURrY6h8MR0B24nrdRQU,1512
4074
- wagtail-5.2.4.dist-info/METADATA,sha256=1XqOblIzPCZys_AyynwCkFYDcXIxpkcicWerrBMJMB4,3855
4075
- wagtail-5.2.4.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
4076
- wagtail-5.2.4.dist-info/entry_points.txt,sha256=R14Z0xKoufNcDaku0EWDKM-K8J4ap0EImO8C-df8HVM,53
4077
- wagtail-5.2.4.dist-info/top_level.txt,sha256=zcKgvuRTi0gSgVzJ1qMoERCwhQ_i0n9bkyxza3oh9as,8
4078
- wagtail-5.2.4.dist-info/RECORD,,
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,,