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
@@ -1,5 +1,5 @@
1
1
  {# Render a single checkbox with text center-aligned. #}
2
2
  <label class="w-flex w-items-center {{ label_classname }}">
3
- <input type="checkbox" name="{{ name }}"{% if value %} value="{{ value }}"{% endif %} {% if checked %}checked{% endif %}>
3
+ <input type="checkbox" name="{{ name }}"{% if value %} value="{{ value }}"{% endif %} {% if checked %}checked{% endif %} {% include "wagtailadmin/shared/attrs.html" with attrs=attrs %}>
4
4
  {{ text }}
5
5
  </label>
@@ -2,7 +2,7 @@
2
2
  {% load wagtailadmin_tags i18n %}
3
3
 
4
4
  {% block breadcrumbs %}
5
- {% page_breadcrumbs page 'wagtailadmin_explore' url_root_name='wagtailadmin_explore_root' page_perms=page_perms %}
5
+ {% page_breadcrumbs page 'wagtailadmin_explore' url_root_name='wagtailadmin_explore_root' %}
6
6
  {% endblock %}
7
7
 
8
8
  {% block actions %}
@@ -4,13 +4,14 @@
4
4
  Variables accepted by this template:
5
5
 
6
6
  - `breadcrumbs_items` - breadcrumbs items to be rendered, in the format of [{"url": str, "label": str}]
7
- - `actions` - prerendered actions to be displayed in the header
7
+ - `buttons` - buttons to be rendered beside the final breadcrumbs item
8
8
  - `side_panels` - list of side panels to be rendered
9
9
  - `history_url` - URL to the history view for the current object
10
10
  - `title` - title of the current page, to be displayed as a hidden h1 for screen readers
11
11
  - `search_url` - URL to the search view, should respond with a partial template for the results
12
12
  - `search_form` - form to be rendered for search
13
13
  - `filters` - filters to be rendered
14
+ - `icon_name` - name of the icon to be used in the header
14
15
 
15
16
  When including this template, use the `only` parameter whenever possible to
16
17
  ensure that the above variables are indeed the only ones needed for this
@@ -40,17 +41,23 @@
40
41
 
41
42
  {% block breadcrumbs %}
42
43
  {% if breadcrumbs_items %}
43
- {% breadcrumbs breadcrumbs_items %}
44
+ {% breadcrumbs breadcrumbs_items icon_name=icon_name %}
44
45
  {% endif %}
45
46
  {% endblock %}
46
47
 
47
48
  {# Allow actions to be passed as a prerendered variable or defined by extending the template via block_actions #}
48
- {% fragment as block_actions %}{% block actions %}{% endblock %}{% endfragment %}
49
- {% if actions or block_actions %}
49
+ {% fragment stripped as actions %}
50
+ {% block actions %}
51
+ {% for button in buttons %}
52
+ {% component button %}
53
+ {% endfor %}
54
+ {% endblock %}
55
+ {% endfragment %}
56
+ {% if actions %}
50
57
  {# Actions divider #}
51
58
  <div class="w-w-px w-h-[30px] w-ml-auto sm:w-ml-0 w-bg-border-furniture"></div>
52
- <div class="w-flex w-items-center w-ml-3">
53
- {% firstof actions block_actions %}
59
+ <div id="w-slim-header-buttons" class="w-flex w-items-center w-ml-2.5 w-gap-1">
60
+ {{ actions }}
54
61
  </div>
55
62
  {% endif %}
56
63
  {% endblock %}
@@ -71,6 +78,7 @@
71
78
  data-action="change->w-swap#submitLazy input->w-swap#submitLazy"
72
79
  data-w-swap-src-value="{{ search_url }}"
73
80
  data-w-swap-target-value="#listing-results"
81
+ data-w-swap-reflect-value="true"
74
82
  >
75
83
  {% if search_form %}
76
84
  {% for field in search_form %}
@@ -83,15 +91,19 @@
83
91
  id="filters-drilldown"
84
92
  class="w-drilldown"
85
93
  data-controller="w-drilldown"
86
- data-action="w-swap:success@document->w-drilldown#updateParams w-dropdown:hide->w-drilldown#delayedClose w-dropdown:clickaway->w-drilldown#preventOutletClickaway"
87
- data-w-drilldown-count-attr-value="data-w-active-filter-name"
88
- data-w-drilldown-w-action-outlet="[data-w-active-filter-name][data-controller='w-action']"
94
+ data-action="w-swap:success@document->w-drilldown#updateCount w-dropdown:hide->w-drilldown#delayedClose w-dropdown:clickaway->w-drilldown#preventOutletClickaway"
95
+ data-w-drilldown-count-attr-value="data-w-active-filter-id"
96
+ data-w-drilldown-w-action-outlet="[data-w-active-filter-id][data-controller='w-action']"
89
97
  data-w-drilldown-w-dropdown-outlet="#filters-drilldown [data-controller='w-dropdown']"
90
98
  >
91
99
  {% include "wagtailadmin/shared/headers/_filters.html" with filters=filters only %}
92
100
  </div>
93
101
  {% endif %}
94
102
 
103
+ {% block extra_form_fields %}
104
+ {# Add any extra form fields here #}
105
+ {% endblock %}
106
+
95
107
  {% comment %}
96
108
  Add an initial disabled & hidden submit button so that
97
109
  pressing 'Enter' will not submit form. Reload is not
@@ -1,6 +1,6 @@
1
1
  {% load wagtailadmin_tags i18n %}
2
2
 
3
- <button type="button" class="w-human-readable-date" data-controller="w-tooltip" data-w-tooltip-content-value="{{ date|date:"DATETIME_FORMAT" }}" data-w-tooltip-placement-value="{{ placement }}">
3
+ <button type="button" class="w-human-readable-date" data-controller="w-tooltip" data-w-tooltip-content-value="{{ date|date:tooltip_format }}" data-w-tooltip-placement-value="{{ placement }}">
4
4
  <time class="w-human-readable-date__date" datetime="{{ date|date:"c" }}">
5
5
  {{ date|timesince_simple|capfirst }}
6
6
  </time>
@@ -0,0 +1,29 @@
1
+ {% load wagtailadmin_tags i18n %}
2
+ {% dialog icon_name="keyboard" classname="w-keyboard-shortcuts" id="keyboard-shortcuts-dialog" title=_("Keyboard shortcuts") %}
3
+ <table class="w-w-full">
4
+ <caption class="w-sr-only">
5
+ {% trans "All keyboard shortcuts" %}
6
+ </caption>
7
+ <thead class="w-sr-only">
8
+ <tr>
9
+ <th scope="col">{% trans "Section" %}</th>
10
+ <th scope="col">{% trans "Keyboard shortcut" %}</th>
11
+ </tr>
12
+ </thead>
13
+ {% block shortcuts %}
14
+ {% for category, shortcuts in shortcuts.items %}
15
+ <tbody class="w-w-full" id="keyboard-shortut-group-{{ category.0 }}">
16
+ <tr class="w-keyboard-shortcuts__category" colspan="2">
17
+ <th class="w-h4" scope="rowgroup">{{ category.1 }}</th>
18
+ </tr>
19
+ {% for shortcut in shortcuts %}
20
+ <tr class="w-keyboard_shortcuts__key">
21
+ <th scope="row">{{ shortcut.0 }}</th>
22
+ <td><kbd>{{ shortcut.1 }}</kbd></td>
23
+ </tr>
24
+ {% endfor %}
25
+ </tbody>
26
+ {% endfor %}
27
+ {% endblock %}
28
+ </table>
29
+ {% enddialog %}
@@ -4,8 +4,9 @@
4
4
  class="{{ nav_icon_button_classes }}"
5
5
  aria-label="{{ toggle.aria_label }}"
6
6
  aria-expanded="false"
7
- data-controller="w-tooltip"
7
+ data-controller="w-tooltip{% if toggle.keyboard_shortcut %} w-kbd{% endif %}"
8
8
  data-side-panel-toggle="{{ panel.name }}"
9
+ {% if toggle.keyboard_shortcut %}data-w-kbd-key-value="{{ toggle.keyboard_shortcut }}" data-w-kbd-scope-value="global"{% endif %}
9
10
  data-w-tooltip-content-value="{{ panel.title }}"
10
11
  data-w-tooltip-offset-value="[0, 0]"
11
12
  >
@@ -15,7 +15,8 @@
15
15
  {% block branding_favicon %}{% endblock %}
16
16
  </head>
17
17
  {% sidebar_collapsed as sidebar_collapsed %}
18
- <body id="wagtail" class="{% block bodyclass %}{% endblock %} {% if sidebar_collapsed %}sidebar-collapsed{% endif %} {% if messages %}has-messages{% endif %}" data-controller="w-init" data-w-init-ready-class="ready">
18
+ {% fragment as bodyclass %}{% block bodyclass %}{% endblock %}{% endfragment %}
19
+ <body id="wagtail" class="{% classnames bodyclass sidebar_collapsed|yesno:"sidebar-collapsed," messages|yesno:"has-messages," %}" data-controller="w-init" data-w-init-ready-class="ready">
19
20
  <div data-sprite></div>
20
21
 
21
22
  <script src="{% versioned_static 'wagtailadmin/js/icons.js' %}" data-icon-url="{% url 'wagtailadmin_sprite' %}"></script>
@@ -0,0 +1,9 @@
1
+ <td {% if column.classname %}class="{{ column.classname }}"{% endif %}>
2
+ {% if value %}
3
+ <ul>
4
+ {% for item in value %}
5
+ <li>{{ item }}</li>
6
+ {% endfor %}
7
+ </ul>
8
+ {% endif %}
9
+ </td>
@@ -17,11 +17,13 @@
17
17
  {% endif %}
18
18
  {% endblock %}
19
19
  </div>
20
- {% if buttons %}
21
- <ul class="actions">
22
- {% block buttons %}
23
- {% include "wagtailadmin/shared/buttons.html" %}
24
- {% endblock %}
25
- </ul>
26
- {% endif %}
20
+ {% block extra %}
21
+ {% if buttons %}
22
+ <ul class="actions">
23
+ {% block buttons %}
24
+ {% include "wagtailadmin/shared/buttons.html" %}
25
+ {% endblock %}
26
+ </ul>
27
+ {% endif %}
28
+ {% endblock %}
27
29
  </td>
@@ -1 +1 @@
1
- {% include 'django/forms/widgets/hidden.html' %}<script>window.draftail.initEditor('#{{ widget.attrs.id|escapejs }}', {{ widget.options_json|safe }}, document.currentScript)</script>
1
+ {% include 'django/forms/widgets/hidden.html' %}
@@ -1,30 +1,11 @@
1
- {% extends "wagtailadmin/generic/base.html" %}
1
+ {% extends "wagtailadmin/generic/create.html" %}
2
2
  {% load i18n wagtailadmin_tags %}
3
3
 
4
- {% block extra_css %}
5
- {{ block.super }}
6
- {{ media.css }}
7
- {% endblock %}
8
-
9
- {% block extra_js %}
10
- {{ block.super }}
11
- {% include "wagtailadmin/pages/_editor_js.html" %}
12
- {{ media.js }}
13
- {% endblock %}
14
-
15
- {% block main_header %}
16
- {% include "wagtailadmin/shared/header.html" with title=page_title subtitle=page_subtitle icon=header_icon merged=1 only %}
17
- {% endblock %}
18
-
19
- {% block content %}
20
- {% block header %}
21
- {{ block.super }}
22
- {% endblock %}
23
-
4
+ {% block main_content %}
24
5
  <form action="{{ view.get_add_url }}" enctype="multipart/form-data" method="POST" novalidate>
25
6
  {% csrf_token %}
26
7
 
27
- <div class="nice-padding w-form-width">
8
+ <div class="w-form-width">
28
9
  {% block form %}{{ edit_handler.render_form_content }}{% endblock %}
29
10
 
30
11
  {% panel id="workflow-pages" icon="doc-empty-inverse" heading=_("Assign your workflow to pages") %}
@@ -45,8 +26,10 @@
45
26
  <button
46
27
  type="submit"
47
28
  class="button action-save button-longrunning w-flex-grow"
48
- data-controller="w-progress"
29
+ data-controller="w-progress w-kbd"
49
30
  data-action="w-progress#activate"
31
+ data-w-kbd-key-value="mod+s"
32
+ data-w-kbd-scope-value="global"
50
33
  data-w-progress-active-value="{% trans 'Creating…' %}"
51
34
  >
52
35
  {% icon name="spinner" %}
@@ -1,22 +1,11 @@
1
- {% extends "wagtailadmin/generic/base.html" %}
1
+ {% extends "wagtailadmin/generic/create.html" %}
2
2
  {% load i18n wagtailadmin_tags %}
3
3
 
4
- {% block titletag %}{{ view.page_title }}{% endblock %}
5
-
6
- {% block extra_js %}
7
- {{ block.super }}
8
- {% include "wagtailadmin/pages/_editor_js.html" %}
9
- {% endblock %}
10
-
11
- {% block content %}
12
- {% block header %}
13
- {{ block.super }}
14
- {% endblock %}
15
-
4
+ {% block main_content %}
16
5
  <form action="{{ view.get_add_url }}" enctype="multipart/form-data" method="POST" novalidate>
17
6
  {% csrf_token %}
18
7
 
19
- <ul class="fields nice-padding">
8
+ <ul class="fields">
20
9
  {% for field in form %}
21
10
  {% if not field.is_hidden %}
22
11
  <li>{% formattedfield field %}</li>
@@ -33,8 +22,10 @@
33
22
  <button
34
23
  type="submit"
35
24
  class="button action-save button-longrunning w-flex-grow"
36
- data-controller="w-progress"
25
+ data-controller="w-progress w-kbd"
37
26
  data-action="w-progress#activate"
27
+ data-w-kbd-key-value="mod+s"
28
+ data-w-kbd-scope-value="global"
38
29
  data-w-progress-active-value="{% trans 'Creating…' %}"
39
30
  >
40
31
  {% icon name="spinner" %}
@@ -1,30 +1,11 @@
1
- {% extends "wagtailadmin/generic/base.html" %}
1
+ {% extends "wagtailadmin/generic/edit.html" %}
2
2
  {% load i18n wagtailadmin_tags %}
3
3
 
4
- {% block extra_css %}
5
- {{ block.super }}
6
- {{ media.css }}
7
- {% endblock %}
8
-
9
- {% block extra_js %}
10
- {{ block.super }}
11
- {% include "wagtailadmin/pages/_editor_js.html" %}
12
- {{ media.js }}
13
- {% endblock %}
14
-
15
- {% block main_header %}
16
- {% include "wagtailadmin/shared/header.html" with title=page_title subtitle=page_subtitle icon=header_icon merged=1 only %}
17
- {% endblock %}
18
-
19
- {% block content %}
20
- {% block header %}
21
- {{ block.super }}
22
- {% endblock %}
23
-
4
+ {% block main_content %}
24
5
  <form action="{% block form_action %}{{ view.edit_url }}{% endblock %}"{% if is_multipart %} enctype="multipart/form-data"{% endif %} method="POST" novalidate>
25
6
  {% csrf_token %}
26
7
 
27
- <div class="nice-padding w-form-width">
8
+ <div class="w-form-width">
28
9
  {% block form %}{{ edit_handler.render_form_content }}{% endblock %}
29
10
 
30
11
  {% panel id="workflow-pages" icon="doc-empty-inverse" heading=_("Assign your workflow to pages") %}
@@ -69,8 +50,10 @@
69
50
  <button
70
51
  type="submit"
71
52
  class="button action-save button-longrunning w-flex-grow"
72
- data-controller="w-progress"
53
+ data-controller="w-progress w-kbd"
73
54
  data-action="w-progress#activate"
55
+ data-w-kbd-key-value="mod+s"
56
+ data-w-kbd-scope-value="global"
74
57
  data-w-progress-active-value="{% trans 'Saving…' %}"
75
58
  >
76
59
  {% icon name="spinner" %}
@@ -1,20 +1,11 @@
1
- {% extends "wagtailadmin/generic/base.html" %}
1
+ {% extends "wagtailadmin/generic/edit.html" %}
2
2
  {% load i18n wagtailadmin_tags %}
3
3
 
4
- {% block extra_js %}
5
- {{ block.super }}
6
- {% include "wagtailadmin/pages/_editor_js.html" %}
7
- {% endblock %}
8
-
9
- {% block content %}
10
- {% block header %}
11
- {{ block.super }}
12
- {% endblock %}
13
-
4
+ {% block main_content %}
14
5
  <form action="{{ view.edit_url }}" enctype="multipart/form-data" method="POST" novalidate>
15
6
  {% csrf_token %}
16
7
 
17
- <ul class="fields nice-padding">
8
+ <ul class="fields">
18
9
  {% for field in form %}
19
10
  {% if not field.is_hidden %}
20
11
  <li>{% formattedfield field %}</li>
@@ -43,8 +34,10 @@
43
34
  <button
44
35
  type="submit"
45
36
  class="button action-save button-longrunning w-flex-grow"
46
- data-controller="w-progress"
37
+ data-controller="w-progress w-kbd"
47
38
  data-action="w-progress#activate"
39
+ data-w-kbd-key-value="mod+s"
40
+ data-w-kbd-scope-value="global"
48
41
  data-w-progress-active-value="{% trans 'Saving…' %}"
49
42
  >
50
43
  {% icon name="spinner" %}
@@ -1,11 +1,11 @@
1
1
  {% load i18n %}
2
2
  <td {% if column.classname %}class="{{ column.classname }}"{% endif %}>
3
- {% for workflow in value|slice:":5" %}
4
- <a href="{% url 'wagtailadmin_workflows:edit' workflow.pk %}">{{ workflow.name }}{% if not forloop.last %}, {% endif %}</a>
3
+ {% for workflow_task in value|slice:":5" %}
4
+ <a href="{% url 'wagtailadmin_workflows:edit' workflow_task.workflow.pk %}">{{ workflow_task.workflow.name }}{% if not forloop.last %}, {% endif %}</a>
5
5
  {% empty %}
6
6
  {% trans "Not used" %}
7
7
  {% endfor %}
8
- {% if value.count > 5 %}
9
- {% blocktrans trimmed count counter=value.count|add:-5 %}+{{ counter }} more{% plural %}+{{ counter }} more{% endblocktrans %}
8
+ {% if value|length > 5 %}
9
+ {% blocktrans trimmed count counter=value|length|add:-5 %}+{{ counter }} more{% plural %}+{{ counter }} more{% endblocktrans %}
10
10
  {% endif %}
11
11
  </td>
@@ -0,0 +1,18 @@
1
+ {% load i18n %}
2
+ <td {% if column.classname %}class="{{ column.classname }}"{% endif %}>
3
+ <ul class="workflow-tasks">
4
+ {% for task in tasks %}
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>
8
+ <h4 class="workflow-tasks__name">{{ task.task.name }}</h4>
9
+ </li>
10
+ </a>
11
+ {% endfor %}
12
+ {% if extra_count > 0 %}
13
+ <li class="workflow-tasks__extra-tasks">
14
+ {% blocktrans trimmed count counter=extra_count %}+{{ counter }} more{% plural %}+{{ counter }} more{% endblocktrans %}
15
+ </li>
16
+ {% endif %}
17
+ </ul>
18
+ </td>
@@ -0,0 +1,7 @@
1
+ {% extends "wagtailadmin/tables/title_cell.html" %}
2
+ {% load i18n wagtailadmin_tags %}
3
+
4
+ {% block title %}
5
+ {{ block.super }}
6
+ {% if not instance.active %}{% status _("Disabled") %}{% endif %}
7
+ {% endblock %}
@@ -0,0 +1,25 @@
1
+ {% extends "wagtailadmin/tables/title_cell.html" %}
2
+ {% load i18n %}
3
+
4
+ {% block title %}
5
+ <a href="{{ link_url }}">
6
+ {% blocktrans trimmed count counter=instance.all_pages.count %}
7
+ 1 page
8
+ {% plural %}
9
+ {{ counter }} pages
10
+ {% endblocktrans %}
11
+ </a>
12
+ {% endblock %}
13
+
14
+ {% block extra %}
15
+ {# Only show snippet type count if there's a model with workflows enabled #}
16
+ {% if workflow_enabled_models %}
17
+ <div>
18
+ {% blocktrans trimmed count counter=instance.content_types %}
19
+ 1 snippet type
20
+ {% plural %}
21
+ {{ counter }} snippet types
22
+ {% endblocktrans %}
23
+ </div>
24
+ {% endif %}
25
+ {% endblock %}
@@ -1,100 +1 @@
1
1
  {% extends "wagtailadmin/generic/index.html" %}
2
- {% load i18n wagtailadmin_tags %}
3
-
4
- {% block main_header %}
5
- {% fragment as workflow_actions %}
6
- <a href="{% url "wagtailadmin_workflows:index" %}?show_disabled={% if showing_disabled %}false{% else %}true{% endif %}" class="button button-secondary button--icon w-inline-flex w-items-center w-gap-2">
7
- {% if showing_disabled %}
8
- {% icon name="no-view" %}{% trans "Hide disabled workflows" %}
9
- {% else %}
10
- {% icon name="view" %}{% trans "Show disabled workflows" %}
11
- {% endif %}
12
- </a>
13
- <a href="{% url view.add_url_name %}" class="button bicolor button--icon">{% icon name="plus" wrapped=1 %}{{ view.add_item_label }}</a>
14
- {% endfragment %}
15
- {% include "wagtailadmin/shared/header.html" with title=view.page_title icon=view.header_icon extra_actions=workflow_actions %}
16
- {% endblock %}
17
-
18
- {% block listing %}
19
- <div class="nice-padding">
20
- {% if workflows %}
21
- <table class="listing">
22
- <thead>
23
- <tr>
24
- <th>
25
- {% trans "Name" %}
26
- </th>
27
- <th>
28
- {% trans "Used by" %}
29
- </th>
30
- <th>
31
- {% trans "Tasks" %}
32
- </th>
33
- </tr>
34
- </thead>
35
- <tbody>
36
- {% for workflow in workflows %}
37
- <tr>
38
- <td class="title">
39
- <div class="title-wrapper">
40
- <a href="{% url view.edit_url_name workflow.pk %}">{{ workflow }}</a>
41
- {% if not workflow.active %}{% status _("Disabled") %}{% endif %}
42
- </div>
43
- </td>
44
- <td class="title">
45
- <div class="title-wrapper">
46
- <a href="{% url 'wagtailadmin_workflows:usage' workflow.pk %}">
47
- {% blocktrans trimmed count counter=workflow.all_pages.count %}
48
- 1 page
49
- {% plural %}
50
- {{ counter }} pages
51
- {% endblocktrans %}
52
- </a>
53
- </div>
54
- {# Only show snippet type count if there's a model with workflows enabled #}
55
- {% if workflow_enabled_models %}
56
- <div>
57
- {% blocktrans trimmed count counter=workflow.content_types %}
58
- 1 snippet type
59
- {% plural %}
60
- {{ counter }} snippet types
61
- {% endblocktrans %}
62
- </div>
63
- {% endif %}
64
- </td>
65
- <td>
66
- <ul class="workflow-tasks">
67
- {% for task in workflow.tasks|slice:":5" %}
68
- <a href="{% url 'wagtailadmin_workflows:edit_task' task.pk %}">
69
- <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.name }}">
70
- <div class="workflow-tasks__step">{% blocktrans trimmed with forloop.counter as step_number %}Step {{ step_number }}{% endblocktrans %}</div>
71
- <h4 class="workflow-tasks__name">{{ task.name }}</h4>
72
- </li>
73
- </a>
74
- {% endfor %}
75
- {% if workflow.tasks.count > 5 %}
76
- <li class="workflow-tasks__extra-tasks">
77
- {% blocktrans trimmed count counter=workflow.tasks.count|add:-5 %}+{{ counter }} more{% plural %}+{{ counter }} more{% endblocktrans %}
78
- </li>
79
- {% endif %}
80
- </ul>
81
- </td>
82
- </tr>
83
- {% endfor %}
84
- </tbody>
85
- </table>
86
- {% else %}
87
- {% url view.add_url_name as add_url %}
88
- {% if showing_disabled %}
89
- <p>{% blocktrans trimmed %}No workflows have been created. Why not <a href="{{ add_url }}">add one</a>?{% endblocktrans %}</p>
90
- {% else %}
91
- <p>{% blocktrans trimmed %}There are no enabled workflows. Why not <a href="{{ add_url }}">add one</a>?{% endblocktrans %}</p>
92
- {% endif %}
93
- {% endif %}
94
- </div>
95
- {% endblock %}
96
-
97
- {% block extra_js %}
98
- {{ block.super }}
99
- {% include "wagtailadmin/pages/_editor_js.html" %}
100
- {% endblock %}
@@ -0,0 +1,10 @@
1
+ {% extends "wagtailadmin/generic/index_results.html" %}
2
+ {% load i18n %}
3
+
4
+ {% block no_results_message %}
5
+ {% if showing_disabled %}
6
+ <p>{% blocktrans trimmed %}No workflows have been created. Why not <a href="{{ add_url }}">add one</a>?{% endblocktrans %}</p>
7
+ {% else %}
8
+ <p>{% blocktrans trimmed %}There are no enabled workflows. Why not <a href="{{ add_url }}">add one</a>?{% endblocktrans %}</p>
9
+ {% endif %}
10
+ {% endblock %}
@@ -1,31 +1 @@
1
1
  {% extends "wagtailadmin/generic/index.html" %}
2
- {% load i18n wagtailadmin_tags %}
3
-
4
- {% block main_header %}
5
- {% fragment as workflow_actions %}
6
- <a href="{% url "wagtailadmin_workflows:task_index" %}?show_disabled={% if showing_disabled %}false{% else %}true{% endif %}" class="button button-secondary button--icon w-inline-flex w-items-center w-gap-2">
7
- {% if showing_disabled %}
8
- {% icon name="no-view" %}{% trans "Hide disabled tasks" %}
9
- {% else %}
10
- {% icon name="view" %}{% trans "Show disabled tasks" %}
11
- {% endif %}
12
- </a>
13
- <a href="{% url view.add_url_name %}" class="button bicolor button--icon">{% icon name="plus" wrapped=1 %}{{ view.add_item_label }}</a>
14
- {% endfragment %}
15
- {% include "wagtailadmin/shared/header.html" with title=page_title icon=header_icon extra_actions=workflow_actions %}
16
- {% endblock %}
17
-
18
- {% block listing %}
19
- <div class="nice-padding">
20
- {% if tasks %}
21
- {% component table %}
22
- {% else %}
23
- {% url view.add_url_name as add_url %}
24
- {% if showing_disabled %}
25
- <p>{% blocktrans trimmed %}No tasks have been created. Why not <a href="{{ add_url }}">add one</a>?{% endblocktrans %}</p>
26
- {% else %}
27
- <p>{% blocktrans trimmed %}There are no enabled tasks. Why not <a href="{{ add_url }}">add one</a>?{% endblocktrans %}</p>
28
- {% endif %}
29
- {% endif %}
30
- </div>
31
- {% endblock %}
@@ -0,0 +1,10 @@
1
+ {% extends "wagtailadmin/generic/index_results.html" %}
2
+ {% load i18n wagtailadmin_tags %}
3
+
4
+ {% block no_results_message %}
5
+ {% if showing_disabled %}
6
+ <p>{% blocktrans trimmed %}No tasks have been created. Why not <a href="{{ add_url }}">add one</a>?{% endblocktrans %}</p>
7
+ {% else %}
8
+ <p>{% blocktrans trimmed %}There are no enabled tasks. Why not <a href="{{ add_url }}">add one</a>?{% endblocktrans %}</p>
9
+ {% endif %}
10
+ {% endblock %}
@@ -1,4 +1,4 @@
1
- {% extends "wagtailadmin/base.html" %}
1
+ {% extends "wagtailadmin/generic/listing.html" %}
2
2
  {% load i18n %}
3
3
  {% block titletag %}{% blocktrans trimmed with name=workflow.name %}Pages that use workflow '{{ name }}'{% endblocktrans %}{% endblock %}
4
4
  {% block content %}