wagtail 6.0.1__py3-none-any.whl → 6.1rc1__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 (512) hide show
  1. wagtail/__init__.py +1 -1
  2. wagtail/admin/checks.py +51 -0
  3. wagtail/admin/compare.py +1 -1
  4. wagtail/admin/filters.py +70 -1
  5. wagtail/admin/forms/account.py +1 -1
  6. wagtail/admin/forms/collections.py +15 -0
  7. wagtail/admin/forms/pages.py +49 -0
  8. wagtail/admin/locale/ca/LC_MESSAGES/django.mo +0 -0
  9. wagtail/admin/locale/ca/LC_MESSAGES/django.po +122 -0
  10. wagtail/admin/locale/de/LC_MESSAGES/django.mo +0 -0
  11. wagtail/admin/locale/de/LC_MESSAGES/django.po +5 -5
  12. wagtail/admin/locale/en/LC_MESSAGES/django.po +474 -385
  13. wagtail/admin/locale/en/LC_MESSAGES/djangojs.po +3 -3
  14. wagtail/admin/locale/es/LC_MESSAGES/django.mo +0 -0
  15. wagtail/admin/locale/es/LC_MESSAGES/django.po +6 -6
  16. wagtail/admin/locale/fr/LC_MESSAGES/django.mo +0 -0
  17. wagtail/admin/locale/fr/LC_MESSAGES/django.po +70 -3
  18. wagtail/admin/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  19. wagtail/admin/locale/he_IL/LC_MESSAGES/django.po +2 -6
  20. wagtail/admin/locale/he_IL/LC_MESSAGES/djangojs.mo +0 -0
  21. wagtail/admin/locale/he_IL/LC_MESSAGES/djangojs.po +2 -2
  22. wagtail/admin/locale/hr_HR/LC_MESSAGES/django.mo +0 -0
  23. wagtail/admin/locale/hr_HR/LC_MESSAGES/django.po +4 -0
  24. wagtail/admin/locale/hu/LC_MESSAGES/django.mo +0 -0
  25. wagtail/admin/locale/hu/LC_MESSAGES/django.po +142 -2
  26. wagtail/admin/locale/it/LC_MESSAGES/django.mo +0 -0
  27. wagtail/admin/locale/it/LC_MESSAGES/django.po +80 -8
  28. wagtail/admin/locale/it/LC_MESSAGES/djangojs.mo +0 -0
  29. wagtail/admin/locale/it/LC_MESSAGES/djangojs.po +14 -2
  30. wagtail/admin/locale/lv/LC_MESSAGES/django.mo +0 -0
  31. wagtail/admin/locale/lv/LC_MESSAGES/django.po +154 -1
  32. wagtail/admin/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
  33. wagtail/admin/locale/pt_PT/LC_MESSAGES/django.po +73 -2
  34. wagtail/admin/locale/ro/LC_MESSAGES/django.mo +0 -0
  35. wagtail/admin/locale/ro/LC_MESSAGES/django.po +3 -3
  36. wagtail/admin/locale/sl/LC_MESSAGES/django.mo +0 -0
  37. wagtail/admin/locale/sl/LC_MESSAGES/django.po +145 -2
  38. wagtail/admin/locale/sv/LC_MESSAGES/django.mo +0 -0
  39. wagtail/admin/locale/sv/LC_MESSAGES/django.po +77 -3
  40. wagtail/admin/locale/zh_Hant/LC_MESSAGES/django.mo +0 -0
  41. wagtail/admin/locale/zh_Hant/LC_MESSAGES/django.po +17 -1
  42. wagtail/admin/panels/comment_panel.py +1 -1
  43. wagtail/admin/panels/field_panel.py +1 -1
  44. wagtail/admin/rich_text/converters/editor_html.py +3 -1
  45. wagtail/admin/rich_text/editors/draftail/__init__.py +28 -2
  46. wagtail/admin/static/wagtailadmin/css/core.css +1 -1
  47. wagtail/admin/static/wagtailadmin/css/panels/draftail.css +1 -1
  48. wagtail/admin/static/wagtailadmin/images/favicon.ico +0 -0
  49. wagtail/admin/static/wagtailadmin/js/bulk-actions.js +1 -1
  50. wagtail/admin/static/wagtailadmin/js/chooser-modal.js +1 -1
  51. wagtail/admin/static/wagtailadmin/js/chooser-widget-telepath.js +1 -1
  52. wagtail/admin/static/wagtailadmin/js/chooser-widget.js +1 -1
  53. wagtail/admin/static/wagtailadmin/js/comments.js +1 -1
  54. wagtail/admin/static/wagtailadmin/js/core.js +1 -1
  55. wagtail/admin/static/wagtailadmin/js/core.js.LICENSE.txt +1 -1
  56. wagtail/admin/static/wagtailadmin/js/date-time-chooser.js +1 -1
  57. wagtail/admin/static/wagtailadmin/js/draftail.js +1 -1
  58. wagtail/admin/static/wagtailadmin/js/expanding-formset.js +1 -1
  59. wagtail/admin/static/wagtailadmin/js/filtered-select.js +1 -1
  60. wagtail/admin/static/wagtailadmin/js/modal-workflow.js +1 -1
  61. wagtail/admin/static/wagtailadmin/js/page-chooser-modal.js +1 -1
  62. wagtail/admin/static/wagtailadmin/js/page-chooser-telepath.js +1 -1
  63. wagtail/admin/static/wagtailadmin/js/page-chooser.js +1 -1
  64. wagtail/admin/static/wagtailadmin/js/preview-panel.js +1 -1
  65. wagtail/admin/static/wagtailadmin/js/privacy-switch.js +1 -1
  66. wagtail/admin/static/wagtailadmin/js/sidebar.js +1 -1
  67. wagtail/admin/static/wagtailadmin/js/task-chooser-modal.js +1 -1
  68. wagtail/admin/static/wagtailadmin/js/task-chooser.js +1 -1
  69. wagtail/admin/static/wagtailadmin/js/telepath/blocks.js +1 -1
  70. wagtail/admin/static/wagtailadmin/js/telepath/telepath.js +1 -1
  71. wagtail/admin/static/wagtailadmin/js/telepath/widgets.js +1 -1
  72. wagtail/admin/static/wagtailadmin/js/userbar.js +1 -1
  73. wagtail/admin/static/wagtailadmin/js/vendor.js +1 -1
  74. wagtail/admin/static/wagtailadmin/js/vendor.js.LICENSE.txt +4 -4
  75. wagtail/admin/static/wagtailadmin/js/wagtailadmin.js +1 -1
  76. wagtail/admin/static/wagtailadmin/js/workflow-action.js +1 -1
  77. wagtail/admin/staticfiles.py +1 -0
  78. wagtail/admin/templates/wagtailadmin/admin_base.html +1 -0
  79. wagtail/admin/templates/wagtailadmin/base.html +1 -0
  80. wagtail/admin/templates/wagtailadmin/collection_privacy/set_privacy.html +3 -1
  81. wagtail/admin/templates/wagtailadmin/collections/edit.html +0 -1
  82. wagtail/admin/templates/wagtailadmin/collections/index_results.html +10 -0
  83. wagtail/admin/templates/wagtailadmin/generic/base.html +1 -9
  84. wagtail/admin/templates/wagtailadmin/generic/form.html +4 -2
  85. wagtail/admin/templates/wagtailadmin/generic/history/action_cell.html +27 -0
  86. wagtail/admin/templates/wagtailadmin/generic/index_results.html +8 -0
  87. wagtail/admin/templates/wagtailadmin/home/workflow_objects_to_moderate.html +3 -4
  88. wagtail/admin/templates/wagtailadmin/icons/keyboard.svg +1 -0
  89. wagtail/admin/templates/wagtailadmin/page_privacy/set_privacy.html +3 -1
  90. wagtail/admin/templates/wagtailadmin/pages/_editor_js.html +0 -15
  91. wagtail/admin/templates/wagtailadmin/pages/action_menu/save_draft.html +3 -1
  92. wagtail/admin/templates/wagtailadmin/pages/choose_parent.html +17 -0
  93. wagtail/admin/templates/wagtailadmin/pages/explorable_index.html +8 -0
  94. wagtail/admin/templates/wagtailadmin/pages/history.html +1 -61
  95. wagtail/admin/templates/wagtailadmin/pages/index.html +1 -5
  96. wagtail/admin/templates/wagtailadmin/pages/listing/_locked_indicator.html +2 -2
  97. wagtail/admin/templates/wagtailadmin/pages/listing/_page_title_column_header.html +25 -27
  98. wagtail/admin/templates/wagtailadmin/pages/page_listing_header.html +2 -1
  99. wagtail/admin/templates/wagtailadmin/panels/multi_field_panel_child.html +1 -1
  100. wagtail/admin/templates/wagtailadmin/panels/publishing/schedule_publishing_panel.html +3 -1
  101. wagtail/admin/templates/wagtailadmin/panels/tabbed_interface.html +1 -1
  102. wagtail/admin/templates/wagtailadmin/shared/active_filters.html +2 -1
  103. wagtail/admin/templates/wagtailadmin/shared/breadcrumbs.html +8 -0
  104. wagtail/admin/templates/wagtailadmin/shared/forms/single_checkbox.html +1 -1
  105. wagtail/admin/templates/wagtailadmin/shared/headers/page_edit_header.html +1 -1
  106. wagtail/admin/templates/wagtailadmin/shared/headers/slim_header.html +21 -9
  107. wagtail/admin/templates/wagtailadmin/shared/human_readable_date.html +1 -1
  108. wagtail/admin/templates/wagtailadmin/shared/keyboard_shortcuts_dialog.html +29 -0
  109. wagtail/admin/templates/wagtailadmin/shared/side_panel_toggle.html +2 -1
  110. wagtail/admin/templates/wagtailadmin/skeleton.html +2 -1
  111. wagtail/admin/templates/wagtailadmin/tables/related_objects_cell.html +9 -0
  112. wagtail/admin/templates/wagtailadmin/tables/title_cell.html +9 -7
  113. wagtail/admin/templates/wagtailadmin/widgets/draftail_rich_text_area.html +1 -1
  114. wagtail/admin/templates/wagtailadmin/workflows/create.html +6 -23
  115. wagtail/admin/templates/wagtailadmin/workflows/create_task.html +6 -15
  116. wagtail/admin/templates/wagtailadmin/workflows/edit.html +6 -23
  117. wagtail/admin/templates/wagtailadmin/workflows/edit_task.html +6 -13
  118. wagtail/admin/templates/wagtailadmin/workflows/includes/task_usage_cell.html +4 -4
  119. wagtail/admin/templates/wagtailadmin/workflows/includes/workflow_tasks_cell.html +18 -0
  120. wagtail/admin/templates/wagtailadmin/workflows/includes/workflow_title_cell.html +7 -0
  121. wagtail/admin/templates/wagtailadmin/workflows/includes/workflow_used_by_cell.html +25 -0
  122. wagtail/admin/templates/wagtailadmin/workflows/index.html +0 -99
  123. wagtail/admin/templates/wagtailadmin/workflows/index_results.html +10 -0
  124. wagtail/admin/templates/wagtailadmin/workflows/task_index.html +0 -30
  125. wagtail/admin/templates/wagtailadmin/workflows/task_index_results.html +10 -0
  126. wagtail/admin/templates/wagtailadmin/workflows/usage.html +1 -1
  127. wagtail/admin/templatetags/wagtailadmin_tags.py +116 -39
  128. wagtail/admin/tests/api/test_pages.py +26 -10
  129. wagtail/admin/tests/pages/test_create_page.py +10 -4
  130. wagtail/admin/tests/pages/test_custom_listing.py +37 -0
  131. wagtail/admin/tests/pages/test_edit_page.py +6 -6
  132. wagtail/admin/tests/pages/test_explorer_view.py +19 -18
  133. wagtail/admin/tests/pages/test_move_page.py +1 -1
  134. wagtail/admin/tests/pages/test_page_usage.py +50 -2
  135. wagtail/admin/tests/pages/test_parent_page_chooser_view.py +119 -0
  136. wagtail/admin/tests/pages/test_preview.py +18 -4
  137. wagtail/admin/tests/test_account_management.py +20 -1
  138. wagtail/admin/tests/test_audit_log.py +172 -5
  139. wagtail/admin/tests/test_checks.py +92 -0
  140. wagtail/admin/tests/test_collections_views.py +19 -5
  141. wagtail/admin/tests/test_compare.py +6 -6
  142. wagtail/admin/tests/test_dashboard.py +404 -0
  143. wagtail/admin/tests/test_dbwhitelister.py +4 -5
  144. wagtail/admin/tests/test_edit_handlers.py +2 -2
  145. wagtail/admin/tests/test_keyboard_shortcuts.py +84 -0
  146. wagtail/admin/tests/test_page_chooser.py +31 -18
  147. wagtail/admin/tests/test_privacy.py +36 -2
  148. wagtail/admin/tests/test_rich_text.py +168 -23
  149. wagtail/admin/tests/test_templatetags.py +411 -43
  150. wagtail/admin/tests/test_views.py +4 -2
  151. wagtail/admin/tests/test_workflows.py +531 -9
  152. wagtail/admin/tests/tests.py +3 -1
  153. wagtail/admin/tests/ui/test_tables.py +48 -1
  154. wagtail/admin/tests/viewsets/test_model_viewset.py +130 -23
  155. wagtail/admin/ui/side_panels.py +3 -1
  156. wagtail/admin/ui/tables/__init__.py +13 -1
  157. wagtail/admin/ui/tables/pages.py +17 -6
  158. wagtail/admin/urls/__init__.py +8 -3
  159. wagtail/admin/urls/pages.py +5 -0
  160. wagtail/admin/urls/workflows.py +10 -0
  161. wagtail/admin/views/chooser.py +20 -24
  162. wagtail/admin/views/collections.py +17 -1
  163. wagtail/admin/views/generic/base.py +34 -4
  164. wagtail/admin/views/generic/history.py +220 -51
  165. wagtail/admin/views/generic/mixins.py +7 -4
  166. wagtail/admin/views/generic/models.py +54 -47
  167. wagtail/admin/views/generic/multiple_upload.py +17 -8
  168. wagtail/admin/views/generic/usage.py +17 -11
  169. wagtail/admin/views/home.py +15 -12
  170. wagtail/admin/views/mixins.py +30 -0
  171. wagtail/admin/views/pages/choose_parent.py +73 -0
  172. wagtail/admin/views/pages/history.py +54 -66
  173. wagtail/admin/views/pages/listing.py +187 -106
  174. wagtail/admin/views/pages/usage.py +6 -1
  175. wagtail/admin/views/pages/utils.py +70 -1
  176. wagtail/admin/views/workflows.py +150 -21
  177. wagtail/admin/viewsets/model.py +2 -2
  178. wagtail/admin/viewsets/pages.py +77 -0
  179. wagtail/admin/wagtail_hooks.py +40 -2
  180. wagtail/admin/widgets/button.py +10 -10
  181. wagtail/api/v2/filters.py +1 -1
  182. wagtail/api/v2/tests/test_pages.py +1 -1
  183. wagtail/blocks/base.py +18 -9
  184. wagtail/blocks/field_block.py +9 -7
  185. wagtail/blocks/list_block.py +16 -6
  186. wagtail/blocks/static_block.py +3 -0
  187. wagtail/blocks/stream_block.py +58 -23
  188. wagtail/blocks/struct_block.py +15 -9
  189. wagtail/contrib/forms/locale/en/LC_MESSAGES/django.po +39 -47
  190. wagtail/contrib/forms/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  191. wagtail/contrib/forms/locale/he_IL/LC_MESSAGES/django.po +2 -2
  192. wagtail/contrib/forms/models.py +5 -5
  193. wagtail/contrib/forms/templates/wagtailforms/list_submissions.html +44 -33
  194. wagtail/contrib/forms/templates/wagtailforms/submissions_index.html +2 -63
  195. wagtail/contrib/forms/tests/test_models.py +26 -0
  196. wagtail/contrib/forms/urls.py +6 -0
  197. wagtail/contrib/forms/views.py +52 -49
  198. wagtail/contrib/redirects/locale/ca/LC_MESSAGES/django.mo +0 -0
  199. wagtail/contrib/redirects/locale/ca/LC_MESSAGES/django.po +3 -3
  200. wagtail/contrib/redirects/locale/en/LC_MESSAGES/django.po +34 -42
  201. wagtail/contrib/redirects/locale/fr/LC_MESSAGES/django.po +2 -2
  202. wagtail/contrib/redirects/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  203. wagtail/contrib/redirects/locale/he_IL/LC_MESSAGES/django.po +2 -2
  204. wagtail/contrib/redirects/signal_handlers.py +1 -1
  205. wagtail/contrib/redirects/templates/wagtailredirects/index.html +1 -36
  206. wagtail/contrib/redirects/templates/wagtailredirects/index_results.html +18 -0
  207. wagtail/contrib/redirects/templates/wagtailredirects/redirect_target_cell.html +8 -0
  208. wagtail/contrib/redirects/tests/test_import_command.py +1 -1
  209. wagtail/contrib/redirects/tests/test_redirects.py +79 -8
  210. wagtail/contrib/redirects/urls.py +2 -1
  211. wagtail/contrib/redirects/views.py +85 -55
  212. wagtail/contrib/search_promotions/admin_urls.py +2 -1
  213. wagtail/contrib/search_promotions/locale/en/LC_MESSAGES/django.po +41 -64
  214. wagtail/contrib/search_promotions/locale/fr/LC_MESSAGES/django.po +2 -2
  215. wagtail/contrib/search_promotions/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  216. wagtail/contrib/search_promotions/locale/he_IL/LC_MESSAGES/django.po +2 -2
  217. wagtail/contrib/search_promotions/locale/hr_HR/LC_MESSAGES/django.mo +0 -0
  218. wagtail/contrib/search_promotions/locale/hr_HR/LC_MESSAGES/django.po +41 -2
  219. wagtail/contrib/search_promotions/locale/it/LC_MESSAGES/django.mo +0 -0
  220. wagtail/contrib/search_promotions/locale/it/LC_MESSAGES/django.po +9 -3
  221. wagtail/contrib/search_promotions/templates/wagtailsearchpromotions/index.html +1 -16
  222. wagtail/contrib/search_promotions/templates/wagtailsearchpromotions/index_results.html +11 -0
  223. wagtail/contrib/search_promotions/templates/wagtailsearchpromotions/list.html +0 -51
  224. wagtail/contrib/search_promotions/templates/wagtailsearchpromotions/results.html +3 -16
  225. wagtail/contrib/search_promotions/templates/wagtailsearchpromotions/search_promotion_column.html +15 -0
  226. wagtail/contrib/search_promotions/tests.py +122 -9
  227. wagtail/contrib/search_promotions/views.py +66 -65
  228. wagtail/contrib/settings/locale/en/LC_MESSAGES/django.po +3 -3
  229. wagtail/contrib/settings/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  230. wagtail/contrib/settings/locale/he_IL/LC_MESSAGES/django.po +2 -2
  231. wagtail/contrib/settings/locale/tr/LC_MESSAGES/django.mo +0 -0
  232. wagtail/contrib/settings/locale/tr/LC_MESSAGES/django.po +6 -2
  233. wagtail/contrib/settings/registry.py +10 -5
  234. wagtail/contrib/settings/tests/generic/test_admin.py +9 -0
  235. wagtail/contrib/settings/tests/site_specific/test_admin.py +10 -1
  236. wagtail/contrib/settings/tests/site_specific/test_model.py +3 -3
  237. wagtail/contrib/settings/tests/site_specific/test_templates.py +1 -1
  238. wagtail/contrib/settings/views.py +3 -1
  239. wagtail/contrib/simple_translation/locale/en/LC_MESSAGES/django.po +1 -1
  240. wagtail/contrib/simple_translation/tests/test_wagtail_hooks.py +2 -2
  241. wagtail/contrib/styleguide/locale/en/LC_MESSAGES/django.po +7 -7
  242. wagtail/contrib/styleguide/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  243. wagtail/contrib/styleguide/locale/he_IL/LC_MESSAGES/django.po +2 -2
  244. wagtail/contrib/table_block/blocks.py +2 -2
  245. wagtail/contrib/table_block/locale/ca/LC_MESSAGES/django.mo +0 -0
  246. wagtail/contrib/table_block/locale/ca/LC_MESSAGES/django.po +27 -2
  247. wagtail/contrib/table_block/locale/en/LC_MESSAGES/django.po +1 -1
  248. wagtail/contrib/table_block/locale/hu/LC_MESSAGES/django.mo +0 -0
  249. wagtail/contrib/table_block/locale/hu/LC_MESSAGES/django.po +27 -2
  250. wagtail/contrib/table_block/locale/it/LC_MESSAGES/django.mo +0 -0
  251. wagtail/contrib/table_block/locale/it/LC_MESSAGES/django.po +27 -2
  252. wagtail/contrib/table_block/static/table_block/js/table.js +1 -1
  253. wagtail/contrib/table_block/tests.py +6 -0
  254. wagtail/contrib/typed_table_block/locale/ca/LC_MESSAGES/django.mo +0 -0
  255. wagtail/contrib/typed_table_block/locale/ca/LC_MESSAGES/django.po +12 -2
  256. wagtail/contrib/typed_table_block/locale/en/LC_MESSAGES/django.po +1 -1
  257. wagtail/contrib/typed_table_block/locale/hu/LC_MESSAGES/django.mo +0 -0
  258. wagtail/contrib/typed_table_block/locale/hu/LC_MESSAGES/django.po +12 -2
  259. wagtail/contrib/typed_table_block/locale/it/LC_MESSAGES/django.mo +0 -0
  260. wagtail/contrib/typed_table_block/locale/it/LC_MESSAGES/django.po +12 -2
  261. wagtail/contrib/typed_table_block/static/typed_table_block/js/typed_table_block.js +1 -1
  262. wagtail/coreutils.py +3 -2
  263. wagtail/documents/admin_urls.py +2 -2
  264. wagtail/documents/locale/en/LC_MESSAGES/django.po +22 -22
  265. wagtail/documents/locale/fr/LC_MESSAGES/django.po +2 -2
  266. wagtail/documents/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  267. wagtail/documents/locale/he_IL/LC_MESSAGES/django.po +2 -2
  268. wagtail/documents/locale/hr_HR/LC_MESSAGES/django.mo +0 -0
  269. wagtail/documents/locale/hr_HR/LC_MESSAGES/django.po +19 -2
  270. wagtail/documents/locale/hu/LC_MESSAGES/django.mo +0 -0
  271. wagtail/documents/locale/hu/LC_MESSAGES/django.po +16 -2
  272. wagtail/documents/locale/it/LC_MESSAGES/django.mo +0 -0
  273. wagtail/documents/locale/it/LC_MESSAGES/django.po +19 -2
  274. wagtail/documents/migrations/0013_delete_uploadeddocument.py +16 -0
  275. wagtail/documents/models.py +1 -20
  276. wagtail/documents/rich_text/__init__.py +11 -7
  277. wagtail/documents/static/wagtaildocs/js/document-chooser-modal.js +1 -1
  278. wagtail/documents/static/wagtaildocs/js/document-chooser-telepath.js +1 -1
  279. wagtail/documents/static/wagtaildocs/js/document-chooser.js +1 -1
  280. wagtail/documents/templates/wagtaildocs/documents/index.html +0 -16
  281. wagtail/documents/tests/test_admin_views.py +155 -23
  282. wagtail/documents/tests/test_collection_privacy.py +55 -1
  283. wagtail/documents/tests/test_rich_text.py +14 -0
  284. wagtail/documents/views/documents.py +25 -22
  285. wagtail/documents/views/multiple.py +6 -7
  286. wagtail/documents/views/serve.py +16 -1
  287. wagtail/documents/wagtail_hooks.py +20 -15
  288. wagtail/embeds/blocks.py +5 -0
  289. wagtail/embeds/locale/en/LC_MESSAGES/django.po +2 -2
  290. wagtail/embeds/locale/fr/LC_MESSAGES/django.po +2 -2
  291. wagtail/embeds/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  292. wagtail/embeds/locale/he_IL/LC_MESSAGES/django.po +2 -2
  293. wagtail/embeds/rich_text/__init__.py +1 -1
  294. wagtail/embeds/tests/test_rich_text.py +14 -0
  295. wagtail/embeds/wagtail_hooks.py +4 -14
  296. wagtail/fields.py +3 -48
  297. wagtail/images/admin_urls.py +2 -2
  298. wagtail/images/check_files/wagtail.jpg +0 -0
  299. wagtail/images/check_files/wagtail.png +0 -0
  300. wagtail/images/fields.py +2 -0
  301. wagtail/images/image_operations.py +1 -1
  302. wagtail/images/locale/ca/LC_MESSAGES/django.mo +0 -0
  303. wagtail/images/locale/ca/LC_MESSAGES/django.po +12 -0
  304. wagtail/images/locale/en/LC_MESSAGES/django.po +33 -45
  305. wagtail/images/locale/fr/LC_MESSAGES/django.po +2 -2
  306. wagtail/images/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  307. wagtail/images/locale/he_IL/LC_MESSAGES/django.po +2 -2
  308. wagtail/images/locale/hu/LC_MESSAGES/django.mo +0 -0
  309. wagtail/images/locale/hu/LC_MESSAGES/django.po +28 -2
  310. wagtail/images/locale/it/LC_MESSAGES/django.mo +0 -0
  311. wagtail/images/locale/it/LC_MESSAGES/django.po +14 -2
  312. wagtail/images/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
  313. wagtail/images/locale/pt_PT/LC_MESSAGES/django.po +4 -0
  314. wagtail/images/migrations/0026_delete_uploadedimage.py +16 -0
  315. wagtail/images/models.py +49 -43
  316. wagtail/images/rich_text/__init__.py +18 -8
  317. wagtail/images/static/wagtailimages/js/image-chooser-modal.js +1 -1
  318. wagtail/images/static/wagtailimages/js/image-chooser-telepath.js +1 -1
  319. wagtail/images/static/wagtailimages/js/image-chooser.js +1 -1
  320. wagtail/images/templates/wagtailimages/images/image_listing_header.html +6 -0
  321. wagtail/images/templates/wagtailimages/images/index.html +11 -51
  322. wagtail/images/tests/test_admin_views.py +119 -62
  323. wagtail/images/tests/test_image_operations.py +10 -0
  324. wagtail/images/tests/test_models.py +35 -33
  325. wagtail/images/tests/test_rich_text.py +14 -0
  326. wagtail/images/tests/utils.py +1 -1
  327. wagtail/images/views/images.py +35 -64
  328. wagtail/images/views/multiple.py +6 -7
  329. wagtail/images/wagtail_hooks.py +4 -14
  330. wagtail/locale/en/LC_MESSAGES/django.po +150 -136
  331. wagtail/locale/es/LC_MESSAGES/django.mo +0 -0
  332. wagtail/locale/es/LC_MESSAGES/django.po +3 -2
  333. wagtail/locale/fr/LC_MESSAGES/django.po +2 -2
  334. wagtail/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  335. wagtail/locale/he_IL/LC_MESSAGES/django.po +2 -2
  336. wagtail/locale/it/LC_MESSAGES/django.mo +0 -0
  337. wagtail/locale/it/LC_MESSAGES/django.po +5 -5
  338. wagtail/locale/sl/LC_MESSAGES/django.mo +0 -0
  339. wagtail/locale/sl/LC_MESSAGES/django.po +27 -2
  340. wagtail/locales/locale/ar/LC_MESSAGES/django.po +1 -1
  341. wagtail/locales/locale/be/LC_MESSAGES/django.po +1 -1
  342. wagtail/locales/locale/bg/LC_MESSAGES/django.po +1 -1
  343. wagtail/locales/locale/ca/LC_MESSAGES/django.po +1 -1
  344. wagtail/locales/locale/cs/LC_MESSAGES/django.po +1 -1
  345. wagtail/locales/locale/cy/LC_MESSAGES/django.po +1 -1
  346. wagtail/locales/locale/da/LC_MESSAGES/django.po +1 -1
  347. wagtail/locales/locale/de/LC_MESSAGES/django.po +1 -1
  348. wagtail/locales/locale/el/LC_MESSAGES/django.po +1 -1
  349. wagtail/locales/locale/en/LC_MESSAGES/django.po +1 -1
  350. wagtail/locales/locale/es/LC_MESSAGES/django.po +1 -1
  351. wagtail/locales/locale/et/LC_MESSAGES/django.po +2 -2
  352. wagtail/locales/locale/fa/LC_MESSAGES/django.po +1 -1
  353. wagtail/locales/locale/fi/LC_MESSAGES/django.po +1 -1
  354. wagtail/locales/locale/fr/LC_MESSAGES/django.po +1 -1
  355. wagtail/locales/locale/gl/LC_MESSAGES/django.po +1 -1
  356. wagtail/locales/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  357. wagtail/locales/locale/he_IL/LC_MESSAGES/django.po +3 -3
  358. wagtail/locales/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  359. wagtail/locales/locale/hu/LC_MESSAGES/django.po +1 -1
  360. wagtail/locales/locale/id_ID/LC_MESSAGES/django.po +1 -1
  361. wagtail/locales/locale/is_IS/LC_MESSAGES/django.po +1 -1
  362. wagtail/locales/locale/it/LC_MESSAGES/django.po +1 -1
  363. wagtail/locales/locale/ja/LC_MESSAGES/django.po +1 -1
  364. wagtail/locales/locale/ko/LC_MESSAGES/django.po +1 -1
  365. wagtail/locales/locale/lt/LC_MESSAGES/django.po +1 -1
  366. wagtail/locales/locale/lv/LC_MESSAGES/django.po +1 -1
  367. wagtail/locales/locale/mi/LC_MESSAGES/django.po +1 -1
  368. wagtail/locales/locale/mn/LC_MESSAGES/django.po +1 -1
  369. wagtail/locales/locale/my/LC_MESSAGES/django.po +1 -1
  370. wagtail/locales/locale/nb/LC_MESSAGES/django.po +1 -1
  371. wagtail/locales/locale/nl/LC_MESSAGES/django.po +1 -1
  372. wagtail/locales/locale/pl/LC_MESSAGES/django.po +1 -1
  373. wagtail/locales/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  374. wagtail/locales/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  375. wagtail/locales/locale/ro/LC_MESSAGES/django.po +1 -1
  376. wagtail/locales/locale/ru/LC_MESSAGES/django.po +1 -1
  377. wagtail/locales/locale/sk_SK/LC_MESSAGES/django.po +1 -1
  378. wagtail/locales/locale/sl/LC_MESSAGES/django.po +1 -1
  379. wagtail/locales/locale/sv/LC_MESSAGES/django.po +1 -1
  380. wagtail/locales/locale/tet/LC_MESSAGES/django.po +1 -1
  381. wagtail/locales/locale/th/LC_MESSAGES/django.po +1 -1
  382. wagtail/locales/locale/tr/LC_MESSAGES/django.po +1 -1
  383. wagtail/locales/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  384. wagtail/locales/locale/uk/LC_MESSAGES/django.po +1 -1
  385. wagtail/locales/locale/vi/LC_MESSAGES/django.po +1 -1
  386. wagtail/locales/locale/zh/LC_MESSAGES/django.po +1 -1
  387. wagtail/locales/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  388. wagtail/locales/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  389. wagtail/locales/tests.py +18 -3
  390. wagtail/locales/views.py +0 -1
  391. wagtail/management/commands/rebuild_references_index.py +3 -1
  392. wagtail/migrations/0092_alter_collectionviewrestriction_password_and_more.py +33 -0
  393. wagtail/migrations/0093_uploadedfile.py +53 -0
  394. wagtail/models/__init__.py +147 -32
  395. wagtail/models/i18n.py +1 -1
  396. wagtail/models/{collections.py → media.py} +33 -2
  397. wagtail/models/reference_index.py +1 -1
  398. wagtail/models/view_restrictions.py +10 -3
  399. wagtail/project_template/project_name/settings/base.py +6 -0
  400. wagtail/project_template/requirements.txt +1 -1
  401. wagtail/rich_text/__init__.py +25 -8
  402. wagtail/rich_text/pages.py +19 -8
  403. wagtail/rich_text/rewriters.py +140 -68
  404. wagtail/search/backends/database/mysql/mysql.py +3 -3
  405. wagtail/search/backends/database/postgres/postgres.py +3 -3
  406. wagtail/search/backends/database/sqlite/sqlite.py +2 -2
  407. wagtail/search/backends/elasticsearch7.py +4 -0
  408. wagtail/search/locale/en/LC_MESSAGES/django.po +3 -3
  409. wagtail/search/tests/test_postgres_backend.py +50 -0
  410. wagtail/sites/locale/en/LC_MESSAGES/django.po +8 -8
  411. wagtail/sites/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  412. wagtail/sites/locale/he_IL/LC_MESSAGES/django.po +2 -2
  413. wagtail/sites/locale/ro/LC_MESSAGES/django.mo +0 -0
  414. wagtail/sites/locale/ro/LC_MESSAGES/django.po +3 -2
  415. wagtail/sites/tests.py +35 -9
  416. wagtail/sites/views.py +3 -1
  417. wagtail/snippets/locale/de/LC_MESSAGES/django.mo +0 -0
  418. wagtail/snippets/locale/de/LC_MESSAGES/django.po +7 -8
  419. wagtail/snippets/locale/en/LC_MESSAGES/django.po +16 -56
  420. wagtail/snippets/locale/fr/LC_MESSAGES/django.po +2 -2
  421. wagtail/snippets/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  422. wagtail/snippets/locale/he_IL/LC_MESSAGES/django.po +2 -2
  423. wagtail/snippets/locale/hr_HR/LC_MESSAGES/django.mo +0 -0
  424. wagtail/snippets/locale/hr_HR/LC_MESSAGES/django.po +6 -2
  425. wagtail/snippets/locale/lv/LC_MESSAGES/django.mo +0 -0
  426. wagtail/snippets/locale/lv/LC_MESSAGES/django.po +12 -0
  427. wagtail/snippets/locale/zh_Hant/LC_MESSAGES/django.mo +0 -0
  428. wagtail/snippets/locale/zh_Hant/LC_MESSAGES/django.po +4 -0
  429. wagtail/snippets/static/wagtailsnippets/js/snippet-chooser-telepath.js +1 -1
  430. wagtail/snippets/static/wagtailsnippets/js/snippet-chooser.js +1 -1
  431. wagtail/snippets/templates/wagtailsnippets/snippets/action_menu/publish.html +3 -1
  432. wagtail/snippets/templates/wagtailsnippets/snippets/action_menu/save.html +3 -1
  433. wagtail/snippets/templates/wagtailsnippets/snippets/create.html +2 -3
  434. wagtail/snippets/templates/wagtailsnippets/snippets/edit.html +2 -3
  435. wagtail/snippets/tests/test_preview.py +13 -2
  436. wagtail/snippets/tests/test_snippets.py +41 -16
  437. wagtail/snippets/tests/test_viewset.py +95 -18
  438. wagtail/snippets/tests/test_workflows.py +12 -0
  439. wagtail/snippets/views/snippets.py +1 -40
  440. wagtail/templatetags/wagtailcore_tags.py +1 -1
  441. wagtail/test/demosite/models.py +1 -1
  442. wagtail/test/middleware.py +14 -1
  443. wagtail/test/testapp/fixtures/test.json +20 -0
  444. wagtail/test/testapp/migrations/0001_squashed_0073_revisablechildmodel_secret_text.py +8 -8
  445. wagtail/test/testapp/migrations/0023_snippetchoosermodel_full_featured.py +1 -0
  446. wagtail/test/testapp/migrations/0034_custompermissionmodel.py +44 -0
  447. wagtail/test/testapp/migrations/0035_modelwithcustommanager.py +30 -0
  448. wagtail/test/testapp/migrations/0036_complexdefaultstreampage.py +28 -0
  449. wagtail/test/testapp/models.py +79 -2
  450. wagtail/test/testapp/templates/tests/custom_docs_password_required.html +10 -0
  451. wagtail/test/testapp/templates/tests/custom_page_password_required.html +10 -0
  452. wagtail/test/testapp/views.py +24 -2
  453. wagtail/test/testapp/wagtail_hooks.py +19 -0
  454. wagtail/test/utils/wagtail_tests.py +2 -2
  455. wagtail/tests/test_blocks.py +262 -1
  456. wagtail/tests/test_migrations.py +1 -1
  457. wagtail/tests/test_page_model.py +77 -0
  458. wagtail/tests/test_page_privacy.py +18 -1
  459. wagtail/tests/test_rich_text.py +95 -5
  460. wagtail/tests/test_streamfield.py +43 -0
  461. wagtail/tests/test_utils.py +8 -2
  462. wagtail/tests/test_views.py +52 -1
  463. wagtail/tests/test_whitelist.py +7 -7
  464. wagtail/users/forms.py +3 -1
  465. wagtail/users/locale/en/LC_MESSAGES/django.po +124 -96
  466. wagtail/users/locale/fr/LC_MESSAGES/django.po +2 -2
  467. wagtail/users/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  468. wagtail/users/locale/he_IL/LC_MESSAGES/django.po +2 -2
  469. wagtail/users/locale/hr_HR/LC_MESSAGES/django.mo +0 -0
  470. wagtail/users/locale/hr_HR/LC_MESSAGES/django.po +13 -2
  471. wagtail/users/migrations/0013_userprofile_density.py +23 -0
  472. wagtail/users/models.py +14 -3
  473. wagtail/users/templates/wagtailusers/groups/create.html +1 -7
  474. wagtail/users/templates/wagtailusers/groups/edit.html +1 -13
  475. wagtail/users/templates/wagtailusers/groups/includes/formatted_permissions.html +46 -2
  476. wagtail/users/templates/wagtailusers/groups/includes/group_form_js.html +0 -3
  477. wagtail/users/templates/wagtailusers/users/create.html +1 -14
  478. wagtail/users/templates/wagtailusers/users/edit.html +1 -14
  479. wagtail/users/templates/wagtailusers/users/index.html +2 -5
  480. wagtail/users/templates/wagtailusers/users/index_results.html +3 -13
  481. wagtail/users/templates/wagtailusers/users/user_cell.html +9 -0
  482. wagtail/users/templatetags/wagtailusers_tags.py +107 -20
  483. wagtail/users/tests/test_admin_views.py +669 -90
  484. wagtail/users/views/groups.py +58 -61
  485. wagtail/users/views/users.py +211 -92
  486. wagtail/users/wagtail_hooks.py +6 -38
  487. wagtail/users/widgets.py +3 -5
  488. wagtail/utils/text.py +1 -1
  489. wagtail/views.py +5 -9
  490. wagtail/whitelist.py +1 -1
  491. {wagtail-6.0.1.dist-info → wagtail-6.1rc1.dist-info}/METADATA +5 -6
  492. {wagtail-6.0.1.dist-info → wagtail-6.1rc1.dist-info}/RECORD +496 -477
  493. wagtail/admin/static/wagtailadmin/js/page-editor.js +0 -1
  494. wagtail/admin/static/wagtailadmin/js/vendor/mousetrap.min.js +0 -1
  495. wagtail/admin/static/wagtailadmin/js/vendor/urlify.js +0 -1
  496. wagtail/admin/static/wagtailadmin/js/vendor/xregexp.min.js +0 -1
  497. wagtail/admin/templates/wagtailadmin/collections/index.html +0 -34
  498. wagtail/admin/templates/wagtailadmin/pages/revisions/_actions.html +0 -22
  499. wagtail/admin/templates/wagtailadmin/shared/page_breadcrumbs.html +0 -55
  500. wagtail/admin/tests/pages/test_dashboard.py +0 -172
  501. wagtail/contrib/redirects/templates/wagtailredirects/results.html +0 -23
  502. wagtail/documents/templates/wagtaildocs/documents/list.html +0 -2
  503. wagtail/search/tests/test_postgres_stemming.py +0 -40
  504. wagtail/sites/templates/wagtailsites/create.html +0 -7
  505. wagtail/sites/templates/wagtailsites/edit.html +0 -7
  506. wagtail/snippets/templates/wagtailsnippets/snippets/revisions/_actions.html +0 -36
  507. wagtail/users/templates/wagtailusers/users/list.html +0 -62
  508. wagtail/users/urls/users.py +0 -12
  509. {wagtail-6.0.1.dist-info → wagtail-6.1rc1.dist-info}/LICENSE +0 -0
  510. {wagtail-6.0.1.dist-info → wagtail-6.1rc1.dist-info}/WHEEL +0 -0
  511. {wagtail-6.0.1.dist-info → wagtail-6.1rc1.dist-info}/entry_points.txt +0 -0
  512. {wagtail-6.0.1.dist-info → wagtail-6.1rc1.dist-info}/top_level.txt +0 -0
