wagtail 6.2.2__py3-none-any.whl → 6.3rc2__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.
Files changed (386) hide show
  1. wagtail/__init__.py +1 -1
  2. wagtail/actions/copy_for_translation.py +6 -0
  3. wagtail/actions/publish_revision.py +3 -3
  4. wagtail/admin/action_menu.py +5 -3
  5. wagtail/admin/forms/account.py +1 -1
  6. wagtail/admin/icons.py +2 -6
  7. wagtail/admin/locale/cy/LC_MESSAGES/django.mo +0 -0
  8. wagtail/admin/locale/cy/LC_MESSAGES/django.po +32 -0
  9. wagtail/admin/locale/dv/LC_MESSAGES/django.mo +0 -0
  10. wagtail/admin/locale/dv/LC_MESSAGES/django.po +28 -0
  11. wagtail/admin/locale/en/LC_MESSAGES/django.po +451 -485
  12. wagtail/admin/locale/en/LC_MESSAGES/djangojs.po +7 -7
  13. wagtail/admin/locale/sl/LC_MESSAGES/django.mo +0 -0
  14. wagtail/admin/locale/sl/LC_MESSAGES/django.po +150 -0
  15. wagtail/admin/locale/sl/LC_MESSAGES/djangojs.mo +0 -0
  16. wagtail/admin/locale/sl/LC_MESSAGES/djangojs.po +9 -2
  17. wagtail/admin/locale/ug/LC_MESSAGES/django.mo +0 -0
  18. wagtail/admin/locale/ug/LC_MESSAGES/django.po +3250 -196
  19. wagtail/admin/localization.py +12 -2
  20. wagtail/admin/panels/model_utils.py +1 -1
  21. wagtail/admin/site_summary.py +0 -2
  22. wagtail/admin/static/wagtailadmin/css/core.css +1 -1
  23. wagtail/admin/static/wagtailadmin/css/panels/draftail.css +1 -1
  24. wagtail/admin/static/wagtailadmin/images/email-header.jpg +0 -0
  25. wagtail/admin/static/wagtailadmin/js/bulk-actions.js +1 -1
  26. wagtail/admin/static/wagtailadmin/js/core.js +1 -1
  27. wagtail/admin/static/wagtailadmin/js/core.js.LICENSE.txt +12 -0
  28. wagtail/admin/static/wagtailadmin/js/draftail.js +1 -1
  29. wagtail/admin/static/wagtailadmin/js/sidebar.js +1 -1
  30. wagtail/admin/static/wagtailadmin/js/telepath/telepath.js +1 -1
  31. wagtail/admin/static/wagtailadmin/js/telepath/widgets.js +1 -1
  32. wagtail/admin/static/wagtailadmin/js/userbar.js +1 -1
  33. wagtail/admin/static/wagtailadmin/js/userbar.js.LICENSE.txt +1 -1
  34. wagtail/admin/static/wagtailadmin/js/vendor.js +1 -1
  35. wagtail/admin/static/wagtailadmin/js/wagtailadmin.js +1 -1
  36. wagtail/admin/static/wagtailadmin/js/workflow-action.js +1 -1
  37. wagtail/admin/staticfiles.py +6 -4
  38. wagtail/admin/templates/wagtailadmin/account/account.html +42 -59
  39. wagtail/admin/templates/wagtailadmin/admin_base.html +0 -28
  40. wagtail/admin/templates/wagtailadmin/bulk_actions/footer.html +1 -1
  41. wagtail/admin/templates/wagtailadmin/chooser/_search_results.html +7 -5
  42. wagtail/admin/templates/wagtailadmin/chooser/tables/page_navigate_to_children_cell.html +1 -1
  43. wagtail/admin/templates/wagtailadmin/generic/chooser/results.html +7 -5
  44. wagtail/admin/templates/wagtailadmin/generic/edit.html +0 -8
  45. wagtail/admin/templates/wagtailadmin/generic/form.html +60 -17
  46. wagtail/admin/templates/wagtailadmin/generic/index.html +17 -0
  47. wagtail/admin/templates/wagtailadmin/generic/index_results.html +9 -35
  48. wagtail/admin/templates/wagtailadmin/generic/inspect.html +2 -21
  49. wagtail/admin/templates/wagtailadmin/generic/listing.html +11 -17
  50. wagtail/admin/templates/wagtailadmin/generic/listing_results.html +19 -1
  51. wagtail/admin/templates/wagtailadmin/home/account_summary.html +26 -0
  52. wagtail/admin/templates/wagtailadmin/home/locked_pages.html +28 -18
  53. wagtail/admin/templates/wagtailadmin/home/recent_edits.html +28 -17
  54. wagtail/admin/templates/wagtailadmin/home/site_summary_pages.html +2 -2
  55. wagtail/admin/templates/wagtailadmin/home/upgrade_notification.html +35 -13
  56. wagtail/admin/templates/wagtailadmin/home/user_objects_in_workflow_moderation.html +28 -18
  57. wagtail/admin/templates/wagtailadmin/home/workflow_objects_to_moderate.html +43 -32
  58. wagtail/admin/templates/wagtailadmin/home.html +22 -5
  59. wagtail/admin/templates/wagtailadmin/pages/_editor_js.html +0 -1
  60. wagtail/admin/templates/wagtailadmin/pages/action_menu/menu.html +1 -11
  61. wagtail/admin/templates/wagtailadmin/pages/action_menu/menu_item.html +1 -6
  62. wagtail/admin/templates/wagtailadmin/pages/action_menu/page_locked.html +1 -1
  63. wagtail/admin/templates/wagtailadmin/pages/action_menu/publish.html +1 -1
  64. wagtail/admin/templates/wagtailadmin/pages/action_menu/save_draft.html +1 -1
  65. wagtail/admin/templates/wagtailadmin/pages/bulk_actions/confirm_bulk_delete.html +12 -6
  66. wagtail/admin/templates/wagtailadmin/pages/bulk_actions/confirm_bulk_move.html +12 -7
  67. wagtail/admin/templates/wagtailadmin/pages/bulk_actions/confirm_bulk_publish.html +17 -11
  68. wagtail/admin/templates/wagtailadmin/pages/bulk_actions/confirm_bulk_unpublish.html +15 -9
  69. wagtail/admin/templates/wagtailadmin/pages/confirm_delete.html +9 -9
  70. wagtail/admin/templates/wagtailadmin/pages/confirm_move.html +2 -2
  71. wagtail/admin/templates/wagtailadmin/pages/confirm_unpublish.html +4 -4
  72. wagtail/admin/templates/wagtailadmin/pages/create.html +15 -34
  73. wagtail/admin/templates/wagtailadmin/pages/edit.html +15 -30
  74. wagtail/admin/templates/wagtailadmin/pages/explorable_index.html +6 -0
  75. wagtail/admin/templates/wagtailadmin/pages/explorable_index_results.html +60 -0
  76. wagtail/admin/templates/wagtailadmin/pages/index.html +1 -36
  77. wagtail/admin/templates/wagtailadmin/pages/index_results.html +2 -50
  78. wagtail/admin/templates/wagtailadmin/pages/listing/_locked_indicator.html +1 -1
  79. wagtail/admin/templates/wagtailadmin/pages/listing/_ordering_cell.html +1 -1
  80. wagtail/admin/templates/wagtailadmin/pages/listing/_page_header_buttons.html +1 -1
  81. wagtail/admin/templates/wagtailadmin/pages/listing/_page_title_column_header.html +3 -3
  82. wagtail/admin/templates/wagtailadmin/pages/listing/_pagination.html +1 -1
  83. wagtail/admin/templates/wagtailadmin/pages/listing.html +24 -0
  84. wagtail/admin/templates/wagtailadmin/pages/search.html +1 -20
  85. wagtail/admin/templates/wagtailadmin/pages/search_results.html +27 -25
  86. wagtail/admin/templates/wagtailadmin/permissions/includes/collection_member_permissions_formset.html +0 -1
  87. wagtail/admin/templates/wagtailadmin/reports/listing/_list_page_report.html +2 -2
  88. wagtail/admin/templates/wagtailadmin/reports/listing/_list_page_types_usage.html +6 -6
  89. wagtail/admin/templates/wagtailadmin/reports/workflow_tasks_results.html +1 -1
  90. wagtail/admin/templates/wagtailadmin/shared/action_menu/menu.html +14 -0
  91. wagtail/admin/templates/wagtailadmin/shared/action_menu/menu_item.html +6 -0
  92. wagtail/admin/templates/wagtailadmin/shared/avatar.html +13 -3
  93. wagtail/admin/templates/wagtailadmin/shared/header.html +0 -5
  94. wagtail/admin/templates/wagtailadmin/shared/headers/slim_header.html +1 -1
  95. wagtail/admin/templates/wagtailadmin/shared/page_status_tag_new.html +4 -1
  96. wagtail/admin/templates/wagtailadmin/shared/pagination_nav.html +1 -1
  97. wagtail/admin/templates/wagtailadmin/shared/side_panel_toggle.html +1 -1
  98. wagtail/admin/templates/wagtailadmin/shared/side_panels/includes/status/locale.html +1 -1
  99. wagtail/admin/templates/wagtailadmin/shared/side_panels/includes/status/usage.html +2 -2
  100. wagtail/admin/templates/wagtailadmin/shared/side_panels/preview.html +94 -52
  101. wagtail/admin/templates/wagtailadmin/{pages/_unsaved_changes_warning.html → shared/unsaved_changes_warning.html} +4 -4
  102. wagtail/admin/templates/wagtailadmin/shared/usage_summary.html +2 -2
  103. wagtail/admin/templates/wagtailadmin/shared/workflow_history/detail.html +1 -7
  104. wagtail/admin/templates/wagtailadmin/shared/workflow_history/listing.html +1 -0
  105. wagtail/admin/templates/wagtailadmin/shared/workflow_history/{list.html → listing_results.html} +33 -35
  106. wagtail/admin/templates/wagtailadmin/tables/references_cell.html +1 -1
  107. wagtail/admin/templates/wagtailadmin/workflows/create.html +11 -36
  108. wagtail/admin/templates/wagtailadmin/workflows/create_task.html +0 -38
  109. wagtail/admin/templates/wagtailadmin/workflows/edit.html +44 -74
  110. wagtail/admin/templates/wagtailadmin/workflows/edit_task.html +27 -66
  111. wagtail/admin/templates/wagtailadmin/workflows/includes/task_usage_cell.html +4 -2
  112. wagtail/admin/templates/wagtailadmin/workflows/includes/workflow_tasks_cell.html +4 -4
  113. wagtail/admin/templates/wagtailadmin/workflows/includes/workflow_used_by_cell.html +15 -11
  114. wagtail/admin/templates/wagtailadmin/workflows/task_chooser/includes/results.html +7 -5
  115. wagtail/admin/templatetags/wagtailadmin_tags.py +51 -22
  116. wagtail/admin/tests/pages/test_content_type_use_view.py +82 -2
  117. wagtail/admin/tests/pages/test_edit_page.py +70 -0
  118. wagtail/admin/tests/pages/test_explorer_view.py +65 -4
  119. wagtail/admin/tests/pages/test_page_search.py +8 -7
  120. wagtail/admin/tests/pages/test_page_usage.py +3 -1
  121. wagtail/admin/tests/pages/test_preview.py +208 -63
  122. wagtail/admin/tests/pages/test_reorder_page.py +91 -1
  123. wagtail/admin/tests/pages/test_view_draft.py +32 -1
  124. wagtail/admin/tests/pages/test_workflow_history.py +288 -7
  125. wagtail/admin/tests/test_account_management.py +23 -3
  126. wagtail/admin/tests/test_audit_log.py +24 -2
  127. wagtail/admin/tests/test_collections_views.py +17 -5
  128. wagtail/admin/tests/test_dashboard.py +1 -1
  129. wagtail/admin/tests/test_edit_handlers.py +3 -2
  130. wagtail/admin/tests/test_icon_sprite.py +4 -0
  131. wagtail/admin/tests/test_privacy.py +5 -19
  132. wagtail/admin/tests/test_reports_views.py +1 -1
  133. wagtail/admin/tests/test_site_summary.py +3 -3
  134. wagtail/admin/tests/test_templatetags.py +27 -3
  135. wagtail/admin/tests/test_upgrade_notification.py +71 -18
  136. wagtail/admin/tests/test_views.py +2 -2
  137. wagtail/admin/tests/test_views_generic.py +13 -0
  138. wagtail/admin/tests/test_widgets.py +3 -3
  139. wagtail/admin/tests/test_workflows.py +172 -27
  140. wagtail/admin/tests/tests.py +1 -1
  141. wagtail/admin/tests/viewsets/test_model_viewset.py +55 -3
  142. wagtail/admin/ui/side_panels.py +19 -0
  143. wagtail/admin/ui/sidebar.py +4 -3
  144. wagtail/admin/ui/tables/__init__.py +14 -1
  145. wagtail/admin/ui/tables/pages.py +6 -1
  146. wagtail/admin/urls/pages.py +10 -1
  147. wagtail/admin/urls/workflows.py +6 -1
  148. wagtail/admin/views/account.py +5 -1
  149. wagtail/admin/views/collections.py +0 -2
  150. wagtail/admin/views/generic/base.py +118 -1
  151. wagtail/admin/views/generic/history.py +158 -26
  152. wagtail/admin/views/generic/models.py +113 -99
  153. wagtail/admin/views/home.py +24 -9
  154. wagtail/admin/views/page_privacy.py +54 -30
  155. wagtail/admin/views/pages/history.py +11 -4
  156. wagtail/admin/views/pages/listing.py +76 -89
  157. wagtail/admin/views/pages/preview.py +1 -1
  158. wagtail/admin/views/pages/search.py +27 -71
  159. wagtail/admin/views/pages/usage.py +63 -24
  160. wagtail/admin/views/pages/utils.py +4 -3
  161. wagtail/admin/views/reports/base.py +0 -6
  162. wagtail/admin/views/workflows.py +67 -25
  163. wagtail/admin/viewsets/model.py +4 -3
  164. wagtail/admin/widgets/chooser.py +2 -1
  165. wagtail/api/v2/tests/test_pages.py +15 -2
  166. wagtail/blocks/field_block.py +15 -3
  167. wagtail/blocks/static_block.py +3 -0
  168. wagtail/contrib/forms/locale/cy/LC_MESSAGES/django.mo +0 -0
  169. wagtail/contrib/forms/locale/cy/LC_MESSAGES/django.po +29 -1
  170. wagtail/contrib/forms/locale/en/LC_MESSAGES/django.po +15 -11
  171. wagtail/contrib/forms/templates/wagtailforms/confirm_delete.html +1 -0
  172. wagtail/contrib/forms/templates/wagtailforms/index.html +1 -1
  173. wagtail/contrib/forms/templates/wagtailforms/index_results.html +1 -1
  174. wagtail/contrib/forms/templates/wagtailforms/list_submissions.html +2 -1
  175. wagtail/contrib/forms/templates/wagtailforms/panels/form_responses_panel.html +2 -2
  176. wagtail/contrib/forms/tests/test_views.py +234 -35
  177. wagtail/contrib/forms/utils.py +8 -14
  178. wagtail/contrib/forms/views.py +72 -27
  179. wagtail/contrib/frontend_cache/backends/azure.py +1 -1
  180. wagtail/contrib/frontend_cache/backends/cloudfront.py +2 -2
  181. wagtail/contrib/frontend_cache/backends/dummy.py +11 -0
  182. wagtail/contrib/frontend_cache/tests.py +31 -37
  183. wagtail/contrib/frontend_cache/utils.py +12 -5
  184. wagtail/contrib/redirects/locale/cy/LC_MESSAGES/django.mo +0 -0
  185. wagtail/contrib/redirects/locale/cy/LC_MESSAGES/django.po +16 -1
  186. wagtail/contrib/redirects/locale/en/LC_MESSAGES/django.po +20 -24
  187. wagtail/contrib/redirects/models.py +16 -1
  188. wagtail/contrib/redirects/signal_handlers.py +18 -3
  189. wagtail/contrib/redirects/templates/wagtailredirects/add.html +5 -16
  190. wagtail/contrib/redirects/templates/wagtailredirects/import_summary.html +1 -1
  191. wagtail/contrib/redirects/tests/test_redirects.py +49 -6
  192. wagtail/contrib/redirects/tests/test_signal_handlers.py +42 -1
  193. wagtail/contrib/redirects/views.py +27 -3
  194. wagtail/contrib/search_promotions/locale/cy/LC_MESSAGES/django.mo +0 -0
  195. wagtail/contrib/search_promotions/locale/cy/LC_MESSAGES/django.po +60 -1
  196. wagtail/contrib/search_promotions/locale/en/LC_MESSAGES/django.po +12 -18
  197. wagtail/contrib/search_promotions/templates/wagtailsearchpromotions/add.html +5 -8
  198. wagtail/contrib/search_promotions/templates/wagtailsearchpromotions/edit.html +15 -10
  199. wagtail/contrib/search_promotions/tests.py +13 -2
  200. wagtail/contrib/search_promotions/views.py +15 -3
  201. wagtail/contrib/settings/locale/cy/LC_MESSAGES/django.mo +0 -0
  202. wagtail/contrib/settings/locale/cy/LC_MESSAGES/django.po +6 -1
  203. wagtail/contrib/settings/locale/en/LC_MESSAGES/django.po +2 -10
  204. wagtail/contrib/settings/templates/wagtailsettings/edit.html +12 -45
  205. wagtail/contrib/simple_translation/locale/cy/LC_MESSAGES/django.mo +0 -0
  206. wagtail/contrib/simple_translation/locale/cy/LC_MESSAGES/django.po +13 -1
  207. wagtail/contrib/simple_translation/locale/dv/LC_MESSAGES/django.mo +0 -0
  208. wagtail/contrib/simple_translation/locale/dv/LC_MESSAGES/django.po +3 -0
  209. wagtail/contrib/simple_translation/locale/en/LC_MESSAGES/django.po +4 -4
  210. wagtail/contrib/simple_translation/locale/sl/LC_MESSAGES/django.mo +0 -0
  211. wagtail/contrib/simple_translation/locale/sl/LC_MESSAGES/django.po +5 -2
  212. wagtail/contrib/simple_translation/tests/test_views.py +51 -0
  213. wagtail/contrib/simple_translation/wagtail_hooks.py +16 -11
  214. wagtail/contrib/styleguide/locale/cy/LC_MESSAGES/django.mo +0 -0
  215. wagtail/contrib/styleguide/locale/cy/LC_MESSAGES/django.po +5 -1
  216. wagtail/contrib/styleguide/locale/en/LC_MESSAGES/django.po +1 -1
  217. wagtail/contrib/table_block/locale/cy/LC_MESSAGES/django.mo +0 -0
  218. wagtail/contrib/table_block/locale/cy/LC_MESSAGES/django.po +27 -1
  219. wagtail/contrib/table_block/locale/en/LC_MESSAGES/django.po +1 -1
  220. wagtail/contrib/typed_table_block/blocks.py +25 -0
  221. wagtail/contrib/typed_table_block/locale/cy/LC_MESSAGES/django.mo +0 -0
  222. wagtail/contrib/typed_table_block/locale/cy/LC_MESSAGES/django.po +12 -1
  223. wagtail/contrib/typed_table_block/locale/en/LC_MESSAGES/django.po +10 -10
  224. wagtail/contrib/typed_table_block/tests.py +24 -1
  225. wagtail/coreutils.py +5 -11
  226. wagtail/documents/admin_urls.py +2 -2
  227. wagtail/documents/locale/cy/LC_MESSAGES/django.mo +0 -0
  228. wagtail/documents/locale/cy/LC_MESSAGES/django.po +10 -0
  229. wagtail/documents/locale/en/LC_MESSAGES/django.po +61 -76
  230. wagtail/documents/migrations/0014_alter_document_file_size.py +18 -0
  231. wagtail/documents/models.py +1 -1
  232. wagtail/documents/rich_text/__init__.py +1 -3
  233. wagtail/documents/static/wagtaildocs/js/add-multiple.js +1 -1
  234. wagtail/documents/templates/wagtaildocs/bulk_actions/confirm_bulk_add_tags.html +5 -1
  235. wagtail/documents/templates/wagtaildocs/bulk_actions/confirm_bulk_add_to_collection.html +5 -1
  236. wagtail/documents/templates/wagtaildocs/bulk_actions/confirm_bulk_delete.html +11 -5
  237. wagtail/documents/templates/wagtaildocs/documents/add.html +13 -41
  238. wagtail/documents/templates/wagtaildocs/documents/edit.html +28 -56
  239. wagtail/documents/templates/wagtaildocs/documents/index.html +1 -4
  240. wagtail/documents/templates/wagtaildocs/homepage/site_summary_documents.html +2 -2
  241. wagtail/documents/templates/wagtaildocs/multiple/add.html +36 -41
  242. wagtail/documents/tests/test_admin_views.py +64 -6
  243. wagtail/documents/tests/test_site_summary.py +3 -3
  244. wagtail/documents/views/documents.py +103 -113
  245. wagtail/documents/views/multiple.py +19 -1
  246. wagtail/embeds/locale/en/LC_MESSAGES/django.po +1 -1
  247. wagtail/embeds/oembed_providers.py +9 -19
  248. wagtail/fields.py +43 -27
  249. wagtail/images/admin_urls.py +2 -2
  250. wagtail/images/blocks.py +230 -2
  251. wagtail/images/fields.py +17 -29
  252. wagtail/images/image_operations.py +1 -1
  253. wagtail/images/locale/cy/LC_MESSAGES/django.mo +0 -0
  254. wagtail/images/locale/cy/LC_MESSAGES/django.po +128 -1
  255. wagtail/images/locale/en/LC_MESSAGES/django.po +119 -129
  256. wagtail/images/migrations/0025_alter_image_file_alter_rendition_file.py +36 -43
  257. wagtail/images/migrations/0027_image_description.py +20 -0
  258. wagtail/images/models.py +120 -45
  259. wagtail/images/rich_text/__init__.py +1 -3
  260. wagtail/images/static/wagtailimages/js/add-multiple.js +1 -1
  261. wagtail/images/static/wagtailimages/js/image-block.js +1 -0
  262. wagtail/images/templates/wagtailimages/bulk_actions/confirm_bulk_add_tags.html +5 -1
  263. wagtail/images/templates/wagtailimages/bulk_actions/confirm_bulk_add_to_collection.html +5 -1
  264. wagtail/images/templates/wagtailimages/bulk_actions/confirm_bulk_delete.html +11 -5
  265. wagtail/images/templates/wagtailimages/chooser/results.html +2 -2
  266. wagtail/images/templates/wagtailimages/homepage/site_summary_images.html +2 -2
  267. wagtail/images/templates/wagtailimages/images/_file_field.html +2 -2
  268. wagtail/images/templates/wagtailimages/images/add.html +13 -31
  269. wagtail/images/templates/wagtailimages/images/edit.html +53 -82
  270. wagtail/images/templates/wagtailimages/images/index.html +1 -4
  271. wagtail/images/templates/wagtailimages/images/url_generator.html +1 -1
  272. wagtail/images/templates/wagtailimages/multiple/add.html +40 -47
  273. wagtail/images/templates/wagtailimages/widgets/image.html +5 -0
  274. wagtail/images/templates/wagtailimages/widgets/image_chooser.html +1 -1
  275. wagtail/images/tests/test_admin_views.py +70 -10
  276. wagtail/images/tests/test_blocks.py +367 -1
  277. wagtail/images/tests/test_image_operations.py +23 -0
  278. wagtail/images/tests/test_models.py +20 -0
  279. wagtail/images/tests/test_signal_handlers.py +99 -95
  280. wagtail/images/tests/test_site_summary.py +3 -3
  281. wagtail/images/tests/test_templatetags.py +11 -7
  282. wagtail/images/tests/tests.py +4 -0
  283. wagtail/images/views/images.py +103 -104
  284. wagtail/images/views/multiple.py +17 -1
  285. wagtail/locale/cy/LC_MESSAGES/django.mo +0 -0
  286. wagtail/locale/cy/LC_MESSAGES/django.po +3 -0
  287. wagtail/locale/en/LC_MESSAGES/django.po +137 -125
  288. wagtail/locale/sl/LC_MESSAGES/django.mo +0 -0
  289. wagtail/locale/sl/LC_MESSAGES/django.po +3 -0
  290. wagtail/locales/locale/en/LC_MESSAGES/django.po +8 -8
  291. wagtail/locales/views.py +4 -1
  292. wagtail/migrations/0089_log_entry_data_json_null_to_object.py +1 -7
  293. wagtail/models/__init__.py +122 -14
  294. wagtail/models/audit_log.py +1 -3
  295. wagtail/models/i18n.py +1 -2
  296. wagtail/project_template/Dockerfile +3 -3
  297. wagtail/project_template/requirements.txt +2 -2
  298. wagtail/query.py +17 -4
  299. wagtail/rich_text/__init__.py +2 -3
  300. wagtail/rich_text/pages.py +2 -4
  301. wagtail/rich_text/rewriters.py +2 -2
  302. wagtail/search/backends/database/mysql/query.py +3 -3
  303. wagtail/search/backends/database/sqlite/query.py +6 -6
  304. wagtail/search/locale/en/LC_MESSAGES/django.po +1 -1
  305. wagtail/sites/locale/en/LC_MESSAGES/django.po +6 -6
  306. wagtail/sites/views.py +0 -1
  307. wagtail/snippets/action_menu.py +14 -4
  308. wagtail/snippets/locale/cy/LC_MESSAGES/django.mo +0 -0
  309. wagtail/snippets/locale/cy/LC_MESSAGES/django.po +73 -1
  310. wagtail/snippets/locale/en/LC_MESSAGES/django.po +27 -33
  311. wagtail/snippets/static/wagtailsnippets/js/snippet-chooser-telepath.js +1 -1
  312. wagtail/snippets/static/wagtailsnippets/js/snippet-chooser.js +1 -1
  313. wagtail/snippets/templates/wagtailsnippets/bulk_actions/confirm_bulk_delete.html +5 -3
  314. wagtail/snippets/templates/wagtailsnippets/snippets/action_menu/locked.html +1 -1
  315. wagtail/snippets/templates/wagtailsnippets/snippets/action_menu/menu.html +1 -11
  316. wagtail/snippets/templates/wagtailsnippets/snippets/action_menu/menu_item.html +1 -6
  317. wagtail/snippets/templates/wagtailsnippets/snippets/action_menu/publish.html +1 -1
  318. wagtail/snippets/templates/wagtailsnippets/snippets/action_menu/save.html +1 -1
  319. wagtail/snippets/templates/wagtailsnippets/snippets/create.html +1 -18
  320. wagtail/snippets/templates/wagtailsnippets/snippets/edit.html +1 -14
  321. wagtail/snippets/templates/wagtailsnippets/snippets/index.html +2 -5
  322. wagtail/snippets/tests/test_preview.py +193 -61
  323. wagtail/snippets/tests/test_snippets.py +247 -38
  324. wagtail/snippets/tests/test_usage.py +5 -0
  325. wagtail/snippets/tests/test_viewset.py +25 -9
  326. wagtail/snippets/tests/test_workflows.py +232 -19
  327. wagtail/snippets/views/snippets.py +1 -10
  328. wagtail/test/numberformat.py +104 -0
  329. wagtail/test/settings.py +10 -0
  330. wagtail/test/settings_ui.py +2 -0
  331. wagtail/test/testapp/migrations/0010_alter_customimage_file_and_more.py +71 -78
  332. wagtail/test/testapp/migrations/0040_nocreatablesubpagetypespage_nosubpagetypespage.py +54 -0
  333. wagtail/test/testapp/migrations/0041_alter_jsonstreammodel_options.py +17 -0
  334. wagtail/test/testapp/migrations/0042_alter_customdocument_file_size_and_more.py +28 -0
  335. wagtail/test/testapp/migrations/0043_customimage_description.py +41 -0
  336. wagtail/test/testapp/migrations/0044_custompreviewsizesmodel_custompreviewsizespage.py +52 -0
  337. wagtail/test/testapp/migrations/0045_alter_streampage_body.py +52 -0
  338. wagtail/test/testapp/models.py +62 -4
  339. wagtail/test/testapp/rich_text.py +2 -2
  340. wagtail/test/testapp/templates/tests/form_page_landing.html +2 -1
  341. wagtail/test/testapp/urls.py +5 -0
  342. wagtail/test/testapp/views.py +5 -0
  343. wagtail/test/utils/page_tests.py +5 -5
  344. wagtail/test/utils/template_tests.py +2 -2
  345. wagtail/tests/test_blocks.py +15 -0
  346. wagtail/tests/test_page_permissions.py +109 -0
  347. wagtail/tests/test_revision_model.py +27 -0
  348. wagtail/tests/test_signals.py +21 -2
  349. wagtail/tests/test_tests.py +30 -0
  350. wagtail/users/locale/cy/LC_MESSAGES/django.mo +0 -0
  351. wagtail/users/locale/cy/LC_MESSAGES/django.po +118 -1
  352. wagtail/users/locale/dv/LC_MESSAGES/django.mo +0 -0
  353. wagtail/users/locale/dv/LC_MESSAGES/django.po +3 -0
  354. wagtail/users/locale/en/LC_MESSAGES/django.po +89 -113
  355. wagtail/users/locale/sl/LC_MESSAGES/django.mo +0 -0
  356. wagtail/users/locale/sl/LC_MESSAGES/django.po +3 -0
  357. wagtail/users/migrations/0014_userprofile_contrast.py +23 -0
  358. wagtail/users/models.py +11 -0
  359. wagtail/users/templates/wagtailusers/bulk_actions/confirm_bulk_assign_role.html +5 -1
  360. wagtail/users/templates/wagtailusers/bulk_actions/confirm_bulk_delete.html +5 -1
  361. wagtail/users/templates/wagtailusers/bulk_actions/confirm_bulk_set_active_state.html +5 -1
  362. wagtail/users/templates/wagtailusers/groups/create.html +19 -17
  363. wagtail/users/templates/wagtailusers/groups/edit.html +2 -40
  364. wagtail/users/templates/wagtailusers/groups/includes/formatted_permissions.html +1 -62
  365. wagtail/users/templates/wagtailusers/groups/includes/page_permissions_formset.html +0 -1
  366. wagtail/users/templates/wagtailusers/users/create.html +46 -50
  367. wagtail/users/templates/wagtailusers/users/edit.html +45 -62
  368. wagtail/users/templates/wagtailusers/users/index.html +1 -4
  369. wagtail/users/templatetags/wagtailusers_tags.py +1 -5
  370. wagtail/users/tests/test_admin_views.py +85 -66
  371. wagtail/users/views/groups.py +4 -1
  372. wagtail/users/views/users.py +2 -0
  373. {wagtail-6.2.2.dist-info → wagtail-6.3rc2.dist-info}/METADATA +6 -6
  374. {wagtail-6.2.2.dist-info → wagtail-6.3rc2.dist-info}/RECORD +378 -367
  375. wagtail/admin/static/wagtailadmin/js/preview-panel.js +0 -2
  376. wagtail/admin/static/wagtailadmin/js/preview-panel.js.LICENSE.txt +0 -11
  377. wagtail/admin/templates/wagtailadmin/generic/history_results.html +0 -1
  378. wagtail/admin/templates/wagtailadmin/page_privacy/ancestor_privacy.html +0 -3
  379. wagtail/admin/templates/wagtailadmin/pages/usage_results.html +0 -6
  380. wagtail/admin/templates/wagtailadmin/shared/workflow_history/index.html +0 -17
  381. wagtail/admin/templates/wagtailadmin/shared/workflow_history/results.html +0 -17
  382. wagtail/admin/templates/wagtailadmin/workflows/usage.html +0 -44
  383. {wagtail-6.2.2.dist-info → wagtail-6.3rc2.dist-info}/LICENSE +0 -0
  384. {wagtail-6.2.2.dist-info → wagtail-6.3rc2.dist-info}/WHEEL +0 -0
  385. {wagtail-6.2.2.dist-info → wagtail-6.3rc2.dist-info}/entry_points.txt +0 -0
  386. {wagtail-6.2.2.dist-info → wagtail-6.3rc2.dist-info}/top_level.txt +0 -0
