forked from wagtail/wagtail
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG.txt
4335 lines (3766 loc) · 343 KB
/
CHANGELOG.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Changelog
=========
6.4 (xx.xx.xxxx) - IN DEVELOPMENT
~~~~~~~~~~~~~~~~
* Add the ability to apply basic Page QuerySet optimizations to `specific()` sub-queries using `select_related` & `prefetch_related` (Andy Babic)
* Fix: Improve handling of translations for bulk page action confirmation messages (Matt Westcott)
* Fix: Ensure custom rich text feature icons are correctly handled when provided as a list of SVG paths (Temidayo Azeez, Joel William, LB (Ben) Johnston)
* Fix: Ensure manual edits to `StreamField` values do not throw an error (Stefan Hammer)
* Docs: Move the model reference page from reference/pages to the references section as it covers all Wagtail core models (Srishti Jaiswal)
* Docs: Move the panels reference page from references/pages to the references section as panels are available for any model editing, merge panels API into this page (Srishti Jaiswal)
* Docs: Move the tags documentation to standalone advanced topic, instead of being inside the reference/pages section (Srishti Jaiswal)
* Docs: Refine the adding reports page so that common (page/non-page) class references are at the top and the full page only example has correct heading nesting (Alessandro Chitarrini)
* Docs: Add the `wagtail start` command to the management commands reference page (Damilola Oladele)
* Docs: Refine the project template page sections and document common issues encountered when creating custom templates (Damilola Oladele)
* Docs: Refine titles, references and URLS to better align with the documentation style guide, including US spelling (Srishti Jaiswal)
* Docs: Recommend a larger `DATA_UPLOAD_MAX_NUMBER_FIELDS` when integrating Wagtail into Django (Matt Westcott)
* Docs: Improve code highlighting and formatting for Python docstrings in core models (Srishti Jaiswal)
* Maintenance: Close open files when reading within utils/setup.py (Ataf Fazledin Ahamed)
* Maintenance: Avoid redundant `ALLOWED_HOSTS` check in `Site.find_for_request` (Jake Howard)
6.3 LTS (xx.xx.xxxx) - IN DEVELOPMENT
~~~~~~~~~~~~~~~~~~~~
* Add support for Python 3.13 (Matt Westcott)
* Add formal support for Django 5.1 (Matt Westcott)
* Add `ImageBlock` with alt text support (Chiemezuo Akujobi for Google Summer of Code, mentored by Storm Heg, Saptak Sengupta, Thibaud Colas and Matt Westcott)
* Implement incremental dashboard design enhancements (Albina Starykova, Ben Enright)
* Add a new enhanced contrast admin theming option for the admin interface (Albina Starykova, Victoria Ottah)
* Migrate workflow history views to universal listings (Sage Abdullah)
* Refactor documents views to use universal designs (Sage Abdullah)
* Refactor images views to use universal designs (Sage Abdullah)
* Implement universal listings for workflow usage and page type usage views (Sage Abdullah)
* Add search and filters to form pages listing (Sage Abdullah)
* Add support for uploading HEIC / HEIF images (Matt Westcott)
* Allow customization of preview device sizes in the live preview panel (Bart Cieliński, alexkiro, Sage Abdullah)
* Formalize support for MariaDB (Sage Abdullah, Daniel Black)
* Redirect to the last viewed listing page after deleting form submissions (Matthias Brück)
* Provide `getTextLabel` method on date / time StreamField blocks (Vaughn Dickson)
* Purge frontend cache when modifying redirects (Jake Howard)
* Deprecate the `WAGTAIL_AUTO_UPDATE_PREVIEW` setting, use `WAGTAIL_AUTO_UPDATE_PREVIEW_INTERVAL = 0` instead (Sage Abdullah)
* Consistently use `capfirst` for title-casing model verbose names (Sébastien Corbin)
* Fire `copy_for_translation_done` signal when copying translatable models as well as pages (Coen van der Kamp)
* Add support for an image `description` field across all images, to better support accessible image descriptions (Chiemezuo Akujobi)
* Prompt the user about unsaved changes when editing snippets (Sage Abdullah)
* Make dashboard upgrade banners dismissible (Sage Abdullah)
* Add support for specifying different preview modes to the "View draft" URL for pages (Robin Varghese)
* Implement new designs for the footer actions dropdown with more contrast and larger text (Sage Abdullah)
* All create/edit admin forms now use a sticky submit button, for consistency and to speed up edits (Sage Abdullah)
* Secondary form actions such as "Delete" are now in the header actions menu (Sage Abdullah)
* Allow setting page privacy rules when a restriction already exists on an ancestor page (Bojan Mihelac)
* Automatically create links when pasting content that contain URLs into a rich text input (Thibaud Colas)
* Add Uyghur language support
* Fix: Prevent page type business rules from blocking reordering of pages (Andy Babic, Sage Abdullah)
* Fix: Improve layout of object permissions table (Sage Abdullah)
* Fix: Fix typo in aria-label attribute of page explorer navigation link (Sébastien Corbin)
* Fix: Reinstate transparency indicator on image chooser widgets (Sébastien Corbin)
* Fix: Remove table headers that have no text (Matt Westcott)
* Fix: Fix broken link to user search (Shlomo Markowitz)
* Fix: Ensure that JS slugify function strips Unicode characters disallowed by Django slug validation (Atif Khan)
* Fix: Do not show notices about root / unroutable pages when searching or filtering in the page explorer (Matt Westcott)
* Fix: Resolve contrast issue for page deletion warning (Sanjeev Holla S)
* Fix: Make sure content metrics falls back to body element only when intended (Sage Abdullah)
* Fix: Remove wrongly-added filters from redirects index (Matt Westcott)
* Fix: Prevent popular tags filter from generating overly complex queries when not filtering (Matt Westcott)
* Fix: Fix content path links in usage view to scroll to the correct element (Sage Abdullah)
* Fix: Always show the minimap toggle button (Albina Starykova)
* Fix: Ensure that dropdown button toggles show with a border in high contrast mode (Ishwari8104, LB (Ben) Johnston)
* Fix: Update email notification header to the new logo design (rahulsamant37)
* Fix: Change `file_size` field on document model to avoid artificial 2Gb limit (Gabriel Getzie)
* Fix: Ensure that `TypedTableBlock` uses the correct API representations of child blocks (Matt Westcott)
* Fix: Footer action buttons now include their `media` definitions (Sage Abdullah)
* Fix: Improve the text contrast of the bulk actions "Select all" button (Sage Abdullah)
* Fix: Fix error on workflow settings view with multiple snippet types assigned to the same workflow on Postgres (Sage Abdullah)
* Fix: Fix datetime fields overflowing its parent wrapper in listing filters (Rohit Singh)
* Fix: Prevent multiple URLs from being combined into one when pasting links into a rich text input (Thibaud Colas)
* Fix: Improve layout of report listing tables (Sage Abdullah)
* Fix: Fix regression from creation of `AbstractGroupApprovalTask` to ensure `can_handle` checks for the abstract class correctly (Sumana Sree Angajala)
* Docs: Upgrade Sphinx to 7.3 (Matt Westcott)
* Docs: Document how to customize date/time format settings (Vince Salvino)
* Docs: Create a new documentation section for deployment and move fly.io deployment from the tutorial to this section (Vince Salvino)
* Docs: Clarify process for UserViewSet customization (Sage Abdullah)
* Docs: Correct `WAGTAIL_WORKFLOW_REQUIRE_REAPPROVAL_ON_EDIT` documentation to state that it defaults to `False` (Matt Westcott)
* Docs: Add an example of customizing a default accessibility check (Cynthia Kiser)
* Docs: Demonstrate access protection with `TokenAuthentication` in the Wagtail API v2 Configuration Guide (Krzysztof Jeziorny)
* Docs: Replace X links with Mastodon in the README (Alex Morega)
* Maintenance: Removed support for Python 3.8 (Matt Westcott)
* Maintenance: Drop pytz dependency in favour of `zoneinfo.available_timezones` (Sage Abdullah)
* Maintenance: Relax django-taggit dependency to allow 6.0 (Matt Westcott)
* Maintenance: Improve page listing performance (Sage Abdullah)
* Maintenance: Phase out usage of SECRET_KEY in version and icon hashes (Jake Howard)
* Maintenance: Audit all use of localized and non-localized numbers in templates (Matt Westcott)
* Maintenance: Refactor StreamField `get_prep_value` for closer alignment with JSONField (Sage Abdullah)
* Maintenance: Move search implementation logic from generic `IndexView` to `BaseListingView` (Sage Abdullah)
* Maintenance: Upgrade Puppeteer integration tests for reliability (Matt Westcott)
* Maintenance: Restore ability to use `.in_bulk()` on specific querysets under Django 5.2a0 (Sage Abdullah)
* Maintenance: Add generated `test-media` to .gitignore (Shlomo Markowitz)
* Maintenance: Improve `debounce` util's return type for better TypeScript usage (Sage Abdullah)
* Maintenance: Ensure the side panel's show event is dispatched after any hide events (Sage Abdullah)
* Maintenance: Migrate preview-panel JavaScript to Stimulus & TypeScript, add full unit testing (Sage Abdullah)
* Maintenance: Move `wagtailConfig` values from inline scripts to the `wagtail_config` template tag (LB (Ben) Johnston, Sage Abdullah)
* Maintenance: Deprecate the `{% locales %}` and `{% js_translation_strings %}` template tags (LB (Ben) Johnston, Sage Abdullah)
* Maintenance: Ensure multi-line comments are cleaned from custom icons in addition to just single line comments (Jake Howard)
* Maintenance: Deprecate `window.wagtailConfig.BULK_ACTION_ITEM_TYPE` usage in JavaScript to reduce reliance on inline scripts (LB (Ben) Johnston)
* Maintenance: Remove `window.fileupload_opts` usage in JavaScript, use data attributes on fields instead to reduce reliance on inline scripts (LB (Ben) Johnston)
* Maintenance: Remove `image_format_name_to_content_type` helper function that duplicates Willow functionality (Matt Westcott)
* Maintenance: Improve code reuse for footer actions markup across generic views (Sage Abdullah)
* Maintenance: Deprecate internal `DeleteMenuItem` API for footer actions (Sage Abdullah)
* Maintenance: Update Pillow dependency to allow 11.x (Storm Heg)
6.2.3 (xx.xx.xxxx) - IN DEVELOPMENT
~~~~~~~~~~~~~~~~~~
* Fix: Prevent multiple URLs from being combined into one when pasting links into a rich text input (Thibaud Colas)
6.2.2 (24.09.2024)
~~~~~~~~~~~~~~~~~~
* Fix: Fix various instances of `USE_THOUSAND_SEPARATOR` formatting numbers where formatting is invalid (Sébastien Corbin, Matt Westcott)
* Fix: Fix broken link to user search (Shlomo Markowitz)
* Fix: Make sure content metrics falls back to body element only when intended (Sage Abdullah)
* Fix: Remove wrongly-added filters from redirects index (Matt Westcott)
* Fix: Prevent popular tags filter from generating overly complex queries when not filtering (Matt Westcott)
* Docs: Clarify process for UserViewSet customization (Sage Abdullah)
6.2.1 (20.08.2024)
~~~~~~~~~~~~~~~~~~
* Fix: Handle `child_block` being passed as a kwarg in ListBlock migrations (Matt Westcott)
* Fix: Fix broken task type filter in workflow task chooser modal (Sage Abdullah)
* Fix: Prevent circular imports between `wagtail.admin.models` and custom user models (Matt Westcott)
* Fix: Ensure that concurrent editing check works for users who only have edit access via workflows (Matt Westcott)
6.2 (01.08.2024)
~~~~~~~~~~~~~~~~
* Optimize and consolidate redirects report view into the index view (Jake Howard, Dan Braghis)
* Support a `HOSTNAMES` parameter on `WAGTAILFRONTENDCACHE` to define which hostnames a backend should respond to (Jake Howard, sponsored by Oxfam America)
* Refactor redirects edit view to use the generic `EditView` and breadcrumbs (Rohit Sharma)
* Allow custom permission policies on snippets to prevent superusers from creating or editing them (Sage Abdullah)
* Do not link to edit view from listing views if user has no permission to edit (Sage Abdullah)
* Allow access to snippets and other model viewsets to users with "View" permission (Sage Abdullah)
* Skip `ChooseParentView` if only one possible valid parent page is available (Matthias Brück)
* Add `copy_for_translation_done` signal when a page is copied for translation (Arnar Tumi Þorsteinsson)
* Remove reduced opacity for draft page title in listings (Inju Michorius)
* Adopt more compact representation for StreamField definitions in migrations (Matt Westcott)
* Implement a new design for locale labels in listings (Albina Starykova)
* Add alt text validation rule in the accessibility checker (Albina Starykova)
* Add a `deactivate()` method to `ProgressController` (Alex Morega)
* Allow manually specifying credentials for CloudFront frontend cache backend (Jake Howard)
* Automatically register permissions for models registered with a `ModelViewSet` (Sage Abdullah)
* Implement universal listings UI for report views (Sage Abdullah)
* Make `routable_resolver_match` attribute available on RoutablePageMixin responses (Andy Chosak)
* Support customizations to `UserViewSet` via the app config (Sage Abdullah)
* Add word count and reading time metrics within the page editor (Albina Starykova. Sponsored by The Motley Fool)
* Implement a new design for accessibility checks (Albina Starykova)
* Allow changing available privacy options per page model (Shlomo Markowitz)
* Add concurrent editing notifications for pages and snippets (Matt Westcott, Sage Abdullah)
* Add "soft" client-side validation for `StreamBlock` / `ListBlock` `min_num` / `max_num` (Matt Westcott)
* Log accessibility checker results in the console to help developers with troubleshooting (Thibaud Colas)
* Disable pointer events on checker highlights to simplify DevTools inspections (Thibaud Colas)
* `StaticBlock` now renders nothing by default when no template is specified (Sævar Öfjörð Magnússon)
* Fix: Make `WAGTAILIMAGES_CHOOSER_PAGE_SIZE` setting functional again (Rohit Sharma)
* Fix: Enable `richtext` template tag to convert lazy translation values (Benjamin Bach)
* Fix: Ensure permission labels on group permissions page are translated where available (Matt Westcott)
* Fix: Preserve whitespace in comment replies (Elhussein Almasri)
* Fix: Address layout issues in the title cell of universal listings (Sage Abdullah)
* Fix: Support SVG icon id attributes with single quotes in the styleguide (Sage Abdullah)
* Fix: Do not show delete button on model edit views if per-instance permissions prevent deletion (Matt Westcott)
* Fix: Remove duplicate header in privacy dialog when a privacy setting is set on a parent page or collection (Matthias Brück)
* Fix: Allow renditions of `.ico` images (Julie Rymer)
* Fix: Handle choice groups as dictionaries in active filters (Sébastien Corbin)
* Fix: Add separators when displaying multiple error messages on a StructBlock (Kyle Bayliss)
* Fix: Specify `verbose_name` on `TranslatableMixin.locale` so that it is translated when used as a label (Romein van Buren)
* Fix: Disallow null characters in API filter values (Jochen Wersdörfer)
* Fix: Fix image preview when Willow optimizers are enabled (Alex Tomkins)
* Fix: Ensure external-to-internal link conversion works when the `wagtail_serve` view is on a non-root path (Sage Abdullah)
* Fix: Add missing `for_instance` method to `PageLogEntryManager` (Matt Westcott)
* Fix: Ensure that "User" column on history view is translatable (Romein van Buren)
* Fix: Handle StreamField migrations where the field value is null (Joshua Munn)
* Fix: Prevent incorrect menu ordering when order value is 0 (Ben Dickinson)
* Fix: Fix dynamic image serve view with certain backends (Sébastien Corbin)
* Fix: Show not allowed extension in error message (Sahil Jangra)
* Fix: Fix focal point chooser when localization enabled (Sébastien Corbin)
* Fix: Ensure that system checks for `WAGTAIL_DATE_FORMAT`, `WAGTAIL_DATETIME_FORMAT` and `WAGTAIL_TIME_FORMAT` take `FORMAT_MODULE_PATH` into account (Sébastien Corbin)
* Fix: Prevent rich text fields inside choosers from being duplicated when opened repeatedly (Sage Abdullah)
* Fix: Prevent history view from breaking if a log entry's revision is missing (Matt Westcott)
* Fix: Prevent long filenames from breaking layout on document chooser listings (Frank Yiu, Shaurya Panchal)
* Docs: Remove duplicate section on frontend caching proxies from performance page (Jake Howard)
* Docs: Document `restriction_type` field on PageViewRestriction (Shlomo Markowitz)
* Docs: Document Wagtail's bug bounty policy (Jake Howard)
* Docs: Fix incorrect Sphinx-style code references to use MyST style (Byron Peebles)
* Docs: Document the fact that `Orderable` is not required for inline panels (Bojan Mihelac)
* Docs: Add note about `prefers-reduced-motion` to the accessibility documentation (Roel Koper)
* Docs: Update deployment instructions for Fly.io (Jeroen de Vries)
* Docs: Add better docs for generating URLs on creating admin views (Shlomo Markowitz)
* Docs: Document the `vary_fields` property for custom image filters (Daniel Kirkham)
* Docs: Fix documentation build errors (Himanshu Garg, Chris Shenton)
* Docs: Fix PDF export (Nathanaël Jourdane)
* Maintenance: Use `DjangoJSONEncoder` instead of custom `LazyStringEncoder` to serialize Draftail config (Sage Abdullah)
* Maintenance: Refactor image chooser pagination to check `WAGTAILIMAGES_CHOOSER_PAGE_SIZE` at runtime (Matt Westcott)
* Maintenance: Exclude the `client/scss` directory in Tailwind content config to speed up CSS compilation (Sage Abdullah)
* Maintenance: Split `contrib.frontend_cache.backends` into dedicated sub-modules (Andy Babic)
* Maintenance: Remove unused `docs/autobuild.sh` script (Sævar Öfjörð Magnússon)
* Maintenance: Replace `urlparse` with `urlsplit` to improve performance (Jake Howard)
* Maintenance: Optimize embed finder lookups (Jake Howard)
* Maintenance: Improve performance of initial admin loading by moving sprite hashing out of module import time (Jake Howard)
* Maintenance: Remove workaround and inline scripts for activating workflow actions (Sage Abdullah)
* Maintenance: Prevent `'BlockWidget' object has no attribute '_block_json'` from masking errors during StreamField serialization (Matt Westcott)
6.1.3 (11.07.2024)
~~~~~~~~~~~~~~~~~~
* Fix: CVE-2024-39317: Regular expression denial-of-service via search query parsing (Jake Howard)
* Fix: Allow renditions of `.ico` images (Julie Rymer)
* Fix: Handle choice groups as dictionaries in active filters (Sébastien Corbin)
* Fix: Fix image preview when Willow optimizers are enabled (Alex Tomkins)
* Fix: Fix dynamic image serve view with certain backends (Sébastien Corbin)
6.1.2 (30.05.2024)
~~~~~~~~~~~~~~~~~~
* Fix: Fix client-side handling of select inputs within `ChoiceBlock` (Matt Westcott)
* Fix: Support SVG icon id attributes with single quotes in the styleguide (Sage Abdullah)
* Fix: CVE-2024-35228: Improper handling of insufficient permissions in `wagtail.contrib.settings` (Victor Miti, Matt Westcott, Jake Howard)
6.1.1 (21.05.2024)
~~~~~~~~~~~~~~~~~~
* Fix: Fix form action URL in user edit and delete views for custom user models (Sage Abdullah)
* Fix: Fix snippet copy view not prefilling form data (Sage Abdullah)
* Fix: Address layout issues in the title cell of universal listings (Sage Abdullah)
* Fix: Fix incorrect rich text to HTML conversion when multiple link / embed types are present (Andy Chosak, Matt Westcott)
* Fix: Restore ability for custom widgets in StreamField blocks to have multiple top-level nodes (Sage Abdullah, Matt Westcott)
6.1 (01.05.2024)
~~~~~~~~~~~~~~~~
* Refine wording of page & collection privacy using password is a shared password and should not be used for secure content (Rohit Sharma, Jake Howard)
* Add RelatedObjectsColumn to the table UI framework (Matt Westcott)
* Reduce memory usage when rebuilding search indexes (Jake Howard)
* Support creating images in .ico format (Jake Howard)
* Add the ability to disable the usage of a shared password for enhanced security for the private pages and collections (documents) feature (Salvo Polizzi, Jake Howard)
* Add system checks to ensure that `WAGTAIL_DATE_FORMAT`, `WAGTAIL_DATETIME_FORMAT`, `WAGTAIL_TIME_FORMAT` are correctly configured (Rohit Sharma, Coen van der Kamp)
* Allow custom permissions with the same prefix as built-in permissions (Sage Abdullah)
* Allow displaying permissions linked to the Admin model's content type (Sage Abdullah)
* Add support for Draftail's JavaScript to use chooserUrls provided by entity options & for the Draftail widget to encode lazy URLs/ translations (Elhussein Almasri)
* Reimplement search promotions `IndexView` using the `generic.IndexView` (Rohit Sharma, Sage Abdullah, Storm Heg)
* Reimplement redirects `IndexView` using the `generic.IndexView` (Rohit Sharma, Sage Abdullah, Temidayo Azeez)
* Add `PageListingViewSet` for custom per-page-type page listings (Matt Westcott)
* Add `ChooseParentView` to `PageListingViewSet` to allow creating pages from custom page listings (Abdelrahman Hamada, Sage Abdullah)
* Implement new universal listings design for image listing view (Sage Abdullah)
* Implement new universal listings design for document listing view (Sage Abdullah)
* Implement new universal listings design for site and locale listing views (Sage Abdullah)
* Implement new universal listings design for page and snippet history view (Sage Abdullah)
* Implement new universal listings design for form builder submissions view (Sage Abdullah)
* Implement new universal listings design for collections listing view (Sage Abdullah)
* Implement new universal listings design for groups views (Sage Abdullah)
* Implement new universal listings design for users views (Sage Abdullah)
* Implement new universal listings design for workflow and task views (Sage Abdullah)
* Refine slim header button style to match designs (Sage Abdullah)
* Add simple admin keyboard shortcuts overview dialog, available in the help sub-menu (Karthik Ayangar, Rohit Sharma)
* Add ability to bulk toggle permissions in the user group editing view, including shift+click for multiple selections (LB (Ben) Johnston, Kalob Taulien)
* Update the minimum version of `djangorestframework` to 3.15.1 (Sage Abdullah)
* Add support for related fields in generic `IndexView.list_display` (Abdelrahman Hamada)
* Improve page fetching logic and cache route results per request (Gordon Pendleton)
* Optimize rewriting of links / embeds in rich text using bulk database lookups (Andy Chosak)
* Add normalization mechanism to StreamField so that assignments and defaults can be passed in a wider range of data types (Joshua Munn, Matt Westcott)
* Allow specifying a `STORAGES` alias name for `WAGTAILIMAGES_RENDITION_STORAGE` (Alec Baron)
* Update `PASSWORD_REQUIRED_TEMPLATE` setting to `WAGTAIL_PASSWORD_REQUIRED_TEMPLATE` with deprecation of previous naming (Saksham Misra, LB (Ben) Johnston)
* Update `DOCUMENT_PASSWORD_REQUIRED_TEMPLATE` setting to `WAGTAILDOCS_PASSWORD_REQUIRED_TEMPLATE` with deprecation of previous naming (Saksham Misra, LB (Ben) Johnston)
* When editing settings (contrib) use the same icon in the editing view that was declared when registering the setting (Vince Salvino, Rohit Sharma)
* Populate django-treebeard cache during page routing to improve performance of `get_parent` (Nigel van Keulen)
* Add a new user profile preference to configure user interface information density (Thibaud Colas)
* Add additional field types to Elasticsearch mapping (scott-8)
* Fix: CVE-2024-32882: Permission check bypass when editing a model with per-field restrictions through `wagtail.contrib.settings` or `ModelViewSet` (Ben Morse, Joshua Munn, Jake Howard, Sage Abdullah)
* Fix: Fix typo in `__str__` for MySQL search index (Jake Howard)
* Fix: Ensure that unit tests correctly check for migrations in all core Wagtail apps (Matt Westcott)
* Fix: Correctly handle `date` objects on `human_readable_date` template tag (Jhonatan Lopes)
* Fix: Ensure re-ordering buttons work correctly when using a nested InlinePanel (Adrien Hamraoui)
* Fix: Consistently remove model's `verbose_name` in group edit view when listing custom permissions (Sage Abdullah, Neeraj Yetheendran, Omkar Jadhav)
* Fix: Resolve issue local development of docs when running `make livehtml` (Sage Abdullah)
* Fix: Resolve issue with unwanted padding in chooser modal listings (Sage Abdullah)
* Fix: Ensure form builder emails that have date or datetime fields correctly localize dates based on the configured `LANGUAGE_CODE` (Mark Niehues)
* Fix: Ensure the Stimulus `UnsavedController` checks for nested removal/additions of inputs so that the unsaved warning shows in more valid cases when editing a page (Karthik Ayangar)
* Fix: Ensure `get_add_url()` is always used to re-render the add button when the listing is refreshed in viewsets (Sage Abdullah)
* Fix: Ensure dropdown content cannot get higher than the viewport and add scrolling within content if needed (Chiemezuo Akujobi)
* Fix: Prevent snippets model index view from crashing when a model does not have an `objects` manager (Jhonatan Lopes)
* Fix: Fix `get_dummy_request`'s resulting host name when running tests with `ALLOWED_HOSTS = ["*"]` (David Buxton)
* Fix: Fix timezone handling in the `timesince_last_update` template tag (Matt Westcott)
* Fix: Fix Postgres phrase search to respect the language set in settings (Ihar Marhitych)
* Fix: Retain query parameters when switching between locales in the page chooser (Abdelrahman Hamada, Sage Abdullah)
* Fix: Add `w-kbd-scope-value` with support for `global` so that specific keyboard shortcuts (e.g. ctrl+s/cmd+s) trigger consistently even when focused on fields (Neeraj Yetheendran)
* Fix: Improve exception handling when generating image renditions concurrently (Andy Babic)
* Fix: Respect `WAGTAIL_ALLOW_UNICODE_SLUGS` setting when auto-generating slugs (LB (Ben) Johnston)
* Fix: Use correct URL when redirecting back to page search results after an AJAX search (Sage Abdullah)
* Fix: Reinstate missing static files in style guide (Sage Abdullah)
* Fix: Provide `convert_mariadb_uuids` management command to assist with upgrading to Django 5.0+ on MariaDB (Matt Westcott)
* Fix: Ensure invalid submissions are marked as dirty edits on load to trigger UI and browser warnings for unsaved changes, restoring previous behavior from Wagtail 5.2 (Sage Abdullah)
* Fix: Update polldaddy oEmbed provider to use the crowdsignal URL (Matthew Scouten)
* Fix: Remove polleverywhere oEmbed provider as it this application longer supports oEmbed (Matthew Scouten)
* Docs: Add contributing development documentation on how to work with a fork of Wagtail (Nix Asteri, Dan Braghis)
* Docs: Make sure the settings panel is listed in tabbed interface examples (Tibor Leupold)
* Docs: Update content and page names to their US spelling instead of UK spelling (Victoria Poromon)
* Docs: Update broken and incorrect links throughout the documentation (EK303)
* Docs: Fix formatting of `--purge-only` in `wagtail_update_image_renditions` management command section (Pranith Beeram)
* Docs: Update template components documentation to better explain the usage of the Laces library (Tibor Leupold)
* Docs: Update Sphinx theme to `6.3.0` with a fix for the missing favicon (Sage Abdullah)
* Docs: Document risk of XSS attacks on document upload (Matt Westcott, with thanks to Georgios Roumeliotis of TwelveSec for the original report)
* Docs: Add clarity to how custom StreamField validation works (Tibor Leupold)
* Docs: Add additional reference to the `wagtail_update_image_renditions` management command on the using images page (LB (Ben) Johnston)
* Docs: Correct information about line endings in Window development docs (Sage Abdullah)
* Docs: Improve code snippets for "Create a footer for all pages" tutorial section (Drikus Roor)
* Docs: Update list of third-party tutorials (LB (Ben) Johnston)
* Docs: Update "Integrating into Django" documentation to emphasise creating page models (Matt Westcott)
* Maintenance: Move RichText HTML whitelist parser to use the faster, built in `html.parser` (Jake Howard)
* Maintenance: Remove duplicate 'path' in default_exclude_fields_in_copy (Ramchandra Shahi Thakuri)
* Maintenance: Update unit tests to always use the faster, built in `html.parser` & remove `html5lib` dependency (Jake Howard)
* Maintenance: Adjust Eslint rules for TypeScript files (Karthik Ayangar)
* Maintenance: Rename the React `Button` that only renders links (a element) to `Link` and remove unused prop & behavior that was non-compliant for aria role usage (Advik Kabra)
* Maintenance: Set up an `wagtail.models.AbstractWorkflow` model to support future customizations around workflows (Hossein)
* Maintenance: Improve `classnames` template tag to handle nested lists of strings, use template tag for admin `body` element (LB (Ben) Johnston)
* Maintenance: Merge `UploadedDocument` and `UploadedImage` into new `UploadedFile` model for easier shared code usage (Advik Kabra, Karl Hobley)
* Maintenance: Optimize queries in dashboard panels (Sage Abdullah)
* Maintenance: Optimize queries in group create/edit view (Sage Abdullah)
* Maintenance: Move modal-workflow.js script usage to base admin template instead of ad-hoc imports (Elhussein Almasri)
* Maintenance: Update all Draftail chooserUrls to be passed in via the Entity options instead of using `window.chooserUrls` globals, removing the need for inline scripts (Elhussein Almasri)
* Maintenance: Enhance `w-init` (InitController) to support a `detail` value to be dispatched on events (Chiemezuo Akujobi)
* Maintenance: Remove usage of inline scripts and instead use event dispatching to instantiate standalone Draftail editor instances (Chiemezuo Akujobi)
* Maintenance: Refactor `page_breadcrumbs` tag to use shared `breadcrumbs.html` template (Sage Abdullah)
* Maintenance: Add `keyboard` icon to admin icon set (Rohit Sharma)
* Maintenance: Remove dead code in the minimap when elements are not found (LB (Ben) Johnston)
* Maintenance: Ensure untrusted data sources are logged correctly in the Stimulus `SwapController` (LB (Ben) Johnston)
* Maintenance: Update Wagtail logo in admin sidebar & favicon plus documentation to the latest version (Osaf AliSayed, Albina Starykova, LB (Ben) Johnston)
* Maintenance: Remove usage of inline scripts and instead use a new Stimulus controller (`w-block`/`BlockController`) to instantiate `StreamField` blocks (Karthik Ayangar)
* Maintenance: Update NPM Babel, TypeScript and Webpack packages (Neeraj Yetheendran)
* Maintenance: Replace ad-hoc JavaScript and vendor Mousetrap usage to a new Stimulus controller (`w-kbd`/`KeyboardController`) (Neeraj Yetheendran)
* Maintenance: Update django-filter to 24.x (Sebastian Muthwill)
* Maintenance: Remove jQuery usage in telepath widget classes (Matt Westcott)
* Maintenance: Remove `xregexp` (IE11 polyfill) along with `window.XRegExp` global util (LB (Ben) Johnston)
* Maintenance: Refactor the Django port of `urlify` to use TypeScript, officially deprecate `window.URLify` global util (LB (Ben) Johnston)
* Maintenance: Adopt the modern best practice for `beforeunload` usage in `UnsavedController` to trigger a leave page warning when edits have been made (Shubham Mukati, Sage Abdullah)
6.0.6 (11.07.2024)
~~~~~~~~~~~~~~~~~~
* Fix: CVE-2024-39317: Regular expression denial-of-service via search query parsing (Jake Howard)
6.0.5 (30.05.2024)
~~~~~~~~~~~~~~~~~~
* Fix: CVE-2024-35228: Improper handling of insufficient permissions in `wagtail.contrib.settings` (Victor Miti, Matt Westcott, Jake Howard)
6.0.4 (21.05.2024)
~~~~~~~~~~~~~~~~~~
* Fix: Fix snippet copy view not prefilling form data (Sage Abdullah)
6.0.3 (01.05.2024)
~~~~~~~~~~~~~~~~~~
* Fix: CVE-2024-32882: Permission check bypass when editing a model with per-field restrictions through `wagtail.contrib.settings` or `ModelViewSet` (Ben Morse, Joshua Munn, Jake Howard, Sage Abdullah)
* Fix: Respect `WAGTAIL_ALLOW_UNICODE_SLUGS` setting when auto-generating slugs (LB (Ben) Johnston)
* Fix: Use correct URL when redirecting back to page search results after an AJAX search (Sage Abdullah)
* Fix: Reinstate missing static files in style guide (Sage Abdullah)
* Fix: Provide `convert_mariadb_uuids` management command to assist with upgrading to Django 5.0+ on MariaDB (Matt Westcott)
* Fix: Fix generic CopyView for models with primary keys that need to be quoted (Sage Abdullah)
6.0.2 (03.04.2024)
~~~~~~~~~~~~~~~~~~
* Fix: Ensure that modal tabs width are not impacted by side panel opening (LB (Ben) Johnston)
* Fix: Resolve issue local development of docs when running `make livehtml` (Sage Abdullah)
* Fix: Resolve issue with unwanted padding in chooser modal listings (Sage Abdullah)
* Fix: Ensure `get_add_url()` is always used to re-render the add button when the listing is refreshed in viewsets (Sage Abdullah)
* Fix: Move `modal-workflow.js` script usage to base admin template instead of ad-hoc imports so that choosers work in `ModelViewSet`s (Elhussein Almasri)
* Fix: Ensure JavaScript for common widgets such as `InlinePanel` is included by default in `ModelViewSet`'s create and edit views (Sage Abdullah)
* Fix: Reinstate styles for customizations of `extra_footer_actions` block in page create/edit templates (LB (Ben) Johnston, Sage Abdullah)
* Fix: Prevent crash when loading an empty table block in the editor (Sage Abdullah)
* Docs: Update Sphinx theme to `6.3.0` with a fix for the missing favicon (Sage Abdullah)
6.0.1 (15.02.2024)
~~~~~~~~~~~~~~~~~~
* Fix: Ensure `BooleanRadioSelect` uses the same styles as `RadioSelect` (Thibaud Colas)
* Fix: Prevent failure on `collectstatic` when `ManifestStaticFilesStorage` is in use (Matt Westcott)
* Fix: Prevent error on submitting an empty search in the admin under Elasticsearch (Maikel Martens)
6.0 (07.02.2024)
~~~~~~~~~~~~~~~~
* Added support for Django 5.0
* Implemented universal listings – a unified listing and filtering interface for Pages, Snippets, Forms (Ben Enright, Matt Westcott, Thibaud Colas, Sage Abdullah)
* Add the accessibility checker within the page and snippets editor (Thibaud Colas)
* Added `search_index` option to StreamField blocks to control whether the block is indexed for searching (Vedant Pandey)
* Remember previous location on returning from page add/edit actions (Robert Rollins)
* Update settings file in project settings to address Django 4.2 deprecations (Sage Abdullah)
* Improve layout and accessibility of the image URL generator page, reduce reliance on JavaScript (Temidayo Azeez)
* Allow `UniqueConstraint` in place of `unique_together` for `TranslatableMixin`'s system check (Temidayo Azeez, Sage Abdullah)
* Make use of `IndexView.get_add_url()` in snippets index view template (Christer Jensen, Sage Abdullah)
* Allow `Page.permissions_for_user()` to be overridden by specific page types (Sébastien Corbin)
* Improve visual alignment of explore icon in Page listings for longer content (Krzysztof Jeziorny)
* Add `extra_actions` blocks to Snippets and generic index templates (Bhuvnesh Sharma)
* Added page types usage report (Jhonatan Lopes)
* Add support for defining `panels` / `edit_handler` on `ModelViewSet` (Sage Abdullah)
* Use a single instance of `PagePermissionPolicy` in `wagtail.permissions` module (Sage Abdullah)
* Add max tag length validation for multiple uploads (documents/images) (Temidayo Azeez)
* Ensure expanded side panel does not overlap form content for most viewports (Chiemezuo Akujobi)
* Add ability to modify the default ordering for the page explorer view (Shlomo Markowitz)
* Remove overly verbose image captions in image listings for screen readers (Sage Abdullah)
* Ensure screen readers and dictation tools can more easily navigate bulk actions in images, documents and page listings by streamlining labels and descriptions (Sage Abdullah)
* Remove support for Safari 14 (Thibaud Colas)
* Add ability to click to copy the URL in the image URL generator page (Sai Srikar Dumpeti)
* Add ability to filter by page type and date updated in the page listing view (Matt Westcott)
* Add ability to filter by owner and site in the page listing view (Matt Westcott)
* Improve right-to-left support by using flow-relative float styles (Thibaud Colas)
* Improve right-to-left support by mirroring Wagtail icons as needed (Sage Abdullah)
* Add support for mirroring third-party icons added in Wagtail (Sage Abdullah)
* Show edit as a main action in generic history and usage views (Sage Abdullah)
* Make styles for header buttons consistent (Sage Abdullah)
* Improve styles of slim header's search and filters (Sage Abdullah)
* Change page listing's add button to icon-only (Sage Abdullah)
* Add sublabel to breadcrumbs, including history, usage, and inspect views (Sage Abdullah)
* Standardise search form placeholder to 'Search…' (Sage Abdullah)
* Use SlugInput on all SlugFields by default (LB (Ben) Johnston)
* Show character counts on RichTextBlock with `max_length` (Elhussein Almasri)
* Move locale selector in generic IndexView to a filter (Sage Abdullah)
* Add ability to customize a page's copy form (Neeraj Yetheendran)
* Add optional caption field to `TypedTableBlock` (Tommaso Amici, Cynthia Kiser)
* Switch the `TableBlock` header controls to a field that requires user input (Bhuvnesh Sharma, Aman Pandey, Cynthia Kiser)
* Add `WAGTAILADMIN_LOGIN_URL` setting to allow customizing the login URL (Neeraj Yetheendran)
* Replace legacy dropdown component with new Tippy dropdown-button (Thibaud Colas)
* Add ability to filter by existence of child pages in the page listing view (Matt Westcott)
* Polish dark theme styles and update color tokens (Thibaud Colas, Rohit Sharma)
* Keep database state of pages and snippets updated while in draft state (Stefan Hammer)
* Add `DrilldownController` and `w-drilldown` component to support drilldown menus (Thibaud Colas)
* Add support for `caption` on admin UI Table component (Aman Pandey)
* Add API support for a redirects (contrib) endpoint (Rohit Sharma, Jaap Roes, Andreas Donig)
* Add the default ability for all `SnippetViewSet` & `ModelViewSet` to support being copied (Shlomo Markowitz)
* Support dynamic Wagtail guide links in the admin that are based on the running version of Wagtail (Tidiane Dia)
* Added `AbstractGroupApprovalTask` to simplify customizing behavior of custom `Task` models (John-Scott Atlakson)
* Fix: Update system check for overwriting storage backends to recognize the `STORAGES` setting introduced in Django 4.2 (phijma-leukeleu)
* Fix: Prevent password change form from raising a validation error when browser autocomplete fills in the "Old password" field (Chiemezuo Akujobi)
* Fix: Ensure that the legacy dropdown options, when closed, do not get accidentally clicked by other interactions on wide viewports (CheesyPhoenix, Christer Jensen)
* Fix: Add a fallback background for the editing preview iframe for sites without a background (Ian Price)
* Fix: Preserve whitespace in rendered comments (Elhussein Almasri)
* Fix: Remove search logging from project template so that new projects without the search promotions module will not error (Matt Westcott)
* Fix: Ensure text-only email notifications for updated comments do not escape HTML characters (Rohit Sharma)
* Fix: Use the latest draft when copying an unpublished page for translation (Andrey Nehaychik)
* Fix: Make Workflow and Aging Pages reports only available to users with page-related permissions (Rohit Sharma)
* Fix: Make searching on specific fields work correctly on Elasticsearch when boost is in use (Matt Westcott)
* Fix: Use a visible border and background color to highlight active formatting in the rich text toolbar (Cassidy Pittman)
* Fix: Ensure image focal point box can be removed (Gunnar Scherf)
* Fix: Ensure that Snippets search results correctly use the `index_results.html` or `index_results_template_name` override on initial load (Stefan Hammer)
* Fix: Avoid error when attempting to moderate a page drafted by a now deleted user (Dan Braghis)
* Fix: Do not show multiple error messages when editing a Site to use existing hostname and port (Rohit Sharma)
* Fix: Avoid error when exporting Aging Pages report where a page has an empty `last_published_by_user` (Chiemezuo Akujobi)
* Fix: Ensure Page querysets support using `alias` and `specific` (Tomasz Knapik)
* Fix: Ensure workflow dashboard panels work when the page/snippet is missing (Sage Abdullah)
* Fix: Ensure `ActionController` explicitly checks for elements that allow select functionality (Nandini Arora)
* Fix: Prevent a ValueError with `FormSubmissionsPanel` on Django 5.0 when creating a new form page (Matt Westcott)
* Fix: Avoid duplicate entries in "Recent edits" panel when copying pages (Matt Westcott)
* Fix: Prevent TitleFieldPanel from raising an error when the slug field is missing or read-only (Rohit Sharma)
* Fix: Ensure that the close button on the new dialog designs is visible in the non-message variant (Nandini Arora)
* Fix: Ensure the sidebar account toggle has no duplicate accessible labels (Nandini Arora)
* Fix: Avoid text overflow issues in comment replies and scroll position issues for long comments (Rohit Sharma)
* Fix: Ensure that page listing re-ordering messages and accessible labels can be translated (Aman Pandey, LB (Ben) Johnston)
* Fix: Resolve multiple issues with page listing re-ordering using keyboard and screen readers (Aman Pandey)
* Fix: Remove 'Page' from page types filter on aging pages report (Matt Westcott)
* Fix: Prevent page types filter from showing other non-Page models that match by name (Matt Westcott)
* Fix: Ensure `MultipleChooserPanel` modal works correctly when `USE_THOUSAND_SEPARATOR` is `True` for pages with ids over 1,000 (Sankalp, Rohit Sharma)
* Fix: When using an empty table header (`th`) for visual spacing, ensure this is ignored by accessibility tooling (V Rohitansh)
* Fix: Ensure the panel anchor button sizes meet accessibility guidelines for minimum dimensions (Nandini Arora)
* Fix: Raise a 404 for bulk actions for models that don't exist instead of throwing a 500 error (Alex Tomkins)
* Fix: Raise a `SiteSetting.DoesNotExist` error when retrieving settings for an unrecognized site (Nick Smith)
* Fix: Ensure that defaulted or unique values declared in `exclude_fields_in_copy` are correctly excluded in new copies, resolving to the default value (Elhussein Almasri)
* Fix: Ensure that `default_ordering` set on IndexView is preserved if ModelViewSet does not specify an explicit ordering (Cynthia Kiser)
* Fix: Ensure that TableBlock cells are accessible when using keyboard control only (Elhussein Almasri)
* Fix: Resolve issue where clicking Publish for a Page that was in workflow in Safari would block publishing and not trigger the workflow confirmation modal (Alex Morega)
* Fix: Fix pagination links on model history and usage views (Matt Westcott)
* Fix: Fix crash when accessing workflow reports with a deleted snippet (Sage Abdullah)
* Docs: New developer tutorial (Damilola Oladele, Meagen Voss, Thibaud Colas)
* Docs: Document, for contributors, the use of translate string literals passed as arguments to tags and filters using `_()` within templates (Chiemezuo Akujobi)
* Docs: Document all features for the Documents app in one location (Neeraj Yetheendran)
* Docs: Add section to testing docs about creating pages and working with page content (Mariana Bedran Lesche)
* Docs: Add more nuance to the database recommendations in performance page (Jadesola Kareem)
* Docs: Add clarity that MultipleChooserPanel may require a chooser viewset and how the functionality is expected to work (Andy Chosak)
* Docs: Clarify where documentation build commands should be run (Nikhil S Kalburgi)
* Docs: Add missing import to tutorial BlogPage example (Salvo Polizzi)
* Docs: Update contributing guide documentation and GitHub templates to better support new contributors (Thibaud Colas)
* Docs: Add more CSS authoring guidelines (Thibaud Colas)
* Docs: Update MyST documentation parser library to 2.0.0 (Neeraj Yetheendran)
* Docs: Add documentation writing guidelines for intersphinx / external links (LB (Ben) Johnston)
* Docs: Add `Page` model reference `get_children` documentation (Salvo Polizzi)
* Docs: Enforce CI build checks for documentation so that malformed links or missing images will not be allowed (Neeraj Yetheendran)
* Docs: Update spelling on customizing admin template and page model section from British to American English (Victoria Poromon)
* Docs: Add documentation for how to override the file locations for custom image models via `get_upload_to` methods (Osaf AliSayed, Dharmik Gangani)
* Docs: Update documentation theme (Sphinx Wagtail Theme) to 6.2.0, fixing the incorrect favicon (LB (Ben) Johnston, Sahil Jangra)
* Docs: Refactor promotion banner without jQuery and use sameSite cookies when storing if cleared (LB (Ben) Johnston)
* Docs: Use cross-reference for compatible Python versions in tutorial instead of the out-of-date listing (mirusu400)
* Maintenance: Update BeautifulSoup upper bound to 4.12.x (scott-8)
* Maintenance: Migrate initialization of classes (such as `body.ready`) from multiple JavaScript implementations to one Stimulus controller `w-init` (Chiemezuo Akujobi)
* Maintenance: Adopt the usage of translate string literals using `arg=_('...')` in all `wagtailadmin` module templates (Chiemezuo Akujobi)
* Maintenance: Migrate the contrib styleguide index view to a class-based view (Chiemezuo Akujobi)
* Maintenance: Update djhtml to 3.0.6 (Matt Westcott)
* Maintenance: Migrate the contrib settings edit view to a class-based view (Chiemezuo Akujobi, Sage Abdullah)
* Maintenance: Remove django-pattern-library upper bound in testing dependencies (Sage Abdullah)
* Maintenance: Split up functions in Elasticsearch backend for easier extensibility (Marcel Kornblum, Cameron Lamb, Sam Dudley)
* Maintenance: Relax draftjs_exporter dependency to allow using version 5.x (Sylvain Fankhauser)
* Maintenance: Refine styling of listings, account settings panels and the block chooser (Meli Imelda)
* Maintenance: Remove icon font support (Matt Westcott)
* Maintenance: Remove deprecated SVG icons (Matt Westcott)
* Maintenance: Remove icon font styles (Thibaud Colas)
* Maintenance: Migrate account editing view to a class-based view (Kehinde Bobade)
* Maintenance: Upgrade frontend tooling to use Node 20 (LB (Ben) Johnston)
* Maintenance: Upgrade `ruff` and replace `black` with `ruff format` (John-Scott Atlakson)
* Maintenance: Update Willow upper bound to 2.x (Dan Braghis)
* Maintenance: Removed support for Django < 4.2 (Dan Braghis)
* Maintenance: Refactor page explorer index template to extend generic index template (Sage Abdullah)
* Maintenance: Replace template components implementation with standalone `laces` library (Tibor Leupold)
* Maintenance: Refactor snippets index view and template to make better use of generic IndexView (Sage Abdullah)
* Maintenance: Introduce an internal `{% formattedfield %}` tag to replace direct use of `wagtailadmin/shared/field.html` (Matt Westcott)
* Maintenance: Update Telepath dependency to 0.3.1 (Matt Westcott)
* Maintenance: Allow `ActionController` to have a `noop` method to more easily leverage standalone Stimulus action options (Nandini Arora)
* Maintenance: Upgrade to latest TypeScript and Storybook (Thibaud Colas, Sage Abdullah)
* Maintenance: Turn on `skipLibCheck` for TypeScript (LB (Ben) Johnston)
* Maintenance: Refactor documents listing view to use generic IndexView (Sage Abdullah)
* Maintenance: Support for the Stimulus `CloneController` to auto clear the added content after a set duration (LB (Ben) Johnston)
* Maintenance: Refactor images listing view to use generic IndexView (Sage Abdullah)
* Maintenance: Refactor form pages listing view to use generic IndexView (Sage Abdullah)
* Maintenance: Update Stylelint, our linting configuration, Sass, and related code changes (LB (Ben) Johnston)
* Maintenance: Simplify browserslist and browser support documentation (Thibaud Colas)
* Maintenance: Relax django-taggit dependency to allow 5.0 (Sylvain Fankhauser)
* Maintenance: Fix various warnings when building docs (Cynthia Kiser)
* Maintenance: Upgrade sphinxcontrib-spelling to 7.x for Python 3.12 compatibility (Matt Westcott)
* Maintenance: Move logic for django-filters filtering into `BaseListingView` (Matt Westcott)
* Maintenance: Remove or replace legacy CSS classes: visuallyhidden, visuallyvisible, divider-after, divider-before, inline, inline-block, block, u-hidden, clearfix, reordering, overflow (Thibaud Colas)
* Maintenance: Prevent future issues with icon.html end-of-file newlines (Thibaud Colas)
* Maintenance: Rewrite styles using legacy `c-`, `o-`, `u-`, `t-`, `is-` prefixes (Thibaud Colas)
* Maintenance: Remove invalid CSS styles / Sass selector concatenation (Thibaud Colas)
* Maintenance: Refactor listing views to share more queryset ordering logic (Matt Westcott)
* Maintenance: Remove `initTooltips` in favor of Stimulus controller (LB (Ben) Johnston)
* Maintenance: Enhance the Stimulus `InitController` to allow for custom event dispatching when ready (Aditya, LB (Ben) Johnston)
* Maintenance: Remove inline script usage for comment initialization and adopt an event listener/dispatch approach for better CSP compliance (Aditya, LB (Ben) Johnston)
* Maintenance: Migrate styleguide ad-hoc JavaScript to use styles only to avoid CSP issues (LB (Ben) Johnston)
* Maintenance: Update Jest version - frontend tooling (Nandini Arora)
* Maintenance: Remove non-functional and inaccessible auto-focus on first field in page create forms (LB (Ben) Johnston)
* Maintenance: Migrate the unsaved form checks & confirmation trigger to Stimulus `UnsavedController` (Sai Srikar Dumpeti, LB (Ben) Johnston)
* Maintenance: Reduce gap between snippets and generic views/templates (Sage Abdullah)
* Maintenance: Migrate page listing menu re-ordering (drag & drop) from jQuery inline scripts to `OrderableController` with a more accessible solution (Aman Pandey, LB (Ben) Johnston)
* Maintenance: Clean up scss variable usage, remove unused variables and mixins, adopt more core token variables (Jai Vignesh J, Nandini Arora, LB (Ben) Johnston)
* Maintenance: Migrate Image URL generator views to class-based views (Rohit Sharma)
* Maintenance: Use Django's `FileResponse` when serving files such as Images or Documents (Jake Howard)
* Maintenance: Deprecated `WidgetWithScript` base widget class (LB (Ben) Johnston)
* Maintenance: Remove support for Django 4.1 and below (Sage Abdullah)
5.2.7 (xx.xx.xxxx) - IN DEVELOPMENT
~~~~~~~~~~~~~~~~~~
* Fix: Prevent multiple URLs from being combined into one when pasting links into a rich text input (Thibaud Colas)
5.2.6 (11.07.2024)
~~~~~~~~~~~~~~~~~~
* Fix: CVE-2024-39317: Regular expression denial-of-service via search query parsing (Jake Howard)
* Fix: Fix image preview when Willow optimizers are enabled (Alex Tomkins)
* Maintenance: Remove django-pattern-library upper bound in testing dependencies (Sage Abdullah)
5.2.5 (01.05.2024)
~~~~~~~~~~~~~~~~~~
* Fix: Respect `WAGTAIL_ALLOW_UNICODE_SLUGS` setting when auto-generating slugs (LB (Ben) Johnston)
* Fix: Use correct URL when redirecting back to page search results after an AJAX search (Sage Abdullah)
* Fix: Provide `convert_mariadb_uuids` management command to assist with upgrading to Django 5.0+ on MariaDB (Matt Westcott)
5.2.4 (03.04.2024)
~~~~~~~~~~~~~~~~~~
* Fix: Prevent TitleFieldPanel from raising an error when the slug field is missing or read-only (Rohit Sharma)
* Fix: Fix pagination links on model history and usage views (Matt Westcott)
* Fix: Fix crash when accessing workflow reports with a deleted snippet (Sage Abdullah)
* Fix: Prevent error on submitting an empty search in the admin under Elasticsearch (Maikel Martens)
5.2.3 (23.01.2024)
~~~~~~~~~~~~~~~~~~
* Fix: Prevent a ValueError with `FormSubmissionsPanel` on Django 5.0 when creating a new form page (Matt Westcott)
* Fix: Specify telepath 0.3.1 as the minimum supported version, for Django 5.0 compatibility (Matt Westcott)
5.2.2 (06.12.2023)
~~~~~~~~~~~~~~~~~~
* Added support for Django 5.0
* Fix: Use a visible border and background color to highlight active formatting in the rich text toolbar (Cassidy Pittman)
* Fix: Ensure image focal point box can be removed (Gunnar Scherf)
* Fix: Ensure that Snippets search results correctly use the `index_results.html` or `index_results_template_name` override on initial load (Stefan Hammer)
* Fix: Avoid error when attempting to moderate a page drafted by a now deleted user (Dan Braghis)
* Fix: Ensure workflow dashboard panels work when the page/snippet is missing (Sage Abdullah)
* Fix: Prevent custom controls from stacking on top of the comment button in Draftail toolbar (Ben Morse)
5.2.1 (16.11.2023)
~~~~~~~~~~~~~~~~~~
* Fix: Add a fallback background for the editing preview iframe for sites without a background (Ian Price)
* Fix: Remove search logging from project template so that new projects without the search promotions module will not error (Matt Westcott)
* Fix: Ensure text only email notifications for updated comments do not escape HTML characters (Rohit Sharma)
* Fix: Use logical OR operator to combine search fields for Django ORM in generic IndexView (Varun Kumar)
* Fix: Ensure that explorer_results views fill in the correct next_url parameter on action URLs (Matt Westcott)
* Fix: Fix crash when accessing the history view for a translatable snippet (Sage Abdullah)
* Fix: Prevent upload of SVG images from failing when image feature detection is enabled (Joshua Munn)
* Fix: Fix crash when using the locale switcher on the snippets create view (Sage Abdullah)
* Fix: Fix performance regression on reports from calling `decorate_paginated_queryset` before pagination / filtering (Alex Tomkins)
* Fix: Make searching on specific fields work correctly on Elasticsearch when boost is in use (Matt Westcott)
* Fix: Prevent snippet permission post-migrate hook from failing on multiple database configurations (Joe Tsoi)
* Fix: Reinstate ability to filter on page type when searching on an empty query (Sage Abdullah)
* Fix: Prevent error on locked pages report when a user has locked multiple pages (Matt Westcott)
* Docs: Fix code example for `{% picture ... as ... %}` template tag (Rezyapkin)
5.2 LTS (01.11.2023)
~~~~~~~~~~~~~~~~~~~~
* Redesigned page listing view (Ben Enright, Matt Westcott, Thibaud Colas, Sage Abdullah)
* Support OpenSearch as an alternative to Elasticsearch (Matt Westcott)
* Add support for Python 3.12 (Matt Westcott)
* Add preview-aware and page-aware fragment caching template tags, `wagtailcache` & `wagtailpagecache` (Jake Howard)
* Always set help text element ID for form fields with help text in `field.html` template (Sage Abdullah)
* Move `SnippetViewSet` menu registration mechanism to base `ViewSet` class (Sage Abdullah)
* Enable reference index tracking for models registered with `ModelViewSet` (Sage Abdullah)
* When copying a page or creating an alias, copy its view restrictions to the destination (Sandeep Choudhary, Suyash Singh)
* Support pickling of StreamField values (pySilver)
* Move `SnippetViewSet` template override mechanism to `ModelViewSet` (Sage Abdullah)
* Move `SnippetViewSet.list_display` to `ModelViewSet` (Sage Abdullah)
* Remove `wagtail.publish` log action on aliases when they are created from live source pages or the source page is published (Dan Braghis)
* Remove `wagtail.unpublish` log action on aliases when source page is unpublished (Dan Braghis)
* Add compare buttons to workflow dashboard panel (Matt Westcott)
* Add the ability to use filters and to export listings in generic `IndexView` (Sage Abdullah)
* Move `list_filter`, `filterset_class`, `search_fields`, `search_backend_name`, `list_export`, `export_filename`, `list_per_page`, and `ordering` from `SnippetViewSet` to `ModelViewSet` (Sage Abdullah, Cynthia Kiser)
* Add default header titles to generic `IndexView` and `CreateView` (Sage Abdullah)
* Allow overriding `IndexView.export_headings` via `ModelViewSet` (Christer Jensen, Sage Abdullah)
* Support specifying a `get_object_list` method on `ChooserViewSet` (Matt Westcott)
* Add `linked_fields` mechanism on chooser widgets to allow choices to be limited by fields on the calling page (Matt Westcott)
* Add support for merging cells within `TableBlock` with the `mergedCells` option (Gareth Palmer)
* When adding a panel within `InlinePanel`, focus will now shift to that content similar to `StreamField` (Faishal Manzar)
* Show the full first published at date within a tooltip on the Page status sidebar on the relative date (Rohit Sharma)
* Extract generic breadcrumbs functionality from page breadcrumbs (Sage Abdullah)
* Add support for `placement` in the `human_readable_date` tooltip template tag (Rohit Sharma)
* Add breadcrumbs support to custom `ModelViewSet` views (Sage Abdullah)
* Support passing extra context variables via the `{% component %}` tag (Matt Westcott)
* Allow subclasses of `PagesAPIViewSet` override default Page model via the `model` attribute (Neeraj Yetheendran, Herbert Poul)
* Allow `ModelViewSet` to be used with models that have non-integer primary keys (Sage Abdullah)
* Add the ability to set an external link/text for promoted search result entries (TopDevPros, Brad Busenius)
* Add support for subject and body in the Email link chooser form (TopDevPros, Alexandre Joly)
* Extract generic `HistoryView` from snippets and add it to `ModelViewSet` (Sage Abdullah)
* Add generic `UsageView` to `ModelViewSet` (Sage Abdullah)
* Add the ability to define listing buttons on generic `IndexView` (Sage Abdullah)
* Add a visual progress bar to the output of the `wagtail_update_image_renditions` management command (Faishal Manzar)
* Increase the read buffer size to improve efficiency and performance when generating file hashes for document or image uploads, use `hashlib.file_digest` if available (Python 3.11+) (Jake Howard)
* API ordering now supports multiple fields (Rohit Sharma, Jake Howard)
* Pass block value to `Block.get_template` to allow varying template based on value (Florian Delizy)
* Add `InlinePanel` DOM events for when ready and when items added or removed (Faishal Manzar)
* Add a new `picture` template tag for Django Templates and Jinja (Thibaud Colas)
* Add a new `srcset_image` template tag for Django Templates and Jinja (Thibaud Colas)
* Support `Filter` instances as input for `AbstractImage.get_renditions()` (Thibaud Colas)
* Improve error messages for image template tags (Thibaud Colas)
* Do not render minimap if there are no panel anchors (Sage Abdullah)
* Use dropdown buttons on listings in dashboard panels (Sage Abdullah)
* Implement breadcrumbs design refinements (Thibaud Colas)
* Support extending Wagtail client-side with Stimulus (LB (Ben) Johnston)
* Update all `FieldPanel('title')` examples to use the recommended `TitleFieldPanel('title')` panel (Chinedu Ihedioha)
* The `purge_revisions` management command now respects revisions that have a `on_delete=PROTECT` foreign key relation and won't delete them (Neeraj P Yetheendran, Meghana Reddy, Sage Abdullah, Storm Heg)
* Add support for Shift + Click behavior in form submissions and simple translations submissions (LB (Ben) Johnston)
* Improve filtering of audit logging based on the user's permissions (Stefan Hammer)
* Fix: Ensure that StreamField's `FieldBlock`s correctly set the `required` and `aria-describedby` attributes (Storm Heg)
* Fix: Avoid an error when the moderation panel (admin dashboard) contains both snippets and private pages (Matt Westcott)
* Fix: When deleting collections, ensure the collection name is correctly shown in the success message (LB (Ben) Johnston)
* Fix: Filter out comments on Page editing counts that do not correspond to a valid field / block path on the page such as when a field has been removed (Matt Westcott)
* Fix: Allow `PublishMenuItem` to more easily support overriding its label via `construct_page_action_menu` (Sébastien Corbin)
* Fix: Allow locale selection when creating a page at the root level (Sage Abdullah)
* Fix: Ensure the admin login template correctly displays all `non_fields_errors` for any custom form validation (Sébastien Corbin)
* Fix: Ensure 'mark as active' label in workflow bulk action set active form can be translated (Rohit Sharma)
* Fix: Ensure the panel title for a user's settings correctly reflects the `WAGTAIL_EMAIL_MANAGEMENT_ENABLED` setting by not showing 'email' if disabled (Omkar Jadhav)
* Fix: Update Spotify oEmbed provider URL parsing to resolve correctly (Dhrűv)
* Fix: Update link colors within help blocks to meet accessible contrast requirements (Rohit Sharma)
* Fix: Ensure the search promotions popular search terms picker correctly refers to the correct model (LB (Ben) Johnston)
* Fix: Correctly quote non-numeric primary keys on snippet inspect view (Sage Abdullah)
* Fix: Prevent crash on snippet inspect view when displaying a null foreign key to an image (Sage Abdullah)
* Fix: Ensure that pages in moderation show as "Live + In Moderation" in the page explorer rather than "Live + Draft" (Sage Abdullah)
* Fix: Prevent error when updating reference index for objects with a lazy ParentalKey-related object (Chris Shaw)
* Fix: Ignore conflicts when inserting reference index entries to prevent race conditions causing uniqueness errors (Chris Shaw)
* Fix: Populate the correct return value when creating a new snippet within the snippet chooser (claudobahn)
* Fix: Reinstate missing filter by page type on page search (Matt Westcott)
* Fix: Ensure very long words can wrap when viewing saved comments (Chiemezuo Akujobi)
* Fix: Avoid forgotten password link text conflicting with the supplied aria-label (Thibaud Colas)
* Fix: Fix log message to record the correct restriction type when removing a page view restriction (Rohit Sharma, Hazh. M. Adam)
* Fix: Avoid potential race condition with new Page subscriptions on the edit view (Alex Tomkins)
* Fix: Use the correct action log when creating a redirect (Thibaud Colas)
* Fix: Ensure that all password fields consistently allow leading & trailing whitespace (Neeraj P Yetheendran)
* Docs: Expand documentation on using `ViewSet` and `ModelViewSet` (Sage Abdullah)
* Docs: Document `WAGTAILADMIN_BASE_URL` on "Integrating Wagtail into a Django project" page (Shreshth Srivastava)
* Docs: Replace incorrect screenshot for authors listing on tutorial (Shreshth Srivastava)
* Docs: Add documentation for building non-model-based choosers using the _queryish_ library (Matt Westcott)
* Docs: Fix incorrect tag library import on focal points example (Hatim Makki Hoho)
* Docs: Add reminder about including your custom Draftail feature in any overridden `WAGTAILADMIN_RICH_TEXT_EDITORS` setting (Charlie Sue)
* Docs: Mention the need to install `python3-venv` on Ubuntu (Brian Mugo)
* Docs: Document the use of the Google developer documentation style guide in documentation (Damilola Oladele)
* Docs: Fix Inconsistent URL Format in Getting Started tutorial (Olumide Micheal)
* Maintenance: Fix snippet search test to work on non-fallback database backends (Matt Westcott)
* Maintenance: Update Eslint, Prettier, Jest, a11y-dialog, axe-core and js-cookie npm packages (LB (Ben) Johnston)
* Maintenance: Add npm scripts for TypeScript checks and formatting SCSS files (LB (Ben) Johnston)
* Maintenance: Run tests in parallel in some of the CI setup (Sage Abdullah)
* Maintenance: Remove unused WorkflowStatus view, urlpattern, and workflow-status.js (Storm Heg)
* Maintenance: Add support for options/attrs in Telepath widgets so that attrs render on the created DOM (Storm Heg)
* Maintenance: Update pre-commit hooks to be in sync with latest changes to Eslint & Prettier for client-side changes (Storm Heg)
* Maintenance: Add `WagtailTestUtils.get_soup()` method for testing HTML content (Storm Heg, Sage Abdullah)
* Maintenance: Allow `ViewSet` subclasses to customize `url_prefix` and `url_namespace` logic (Matt Westcott)
* Maintenance: Simplify `SnippetViewSet` registration code (Sage Abdullah)
* Maintenance: Rename groups `IndexView.results_template_name` to `results.html` (Sage Abdullah)
* Maintenance: Migrate form submission listing checkbox toggling to the shared `w-bulk` Stimulus implementation (LB (Ben) Johnston)
* Maintenance: Allow viewsets to define a common set of view kwargs (Matt Westcott)
* Maintenance: Migrate the editor unsaved messages popup to be driven by Stimulus using the shared `w-message` controller (LB (Ben) Johnston, Hussain Saherwala)
* Maintenance: Do not use jest inside `stubs.js` to prevent Storybook from crashing (LB (Ben) Johnston)
* Maintenance: Refactor snippets templates to reuse the shared `slim_header.html` template (Sage Abdullah)
* Maintenance: Refactor `slim_header.html` template to reduce code duplication (Sage Abdullah)
* Maintenance: Upgrade Willow to v1.6.2 to support MIME type data without reliance on `imghdr` (Jake Howard)
* Maintenance: Replace `imghdr` with Willow's built-in MIME type detection (Jake Howard)
* Maintenance: Migrate all other `data-tippy` HTML attribute usage to the Stimulus data-*-value attributes for w-tooltip & w-dropdown (Subhajit Ghosh, LB (Ben) Johnston)
* Maintenance: Replace `@total_ordering` usage with comparison functions implementation (Virag Jain)
* Maintenance: Replace `<script type="text/django-form-template"><-/script>` template approach with HTML `template` elements in InlinePanel and expanding formset (Mansi Gundre, Subhajit Ghosh, LB (Ben) Johnston)
* Maintenance: Refactor side panels code for better reuse in pages and snippets (Sage Abdullah)
* Maintenance: Deprecate legacy URL redirects in `ModelViewSet` and `SnippetViewSet` (Sage Abdullah)
* Maintenance: Simplify code for registering page listing action buttons (Matt Westcott)
* Maintenance: Removed the unused, legacy, Wagtail userbar views set up for an old iframe approach (Sage Abdullah)
* Maintenance: Optimize `lru_cache` usage (Jake Howard)
* Maintenance: Implement `date_since` in `get_most_popular` inside `search_promotions.models.Query` (TopDevPros)
* Maintenance: Refactor generic view subclasses to better reuse the generic templates and breadcrumbs (Sage Abdullah)
* Maintenance: Adopt consistent `classname` (not `classnames`) attributes for all `MenuItem` usage, including deprecation warnings (LB (Ben) Johnston)
* Maintenance: Adopt consistent `classname` (not `classnames`) attribute within the `wagtail.images.formats.Format` instance, including deprecation warnings (LB (Ben) Johnston)
* Maintenance: Deprecate `context` argument of `construct_snippet_listing_buttons` hook (Sage Abdullah)
* Maintenance: Deprecate legacy moderation system (Sage Abdullah)
* Maintenance: Update CI database versions (Jake Howard)
* Maintenance: Add changelog and issue tracker links to the PyPI project page (Panagiotis H.M. Issaris)
* Maintenance: Add better deprecation warnings to the `search.Query` & `search.QueryDailyHits` model, move final set of templates from the admin search module to the search promotions contrib module (LB (Ben) Johnston)
* Maintenance: Add generic `InspectView` to `ModelViewSet` (Sage Abdullah)
* Maintenance: Migrate select all on focus/click behavior to Stimulus, used on the image URL generator (Chiemezuo Akujobi)
* Maintenance: Add support for a `reset` method to support Stimulus driven dynamic field resets via the `w-action` controller (Chiemezuo Akujobi)
* Maintenance: Add support for a `notify` target on the Stimulus dialog for dispatching events internally (Chiemezuo Akujobi)
* Maintenance: Migrate publishing schedule dialog field resets to Stimulus (Chiemezuo Akujobi)
5.1.3 (19.10.2023)
~~~~~~~~~~~~~~~~~~
* Fix: CVE-2023-45809: Disclosure of user names via admin bulk action views (Matt Westcott)
* Fix: Fix `SnippetBulkAction` not respecting `models` definition (Sandro Rodrigues)
* Fix: Correctly quote non-numeric primary keys on snippet inspect view (Sage Abdullah)
* Fix: Prevent crash on snippet inspect view when displaying a null foreign key to an image (Sage Abdullah)
* Fix: Populate the correct return value when creating a new snippet within the snippet chooser (claudobahn)
* Fix: Reinstate missing filter by page type on page search (Matt Westcott)
* Fix: Use the correct action log when creating a redirect (Thibaud Colas)
5.1.2 (25.09.2023)
~~~~~~~~~~~~~~~~~~
* Fix: Avoid use of `ignore_conflicts` when creating extra permissions for snippets, for SQL Server compatibility (Sage Abdullah)
* Fix: Ensure sequence on `wagtailsearchpromotions_query` table is correctly set after migrating data (Jake Howard)
* Fix: Change spreadsheet export headings to match listing view column headings (Christer Jensen, Sage Abdullah)
* Fix: Fix numbers, booleans, and `None` from being exported as strings (Christer Jensen)
* Fix: Restore fallback on full-word search for snippet choosers and generic index views (Matt Westcott)
* Fix: Restore compatibility with pre-7.15 versions of the Elasticsearch Python library, allowing use of Opensearch (Matt Westcott)
* Fix: Fix error when pickling BaseSiteSetting instances (Matt Westcott)
* Maintenance: For Python 3.13 support - upgrade Willow to v1.6.2, replace `imghdr` with Willow's built-in MIME type detection (Jake Howard)
5.1.1 (14.08.2023)
~~~~~~~~~~~~~~~~~~
* Introduce `wagtail.admin.ui.tables.BooleanColumn` to display boolean values as icons (Sage Abdullah)
* Fix: Show not-`None` falsy values instead of blank in generic table cell template (Sage Abdullah)
* Fix: Fix `read_only` panels for fields with translatable choice labels (Florent Lebreton)
5.1 (01.08.2023)
~~~~~~~~~~~~~~~~
* Add support for read-only FieldPanels (Andy Babic)
* Add support for query-time boosting to Elasticsearch 6 and above (Shohan Dutta Roy)
* Add support for Elasticsearch 8 (Matt Westcott, Wesley van Lee)
* Mark calls to `md5` as not being used for secure purposes, to avoid flagging on FIPS-mode systems (Sean Kelly)
* Return filters from `parse_query_string` as a `QueryDict` to support multiple values (Aman Pandey)
* Explicitly specify `MenuItem.name` for all admin menu and submenu items (Justin Koestinger)
* Add oEmbed provider patterns for YouTube Shorts and YouTube Live URLs (valnuro, Fabien Le Frapper)
* Add initial implementation of `PagePermissionPolicy` (Sage Abdullah)
* Refactor `UserPagePermissionsProxy` and `PagePermissionTester` to use `PagePermissionPolicy` (Sage Abdullah, Tidiane Dia)
* Add a predictable default ordering of the "Object/Other permissions" in the Group Editing view, allow this ordering to be customized (Daniel Kirkham)
* Add `AbstractImage.get_renditions()` for efficient generation of multiple renditions (Andy Babic)
* Optimise queries in collection permission policies using cache on the user object (Sage Abdullah)
* Phone numbers entered via a link chooser will now have any spaces stripped out, ensuring a valid href="tel:..." attribute (Sahil Jangra)
* Auto-select the `StreamField` block when only one block type is declared (Sébastien Corbin)
* Add support for more advanced Draftail customization APIs (Thibaud Colas)
* Add the ability to export snippets listing via `SnippetViewSet.list_export` (Sage Abdullah)
* Add support for adding HTML `attrs` on `FieldPanel`, `FieldRowPanel`, `MultiFieldPanel`, and others (Aman Pandey, Antoni Martyniuk, LB (Ben) Johnston)
* Add support for `--template` option to `wagtail start` (Thibaud Colas)
* Change to always cache renditions (Jake Howard)
* Update link/document rich text tooltips for consistency with the inline toolbar (Albina Starykova)
* Increase the contrast between the rich text / StreamField block picker and the page in dark mode (Albina Starykova)
* Purge revisions of non-page models in `purge_revisions` command (Sage Abdullah)
* Add support for AVIF images (Aman Pandey)
* Change the default WebP quality to 80 to match AVIF (Aman Pandey)
* Adopt optimized Wagtail logo in the admin interface (Albina Starykova)
* Add support for presenting the userbar (Wagtail button) in dark mode (Albina Starykova)
* Add Inspect view to snippets (Sage Abdullah)
* Fix: Prevent choosers from failing when initial value is an unrecognized ID, e.g. when moving a page from a location where `parent_page_types` would disallow it (Dan Braghis)
* Fix: Move comment notifications toggle to the comments side panel (Sage Abdullah)
* Fix: Remove comment button on InlinePanel fields (Sage Abdullah)
* Fix: Fix missing link to `UsageView` from `EditView` for snippets (Christer Jensen)
* Fix: Prevent lowercase conversions of IndexView column headers (Virag Jain)
* Fix: Ensure that `RichText` objects with the same values compare as equal (NikilTn)
* Fix: Use `gettext_lazy` on generic model views so that language settings are correctly used (Matt Westcott)
* Fix: Prevent JS error when reverting the spinner on a submit button after a validation error (LB (Ben) Johnston)
* Fix: Prevent crash when comparing page revisions that include `MultipleChooserPanel` (Matt Westcott)
* Fix: Ensure that title and slug continue syncing after entering non-URL-safe characters (LB (Ben) Johnston)
* Fix: Ensure that title and slug are synced on keypress, not just on blur (LB (Ben) Johnston)
* Fix: Add a more visible active state for side panel toggle buttons (Thibaud Colas)
* Fix: Debounce and optimise live preview panel to prevent excessive requests (Sage Abdullah)
* Fix: Use constant-time comparison for image serve URL signatures (Jake Howard)
* Fix: Ensure taggit field type-ahead options show correctly in the dark mode theme (Sage Abdullah)
* Fix: Fix the lock description message missing the model_name variable when locked only by system (Sébastien Corbin)
* Fix: Fix empty blocks created in migration operations (Sandil Ranasinghe)
* Fix: Ensure that gettext_lazy works correctly when using verbose_name on a generic Settings models (Sébastien Corbin)
* Fix: Remove unnecessary usage of `innerHTML` when modifying DOM content (LB (Ben) Johnston)
* Fix: Avoid `ValueError` when extending `PagesAPIViewSet` and setting `meta_fields` to an empty list (Henry Harutyunyan, Alex Morega)
* Fix: Improve accessibility for header search, remove autofocus on page load, advise screen readers that content has changed when results update (LB (Ben) Johnston)
* Fix: Fix incorrect override of `PagePermissionHelper.user_can_unpublish_obj()` in ModelAdmin (Sébastien Corbin)
* Fix: Prevent memory exhaustion when updating a large number of image renditions (Jake Howard)
* Fix: Add missing Time Zone conversions and date formatting throughout the admin (Stefan Hammer)
* Fix: Ensure that audit logs and revisions consistently use UTC and add migration for existing entries (Stefan Hammer)
* Fix: Make sure "critical" buttons have enough color contrast in dark mode (Albina Starykova)
* Fix: Improve visibility of scheduled publishing errors in status side panel (Sage Abdullah)
* Fix: Prevent 'choose' permission from being ignored when looking up 'choose', 'edit' and 'delete' permissions in combination (Sage Abdullah)
* Fix: Take user's permissions into account for image / document counts on the admin dashboard (Sage Abdullah)
* Fix: Avoid N+1 queries in users index view (Tidiane Dia)
* Fix: Use a theme-agnostic color token for read-only panels support in dark mode (Thibaud Colas)
* Fix: Ensure collapsible StreamBlocks expand as necessary to show validation errors (Storm Heg)
* Fix: Ensure userbar dialog can sit above other website content (LB (Ben) Johnston)
* Fix: Fix preview panel loading issues (Sage Abdullah)
* Fix: Fix `search_promotions` `0004_copy_queries` migration for long-lived Wagtail instances (Sage Abdullah)
* Fix: Guard against `TypeError` in `0088_fix_log_entry_json_timestamps` migration (Sage Abdullah)
* Fix: Add migration to replace JSON null values with empty objects in log entries' data (Sage Abdullah)
* Fix: Typo in the `page_header_buttons` template tag when accessing the context's request object (Robert Rollins)
* Fix: Ensure `ActionController` explicitly checks for elements that allow select functionality (Nandini Arora)
* Docs: Document how to add non-ModelAdmin views to a `ModelAdminGroup` (Onno Timmerman)
* Docs: Document how to add StructBlock data to a StreamField (Ramon Wenger)
* Docs: Update ReadTheDocs settings to v2 to resolve urllib3 issue in linkcheck extension (Thibaud Colas)
* Docs: Update documentation for `log_action` parameter on `RevisionMixin.save_revision` (Christer Jensen)
* Docs: Reorganise snippets documentation to cover customizations and optional features (Sage Abdullah)
* Docs: Update color customizations guidance to include theme-agnostic options (Thibaud Colas)
* Docs: Mark LTS releases in release note page titles (Thiago C. S. Tioma)
* Docs: Revise main Getting started tutorial for clarity (Kevin Chung (kev-odin))
* Docs: Revamp the start of the getting started section, with separate quick install page (Damilola Oladele)
* Docs: Move the tutorial’s snippets section to come before tags (Damilola Oladele)
* Docs: Rewrite the getting started tutorial to address identified friction points (Damilola Oladele)
* Docs: Switch the Getting started tutorial’s snippets example to be more understandable (Damilola Oladele)
* Docs: Update the deployment documentation page and remove outdated information (Jake Howard)
* Docs: Add more items to performance page regarding pre-fetching images and frontend caching (Jake Howard)
* Docs: Add docs for managing stored queries in `searchpromotions` (Scott Foster)
* Docs: Add docs for migrating from ModelAdmin to Snippets (Sage Abdullah)
* Maintenance: Removed support for Python 3.7 (Dan Braghis)
* Maintenance: Switch to ruff for flake8 / isort code checking (Oliver Parker)
* Maintenance: Deprecate `insert_editor_css` in favour of `insert_global_admin_css` (Ester Beltrami)
* Maintenance: Optimise use of `specific` on Task and TaskState (Matt Westcott)
* Maintenance: Use table UI component for workflow task index view (Matt Westcott)
* Maintenance: Make header search available on generic index view (Matt Westcott)
* Maintenance: Update pagination behavior to reject out-of-range / invalid page numbers (Matt Westcott)
* Maintenance: Remove color tokens which are duplicates / unused (Thibaud Colas)
* Maintenance: Add tests to help with maintenance of theme color tokens (Thibaud Colas)
* Maintenance: Split out a base listing view from generic index view (Matt Westcott)
* Maintenance: Update type hints in admin/ui/components.py so that `parent_context` is mutable (Andreas Nüßlein)
* Maintenance: Deprecate `UserPagePermissionsProxy` (Sage Abdullah)
* Maintenance: Optimise the Settings context processor to avoid redundantly finding a Site to improve cache ratios (Jake Howard)
* Maintenance: Convert page listing to a class-based view (Matt Westcott)
* Maintenance: Clean up page reports and type usage views to be independent of page listing views (Matt Westcott)
* Maintenance: Migrate Tagit initialization to a Stimulus Controller (LB (Ben) Johnston)
* Maintenance: Refactor GroupPagePermission to use Django's Permission model (Sage Abdullah)
* Maintenance: Convert the CONTRIBUTORS file to Markdown (Dan Braghis)
* Maintenance: Move `django-filter` version upper bound to v23 (Yuekui)
* Maintenance: Update Pillow dependency to allow 10.x, only include support for >= 9.1.0 (Yuekui)
* Maintenance: Migrate async header search and search within the Task chooser modal to `w-swap`, a Stimulus controller (LB (Ben) Johnston)
* Maintenance: Replace Bootstrap tooltips with a new `w-tooltip` Stimulus controller (LB (Ben) Johnston)
* Maintenance: Replace ModelAdmin history header human readable date template tag (LB (Ben) Johnston)
* Maintenance: Update uuid to v9 and Jest to v29, with `jest-environment-jsdom` and new snapshot format (LB (Ben) Johnston)
* Maintenance: Update test cases producing undesirable console output due to missing mocks, uncaught errors, warnings (LB (Ben) Johnston)
* Maintenance: Remove unused snippets _header_with_history.html template (Thibaud Colas)
* Maintenance: Migrate dialog instantiation to a new `w-dialog` Stimulus controller (Loveth Omokaro, LB (Ben) Johnston)
* Maintenance: Support dialog template cloning using a new `w-teleport` Stimulus controller (Loveth Omokaro, LB (Ben) Johnston)
* Maintenance: Migrate away from using the `"wagtailadmin/shared/field_as_li.html"` template include (Storm Heg)
* Maintenance: Deprecate `wagtail.contrib.modeladmin` (Sage Abdullah)
* Maintenance: Upgrade documentation theme `sphinx_wagtail_theme` to v6.1.1 which includes multiple styling fixes and always visible code copy buttons (LB (Ben) Johnston)
* Maintenance: Don't update the reference index while deleting it (Andy Chosak)
* Maintenance: Allow `ActionController` to have a `noop` method to more easily leverage standalone Stimulus action options (Nandini Arora)
5.0.5 (19.10.2023)
~~~~~~~~~~~~~~~~~~
* Fix: CVE-2023-45809: Disclosure of user names via admin bulk action views (Matt Westcott)
5.0.4 (04.10.2023)
~~~~~~~~~~~~~~~~~~
* Maintenance: Relax Willow / Pillow dependency to allow use of current Pillow versions with security fixes (Dan Braghis)
5.0.3 (25.09.2023)
~~~~~~~~~~~~~~~~~~
* Fix: Avoid use of `ignore_conflicts` when creating extra permissions for snippets, for SQL Server compatibility (Sage Abdullah)
* Fix: Ensure sequence on `wagtailsearchpromotions_query` table is correctly set after migrating data (Jake Howard)
* Fix: Update Pillow dependency to 9.1.0 (Daniel Kirkham)
5.0.2 (21.06.2023)
~~~~~~~~~~~~~~~~~~
* Added `TitleFieldPanel` to support title / slug field synchronization (LB (Ben) Johnston)
* Fix: Prevent JS error when reverting the spinner on a submit button after a validation error (LB (Ben) Johnston)
* Fix: Prevent crash when comparing page revisions that include `MultipleChooserPanel` (Matt Westcott)
* Fix: Ensure that title and slug continue syncing after entering non-URL-safe characters (LB (Ben) Johnston)
* Fix: Ensure that title and slug are synced on keypress, not just on blur (LB (Ben) Johnston)
* Fix: Add a more visible active state for side panel toggle buttons (Thibaud Colas)
* Fix: Use custom dark theme colors for revision comparisons (Thibaud Colas)
5.0.1 (25.05.2023)
~~~~~~~~~~~~~~~~~~
* Fix: Rectify previous fix for TableBlock becoming uneditable after save (Sage Abdullah)
* Fix: Ensure that copying page correctly picks up the latest revision (Matt Westcott)
* Fix: Ensure comment buttons always respect `WAGTAILADMIN_COMMENTS_ENABLED` (Thibaud Colas)
* Fix: Fix error when deleting a single snippet through the bulk actions interface (Sage Abdullah)
* Fix: Pass the correct `for_update` value for `get_form_class` in `SnippetViewSet` edit views (Sage Abdullah)
* Fix: Move comment notifications toggle to the comments side panel (Sage Abdullah)
* Fix: Remove comment button on InlinePanel fields (Sage Abdullah)
* Fix: Fix missing link to `UsageView` from `EditView` for snippets (Christer Jensen)
* Fix: Prevent lowercase conversions of IndexView column headers (Virag Jain)
* Fix: Fix various color issues in dark mode (Thibaud Colas)
* Docs: Update documentation for `log_action` parameter on `RevisionMixin.save_revision` (Christer Jensen)
5.0 (02.05.2023)
~~~~~~~~~~~~~~~~
* Added support for Django 4.2
* Object usage information on deleting objects (Sage Abdullah)
* Support for SVG images (Joshua Munn, with sponsorship from YouGov)
* Custom validation support for StreamField (Matt Westcott)
* Add `WAGTAILIMAGES_EXTENSIONS` setting to restrict image uploads to specific file types (Aman Pandey, Ananjan-R)
* Update user list column level to `Access level` to be easier to understand (Vallabh Tiwari)
* Migrate `.button-longrunning` behavior to a Stimulus controller with support for custom label element & duration (Loveth Omokaro)
* Implement new simplified userbar designs (Albina Starykova)
* Add more Axe rules to the accessibility checker (Albina Starykova)
* Sort accessibility checker results by position on the page (Albina Starykova)
* Highlight elements with errors in accessibility checker (Albina Starykova)
* Add usage view for pages (Sage Abdullah)
* Copy page form now updates the slug field dynamically with a slugified value on blur (Loveth Omokaro)
* Ensure selected collection is kept when navigating from documents or images listings to add multiple views & upon upload (Aman Pandey, Bojan Mihelac)
* Keep applied filters when downloading form submissions (Suyash Srivastava)
* Messages added dynamically via JavaScript now have an icon to be consistent with those supplied in the page's HTML (Aman Pandey)
* Switch lock/unlock side panel toggle to a switch, with more appropriate confirmation message status (Sage Abdullah)
* Ensure that changed or cleared selection from choosers will dispatch a DOM `change` event (George Sakkis)
* Add the ability to disable model indexing by setting `search_fields = []` (Daniel Kirkham)
* Enhance `wagtail.search.utils.parse_query_string` to allow inner single quotes for key/value parsing (Aman Pandey)
* Add helpful properties to `Locale` for more convenient usage within templates (Andy Babic)
* Allow customizing icons for snippets via `SnippetViewSet.icon` (Daniel Kirkham, Sage Abdullah)
* Allow customizing the base URL and URL namespace for snippet views (Sage Abdullah)