wagtail/sites/tests.py CHANGED
@@ -20,7 +20,25 @@ class TestSiteIndexView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
20
20
  response = self.get()
21
21
  self.assertEqual(response.status_code, 200)
22
22
  self.assertTemplateUsed(response, "wagtailadmin/generic/index.html")
23
- self.assertBreadcrumbsNotRendered(response.content)
23
+ self.assertBreadcrumbsItemsRendered(
24
+ [{"url": "", "label": "Sites"}],
25
+ response.content,
26
+ )
27
+
28
+ def test_num_queries(self):
29
+ # Warm up the cache
30
+ self.get()
31
+ with self.assertNumQueries(9):
32
+ self.get()
33
+
34
+ sites = [
35
+ Site(hostname=f"host {i}", port=f"800{i}", root_page_id=2)
36
+ for i in range(10)
37
+ ]
38
+ Site.objects.bulk_create(sites)
39
+
40
+ with self.assertNumQueries(9):
41
+ self.get()
24
42
 
25
43
 
26
44
  class TestSiteCreateView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
@@ -56,8 +74,13 @@ class TestSiteCreateView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
56
74
  def test_simple(self):
57
75
  response = self.get()
58
76
  self.assertEqual(response.status_code, 200)
59
- self.assertTemplateUsed(response, "wagtailsites/create.html")
60
- self.assertBreadcrumbsNotRendered(response.content)
77
+ self.assertBreadcrumbsItemsRendered(
78
+ [
79
+ {"label": "Sites", "url": "/admin/sites/"},
80
+ {"label": "New: Site", "url": ""},
81
+ ],
82
+ response.content,
83
+ )
61
84
 