@@ -1,43 +1,18 @@
1
1
  {% extends "wagtailadmin/generic/create.html" %}
2
2
  {% load i18n wagtailadmin_tags %}
3
3
 
4
- {% block main_content %}
5
- <form action="{{ view.get_add_url }}" enctype="multipart/form-data" method="POST" novalidate>
6
- {% csrf_token %}
4
+ {% block form_content %}
5
+ {{ edit_handler.render_form_content }}
7
6
 
8
- <div class="w-form-width">
9
- {% block form %}{{ edit_handler.render_form_content }}{% endblock %}
7
+ <div class="w-form-width">
8
+ {% panel id="workflow-pages" icon="doc-empty-inverse" heading=_("Assign your workflow to pages") %}
9
+ {% include "wagtailadmin/workflows/includes/workflow_pages_formset.html" with formset=pages_formset %}
10
+ {% endpanel %}
10
11
 
11
- {% panel id="workflow-pages" icon="doc-empty-inverse" heading=_("Assign your workflow to pages") %}
12
- {% include "wagtailadmin/workflows/includes/workflow_pages_formset.html" with formset=pages_formset %}
12
+ {% if has_workflow_enabled_models %}
13
+ {% panel id="workflow-content-types" icon="snippet" heading=_("Assign your workflow to snippets") %}
14
+ {% formattedfield field=content_type_form.content_types sr_only_label=True %}
13
15
  {% endpanel %}
14
-
15
- {% if has_workflow_enabled_models %}
16
- {% panel id="workflow-content-types" icon="snippet" heading=_("Assign your workflow to snippets") %}
17
- {% formattedfield field=content_type_form.content_types sr_only_label=True %}
18
- {% endpanel %}
19
- {% endif %}
20
- </div>
21
-
22
- {% block footer %}
23
- <footer class="footer">
24
- <div class="actions footer__container w-flex">
25
- {% block form_actions %}
26
- <button
27
- type="submit"
28
- class="button action-save button-longrunning w-flex-grow"
29
- data-controller="w-progress w-kbd"
30
- data-action="w-progress#activate"
31
- data-w-kbd-key-value="mod+s"
32
- data-w-kbd-scope-value="global"
33
- data-w-progress-active-value="{% trans 'Creating…' %}"
34
- >
35
- {% icon name="spinner" %}
36
- <em data-w-progress-target="label">{% trans 'Create' %}</em>
37
- </button>
38
- {% endblock %}
39
- </div>
40
- </footer>
41
- {% endblock %}
42
- </form>
16
+ {% endif %}
17
+ </div>
43
18
  {% endblock %}
@@ -1,39 +1 @@
1
1
  {% extends "wagtailadmin/generic/create.html" %}
2
- {% load i18n wagtailadmin_tags %}
3
-
4
- {% block main_content %}
5
- <form action="{{ view.get_add_url }}" enctype="multipart/form-data" method="POST" novalidate>
6
- {% csrf_token %}
7
-
8
- <ul class="fields">
9
- {% for field in form %}
10
- {% if not field.is_hidden %}
11
- <li>{% formattedfield field %}</li>
12
- {% else %}
13
- {{ field }}
14
- {% endif %}
15
- {% endfor %}
16
- </ul>
17
-
18
- {% block footer %}
19
- <footer class="footer">
20
- <div class="actions footer__container w-flex">
21
- {% block form_actions %}
22
- <button
23
- type="submit"
24
- class="button action-save button-longrunning w-flex-grow"
25
- data-controller="w-progress w-kbd"
26
- data-action="w-progress#activate"
27
- data-w-kbd-key-value="mod+s"
28
- data-w-kbd-scope-value="global"
29
- data-w-progress-active-value="{% trans 'Creating…' %}"
30
- >
31
- {% icon name="spinner" %}
32
- <em data-w-progress-target="label">{% trans 'Create' %}</em>
33
- </button>
34
- {% endblock %}
35
- </div>
36
- </footer>
37
- {% endblock %}
38
- </form>
39
- {% endblock %}
@@ -1,88 +1,58 @@
1
1
  {% extends "wagtailadmin/generic/edit.html" %}