62
85
  def test_create(self):
63
86
  response = self.post(
@@ -201,14 +224,19 @@ class TestSiteEditView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
201
224
  def test_simple(self):
202
225
  response = self.get()
203
226
  self.assertEqual(response.status_code, 200)
204
- self.assertTemplateUsed(response, "wagtailsites/edit.html")
205
- self.assertBreadcrumbsNotRendered(response.content)
227
+ self.assertBreadcrumbsItemsRendered(
228
+ [
229
+ {"url": "/admin/sites/", "label": "Sites"},
230
+ {"url": "", "label": str(self.localhost)},
231
+ ],
232
+ response.content,
233
+ )
206
234
 
207
235
  url_finder = AdminURLFinder(self.user)
208
236
  expected_url = "/admin/sites/edit/%d/" % self.localhost.id
209
237
  self.assertEqual(url_finder.get_edit_url(self.localhost), expected_url)
210
238
 
211
- def test_nonexistant_redirect(self):
239
+ def test_nonexistent_redirect(self):
212
240
  self.assertEqual(self.get(site_id=100000).status_code, 404)
213
241
 
214
242
  def test_edit(self):
@@ -357,7 +385,7 @@ class TestSiteDeleteView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
357
385
  self.assertTemplateUsed(response, "wagtailadmin/generic/confirm_delete.html")
358
386
  self.assertBreadcrumbsNotRendered(response.content)
359
387
 
360
- def test_nonexistant_redirect(self):
388
+ def test_nonexistent_redirect(self):
361
389
  self.assertEqual(self.get(site_id=100000).status_code, 404)
362
390
 
363
391
  def test_posting_deletes_site(self):
@@ -396,7 +424,6 @@ class TestLimitedPermissions(WagtailTestUtils, TestCase):
396
424
  def test_get_create_view(self):
397
425
  response = self.client.get(reverse("wagtailsites:add"))
398
426
  self.assertEqual(response.status_code, 200)
399
- self.assertTemplateUsed(response, "wagtailsites/create.html")
400
427
 
401
428
  def test_create(self):
402
429
  response = self.client.post(
@@ -418,7 +445,6 @@ class TestLimitedPermissions(WagtailTestUtils, TestCase):
418
445
  edit_url = reverse("wagtailsites:edit", args=(self.localhost.id,))
419
446
  response = self.client.get(edit_url)
420
447
  self.assertEqual(response.status_code, 200)
421
- self.assertTemplateUsed(response, "wagtailsites/edit.html")
422
448
 
423
449
  def test_edit(self):
424
450
  edit_url = reverse("wagtailsites:edit", args=(self.localhost.id,))
wagtail/sites/views.py CHANGED
@@ -28,6 +28,9 @@ class IndexView(generic.IndexView):
28
28
  ),
29
29
  ]