2
2
  {% load i18n wagtailadmin_tags %}
3
3
 
4
- {% block main_content %}
5
- <form action="{% block form_action %}{{ view.edit_url }}{% endblock %}"{% if is_multipart %} enctype="multipart/form-data"{% endif %} method="POST" novalidate>
6
- {% csrf_token %}
4
+ {% block form_content %}
5
+ {{ edit_handler.render_form_content }}
7
6
 
8
- <div class="w-form-width">
9
- {% block form %}{{ edit_handler.render_form_content }}{% endblock %}
7
+ <div class="w-form-width">
8
+ {% panel id="workflow-pages" icon="doc-empty-inverse" heading=_("Assign your workflow to pages") %}
9
+ {% if workflow.active %}
10
+ <p class="help-block help-info">
11
+ {% icon name='help' %}
12
+ {% url 'wagtailadmin_workflows:usage' workflow.pk as workflow_pages_url %}
13
+ {% blocktrans trimmed %}
14
+ Workflows apply to child pages too. If you select a parent page here, its child pages will also use this workflow.
15
+ See <a href="{{ workflow_pages_url }}">the list of the pages</a> your workflow applies to.
16
+ {% endblocktrans %}
17
+ </p>
10
18
 
11
- {% panel id="workflow-pages" icon="doc-empty-inverse" heading=_("Assign your workflow to pages") %}
12
- {% if workflow.active %}
13
- <p class="help-block help-info">
14
- {% icon name='help' %}
15
- {% url 'wagtailadmin_workflows:usage' workflow.pk as workflow_pages_url %}
16
- {% blocktrans trimmed %}
17
- Workflows apply to child pages too. If you select a parent page here, its child pages will also use this workflow.
18
- See <a href="{{ workflow_pages_url }}">the list of the pages</a> your workflow applies to.
19
- {% endblocktrans %}
20
- </p>
19
+ {% include "wagtailadmin/workflows/includes/workflow_pages_formset.html" with formset=pages_formset %}
20
+ {% else %}
21
+ <p class="help-block help-info">
22
+ {% icon name='help' %}
23
+ {% trans "This workflow is disabled so it cannot be assigned to any pages." %}
24
+ </p>
25
+ {% endif %}
26
+ {% endpanel %}
21
27
 
22
- {% include "wagtailadmin/workflows/includes/workflow_pages_formset.html" with formset=pages_formset %}
28
+ {% if has_workflow_enabled_models %}
29
+ {% panel id="workflow-content-types" icon="snippet" heading=_("Assign your workflow to snippets") %}
30
+ {% if workflow.active %}
31
+ {% formattedfield field=content_type_form.content_types sr_only_label=True %}
23
32
  {% else %}
24
33
  <p class="help-block help-info">
25
34
  {% icon name='help' %}
26
- {% trans "This workflow is disabled so it cannot be assigned to any pages." %}
35
+ {% trans "This workflow is disabled so it cannot be assigned to any snippets." %}
27
36
  </p>
28
37
  {% endif %}
29
38
  {% endpanel %}
39
+ {% endif %}
40
+ </div>
41
+ {% endblock %}
30
42
 
31
- {% if has_workflow_enabled_models %}
32
- {% panel id="workflow-content-types" icon="snippet" heading=_("Assign your workflow to snippets") %}
33
- {% if workflow.active %}
34
- {% formattedfield field=content_type_form.content_types sr_only_label=True %}
35
- {% else %}
36
- <p class="help-block help-info">
37
- {% icon name='help' %}
38
- {% trans "This workflow is disabled so it cannot be assigned to any snippets." %}
39
- </p>
40
- {% endif %}
41
- {% endpanel %}
42
- {% endif %}
43
- </div>
44
-
45
- {% block footer %}
46
- <footer class="footer">
47
- <div class="actions footer__container w-flex">
48
- {% block form_actions %}
49
- {% fragment as button %}
50
- <button
51
- type="submit"
52
- class="button action-save button-longrunning w-flex-grow"
53
- data-controller="w-progress w-kbd"
54
- data-action="w-progress#activate"
55
- data-w-kbd-key-value="mod+s"
56
- data-w-kbd-scope-value="global"
57
- data-w-progress-active-value="{% trans 'Saving…' %}"
58
- >
59
- {% icon name="spinner" %}
60
- <em data-w-progress-target="label">{% trans 'Save' %}</em>
61
- </button>
62
- {% endfragment %}
63
- {% if can_enable or can_disable %}
64
- {% dropdown_button button=button toggle_icon="arrow-up" %}
65
- {% if can_enable %}
66
- <button
67
- class="button"
68
- data-controller="w-action"
69
- data-action="w-action#post"
70
- data-w-action-continue-value="true"
71
- data-w-action-url-value='{{ view.get_enable_url }}'
72
- type="submit"
73
- >
74
- {{ view.enable_item_label }}
75
- </button>
76
- {% elif can_disable %}
77
- <a href="{{ view.get_delete_url }}" class="button">{{ view.delete_item_label }}</a>
78
- {% endif %}
79
- {% enddropdown_button %}
80
- {% else %}
81
- {{ button }}
82
- {% endif %}
83
- {% endblock %}
84
- </div>
85
- </footer>
86
- {% endblock %}
87
- </form>
43
+ {% block extra_actions %}
44
+ {% if can_enable %}
45
+ <button
46
+ class="button"
47
+ data-controller="w-action"
48
+ data-action="w-action#post"
49
+ data-w-action-continue-value="true"
50
+ data-w-action-url-value='{{ view.get_enable_url }}'
51
+ type="submit"
52
+ >
53
+ {{ view.enable_item_label }}
54
+ </button>
55
+ {% elif can_disable %}
56
+ <a href="{{ view.get_delete_url }}" class="button">{{ view.delete_item_label }}</a>
57
+ {% endif %}
88
58
  {% endblock %}