30
30
 
31
+ def get_base_queryset(self):
32
+ return super().get_base_queryset().select_related("root_page")
33
+
31
34
 
32
35
  class CreateView(generic.CreateView):
33
36
  page_title = _("Add site")
@@ -53,7 +56,6 @@ class SiteViewSet(ModelViewSet):
53
56
  model = Site
54
57
  permission_policy = site_permission_policy
55
58
  add_to_reference_index = False
56
- _show_breadcrumbs = False
57
59
 
58
60
  index_view_class = IndexView
59
61
  add_view_class = CreateView
@@ -88,7 +88,7 @@ msgid "Wagtail snippets"
88
88
  msgstr "Wagtail Schnipsel"
89
89
 
90
90
  msgid "Delete selected snippets"
91
- msgstr "Ausgewählte Schnipsel löschen"
91
+ msgstr "Ausgewählte Elemente löschen"
92
92
 
93
93
  #, python-format
94
94
  msgid "%(model_name)s '%(object)s' deleted."
@@ -116,8 +116,7 @@ msgstr[1] "%(usage_count)s mal benutzt"
116
116
  #, python-format
117
117
  msgid "Are you sure you want to delete this %(snippet_type_name)s?"
118
118
  msgstr ""
119
- "Sind Sie sicher, dass Sie das „%(snippet_type_name)s Schnipsel löschen "
120
- "wollen?"
119
+ "Sind Sie sicher, dass Sie das „%(snippet_type_name)s“-Objekt löschen wollen?"
121
120
 