@@ -1,72 +1,33 @@
1
1
  {% extends "wagtailadmin/generic/edit.html" %}
2
2
  {% load i18n wagtailadmin_tags %}
3
3
 
4
- {% block main_content %}
5
- <form action="{{ view.edit_url }}" enctype="multipart/form-data" method="POST" novalidate>
6
- {% csrf_token %}
4
+ {% block form_content %}
5
+ {{ block.super }}
7
6
 
8
- <ul class="fields">
9
- {% for field in form %}
10
- {% if not field.is_hidden %}
11
- <li>{% formattedfield field %}</li>
12
- {% else %}
13
- {{ field }}
14
- {% endif %}
15
- {% endfor %}
16
- <li>
17
- <div class="help-block help-info">
18
- {% icon name='help' %}
19
- {% for workflow in object.active_workflows %}
20
- {% if forloop.first %}<strong>{% trans "Used on the following active workflows" %}:</strong> {% endif %}
21
- <a href="{% url 'wagtailadmin_workflows:edit' workflow.pk %}">{{ workflow.name }}</a>{% if not forloop.last %}, {% endif %}
22
- {% empty %}
23
- {% trans "Not used" %}
24
- {% endfor %}
25
- </div>
26
- </li>
27
- </ul>
7
+ <div class="w-form-width help-block help-info">
8
+ {% icon name='help' %}
9
+ {% for workflow in object.active_workflows %}
10
+ {% if forloop.first %}<strong>{% trans "Used on the following active workflows" %}:</strong> {% endif %}
11
+ <a href="{% url 'wagtailadmin_workflows:edit' workflow.pk %}">{{ workflow.name }}</a>{% if not forloop.last %}, {% endif %}
12
+ {% empty %}
13
+ {% trans "Not used" %}
14
+ {% endfor %}
15
+ </div>
16
+ {% endblock %}
28
17
 
29
- {% block footer %}
30
- <footer class="footer">
31
- <div class="actions footer__container w-flex">
32
- {% block form_actions %}
33
- {% fragment as button %}
34
- <button
35
- type="submit"
36
- class="button action-save button-longrunning w-flex-grow"
37
- data-controller="w-progress w-kbd"
38
- data-action="w-progress#activate"
39
- data-w-kbd-key-value="mod+s"
40
- data-w-kbd-scope-value="global"
41
- data-w-progress-active-value="{% trans 'Saving…' %}"
42
- >
43
- {% icon name="spinner" %}
44
- <em data-w-progress-target="label">{% trans 'Save' %}</em>
45
- </button>
46
- {% endfragment %}
47
- {% if can_enable or can_disable %}
48
- {% dropdown_button button=button toggle_icon="arrow-up" %}
49
- {% if can_enable %}
50
- <button
51
- class="button"
52
- data-controller="w-action"
53
- data-action="w-action#post"
54
- data-w-action-continue-value="true"
55
- data-w-action-url-value='{{ view.get_enable_url }}'
56
- type="submit"
57
- >
58
- {{ view.enable_item_label }}
59
- </button>
60
- {% elif can_disable %}
61
- <a href="{{ view.get_delete_url }}" class="button">{{ view.delete_item_label }}</a>
62
- {% endif %}
63
- {% enddropdown_button %}
64
- {% else %}
65
- {{ button }}
66
- {% endif %}
67
- {% endblock %}
68
- </div>
69
- </footer>
70
- {% endblock %}
71
- </form>
18
+ {% block extra_actions %}
19
+ {% if can_enable %}
20
+ <button
21
+ class="button"
22
+ data-controller="w-action"
23
+ data-action="w-action#post"
24
+ data-w-action-continue-value="true"
25
+ data-w-action-url-value='{{ view.get_enable_url }}'
26
+ type="submit"
27
+ >
28
+ {{ view.enable_item_label }}
29
+ </button>
30
+ {% elif can_disable %}
31
+ <a href="{{ view.get_delete_url }}" class="button">{{ view.delete_item_label }}</a>
32
+ {% endif %}
72
33
  {% endblock %}
@@ -1,4 +1,4 @@
1
- {% load i18n %}
1
+ {% load i18n wagtailadmin_tags %}
2
2
  <td {% if column.classname %}class="{{ column.classname }}"{% endif %}>
3
3
  {% for workflow_task in value|slice:":5" %}
4
4
  <a href="{% url 'wagtailadmin_workflows:edit' workflow_task.workflow.pk %}">{{ workflow_task.workflow.name }}{% if not forloop.last %}, {% endif %}</a>
@@ -6,6 +6,8 @@
6
6
  {% trans "Not used" %}
7
7
  {% endfor %}
8
8
  {% if value|length > 5 %}
9
- {% blocktrans trimmed count counter=value|length|add:-5 %}+{{ counter }} more{% plural %}+{{ counter }} more{% endblocktrans %}
9
+ {% with counter_val=value|length|add:-5 %}
10
+ {% blocktrans trimmed with counter=counter_val|intcomma count counter_val=counter_val %}+{{ counter }} more{% plural %}+{{ counter }} more{% endblocktrans %}
11
+ {% endwith %}
10
12
  {% endif %}
11
13
  </td>
@@ -1,17 +1,17 @@
1
- {% load i18n %}
1
+ {% load i18n wagtailadmin_tags %}
2
2
  <td {% if column.classname %}class="{{ column.classname }}"{% endif %}>
3
3
  <ul class="workflow-tasks">
4
4
  {% for task in tasks %}
5
5
  <a href="{% url 'wagtailadmin_workflows:edit_task' task.task_id %}">
6
- <li class="workflow-tasks__task" data-controller="w-tooltip" data-w-tooltip-content-value="{% blocktrans trimmed with forloop.counter as step_number %}Step {{ step_number }}{% endblocktrans %}: {{ task.task.name }}">
7
- <div class="workflow-tasks__step">{% blocktrans trimmed with forloop.counter as step_number %}Step {{ step_number }}{% endblocktrans %}</div>
6
+ <li class="workflow-tasks__task" data-controller="w-tooltip" data-w-tooltip-content-value="{% blocktrans trimmed with forloop.counter|intcomma as step_number %}Step {{ step_number }}{% endblocktrans %}: {{ task.task.name }}">
7
+ <div class="workflow-tasks__step">{% blocktrans trimmed with forloop.counter|intcomma as step_number %}Step {{ step_number }}{% endblocktrans %}</div>
8
8
  <h4 class="workflow-tasks__name">{{ task.task.name }}</h4>
9
9
  </li>
10
10
  </a>
11
11
  {% endfor %}
12
12
  {% if extra_count > 0 %}
13
13
  <li class="workflow-tasks__extra-tasks">
14
- {% blocktrans trimmed count counter=extra_count %}+{{ counter }} more{% plural %}+{{ counter }} more{% endblocktrans %}
14
+ {% blocktrans trimmed with counter=extra_count|intcomma count counter_val=extra_count %}+{{ counter }} more{% plural %}+{{ counter }} more{% endblocktrans %}
15
15
  </li>
16
16
  {% endif %}
17
17
  </ul>
@@ -1,13 +1,15 @@
1
1
  {% extends "wagtailadmin/tables/title_cell.html" %}
2
- {% load i18n %}
2
+ {% load i18n wagtailadmin_tags %}
3
3
 
4
4
  {% block title %}
5
5
  <a href="{{ link_url }}">