122
121
  #, python-format
123
122
  msgid "Are you sure you want to delete %(count)s %(snippet_type_name)s?"
@@ -144,7 +143,7 @@ msgstr "Nein, nicht löschen"
144
143
  #, python-format
145
144
  msgid "Sorry, no snippets match \"<em>%(search_query)s</em>\""
146
145
  msgstr ""
147
- "Es gibt leider keine Schnipsel zum Suchbegriff \"<em>%(search_query)s</em>\""
146
+ "Es gibt leider keine Objekte zum Suchbegriff \"<em>%(search_query)s</em>\""
148
147
 
149
148
  #, python-format
150
149
  msgid ""
@@ -152,7 +151,7 @@ msgid ""
152
151
  "href=\"%(wagtailsnippets_create_snippet_url)s\" target=\"_blank\" "
153
152
  "rel=\"noreferrer\">create one now</a>?"
154
153
  msgstr ""
155
- "Sie haben keine „%(snippet_type_name)s“-Schnipsel erstellt. Warum nicht <a "
154
+ "Sie haben keine „%(snippet_type_name)s“-Objekte erstellt. Warum nicht <a "
156
155
  "href=\"%(wagtailsnippets_create_snippet_url)s\" target=\"_blank\" "
157
156
  "rel=\"noreferrer\">ein neues erstellen</a>?"