6
- {% blocktrans trimmed count counter=instance.all_pages.count %}
7
- 1 page
8
- {% plural %}
9
- {{ counter }} pages
10
- {% endblocktrans %}
6
+ {% with instance.all_pages.count as counter_val %}
7
+ {% blocktrans trimmed with counter=counter_val|intcomma count counter_val=counter_val %}
8
+ 1 page
9
+ {% plural %}
10
+ {{ counter }} pages
11
+ {% endblocktrans %}
12
+ {% endwith %}
11
13
  </a>
12
14
  {% endblock %}
13
15
 
@@ -15,11 +17,13 @@
15
17
  {# Only show snippet type count if there's a model with workflows enabled #}
16
18
  {% if workflow_enabled_models %}
17
19
  <div>
18
- {% blocktrans trimmed count counter=instance.content_types %}
19
- 1 snippet type
20
- {% plural %}
21
- {{ counter }} snippet types
22
- {% endblocktrans %}
20
+ {% with instance.content_types as counter_val %}
21
+ {% blocktrans trimmed with counter=counter_val|intcomma count counter_val=counter_val %}
22
+ 1 snippet type
23
+ {% plural %}
24
+ {{ counter }} snippet types
25
+ {% endblocktrans %}
26
+ {% endwith %}
23
27
  </div>
24
28
  {% endif %}
25
29
  {% endblock %}
@@ -2,11 +2,13 @@
2
2
  {% if tasks %}
3
3
  {% if search_form.is_searching %}
4
4
  <h2 role="alert">
5
- {% blocktrans trimmed count counter=tasks.paginator.count %}
6
- There is {{ counter }} match
7
- {% plural %}
8
- There are {{ counter }} matches
9
- {% endblocktrans %}
5
+ {% with counter_val=tasks.paginator.count %}
6
+ {% blocktrans trimmed with counter=counter_val|intcomma count counter_val=counter_val %}
7
+ There is {{ counter }} match
8
+ {% plural %}
9
+ There are {{ counter }} matches
10
+ {% endblocktrans %}
11
+ {% endwith %}
10
12
  </h2>
11
13
  {% else %}
12
14
  <h2>{% trans "Tasks" %}</h2>
@@ -585,7 +585,14 @@ def bulk_action_choices(context, app_label, model_name):
585
585
 
586
586
 
587
587
  @register.inclusion_tag("wagtailadmin/shared/avatar.html")
588
- def avatar(user=None, classname=None, size=None, tooltip=None, tooltip_html=None):
588
+ def avatar(
589
+ user=None,
590
+ classname=None,
591
+ size=None,
592
+ tooltip=None,
593
+ tooltip_html=None,
594
+ edit_link=False,
595
+ ):
589
596
  """
590
597
  Displays a user avatar using the avatar template
591
598
  Usage:
@@ -596,6 +603,7 @@ def avatar(user=None, classname=None, size=None, tooltip=None, tooltip_html=None
596
603
  :param size: default None (None|'small'|'large'|'square')
597
604
  :param tooltip: Optional tooltip to display under the avatar (string)
598
605
  :param tooltip_html: Optional tooltip as an HTML element for rich content (string)
606
+ :param edit_link: Optional edit link to display underneath the avatar (boolean)
599
607
  :return: Rendered template snippet
600
608
  """
601
609
  return {
@@ -604,6 +612,7 @@ def avatar(user=None, classname=None, size=None, tooltip=None, tooltip_html=None
604
612
  "size": size,
605
613
  "tooltip": tooltip,
606
614
  "tooltip_html": tooltip_html,
615
+ "edit_link": edit_link,
607
616
  }
608
617
 
609
618
 
@@ -674,16 +683,26 @@ def admin_theme_classname(context):
674
683
  if hasattr(user, "wagtail_userprofile")
675
684
  else "system"
676
685
  )
686
+ contrast_name = (
687
+ user.wagtail_userprofile.contrast
688
+ if hasattr(user, "wagtail_userprofile")
689
+ else "system"
690
+ )
677
691
  density_name = (
678
692
  user.wagtail_userprofile.density
679
693
  if hasattr(user, "wagtail_userprofile")
680
694
  else "default"
681
695
  )
682
- return f"w-theme-{theme_name} w-density-{density_name}"
696
+ contrast_name = contrast_name.split("_")[0]
697
+ return f"w-theme-{theme_name} w-density-{density_name} w-contrast-{contrast_name}"
683
698
 
684
699
 
685
700
  @register.simple_tag
686
701
  def js_translation_strings():
702
+ warn(
703
+ "The `js_translation_strings` template tag will be removed in a future release.",
704
+ category=RemovedInWagtail70Warning,
705
+ )
687
706
  return mark_safe(json.dumps(get_js_translation_strings()))
688
707
 
689
708
 
@@ -859,16 +878,23 @@ def i18n_enabled():
859
878
 
860
879
 
861
880
  @register.simple_tag
862
- def locales():
863
- return json.dumps(
864
- [
865
- {
866
- "code": locale.language_code,
867
- "display_name": force_str(locale.get_display_name()),
868
- }
869
- for locale in Locale.objects.all()
870
- ]
871
- )
881
+ def locales(serialize=True):
882
+ result = [
883
+ {
884
+ "code": locale.language_code,
885
+ "display_name": force_str(locale.get_display_name()),
886
+ }
887
+ for locale in Locale.objects.all()
888
+ ]
889
+
890
+ if serialize:
891
+ warn(
892
+ "The `locales` template tag will be removed in a future release.",
893
+ category=RemovedInWagtail70Warning,
894
+ )
895
+ return json.dumps(result)
896
+
897
+ return result
872
898
 
873
899
 
874
900
  @register.simple_tag
@@ -936,21 +962,24 @@ def wagtail_config(context):
936
962
  "CSRF_HEADER_NAME": HttpHeaders.parse_header_name(
937
963
  getattr(settings, "CSRF_HEADER_NAME")
938
964
  ),
965
+ "ADMIN_API": {
966
+ "PAGES": reverse("wagtailadmin_api:pages:listing"),
967
+ "DOCUMENTS": reverse("wagtailadmin_api:documents:listing"),
968
+ "IMAGES": reverse("wagtailadmin_api:images:listing"),
969
+ # Used to add an extra query string on all API requests. Example value: '&order=-id'
970
+ "EXTRA_CHILDREN_PARAMETERS": "",
971
+ },
939
972
  "ADMIN_URLS": {
940
973
  "DISMISSIBLES": reverse("wagtailadmin_dismissibles"),
974
+ "PAGES": reverse("wagtailadmin_explore_root"),
941
975
  },
976
+ "I18N_ENABLED": i18n_enabled(),
977
+ "LOCALES": locales(serialize=False),
978
+ "STRINGS": get_js_translation_strings(),
942
979
  }
943
980
 
944
- default_settings = {
945
- "WAGTAIL_AUTO_UPDATE_PREVIEW": True,
946
- "WAGTAIL_AUTO_UPDATE_PREVIEW_INTERVAL": 500,
947
- }
948
- config.update(
949
- {
950
- option: getattr(settings, option, default)
951
- for option, default in default_settings.items()
952
- }
953
- )
981
+ if locale := context.get("locale"):
982
+ config["ACTIVE_CONTENT_LOCALE"] = locale.language_code
954
983
 
955
984
  return config
956
985