158
157
 
@@ -178,7 +177,7 @@ msgid "Actions"
178
177
  msgstr "Aktionen"
179
178
 
180
179
  msgid "Select all snippets in listing"
181
- msgstr "Alle Schnipsel in der Aufzählung auswählen"
180
+ msgstr "Alle Elemente in der Aufzählung auswählen"
182
181
 
183
182
  msgid "Live version"
184
183
  msgstr "Live-Version"
@@ -239,11 +238,11 @@ msgstr "Home"
239
238
 
240
239
  #, python-format
241
240
  msgid "Choose %(object)s"
242
- msgstr "Auswählen %(object)s"
241
+ msgstr "%(object)s auswählen"
243
242
 
244
243
  #, python-format
245
244
  msgid "Choose another %(object)s"
246
- msgstr "Andere/n/s %(object)s auswählen"
245
+ msgstr "Anderes %(object)s-Objekt auswählen"
247
246
 
248
247
  #, python-format
249
248
  msgid "Edit this %(object)s"
@@ -8,7 +8,7 @@ msgid ""
8
8
  msgstr ""
9
9
  "Project-Id-Version: PACKAGE VERSION\n"
10
10
  "Report-Msgid-Bugs-To: \n"
11
- "POT-Creation-Date: 2024-01-24 13:51+0000\n"
11
+ "POT-Creation-Date: 2024-04-18 17:28+0100\n"
12
12
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -19,7 +19,7 @@ msgstr ""
19
19
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
20
20
 
21
21
  #: action_menu.py:70
22
- #: templates/wagtailsnippets/snippets/action_menu/publish.html:13
22
+ #: templates/wagtailsnippets/snippets/action_menu/publish.html:15
23
23
  msgid "Publish"
24
24
  msgstr ""
25
25
 
@@ -54,7 +54,7 @@ msgid "Delete"
54
54
  msgstr ""
55
55
 
56
56
  #: action_menu.py:239
57
- #: templates/wagtailsnippets/snippets/action_menu/save.html:25
57
+ #: templates/wagtailsnippets/snippets/action_menu/save.html:27
58
58
  msgid "Save"
59
59
  msgstr ""
60
60
 
@@ -145,27 +145,27 @@ msgid ""
145
145
  "rel=\"noreferrer\">create one now</a>?"
146
146
  msgstr ""
147
147
 
148
- #: templates/wagtailsnippets/snippets/action_menu/publish.html:9
148
+ #: templates/wagtailsnippets/snippets/action_menu/publish.html:11
149
149
  msgid "Publishing…"
150
150
  msgstr ""
151
151
 
152
- #: templates/wagtailsnippets/snippets/action_menu/publish.html:13
152
+ #: templates/wagtailsnippets/snippets/action_menu/publish.html:15
153
153
  msgid "Publish this version"
154
154
  msgstr ""
155
155
 
156
- #: templates/wagtailsnippets/snippets/action_menu/save.html:7
156
+ #: templates/wagtailsnippets/snippets/action_menu/save.html:9
157
157
  msgid "Saving…"
158
158
  msgstr ""
159
159
 
160
- #: templates/wagtailsnippets/snippets/action_menu/save.html:18
160
+ #: templates/wagtailsnippets/snippets/action_menu/save.html:20
161
161
  msgid "Replace current draft"
162
162
  msgstr ""
163
163
 
164
- #: templates/wagtailsnippets/snippets/action_menu/save.html:20
164
+ #: templates/wagtailsnippets/snippets/action_menu/save.html:22
165
165
  msgid "Replace current revision"
166
166
  msgstr ""
167
167
 
168
- #: templates/wagtailsnippets/snippets/action_menu/save.html:23
168
+ #: templates/wagtailsnippets/snippets/action_menu/save.html:25
169
169
  msgid "Save draft"
170
170
  msgstr ""
171
171
 
@@ -178,79 +178,39 @@ msgstr ""
178
178
  msgid "Select all snippets in listing"
179
179
  msgstr ""
180
180
 
181
- #: templates/wagtailsnippets/snippets/revisions/_actions.html:9
182
- msgid "Live version"
183
- msgstr ""
184
-
185
- #: templates/wagtailsnippets/snippets/revisions/_actions.html:10
186
- msgid "Current draft"
187
- msgstr ""
188
-
189
- #: templates/wagtailsnippets/snippets/revisions/_actions.html:15
190
- msgid "Preview"
191
- msgstr ""
192
-
193
- #: templates/wagtailsnippets/snippets/revisions/_actions.html:18
194
- msgid "Edit"
195
- msgstr ""
196
-
197
- #: templates/wagtailsnippets/snippets/revisions/_actions.html:20
198
- msgid "Review this version"
199
- msgstr ""
200
-
201
- #: templates/wagtailsnippets/snippets/revisions/_actions.html:23
202
- msgid "Compare with previous version"
203
- msgstr ""
204
-
205
- #: templates/wagtailsnippets/snippets/revisions/_actions.html:26
206
- msgid "Compare with current version"
207
- msgstr ""
208
-
209
- #: templates/wagtailsnippets/snippets/revisions/_actions.html:29
210
- msgid "Cancel scheduled publish"
211
- msgstr ""
212
-
213
181
  #: views/chooser.py:21
214
182
  msgid "Choose"
215
183
  msgstr ""
216
184
 
217
- #: views/snippets.py:79 views/snippets.py:106 views/snippets.py:952
185
+ #: views/snippets.py:77 views/snippets.py:104 views/snippets.py:913
218
186
  #: wagtail_hooks.py:44
219
187
  msgid "Snippets"
220
188
  msgstr ""
221
189
 
222
- #: views/snippets.py:119
190
+ #: views/snippets.py:117
223
191
  msgid "Name"
224
192
  msgstr ""
225
193
 
226
- #: views/snippets.py:125
194
+ #: views/snippets.py:123
227
195
  msgid "Instances"
228
196
  msgstr ""
229
197
 
230
- #: views/snippets.py:216
198
+ #: views/snippets.py:214
231
199
  #, python-format
232
200
  msgid "More options for '%(title)s'"
233
201
  msgstr ""
234
202
 
235
- #: views/snippets.py:400
236
- msgid "Action"
237
- msgstr ""
238
-
239
- #: views/snippets.py:403
240
- msgid "Date"
241
- msgstr ""
242
-
243
- #: views/snippets.py:428
203
+ #: views/snippets.py:389
244
204
  #, python-format
245
205
  msgid "Edit this %(model_name)s"
246
206
  msgstr ""
247
207
 
248
- #: views/snippets.py:434
208
+ #: views/snippets.py:395
249
209
  #, python-format
250
210
  msgid "%(model_name)s history"
251
211
  msgstr ""
252
212
 
253
- #: views/snippets.py:951
213
+ #: views/snippets.py:912
254
214
  msgid "Home"
255
215
  msgstr ""
256
216
 
@@ -5,8 +5,8 @@
5
5
  # Translators:
6
6
  # Benoît Vogel <contact@spicy-informatique.com>, 2019
7
7
  # Bertrand Bordage <bordage.bertrand@gmail.com>, 2015,2017-2018
8
- # fpoulain <fpoulain@metrodore.fr>, 2018
9
- # fpoulain <fpoulain@metrodore.fr>, 2018
8
+ # 69c761fa404d2f74d5a7a2904d9e6f47_dc2dbc9 <f37077798760362881f9d396b6e22ec7_1878>, 2018
9
+ # 69c761fa404d2f74d5a7a2904d9e6f47_dc2dbc9 <f37077798760362881f9d396b6e22ec7_1878>, 2018
10
10
  # Léo <leo@naeka.fr>, 2016
11
11
  # Loic Teixeira, 2018
12
12
  # Loic Teixeira, 2018,2020-2022
@@ -17,8 +17,8 @@ msgstr ""
17
17
  "Content-Type: text/plain; charset=UTF-8\n"
18
18
  "Content-Transfer-Encoding: 8bit\n"
19
19
  "Language: he_IL\n"
20
- "Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % "
21
- "1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"
20
+ "Plural-Forms: nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % "
21
+ "1 == 0) ? 1: 2;\n"
22
22
 
23
23
  msgid "Publish"
24
24
  msgstr "פרסם"
@@ -3,14 +3,14 @@
3
3
  # This file is distributed under the same license as the PACKAGE package.
4
4
  #
5
5
  # Translators:
6
- # Dino Aljević <dino8890@protonmail.com>, 2020,2022-2023
6
+ # Dino Aljević <dino8890@protonmail.com>, 2020,2022-2024
7
7
  msgid ""
8
8
  msgstr ""
9
9
  "Project-Id-Version: Wagtail\n"
10
10
  "Report-Msgid-Bugs-To: \n"
11
11
  "POT-Creation-Date: 2024-01-24 13:51+0000\n"
12
12
  "PO-Revision-Date: 2014-02-19 19:01+0000\n"
13
- "Last-Translator: Dino Aljević <dino8890@protonmail.com>, 2020,2022-2023\n"
13
+ "Last-Translator: Dino Aljević <dino8890@protonmail.com>, 2020,2022-2024\n"
14
14
  "Language-Team: Croatian (Croatia) (http://app.transifex.com/torchbox/wagtail/"
15
15
  "language/hr_HR/)\n"
16
16
  "MIME-Version: 1.0\n"
@@ -184,6 +184,10 @@ msgstr "Naziv"
184
184
  msgid "Instances"
185
185
  msgstr "Broj instanci"
186
186
 
187
+ #, python-format
188
+ msgid "More options for '%(title)s'"
189
+ msgstr "Više opcija za '%(title)s'"
190
+
187
191
  msgid "Action"
188
192
  msgstr "Radnja"
189
193
 
@@ -26,6 +26,14 @@ msgstr "Publicēt"
26
26
  msgid "Submit for moderation"
27
27
  msgstr "Iesniegt moderācijai"
28
28
 
29
+ #, python-format
30
+ msgid "Resubmit to %(task_name)s"
31
+ msgstr "Atkārtoti iesniegt %(task_name)s"
32
+
33
+ #, python-format
34
+ msgid "Submit to %(workflow_name)s"
35
+ msgstr "Iesniegt uz %(workflow_name)s"
36
+
29
37
  msgid "Restart workflow "
30
38
  msgstr "Restartēt darbplūsmu"
31
39
 
@@ -44,6 +52,10 @@ msgstr "Saglabāt"
44
52
  msgid "Locked"
45
53
  msgstr "Slēgts"
46
54
 
55
+ #, python-format
56
+ msgid "%(label)s and Publish"
57
+ msgstr "%(label)s un publicēt"
58
+
47
59
  msgid "Yes, delete"
48
60
  msgstr "Dzēst"
49
61
 
@@ -56,6 +56,10 @@ msgstr "儲存"
56
56
  msgid "Locked"
57
57
  msgstr "已鎖定"
58
58
 
59
+ #, python-format
60
+ msgid "%(label)s and Publish"
61
+ msgstr "%(label)s並發布"
62
+
59
63
  msgid "Wagtail snippets"
60
64
  msgstr "Wagtail 片段"
61
65
 
@@ -1 +1 @@
1
- (()=>{"use strict";var e,r={1981:(e,r,t)=>{var o=t(6024),a=t(211);class n extends o.sf{getURLParams(e){const r=super.getURLParams(e);return wagtailConfig.ACTIVE_CONTENT_LOCALE&&(r.locale=wagtailConfig.ACTIVE_CONTENT_LOCALE),r}}class i extends a.I{titleStateKey="string";chooserModalClass=n}class l extends a.G{widgetClass=i;chooserModalClass=n}window.telepath.register("wagtail.snippets.widgets.SnippetChooser",l)},5311:e=>{e.exports=jQuery}},t={};function o(e){var a=t[e];if(void 0!==a)return a.exports;var n=t[e]={id:e,loaded:!1,exports:{}};return r[e].call(n.exports,n,n.exports,o),n.loaded=!0,n.exports}o.m=r,e=[],o.O=(r,t,a,n)=>{if(!t){var i=1/0;for(u=0;u<e.length;u++){for(var[t,a,n]=e[u],l=!0,s=0;s<t.length;s++)(!1&n||i>=n)&&Object.keys(o.O).every((e=>o.O[e](t[s])))?t.splice(s--,1):(l=!1,n<i&&(i=n));if(l){e.splice(u--,1);var d=a();void 0!==d&&(r=d)}}return r}n=n||0;for(var u=e.length;u>0&&e[u-1][2]>n;u--)e[u]=e[u-1];e[u]=[t,a,n]},o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var t in r)o.o(r,t)&&!o.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),o.j=383,(()=>{var e={383:0};o.O.j=r=>0===e[r];var r=(r,t)=>{var a,n,[i,l,s]=t,d=0;if(i.some((r=>0!==e[r]))){for(a in l)o.o(l,a)&&(o.m[a]=l[a]);if(s)var u=s(o)}for(r&&r(t);d<i.length;d++)n=i[d],o.o(e,n)&&e[n]&&e[n][0](),e[n]=0;return o.O(u)},t=globalThis.webpackChunkwagtail=globalThis.webpackChunkwagtail||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})();var a=o.O(void 0,[751],(()=>o(1981)));a=o.O(a)})();
1
+ (()=>{"use strict";var e,r={8039:(e,r,t)=>{var o=t(2614),a=t(9465);class n extends o.ZZ{getURLParams(e){const r=super.getURLParams(e);return wagtailConfig.ACTIVE_CONTENT_LOCALE&&(r.locale=wagtailConfig.ACTIVE_CONTENT_LOCALE),r}}class i extends a.y{titleStateKey="string";chooserModalClass=n}class l extends a._{widgetClass=i;chooserModalClass=n}window.telepath.register("wagtail.snippets.widgets.SnippetChooser",l)},1669:e=>{e.exports=jQuery}},t={};function o(e){var a=t[e];if(void 0!==a)return a.exports;var n=t[e]={id:e,loaded:!1,exports:{}};return r[e].call(n.exports,n,n.exports,o),n.loaded=!0,n.exports}o.m=r,e=[],o.O=(r,t,a,n)=>{if(!t){var i=1/0;for(u=0;u<e.length;u++){for(var[t,a,n]=e[u],l=!0,s=0;s<t.length;s++)(!1&n||i>=n)&&Object.keys(o.O).every((e=>o.O[e](t[s])))?t.splice(s--,1):(l=!1,n<i&&(i=n));if(l){e.splice(u--,1);var d=a();void 0!==d&&(r=d)}}return r}n=n||0;for(var u=e.length;u>0&&e[u-1][2]>n;u--)e[u]=e[u-1];e[u]=[t,a,n]},o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var t in r)o.o(r,t)&&!o.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),o.j=474,(()=>{var e={474:0};o.O.j=r=>0===e[r];var r=(r,t)=>{var a,n,[i,l,s]=t,d=0;if(i.some((r=>0!==e[r]))){for(a in l)o.o(l,a)&&(o.m[a]=l[a]);if(s)var u=s(o)}for(r&&r(t);d<i.length;d++)n=i[d],o.o(e,n)&&e[n]&&e[n][0](),e[n]=0;return o.O(u)},t=globalThis.webpackChunkwagtail=globalThis.webpackChunkwagtail||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})();var a=o.O(void 0,[321],(()=>o(8039)));a=o.O(a)})();
@@ -1 +1 @@
1
- (()=>{"use strict";var e,r={1183:(e,r,t)=>{var o=t(6024),a=t(211);class n extends o.sf{getURLParams(e){const r=super.getURLParams(e);return wagtailConfig.ACTIVE_CONTENT_LOCALE&&(r.locale=wagtailConfig.ACTIVE_CONTENT_LOCALE),r}}class i extends a.I{titleStateKey="string";chooserModalClass=n}window.SnippetChooser=i},5311:e=>{e.exports=jQuery}},t={};function o(e){var a=t[e];if(void 0!==a)return a.exports;var n=t[e]={id:e,loaded:!1,exports:{}};return r[e].call(n.exports,n,n.exports,o),n.loaded=!0,n.exports}o.m=r,e=[],o.O=(r,t,a,n)=>{if(!t){var i=1/0;for(u=0;u<e.length;u++){for(var[t,a,n]=e[u],l=!0,s=0;s<t.length;s++)(!1&n||i>=n)&&Object.keys(o.O).every((e=>o.O[e](t[s])))?t.splice(s--,1):(l=!1,n<i&&(i=n));if(l){e.splice(u--,1);var d=a();void 0!==d&&(r=d)}}return r}n=n||0;for(var u=e.length;u>0&&e[u-1][2]>n;u--)e[u]=e[u-1];e[u]=[t,a,n]},o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var t in r)o.o(r,t)&&!o.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),o.j=602,(()=>{var e={602:0};o.O.j=r=>0===e[r];var r=(r,t)=>{var a,n,[i,l,s]=t,d=0;if(i.some((r=>0!==e[r]))){for(a in l)o.o(l,a)&&(o.m[a]=l[a]);if(s)var u=s(o)}for(r&&r(t);d<i.length;d++)n=i[d],o.o(e,n)&&e[n]&&e[n][0](),e[n]=0;return o.O(u)},t=globalThis.webpackChunkwagtail=globalThis.webpackChunkwagtail||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})();var a=o.O(void 0,[751],(()=>o(1183)));a=o.O(a)})();
1
+ (()=>{"use strict";var e,r={9987:(e,r,t)=>{var o=t(2614),a=t(9465);class n extends o.ZZ{getURLParams(e){const r=super.getURLParams(e);return wagtailConfig.ACTIVE_CONTENT_LOCALE&&(r.locale=wagtailConfig.ACTIVE_CONTENT_LOCALE),r}}class i extends a.y{titleStateKey="string";chooserModalClass=n}window.SnippetChooser=i},1669:e=>{e.exports=jQuery}},t={};function o(e){var a=t[e];if(void 0!==a)return a.exports;var n=t[e]={id:e,loaded:!1,exports:{}};return r[e].call(n.exports,n,n.exports,o),n.loaded=!0,n.exports}o.m=r,e=[],o.O=(r,t,a,n)=>{if(!t){var i=1/0;for(u=0;u<e.length;u++){for(var[t,a,n]=e[u],l=!0,s=0;s<t.length;s++)(!1&n||i>=n)&&Object.keys(o.O).every((e=>o.O[e](t[s])))?t.splice(s--,1):(l=!1,n<i&&(i=n));if(l){e.splice(u--,1);var d=a();void 0!==d&&(r=d)}}return r}n=n||0;for(var u=e.length;u>0&&e[u-1][2]>n;u--)e[u]=e[u-1];e[u]=[t,a,n]},o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var t in r)o.o(r,t)&&!o.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),o.j=686,(()=>{var e={686:0};o.O.j=r=>0===e[r];var r=(r,t)=>{var a,n,[i,l,s]=t,d=0;if(i.some((r=>0!==e[r]))){for(a in l)o.o(l,a)&&(o.m[a]=l[a]);if(s)var u=s(o)}for(r&&r(t);d<i.length;d++)n=i[d],o.o(e,n)&&e[n]&&e[n][0](),e[n]=0;return o.O(u)},t=globalThis.webpackChunkwagtail=globalThis.webpackChunkwagtail||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})();var a=o.O(void 0,[321],(()=>o(9987)));a=o.O(a)})();
@@ -4,8 +4,10 @@
4
4
  name="{{ name }}"
5
5
  value="{{ name }}"
6
6
  class="button action-save button-longrunning{% if is_revision %} warning{% endif %}"
7
- data-controller="w-progress"
7
+ data-controller="w-progress w-kbd"
8
8
  data-action="w-progress#activate"
9
+ data-w-kbd-key-value="mod+s"
10
+ data-w-kbd-scope-value="global"
9
11
  data-w-progress-active-value="{% trans 'Publishing…' %}"
10
12
  >
11
13
  {% icon name=icon_name classname="button-longrunning__icon" %}
@@ -2,8 +2,10 @@
2
2
  <button
3
3
  type="submit"
4
4
  class="button action-save button-longrunning{% if is_revision %} warning{% endif %}"
5
- data-controller="w-progress"
5
+ data-controller="w-progress w-kbd"
6
6
  data-action="w-progress#activate"
7
+ data-w-kbd-key-value="mod+s"
8
+ data-w-kbd-scope-value="global"
7
9
  data-w-progress-active-value="{% trans 'Saving…' %}"
8
10
  >
9
11
  {% if draftstate_enabled %}
@@ -7,12 +7,12 @@
7
7
  context variables from the view. As a result, we can't reuse the include from the generic
8
8
  template and have to copy it here without the `only` keyword.
9
9
  {% endcomment %}
10
- {% include 'wagtailadmin/shared/headers/slim_header.html' with breadcrumbs_items=breadcrumbs_items side_panels=side_panels history_url=history_url %}
10
+ {% include 'wagtailadmin/shared/headers/slim_header.html' with breadcrumbs_items=breadcrumbs_items side_panels=side_panels history_url=history_url buttons=header_buttons %}
11
11
  {% endblock %}
12
12
 
13
13
  {% block actions %}
14
14
  <footer class="footer">
15
- <nav class="actions actions--primary footer__container w-grid" aria-label="{% trans 'Actions' %}">
15
+ <nav class="actions actions--primary footer__container" aria-label="{% trans 'Actions' %}">
16
16
  {{ action_menu.render_html }}
17
17
  </nav>
18
18
  </footer>
@@ -20,7 +20,6 @@
20
20
 
21
21
  {% block extra_js %}
22
22
  {{ block.super }}
23
- {% include "wagtailadmin/pages/_editor_js.html" %}
24
23
 
25
24
  <script>
26
25
  // Set wagtailConfig.ACTIVE_CONTENT_LOCALE if this is a translated page
@@ -8,12 +8,12 @@
8
8
  context variables from the view. As a result, we can't reuse the include from the generic
9
9
  template and have to copy it here without the `only` keyword.
10
10
  {% endcomment %}
11
- {% include 'wagtailadmin/shared/headers/slim_header.html' with breadcrumbs_items=breadcrumbs_items side_panels=side_panels history_url=history_url %}
11
+ {% include 'wagtailadmin/shared/headers/slim_header.html' with breadcrumbs_items=breadcrumbs_items side_panels=side_panels history_url=history_url buttons=header_buttons %}
12
12
  {% endblock %}
13
13
 
14
14
  {% block actions %}
15
15
  <footer class="footer">
16
- <nav class="actions actions--primary footer__container w-grid" aria-label="{% trans 'Actions' %}">
16
+ <nav class="actions actions--primary footer__container" aria-label="{% trans 'Actions' %}">
17
17
  {{ action_menu.render_html }}
18
18
  </nav>
19
19
  </footer>
@@ -21,7 +21,6 @@
21
21
 
22
22
  {% block extra_js %}
23
23
  {{ block.super }}
24
- {% include "wagtailadmin/pages/_editor_js.html" %}
25
24
 
26
25
  <script>
27
26
  // Set wagtailConfig.ACTIVE_CONTENT_LOCALE if this is a translated page
@@ -297,10 +297,16 @@ class TestEnablePreview(WagtailTestUtils, TestCase):
297
297
  self.assertEqual(response.status_code, 200)
298
298
 
299
299
  # Should show the preview panel
300
- self.assertContains(response, 'data-side-panel-toggle="preview"')
301
300
  self.assertContains(response, 'data-side-panel="preview"')
302
301
  self.assertContains(response, 'data-action="%s"' % preview_url)
303
302
 
303
+ # Should have the preview side panel toggle button
304
+ soup = self.get_soup(response.content)
305
+ toggle_button = soup.find("button", {"data-side-panel-toggle": "preview"})
306
+ self.assertIsNotNone(toggle_button)
307
+ self.assertEqual("w-tooltip w-kbd", toggle_button["data-controller"])
308
+ self.assertEqual("mod+p", toggle_button["data-w-kbd-key-value"])
309
+
304
310
  # Should show the iframe
305
311
  self.assertContains(
306
312
  response,
@@ -471,9 +477,14 @@ class TestDisablePreviewWithEmptyModes(WagtailTestUtils, TestCase):
471
477
  preview_url = self.get_url(
472
478
  "revisions_view", args=(self.snippet.pk, latest_revision.id)
473
479
  )
474
- self.assertNotContains(response, "Preview")
480
+
475
481
  self.assertNotContains(response, preview_url)
476
482
 
483
+ soup = self.get_soup(response.content)
484
+
485
+ preview_link = soup.find("a", {"href": preview_url})
486
+ self.assertIsNone(preview_link)
487
+
477
488
 
478
489
  class TestDisablePreviewWithoutMixin(TestDisablePreviewWithEmptyModes):
479
490
  """