wagtail 6.2.2__py3-none-any.whl → 6.3rc2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. wagtail/__init__.py +1 -1
  2. wagtail/actions/copy_for_translation.py +6 -0
  3. wagtail/actions/publish_revision.py +3 -3
  4. wagtail/admin/action_menu.py +5 -3
  5. wagtail/admin/forms/account.py +1 -1
  6. wagtail/admin/icons.py +2 -6
  7. wagtail/admin/locale/cy/LC_MESSAGES/django.mo +0 -0
  8. wagtail/admin/locale/cy/LC_MESSAGES/django.po +32 -0
  9. wagtail/admin/locale/dv/LC_MESSAGES/django.mo +0 -0
  10. wagtail/admin/locale/dv/LC_MESSAGES/django.po +28 -0
  11. wagtail/admin/locale/en/LC_MESSAGES/django.po +451 -485
  12. wagtail/admin/locale/en/LC_MESSAGES/djangojs.po +7 -7
  13. wagtail/admin/locale/sl/LC_MESSAGES/django.mo +0 -0
  14. wagtail/admin/locale/sl/LC_MESSAGES/django.po +150 -0
  15. wagtail/admin/locale/sl/LC_MESSAGES/djangojs.mo +0 -0
  16. wagtail/admin/locale/sl/LC_MESSAGES/djangojs.po +9 -2
  17. wagtail/admin/locale/ug/LC_MESSAGES/django.mo +0 -0
  18. wagtail/admin/locale/ug/LC_MESSAGES/django.po +3250 -196
  19. wagtail/admin/localization.py +12 -2
  20. wagtail/admin/panels/model_utils.py +1 -1
  21. wagtail/admin/site_summary.py +0 -2
  22. wagtail/admin/static/wagtailadmin/css/core.css +1 -1
  23. wagtail/admin/static/wagtailadmin/css/panels/draftail.css +1 -1
  24. wagtail/admin/static/wagtailadmin/images/email-header.jpg +0 -0
  25. wagtail/admin/static/wagtailadmin/js/bulk-actions.js +1 -1
  26. wagtail/admin/static/wagtailadmin/js/core.js +1 -1
  27. wagtail/admin/static/wagtailadmin/js/core.js.LICENSE.txt +12 -0
  28. wagtail/admin/static/wagtailadmin/js/draftail.js +1 -1
  29. wagtail/admin/static/wagtailadmin/js/sidebar.js +1 -1
  30. wagtail/admin/static/wagtailadmin/js/telepath/telepath.js +1 -1
  31. wagtail/admin/static/wagtailadmin/js/telepath/widgets.js +1 -1
  32. wagtail/admin/static/wagtailadmin/js/userbar.js +1 -1
  33. wagtail/admin/static/wagtailadmin/js/userbar.js.LICENSE.txt +1 -1
  34. wagtail/admin/static/wagtailadmin/js/vendor.js +1 -1
  35. wagtail/admin/static/wagtailadmin/js/wagtailadmin.js +1 -1
  36. wagtail/admin/static/wagtailadmin/js/workflow-action.js +1 -1
  37. wagtail/admin/staticfiles.py +6 -4
  38. wagtail/admin/templates/wagtailadmin/account/account.html +42 -59
  39. wagtail/admin/templates/wagtailadmin/admin_base.html +0 -28
  40. wagtail/admin/templates/wagtailadmin/bulk_actions/footer.html +1 -1
  41. wagtail/admin/templates/wagtailadmin/chooser/_search_results.html +7 -5
  42. wagtail/admin/templates/wagtailadmin/chooser/tables/page_navigate_to_children_cell.html +1 -1
  43. wagtail/admin/templates/wagtailadmin/generic/chooser/results.html +7 -5
  44. wagtail/admin/templates/wagtailadmin/generic/edit.html +0 -8
  45. wagtail/admin/templates/wagtailadmin/generic/form.html +60 -17
  46. wagtail/admin/templates/wagtailadmin/generic/index.html +17 -0
  47. wagtail/admin/templates/wagtailadmin/generic/index_results.html +9 -35
  48. wagtail/admin/templates/wagtailadmin/generic/inspect.html +2 -21
  49. wagtail/admin/templates/wagtailadmin/generic/listing.html +11 -17
  50. wagtail/admin/templates/wagtailadmin/generic/listing_results.html +19 -1
  51. wagtail/admin/templates/wagtailadmin/home/account_summary.html +26 -0
  52. wagtail/admin/templates/wagtailadmin/home/locked_pages.html +28 -18
  53. wagtail/admin/templates/wagtailadmin/home/recent_edits.html +28 -17
  54. wagtail/admin/templates/wagtailadmin/home/site_summary_pages.html +2 -2
  55. wagtail/admin/templates/wagtailadmin/home/upgrade_notification.html +35 -13
  56. wagtail/admin/templates/wagtailadmin/home/user_objects_in_workflow_moderation.html +28 -18
  57. wagtail/admin/templates/wagtailadmin/home/workflow_objects_to_moderate.html +43 -32
  58. wagtail/admin/templates/wagtailadmin/home.html +22 -5
  59. wagtail/admin/templates/wagtailadmin/pages/_editor_js.html +0 -1
  60. wagtail/admin/templates/wagtailadmin/pages/action_menu/menu.html +1 -11
  61. wagtail/admin/templates/wagtailadmin/pages/action_menu/menu_item.html +1 -6
  62. wagtail/admin/templates/wagtailadmin/pages/action_menu/page_locked.html +1 -1
  63. wagtail/admin/templates/wagtailadmin/pages/action_menu/publish.html +1 -1
  64. wagtail/admin/templates/wagtailadmin/pages/action_menu/save_draft.html +1 -1
  65. wagtail/admin/templates/wagtailadmin/pages/bulk_actions/confirm_bulk_delete.html +12 -6
  66. wagtail/admin/templates/wagtailadmin/pages/bulk_actions/confirm_bulk_move.html +12 -7
  67. wagtail/admin/templates/wagtailadmin/pages/bulk_actions/confirm_bulk_publish.html +17 -11
  68. wagtail/admin/templates/wagtailadmin/pages/bulk_actions/confirm_bulk_unpublish.html +15 -9
  69. wagtail/admin/templates/wagtailadmin/pages/confirm_delete.html +9 -9
  70. wagtail/admin/templates/wagtailadmin/pages/confirm_move.html +2 -2
  71. wagtail/admin/templates/wagtailadmin/pages/confirm_unpublish.html +4 -4
  72. wagtail/admin/templates/wagtailadmin/pages/create.html +15 -34
  73. wagtail/admin/templates/wagtailadmin/pages/edit.html +15 -30
  74. wagtail/admin/templates/wagtailadmin/pages/explorable_index.html +6 -0
  75. wagtail/admin/templates/wagtailadmin/pages/explorable_index_results.html +60 -0
  76. wagtail/admin/templates/wagtailadmin/pages/index.html +1 -36
  77. wagtail/admin/templates/wagtailadmin/pages/index_results.html +2 -50
  78. wagtail/admin/templates/wagtailadmin/pages/listing/_locked_indicator.html +1 -1
  79. wagtail/admin/templates/wagtailadmin/pages/listing/_ordering_cell.html +1 -1
  80. wagtail/admin/templates/wagtailadmin/pages/listing/_page_header_buttons.html +1 -1
  81. wagtail/admin/templates/wagtailadmin/pages/listing/_page_title_column_header.html +3 -3
  82. wagtail/admin/templates/wagtailadmin/pages/listing/_pagination.html +1 -1
  83. wagtail/admin/templates/wagtailadmin/pages/listing.html +24 -0
  84. wagtail/admin/templates/wagtailadmin/pages/search.html +1 -20
  85. wagtail/admin/templates/wagtailadmin/pages/search_results.html +27 -25
  86. wagtail/admin/templates/wagtailadmin/permissions/includes/collection_member_permissions_formset.html +0 -1
  87. wagtail/admin/templates/wagtailadmin/reports/listing/_list_page_report.html +2 -2
  88. wagtail/admin/templates/wagtailadmin/reports/listing/_list_page_types_usage.html +6 -6
  89. wagtail/admin/templates/wagtailadmin/reports/workflow_tasks_results.html +1 -1
  90. wagtail/admin/templates/wagtailadmin/shared/action_menu/menu.html +14 -0
  91. wagtail/admin/templates/wagtailadmin/shared/action_menu/menu_item.html +6 -0
  92. wagtail/admin/templates/wagtailadmin/shared/avatar.html +13 -3
  93. wagtail/admin/templates/wagtailadmin/shared/header.html +0 -5
  94. wagtail/admin/templates/wagtailadmin/shared/headers/slim_header.html +1 -1
  95. wagtail/admin/templates/wagtailadmin/shared/page_status_tag_new.html +4 -1
  96. wagtail/admin/templates/wagtailadmin/shared/pagination_nav.html +1 -1
  97. wagtail/admin/templates/wagtailadmin/shared/side_panel_toggle.html +1 -1
  98. wagtail/admin/templates/wagtailadmin/shared/side_panels/includes/status/locale.html +1 -1
  99. wagtail/admin/templates/wagtailadmin/shared/side_panels/includes/status/usage.html +2 -2
  100. wagtail/admin/templates/wagtailadmin/shared/side_panels/preview.html +94 -52
  101. wagtail/admin/templates/wagtailadmin/{pages/_unsaved_changes_warning.html → shared/unsaved_changes_warning.html} +4 -4
  102. wagtail/admin/templates/wagtailadmin/shared/usage_summary.html +2 -2
  103. wagtail/admin/templates/wagtailadmin/shared/workflow_history/detail.html +1 -7
  104. wagtail/admin/templates/wagtailadmin/shared/workflow_history/listing.html +1 -0
  105. wagtail/admin/templates/wagtailadmin/shared/workflow_history/{list.html → listing_results.html} +33 -35
  106. wagtail/admin/templates/wagtailadmin/tables/references_cell.html +1 -1
  107. wagtail/admin/templates/wagtailadmin/workflows/create.html +11 -36
  108. wagtail/admin/templates/wagtailadmin/workflows/create_task.html +0 -38
  109. wagtail/admin/templates/wagtailadmin/workflows/edit.html +44 -74
  110. wagtail/admin/templates/wagtailadmin/workflows/edit_task.html +27 -66
  111. wagtail/admin/templates/wagtailadmin/workflows/includes/task_usage_cell.html +4 -2
  112. wagtail/admin/templates/wagtailadmin/workflows/includes/workflow_tasks_cell.html +4 -4
  113. wagtail/admin/templates/wagtailadmin/workflows/includes/workflow_used_by_cell.html +15 -11
  114. wagtail/admin/templates/wagtailadmin/workflows/task_chooser/includes/results.html +7 -5
  115. wagtail/admin/templatetags/wagtailadmin_tags.py +51 -22
  116. wagtail/admin/tests/pages/test_content_type_use_view.py +82 -2
  117. wagtail/admin/tests/pages/test_edit_page.py +70 -0
  118. wagtail/admin/tests/pages/test_explorer_view.py +65 -4
  119. wagtail/admin/tests/pages/test_page_search.py +8 -7
  120. wagtail/admin/tests/pages/test_page_usage.py +3 -1
  121. wagtail/admin/tests/pages/test_preview.py +208 -63
  122. wagtail/admin/tests/pages/test_reorder_page.py +91 -1
  123. wagtail/admin/tests/pages/test_view_draft.py +32 -1
  124. wagtail/admin/tests/pages/test_workflow_history.py +288 -7
  125. wagtail/admin/tests/test_account_management.py +23 -3
  126. wagtail/admin/tests/test_audit_log.py +24 -2
  127. wagtail/admin/tests/test_collections_views.py +17 -5
  128. wagtail/admin/tests/test_dashboard.py +1 -1
  129. wagtail/admin/tests/test_edit_handlers.py +3 -2
  130. wagtail/admin/tests/test_icon_sprite.py +4 -0
  131. wagtail/admin/tests/test_privacy.py +5 -19
  132. wagtail/admin/tests/test_reports_views.py +1 -1
  133. wagtail/admin/tests/test_site_summary.py +3 -3
  134. wagtail/admin/tests/test_templatetags.py +27 -3
  135. wagtail/admin/tests/test_upgrade_notification.py +71 -18
  136. wagtail/admin/tests/test_views.py +2 -2
  137. wagtail/admin/tests/test_views_generic.py +13 -0
  138. wagtail/admin/tests/test_widgets.py +3 -3
  139. wagtail/admin/tests/test_workflows.py +172 -27
  140. wagtail/admin/tests/tests.py +1 -1
  141. wagtail/admin/tests/viewsets/test_model_viewset.py +55 -3
  142. wagtail/admin/ui/side_panels.py +19 -0
  143. wagtail/admin/ui/sidebar.py +4 -3
  144. wagtail/admin/ui/tables/__init__.py +14 -1
  145. wagtail/admin/ui/tables/pages.py +6 -1
  146. wagtail/admin/urls/pages.py +10 -1
  147. wagtail/admin/urls/workflows.py +6 -1
  148. wagtail/admin/views/account.py +5 -1
  149. wagtail/admin/views/collections.py +0 -2
  150. wagtail/admin/views/generic/base.py +118 -1
  151. wagtail/admin/views/generic/history.py +158 -26
  152. wagtail/admin/views/generic/models.py +113 -99
  153. wagtail/admin/views/home.py +24 -9
  154. wagtail/admin/views/page_privacy.py +54 -30
  155. wagtail/admin/views/pages/history.py +11 -4
  156. wagtail/admin/views/pages/listing.py +76 -89
  157. wagtail/admin/views/pages/preview.py +1 -1
  158. wagtail/admin/views/pages/search.py +27 -71
  159. wagtail/admin/views/pages/usage.py +63 -24
  160. wagtail/admin/views/pages/utils.py +4 -3
  161. wagtail/admin/views/reports/base.py +0 -6
  162. wagtail/admin/views/workflows.py +67 -25
  163. wagtail/admin/viewsets/model.py +4 -3
  164. wagtail/admin/widgets/chooser.py +2 -1
  165. wagtail/api/v2/tests/test_pages.py +15 -2
  166. wagtail/blocks/field_block.py +15 -3
  167. wagtail/blocks/static_block.py +3 -0
  168. wagtail/contrib/forms/locale/cy/LC_MESSAGES/django.mo +0 -0
  169. wagtail/contrib/forms/locale/cy/LC_MESSAGES/django.po +29 -1
  170. wagtail/contrib/forms/locale/en/LC_MESSAGES/django.po +15 -11
  171. wagtail/contrib/forms/templates/wagtailforms/confirm_delete.html +1 -0
  172. wagtail/contrib/forms/templates/wagtailforms/index.html +1 -1
  173. wagtail/contrib/forms/templates/wagtailforms/index_results.html +1 -1
  174. wagtail/contrib/forms/templates/wagtailforms/list_submissions.html +2 -1
  175. wagtail/contrib/forms/templates/wagtailforms/panels/form_responses_panel.html +2 -2
  176. wagtail/contrib/forms/tests/test_views.py +234 -35
  177. wagtail/contrib/forms/utils.py +8 -14
  178. wagtail/contrib/forms/views.py +72 -27
  179. wagtail/contrib/frontend_cache/backends/azure.py +1 -1
  180. wagtail/contrib/frontend_cache/backends/cloudfront.py +2 -2
  181. wagtail/contrib/frontend_cache/backends/dummy.py +11 -0
  182. wagtail/contrib/frontend_cache/tests.py +31 -37
  183. wagtail/contrib/frontend_cache/utils.py +12 -5
  184. wagtail/contrib/redirects/locale/cy/LC_MESSAGES/django.mo +0 -0
  185. wagtail/contrib/redirects/locale/cy/LC_MESSAGES/django.po +16 -1
  186. wagtail/contrib/redirects/locale/en/LC_MESSAGES/django.po +20 -24
  187. wagtail/contrib/redirects/models.py +16 -1
  188. wagtail/contrib/redirects/signal_handlers.py +18 -3
  189. wagtail/contrib/redirects/templates/wagtailredirects/add.html +5 -16
  190. wagtail/contrib/redirects/templates/wagtailredirects/import_summary.html +1 -1
  191. wagtail/contrib/redirects/tests/test_redirects.py +49 -6
  192. wagtail/contrib/redirects/tests/test_signal_handlers.py +42 -1
  193. wagtail/contrib/redirects/views.py +27 -3
  194. wagtail/contrib/search_promotions/locale/cy/LC_MESSAGES/django.mo +0 -0
  195. wagtail/contrib/search_promotions/locale/cy/LC_MESSAGES/django.po +60 -1
  196. wagtail/contrib/search_promotions/locale/en/LC_MESSAGES/django.po +12 -18
  197. wagtail/contrib/search_promotions/templates/wagtailsearchpromotions/add.html +5 -8
  198. wagtail/contrib/search_promotions/templates/wagtailsearchpromotions/edit.html +15 -10
  199. wagtail/contrib/search_promotions/tests.py +13 -2
  200. wagtail/contrib/search_promotions/views.py +15 -3
  201. wagtail/contrib/settings/locale/cy/LC_MESSAGES/django.mo +0 -0
  202. wagtail/contrib/settings/locale/cy/LC_MESSAGES/django.po +6 -1
  203. wagtail/contrib/settings/locale/en/LC_MESSAGES/django.po +2 -10
  204. wagtail/contrib/settings/templates/wagtailsettings/edit.html +12 -45
  205. wagtail/contrib/simple_translation/locale/cy/LC_MESSAGES/django.mo +0 -0
  206. wagtail/contrib/simple_translation/locale/cy/LC_MESSAGES/django.po +13 -1
  207. wagtail/contrib/simple_translation/locale/dv/LC_MESSAGES/django.mo +0 -0
  208. wagtail/contrib/simple_translation/locale/dv/LC_MESSAGES/django.po +3 -0
  209. wagtail/contrib/simple_translation/locale/en/LC_MESSAGES/django.po +4 -4
  210. wagtail/contrib/simple_translation/locale/sl/LC_MESSAGES/django.mo +0 -0
  211. wagtail/contrib/simple_translation/locale/sl/LC_MESSAGES/django.po +5 -2
  212. wagtail/contrib/simple_translation/tests/test_views.py +51 -0
  213. wagtail/contrib/simple_translation/wagtail_hooks.py +16 -11
  214. wagtail/contrib/styleguide/locale/cy/LC_MESSAGES/django.mo +0 -0
  215. wagtail/contrib/styleguide/locale/cy/LC_MESSAGES/django.po +5 -1
  216. wagtail/contrib/styleguide/locale/en/LC_MESSAGES/django.po +1 -1
  217. wagtail/contrib/table_block/locale/cy/LC_MESSAGES/django.mo +0 -0
  218. wagtail/contrib/table_block/locale/cy/LC_MESSAGES/django.po +27 -1
  219. wagtail/contrib/table_block/locale/en/LC_MESSAGES/django.po +1 -1
  220. wagtail/contrib/typed_table_block/blocks.py +25 -0
  221. wagtail/contrib/typed_table_block/locale/cy/LC_MESSAGES/django.mo +0 -0
  222. wagtail/contrib/typed_table_block/locale/cy/LC_MESSAGES/django.po +12 -1
  223. wagtail/contrib/typed_table_block/locale/en/LC_MESSAGES/django.po +10 -10
  224. wagtail/contrib/typed_table_block/tests.py +24 -1
  225. wagtail/coreutils.py +5 -11
  226. wagtail/documents/admin_urls.py +2 -2
  227. wagtail/documents/locale/cy/LC_MESSAGES/django.mo +0 -0
  228. wagtail/documents/locale/cy/LC_MESSAGES/django.po +10 -0
  229. wagtail/documents/locale/en/LC_MESSAGES/django.po +61 -76
  230. wagtail/documents/migrations/0014_alter_document_file_size.py +18 -0
  231. wagtail/documents/models.py +1 -1
  232. wagtail/documents/rich_text/__init__.py +1 -3
  233. wagtail/documents/static/wagtaildocs/js/add-multiple.js +1 -1
  234. wagtail/documents/templates/wagtaildocs/bulk_actions/confirm_bulk_add_tags.html +5 -1
  235. wagtail/documents/templates/wagtaildocs/bulk_actions/confirm_bulk_add_to_collection.html +5 -1
  236. wagtail/documents/templates/wagtaildocs/bulk_actions/confirm_bulk_delete.html +11 -5
  237. wagtail/documents/templates/wagtaildocs/documents/add.html +13 -41
  238. wagtail/documents/templates/wagtaildocs/documents/edit.html +28 -56
  239. wagtail/documents/templates/wagtaildocs/documents/index.html +1 -4
  240. wagtail/documents/templates/wagtaildocs/homepage/site_summary_documents.html +2 -2
  241. wagtail/documents/templates/wagtaildocs/multiple/add.html +36 -41
  242. wagtail/documents/tests/test_admin_views.py +64 -6
  243. wagtail/documents/tests/test_site_summary.py +3 -3
  244. wagtail/documents/views/documents.py +103 -113
  245. wagtail/documents/views/multiple.py +19 -1
  246. wagtail/embeds/locale/en/LC_MESSAGES/django.po +1 -1
  247. wagtail/embeds/oembed_providers.py +9 -19
  248. wagtail/fields.py +43 -27
  249. wagtail/images/admin_urls.py +2 -2
  250. wagtail/images/blocks.py +230 -2
  251. wagtail/images/fields.py +17 -29
  252. wagtail/images/image_operations.py +1 -1
  253. wagtail/images/locale/cy/LC_MESSAGES/django.mo +0 -0
  254. wagtail/images/locale/cy/LC_MESSAGES/django.po +128 -1
  255. wagtail/images/locale/en/LC_MESSAGES/django.po +119 -129
  256. wagtail/images/migrations/0025_alter_image_file_alter_rendition_file.py +36 -43
  257. wagtail/images/migrations/0027_image_description.py +20 -0
  258. wagtail/images/models.py +120 -45
  259. wagtail/images/rich_text/__init__.py +1 -3
  260. wagtail/images/static/wagtailimages/js/add-multiple.js +1 -1
  261. wagtail/images/static/wagtailimages/js/image-block.js +1 -0
  262. wagtail/images/templates/wagtailimages/bulk_actions/confirm_bulk_add_tags.html +5 -1
  263. wagtail/images/templates/wagtailimages/bulk_actions/confirm_bulk_add_to_collection.html +5 -1
  264. wagtail/images/templates/wagtailimages/bulk_actions/confirm_bulk_delete.html +11 -5
  265. wagtail/images/templates/wagtailimages/chooser/results.html +2 -2
  266. wagtail/images/templates/wagtailimages/homepage/site_summary_images.html +2 -2
  267. wagtail/images/templates/wagtailimages/images/_file_field.html +2 -2
  268. wagtail/images/templates/wagtailimages/images/add.html +13 -31
  269. wagtail/images/templates/wagtailimages/images/edit.html +53 -82
  270. wagtail/images/templates/wagtailimages/images/index.html +1 -4
  271. wagtail/images/templates/wagtailimages/images/url_generator.html +1 -1
  272. wagtail/images/templates/wagtailimages/multiple/add.html +40 -47
  273. wagtail/images/templates/wagtailimages/widgets/image.html +5 -0
  274. wagtail/images/templates/wagtailimages/widgets/image_chooser.html +1 -1
  275. wagtail/images/tests/test_admin_views.py +70 -10
  276. wagtail/images/tests/test_blocks.py +367 -1
  277. wagtail/images/tests/test_image_operations.py +23 -0
  278. wagtail/images/tests/test_models.py +20 -0
  279. wagtail/images/tests/test_signal_handlers.py +99 -95
  280. wagtail/images/tests/test_site_summary.py +3 -3
  281. wagtail/images/tests/test_templatetags.py +11 -7
  282. wagtail/images/tests/tests.py +4 -0
  283. wagtail/images/views/images.py +103 -104
  284. wagtail/images/views/multiple.py +17 -1
  285. wagtail/locale/cy/LC_MESSAGES/django.mo +0 -0
  286. wagtail/locale/cy/LC_MESSAGES/django.po +3 -0
  287. wagtail/locale/en/LC_MESSAGES/django.po +137 -125
  288. wagtail/locale/sl/LC_MESSAGES/django.mo +0 -0
  289. wagtail/locale/sl/LC_MESSAGES/django.po +3 -0
  290. wagtail/locales/locale/en/LC_MESSAGES/django.po +8 -8
  291. wagtail/locales/views.py +4 -1
  292. wagtail/migrations/0089_log_entry_data_json_null_to_object.py +1 -7
  293. wagtail/models/__init__.py +122 -14
  294. wagtail/models/audit_log.py +1 -3
  295. wagtail/models/i18n.py +1 -2
  296. wagtail/project_template/Dockerfile +3 -3
  297. wagtail/project_template/requirements.txt +2 -2
  298. wagtail/query.py +17 -4
  299. wagtail/rich_text/__init__.py +2 -3
  300. wagtail/rich_text/pages.py +2 -4
  301. wagtail/rich_text/rewriters.py +2 -2
  302. wagtail/search/backends/database/mysql/query.py +3 -3
  303. wagtail/search/backends/database/sqlite/query.py +6 -6
  304. wagtail/search/locale/en/LC_MESSAGES/django.po +1 -1
  305. wagtail/sites/locale/en/LC_MESSAGES/django.po +6 -6
  306. wagtail/sites/views.py +0 -1
  307. wagtail/snippets/action_menu.py +14 -4
  308. wagtail/snippets/locale/cy/LC_MESSAGES/django.mo +0 -0
  309. wagtail/snippets/locale/cy/LC_MESSAGES/django.po +73 -1
  310. wagtail/snippets/locale/en/LC_MESSAGES/django.po +27 -33
  311. wagtail/snippets/static/wagtailsnippets/js/snippet-chooser-telepath.js +1 -1
  312. wagtail/snippets/static/wagtailsnippets/js/snippet-chooser.js +1 -1
  313. wagtail/snippets/templates/wagtailsnippets/bulk_actions/confirm_bulk_delete.html +5 -3
  314. wagtail/snippets/templates/wagtailsnippets/snippets/action_menu/locked.html +1 -1
  315. wagtail/snippets/templates/wagtailsnippets/snippets/action_menu/menu.html +1 -11
  316. wagtail/snippets/templates/wagtailsnippets/snippets/action_menu/menu_item.html +1 -6
  317. wagtail/snippets/templates/wagtailsnippets/snippets/action_menu/publish.html +1 -1
  318. wagtail/snippets/templates/wagtailsnippets/snippets/action_menu/save.html +1 -1
  319. wagtail/snippets/templates/wagtailsnippets/snippets/create.html +1 -18
  320. wagtail/snippets/templates/wagtailsnippets/snippets/edit.html +1 -14
  321. wagtail/snippets/templates/wagtailsnippets/snippets/index.html +2 -5
  322. wagtail/snippets/tests/test_preview.py +193 -61
  323. wagtail/snippets/tests/test_snippets.py +247 -38
  324. wagtail/snippets/tests/test_usage.py +5 -0
  325. wagtail/snippets/tests/test_viewset.py +25 -9
  326. wagtail/snippets/tests/test_workflows.py +232 -19
  327. wagtail/snippets/views/snippets.py +1 -10
  328. wagtail/test/numberformat.py +104 -0
  329. wagtail/test/settings.py +10 -0
  330. wagtail/test/settings_ui.py +2 -0
  331. wagtail/test/testapp/migrations/0010_alter_customimage_file_and_more.py +71 -78
  332. wagtail/test/testapp/migrations/0040_nocreatablesubpagetypespage_nosubpagetypespage.py +54 -0
  333. wagtail/test/testapp/migrations/0041_alter_jsonstreammodel_options.py +17 -0
  334. wagtail/test/testapp/migrations/0042_alter_customdocument_file_size_and_more.py +28 -0
  335. wagtail/test/testapp/migrations/0043_customimage_description.py +41 -0
  336. wagtail/test/testapp/migrations/0044_custompreviewsizesmodel_custompreviewsizespage.py +52 -0
  337. wagtail/test/testapp/migrations/0045_alter_streampage_body.py +52 -0
  338. wagtail/test/testapp/models.py +62 -4
  339. wagtail/test/testapp/rich_text.py +2 -2
  340. wagtail/test/testapp/templates/tests/form_page_landing.html +2 -1
  341. wagtail/test/testapp/urls.py +5 -0
  342. wagtail/test/testapp/views.py +5 -0
  343. wagtail/test/utils/page_tests.py +5 -5
  344. wagtail/test/utils/template_tests.py +2 -2
  345. wagtail/tests/test_blocks.py +15 -0
  346. wagtail/tests/test_page_permissions.py +109 -0
  347. wagtail/tests/test_revision_model.py +27 -0
  348. wagtail/tests/test_signals.py +21 -2
  349. wagtail/tests/test_tests.py +30 -0
  350. wagtail/users/locale/cy/LC_MESSAGES/django.mo +0 -0
  351. wagtail/users/locale/cy/LC_MESSAGES/django.po +118 -1
  352. wagtail/users/locale/dv/LC_MESSAGES/django.mo +0 -0
  353. wagtail/users/locale/dv/LC_MESSAGES/django.po +3 -0
  354. wagtail/users/locale/en/LC_MESSAGES/django.po +89 -113
  355. wagtail/users/locale/sl/LC_MESSAGES/django.mo +0 -0
  356. wagtail/users/locale/sl/LC_MESSAGES/django.po +3 -0
  357. wagtail/users/migrations/0014_userprofile_contrast.py +23 -0
  358. wagtail/users/models.py +11 -0
  359. wagtail/users/templates/wagtailusers/bulk_actions/confirm_bulk_assign_role.html +5 -1
  360. wagtail/users/templates/wagtailusers/bulk_actions/confirm_bulk_delete.html +5 -1
  361. wagtail/users/templates/wagtailusers/bulk_actions/confirm_bulk_set_active_state.html +5 -1
  362. wagtail/users/templates/wagtailusers/groups/create.html +19 -17
  363. wagtail/users/templates/wagtailusers/groups/edit.html +2 -40
  364. wagtail/users/templates/wagtailusers/groups/includes/formatted_permissions.html +1 -62
  365. wagtail/users/templates/wagtailusers/groups/includes/page_permissions_formset.html +0 -1
  366. wagtail/users/templates/wagtailusers/users/create.html +46 -50
  367. wagtail/users/templates/wagtailusers/users/edit.html +45 -62
  368. wagtail/users/templates/wagtailusers/users/index.html +1 -4
  369. wagtail/users/templatetags/wagtailusers_tags.py +1 -5
  370. wagtail/users/tests/test_admin_views.py +85 -66
  371. wagtail/users/views/groups.py +4 -1
  372. wagtail/users/views/users.py +2 -0
  373. {wagtail-6.2.2.dist-info → wagtail-6.3rc2.dist-info}/METADATA +6 -6
  374. {wagtail-6.2.2.dist-info → wagtail-6.3rc2.dist-info}/RECORD +378 -367
  375. wagtail/admin/static/wagtailadmin/js/preview-panel.js +0 -2
  376. wagtail/admin/static/wagtailadmin/js/preview-panel.js.LICENSE.txt +0 -11
  377. wagtail/admin/templates/wagtailadmin/generic/history_results.html +0 -1
  378. wagtail/admin/templates/wagtailadmin/page_privacy/ancestor_privacy.html +0 -3
  379. wagtail/admin/templates/wagtailadmin/pages/usage_results.html +0 -6
  380. wagtail/admin/templates/wagtailadmin/shared/workflow_history/index.html +0 -17
  381. wagtail/admin/templates/wagtailadmin/shared/workflow_history/results.html +0 -17
  382. wagtail/admin/templates/wagtailadmin/workflows/usage.html +0 -44
  383. {wagtail-6.2.2.dist-info → wagtail-6.3rc2.dist-info}/LICENSE +0 -0
  384. {wagtail-6.2.2.dist-info → wagtail-6.3rc2.dist-info}/WHEEL +0 -0
  385. {wagtail-6.2.2.dist-info → wagtail-6.3rc2.dist-info}/entry_points.txt +0 -0
  386. {wagtail-6.2.2.dist-info → wagtail-6.3rc2.dist-info}/top_level.txt +0 -0
@@ -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-08-07 10:06+0100\n"
11
+ "POT-Creation-Date: 2024-10-21 17:53+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"
@@ -23,7 +23,7 @@ msgid "Wagtail documents"
23
23
  msgstr ""
24
24
 
25
25
  #: forms.py:25 views/bulk_actions/add_to_collection.py:13 views/chooser.py:92
26
- #: views/documents.py:116
26
+ #: views/documents.py:113
27
27
  msgid "Collection"
28
28
  msgstr ""
29
29
 
@@ -35,7 +35,7 @@ msgstr ""
35
35
  msgid "Add/edit documents you own"
36
36
  msgstr ""
37
37
 
38
- #: forms.py:145 views/documents.py:179 views/documents.py:229
38
+ #: forms.py:145
39
39
  msgid "Edit"
40
40
  msgstr ""
41
41
 
@@ -79,51 +79,51 @@ msgstr ""
79
79
  msgid "documents"
80
80
  msgstr ""
81
81
 
82
- #: templates/wagtaildocs/bulk_actions/confirm_bulk_add_tags.html:4
82
+ #: templates/wagtaildocs/bulk_actions/confirm_bulk_add_tags.html:6
83
83
  #, python-format
84
84
  msgid "Add tags to 1 document"
85
85
  msgid_plural "Add tags to %(counter)s documents"
86
86
  msgstr[0] ""
87
87
  msgstr[1] ""
88
88
 
89
- #: templates/wagtaildocs/bulk_actions/confirm_bulk_add_tags.html:7
89
+ #: templates/wagtaildocs/bulk_actions/confirm_bulk_add_tags.html:11
90
90
  msgid "Add tags to documents"
91
91
  msgstr ""
92
92
 
93
- #: templates/wagtaildocs/bulk_actions/confirm_bulk_add_tags.html:14
93
+ #: templates/wagtaildocs/bulk_actions/confirm_bulk_add_tags.html:18
94
94
  msgid "Are you sure you want to tag the following document?"
95
95
  msgid_plural "Are you sure you want to tag the following documents?"
96
96
  msgstr[0] ""
97
97
  msgstr[1] ""
98
98
 
99
- #: templates/wagtaildocs/bulk_actions/confirm_bulk_add_tags.html:32
99
+ #: templates/wagtaildocs/bulk_actions/confirm_bulk_add_tags.html:36
100
100
  msgid "You don't have permission to add tags to this document"
101
101
  msgid_plural "You don't have permission to add tags to these documents"
102
102
  msgstr[0] ""
103
103
  msgstr[1] ""
104
104
 
105
- #: templates/wagtaildocs/bulk_actions/confirm_bulk_add_tags.html:39
106
- #: templates/wagtaildocs/bulk_actions/confirm_bulk_add_to_collection.html:39
105
+ #: templates/wagtaildocs/bulk_actions/confirm_bulk_add_tags.html:43
106
+ #: templates/wagtaildocs/bulk_actions/confirm_bulk_add_to_collection.html:43
107
107
  msgid "Yes, add"
108
108
  msgstr ""
109
109
 
110
- #: templates/wagtaildocs/bulk_actions/confirm_bulk_add_tags.html:40
111
- #: templates/wagtaildocs/bulk_actions/confirm_bulk_add_to_collection.html:40
110
+ #: templates/wagtaildocs/bulk_actions/confirm_bulk_add_tags.html:44
111
+ #: templates/wagtaildocs/bulk_actions/confirm_bulk_add_to_collection.html:44
112
112
  msgid "No, don't add"
113
113
  msgstr ""
114
114
 
115
- #: templates/wagtaildocs/bulk_actions/confirm_bulk_add_to_collection.html:4
115
+ #: templates/wagtaildocs/bulk_actions/confirm_bulk_add_to_collection.html:6
116
116
  #, python-format
117
117
  msgid "Add 1 document to new collection"
118
118
  msgid_plural "Add %(counter)s documents to new collection"
119
119
  msgstr[0] ""
120
120
  msgstr[1] ""
121
121
 
122
- #: templates/wagtaildocs/bulk_actions/confirm_bulk_add_to_collection.html:7
122
+ #: templates/wagtaildocs/bulk_actions/confirm_bulk_add_to_collection.html:11
123
123
  msgid "Add documents to collection"
124
124
  msgstr ""
125
125
 
126
- #: templates/wagtaildocs/bulk_actions/confirm_bulk_add_to_collection.html:14
126
+ #: templates/wagtaildocs/bulk_actions/confirm_bulk_add_to_collection.html:18
127
127
  msgid ""
128
128
  "Are you sure you want to add the following document to the selected "
129
129
  "collection?"
@@ -133,49 +133,49 @@ msgid_plural ""
133
133
  msgstr[0] ""
134
134
  msgstr[1] ""
135
135
 
136
- #: templates/wagtaildocs/bulk_actions/confirm_bulk_add_to_collection.html:32
136
+ #: templates/wagtaildocs/bulk_actions/confirm_bulk_add_to_collection.html:36
137
137
  msgid "You don't have permission to add this document to a collection"
138
138
  msgid_plural "You don't have permission to add these documents to a collection"
139
139
  msgstr[0] ""
140
140
  msgstr[1] ""
141
141
 
142
- #: templates/wagtaildocs/bulk_actions/confirm_bulk_delete.html:3
142
+ #: templates/wagtaildocs/bulk_actions/confirm_bulk_delete.html:5
143
143
  #, python-format
144
144
  msgid "Delete 1 document"
145
145
  msgid_plural "Delete %(counter)s documents"
146
146
  msgstr[0] ""
147
147
  msgstr[1] ""
148
148
 
149
- #: templates/wagtaildocs/bulk_actions/confirm_bulk_delete.html:6
149
+ #: templates/wagtaildocs/bulk_actions/confirm_bulk_delete.html:10
150
150
  msgid "Delete documents"
151
151
  msgstr ""
152
152
 
153
- #: templates/wagtaildocs/bulk_actions/confirm_bulk_delete.html:13
154
- #: views/documents.py:294
153
+ #: templates/wagtaildocs/bulk_actions/confirm_bulk_delete.html:17
154
+ #: views/documents.py:282
155
155
  msgid "Are you sure you want to delete this document?"
156
156
  msgid_plural "Are you sure you want to delete these documents?"
157
157
  msgstr[0] ""
158
158
  msgstr[1] ""
159
159
 
160
- #: templates/wagtaildocs/bulk_actions/confirm_bulk_delete.html:23
161
- #: templates/wagtaildocs/documents/edit.html:56
160
+ #: templates/wagtaildocs/bulk_actions/confirm_bulk_delete.html:28
161
+ #: templates/wagtaildocs/documents/edit.html:28
162
162
  #, python-format
163
163
  msgid "Used %(usage_count)s time"
164
164
  msgid_plural "Used %(usage_count)s times"
165
165
  msgstr[0] ""
166
166
  msgstr[1] ""
167
167
 
168
- #: templates/wagtaildocs/bulk_actions/confirm_bulk_delete.html:32
168
+ #: templates/wagtaildocs/bulk_actions/confirm_bulk_delete.html:38
169
169
  msgid "You don't have permission to delete this document"
170
170
  msgid_plural "You don't have permission to delete these documents"
171
171
  msgstr[0] ""
172
172
  msgstr[1] ""
173
173
 
174
- #: templates/wagtaildocs/bulk_actions/confirm_bulk_delete.html:39
174
+ #: templates/wagtaildocs/bulk_actions/confirm_bulk_delete.html:45
175
175
  msgid "Yes, delete"
176
176
  msgstr ""
177
177
 
178
- #: templates/wagtaildocs/bulk_actions/confirm_bulk_delete.html:40
178
+ #: templates/wagtaildocs/bulk_actions/confirm_bulk_delete.html:46
179
179
  msgid "No, don't delete"
180
180
  msgstr ""
181
181
 
@@ -206,52 +206,31 @@ msgstr ""
206
206
  msgid "Change document:"
207
207
  msgstr ""
208
208
 
209
- #: templates/wagtaildocs/documents/add.html:4 views/documents.py:79
209
+ #: templates/wagtaildocs/documents/add.html:3 views/documents.py:77
210
210
  msgid "Add a document"
211
211
  msgstr ""
212
212
 
213
- #: templates/wagtaildocs/documents/add.html:48
214
- msgid "Add document"
215
- msgstr ""
216
-
217
- #: templates/wagtaildocs/documents/add.html:69 views/chooser.py:186
213
+ #: templates/wagtaildocs/documents/add.html:45 views/chooser.py:186
218
214
  msgid "Uploading…"
219
215
  msgstr ""
220
216
 
221
- #: templates/wagtaildocs/documents/add.html:72 views/chooser.py:185
217
+ #: templates/wagtaildocs/documents/add.html:48 views/chooser.py:185
222
218
  msgid "Upload"
223
219
  msgstr ""
224
220
 
225
- #: templates/wagtaildocs/documents/edit.html:4
226
- #, python-format
227
- msgid "Editing %(title)s"
228
- msgstr ""
229
-
230
- #: templates/wagtaildocs/documents/edit.html:18
231
- msgid "Editing"
232
- msgstr ""
233
-
234
- #: templates/wagtaildocs/documents/edit.html:39
235
- msgid "Save"
236
- msgstr ""
237
-
238
- #: templates/wagtaildocs/documents/edit.html:41 views/documents.py:282
239
- msgid "Delete document"
240
- msgstr ""
241
-
242
- #: templates/wagtaildocs/documents/edit.html:50
221
+ #: templates/wagtaildocs/documents/edit.html:21
243
222
  msgid "Filesize"
244
223
  msgstr ""
245
224
 
246
- #: templates/wagtaildocs/documents/edit.html:51
225
+ #: templates/wagtaildocs/documents/edit.html:22
247
226
  msgid "File not found"
248
227
  msgstr ""
249
228
 
250
- #: templates/wagtaildocs/documents/edit.html:54
229
+ #: templates/wagtaildocs/documents/edit.html:25
251
230
  msgid "Usage"
252
231
  msgstr ""
253
232
 
254
- #: templates/wagtaildocs/documents/index.html:13
233
+ #: templates/wagtaildocs/documents/index.html:10
255
234
  msgid "Select all documents in listing"
256
235
  msgstr ""
257
236
 
@@ -277,11 +256,9 @@ msgstr ""
277
256
  #: templates/wagtaildocs/homepage/site_summary_documents.html:6
278
257
  #, python-format
279
258
  msgid ""
280
- "<span>%(total)s</span> Document <span class=\"w-sr-only\">created in "
281
- "%(site_name)s</span>"
259
+ "%(total)s Document <span class=\"w-sr-only\">created in %(site_name)s</span>"
282
260
  msgid_plural ""
283
- "<span>%(total)s</span> Documents <span class=\"w-sr-only\">created in "
284
- "%(site_name)s</span>"
261
+ "%(total)s Documents <span class=\"w-sr-only\">created in %(site_name)s</span>"
285
262
  msgstr[0] ""
286
263
  msgstr[1] ""
287
264
 
@@ -289,34 +266,30 @@ msgstr[1] ""
289
266
  msgid "Add multiple documents"
290
267
  msgstr ""
291
268
 
292
- #: templates/wagtaildocs/multiple/add.html:13
293
- msgid "Add documents"
294
- msgstr ""
295
-
296
- #: templates/wagtaildocs/multiple/add.html:18
269
+ #: templates/wagtaildocs/multiple/add.html:14
297
270
  msgid "Drag and drop documents into this area to upload immediately."
298
271
  msgstr ""
299
272
 
300
- #: templates/wagtaildocs/multiple/add.html:23
273
+ #: templates/wagtaildocs/multiple/add.html:19
301
274
  msgid "Or choose from your computer"
302
275
  msgstr ""
303
276
 
304
- #: templates/wagtaildocs/multiple/add.html:28
277
+ #: templates/wagtaildocs/multiple/add.html:31
305
278
  msgid "Add to collection:"
306
279
  msgstr ""
307
280
 
308
- #: templates/wagtaildocs/multiple/add.html:59
281
+ #: templates/wagtaildocs/multiple/add.html:61
309
282
  msgid ""
310
283
  "Upload successful. Please update this document with a more appropriate "
311
284
  "title, if necessary. You may also delete the document completely if the "
312
285
  "upload wasn't required."
313
286
  msgstr ""
314
287
 
315
- #: templates/wagtaildocs/multiple/add.html:60
288
+ #: templates/wagtaildocs/multiple/add.html:62
316
289
  msgid "Sorry, upload failed."
317
290
  msgstr ""
318
291
 
319
- #: templates/wagtaildocs/multiple/add.html:61
292
+ #: templates/wagtaildocs/multiple/add.html:63
320
293
  msgid "Document updated."
321
294
  msgstr ""
322
295
 
@@ -367,7 +340,7 @@ msgid_plural ""
367
340
  msgstr[0] ""
368
341
  msgstr[1] ""
369
342
 
370
- #: views/bulk_actions/delete.py:8 views/documents.py:253
343
+ #: views/bulk_actions/delete.py:8 views/documents.py:249
371
344
  msgid "Delete"
372
345
  msgstr ""
373
346
 
@@ -382,11 +355,11 @@ msgid_plural "%(num_parent_objects)d documents have been deleted"
382
355
  msgstr[0] ""
383
356
  msgstr[1] ""
384
357
 
385
- #: views/chooser.py:87 views/documents.py:105
358
+ #: views/chooser.py:87 views/documents.py:102
386
359
  msgid "File"
387
360
  msgstr ""
388
361
 
389
- #: views/chooser.py:88 views/documents.py:108
362
+ #: views/chooser.py:88 views/documents.py:105
390
363
  msgid "Created"
391
364
  msgstr ""
392
365
 
@@ -402,38 +375,50 @@ msgstr ""
402
375
  msgid "Edit this document"
403
376
  msgstr ""
404
377
 
405
- #: views/documents.py:65 wagtail_hooks.py:61 wagtail_hooks.py:134
378
+ #: views/documents.py:63 wagtail_hooks.py:61 wagtail_hooks.py:134
406
379
  msgid "Documents"
407
380
  msgstr ""
408
381
 
409
- #: views/documents.py:100
382
+ #: views/documents.py:97
410
383
  msgid "Title"
411
384
  msgstr ""
412
385
 
413
- #: views/documents.py:175
386
+ #: views/documents.py:162
387
+ msgid "The document could not be created due to errors."
388
+ msgstr ""
389
+
390
+ #: views/documents.py:185
414
391
  #, python-format
415
392
  msgid "Document '%(document_title)s' added."
416
393
  msgstr ""
417
394
 
418
- #: views/documents.py:185 views/documents.py:233
395
+ #: views/documents.py:193
419
396
  msgid "The document could not be saved due to errors."
420
397
  msgstr ""
421
398
 
422
- #: views/documents.py:227
399
+ #: views/documents.py:223
423
400
  #, python-format
424
401
  msgid "Document '%(document_title)s' updated"
425
402
  msgstr ""
426
403
 
427
- #: views/documents.py:249
404
+ #: views/documents.py:247
428
405
  msgid ""
429
406
  "The file could not be found. Please change the source or delete the document"
430
407
  msgstr ""
431
408
 
432
- #: views/documents.py:300
409
+ #: views/documents.py:270
410
+ msgid "Delete document"
411
+ msgstr ""
412
+
413
+ #: views/documents.py:288
433
414
  #, python-format
434
415
  msgid "Document '%(document_title)s' deleted."
435
416
  msgstr ""
436
417
 
418
+ #: views/multiple.py:27
419
+ msgid "Add documents"
420
+ msgstr ""
421
+
437
422
  #: wagtail_hooks.py:80
438
423
  msgid "Document"
439
424
  msgstr ""
@@ -0,0 +1,18 @@
1
+ # Generated by Django 5.0.9 on 2024-10-09 16:09
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ("wagtaildocs", "0013_delete_uploadeddocument"),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.AlterField(
14
+ model_name="document",
15
+ name="file_size",
16
+ field=models.PositiveBigIntegerField(editable=False, null=True),
17
+ ),
18
+ ]
@@ -38,7 +38,7 @@ class AbstractDocument(CollectionMember, index.Indexed, models.Model):
38
38
 
39
39
  tags = TaggableManager(help_text=None, blank=True, verbose_name=_("tags"))
40
40
 
41
- file_size = models.PositiveIntegerField(null=True, editable=False)
41
+ file_size = models.PositiveBigIntegerField(null=True, editable=False)
42
42
  # A SHA-1 hash of the file contents
43
43
  file_hash = models.CharField(max_length=40, blank=True, editable=False)
44
44
 
@@ -1,5 +1,3 @@
1
- from typing import List
2
-
3
1
  from django.utils.html import escape
4
2
 
5
3
  from wagtail.documents import get_document_model
@@ -20,7 +18,7 @@ class DocumentLinkHandler(LinkHandler):
20
18
  return cls.expand_db_attributes_many([attrs])[0]
21
19
 
22
20
  @classmethod
23
- def expand_db_attributes_many(cls, attrs_list: List[dict]) -> List[str]:
21
+ def expand_db_attributes_many(cls, attrs_list: list[dict]) -> list[str]:
24
22
  return [
25
23
  '<a href="%s">' % escape(doc.url) if doc else "<a>"
26
24
  for doc in cls.get_many(attrs_list)
@@ -1 +1 @@
1
- $((function(){$(document).on("drop dragover",(function(e){e.preventDefault()})),$("#fileupload").fileupload({dataType:"html",sequentialUploads:!0,dropZone:$(".drop-zone"),add:function(e,t){var a=$(this),s=a.data("blueimp-fileupload")||a.data("fileupload"),o=$($("#upload-list-item").html()).addClass("upload-uploading"),l=s.options;$("#upload-list").append(o),t.context=o,t.process((function(){return a.fileupload("process",t)})).always((function(){t.context.removeClass("processing"),t.context.find(".left").each((function(e,a){$(a).append(escapeHtml(t.files[e].name))}))})).done((function(){t.context.find(".start").prop("disabled",!1),!1!==s._trigger("added",e,t)&&(l.autoUpload||t.autoUpload)&&!1!==t.autoUpload&&t.submit()})).fail((function(){t.files.error&&t.context.each((function(e){var a=t.files[e].error;a&&$(this).find(".error_messages").text(a)}))}))},processfail:function(e,t){$(t.context).removeClass("upload-uploading").addClass("upload-failure")},progress:function(e,t){if(e.isDefaultPrevented())return!1;var a=Math.floor(t.loaded/t.total*100);t.context.each((function(){$(this).find(".progress").addClass("active").attr("aria-valuenow",a).find(".bar").css("width",a+"%").html(a+"%")}))},progressall:function(e,t){var a=parseInt(t.loaded/t.total*100,10);$("#overall-progress").addClass("active").attr("aria-valuenow",a).find(".bar").css("width",a+"%").html(a+"%"),a>=100&&$("#overall-progress").removeClass("active").find(".bar").css("width","0%")},formData:function(e){var t=this.files[0].name,a={title:t.replace(/\.[^.]+$/,"")},s=window.fileupload_opts.max_title_length;return e.get(0).dispatchEvent(new CustomEvent("wagtail:documents-upload",{bubbles:!0,cancelable:!0,detail:{data:a,filename:t,maxTitleLength:s}}))?e.serializeArray().concat({name:"title",value:a.title}):e.serializeArray()},done:function(e,t){var a=$(t.context),s=JSON.parse(t.result);s.success?(a.addClass("upload-success"),$(".right",a).append(s.form)):(a.addClass("upload-failure"),$(".right .error_messages",a).append(s.error_message))},fail:function(e,t){$(t.context).addClass("upload-failure")},always:function(e,t){$(t.context).removeClass("upload-uploading").addClass("upload-complete")}}),$("#upload-list").on("submit","form",(function(e){var t=$(this),a=new FormData(this),s=t.closest("#upload-list > li");e.preventDefault(),$.ajax({contentType:!1,data:a,processData:!1,type:"POST",url:this.action}).done((function(e){if(e.success){var a=$(".status-msg.update-success").first().text();document.dispatchEvent(new CustomEvent("w-messages:add",{detail:{clear:!0,text:a,type:"success"}})),s.slideUp((function(){$(this).remove()}))}else t.replaceWith(e.form)}))})),$("#upload-list").on("click",".delete",(function(e){var t=$(this).closest("form"),a=t.closest("#upload-list > li");e.preventDefault();var s=$('input[name="csrfmiddlewaretoken"]',t).val();$.post(this.href,{csrfmiddlewaretoken:s},(function(e){e.success&&a.slideUp((function(){$(this).remove()}))}))}))}));
1
+ $((function(){$(document).on("drop dragover",(function(e){e.preventDefault()})),$("#fileupload").fileupload({dataType:"html",sequentialUploads:!0,dropZone:$(".drop-zone"),add:function(e,t){var a=$(this),s=a.data("blueimp-fileupload")||a.data("fileupload"),o=$($("#upload-list-item").html()).addClass("upload-uploading"),l=s.options;$("#upload-list").append(o),t.context=o,t.process((function(){return a.fileupload("process",t)})).always((function(){t.context.removeClass("processing"),t.context.find(".left").each((function(e,a){$(a).append(escapeHtml(t.files[e].name))}))})).done((function(){t.context.find(".start").prop("disabled",!1),!1!==s._trigger("added",e,t)&&(l.autoUpload||t.autoUpload)&&!1!==t.autoUpload&&t.submit()})).fail((function(){t.files.error&&t.context.each((function(e){var a=t.files[e].error;a&&$(this).find(".error_messages").text(a)}))}))},processfail:function(e,t){$(t.context).removeClass("upload-uploading").addClass("upload-failure")},progress:function(e,t){if(e.isDefaultPrevented())return!1;var a=Math.floor(t.loaded/t.total*100);t.context.each((function(){$(this).find(".progress").addClass("active").attr("aria-valuenow",a).find(".bar").css("width",a+"%").html(a+"%")}))},progressall:function(e,t){var a=parseInt(t.loaded/t.total*100,10);$("#overall-progress").addClass("active").attr("aria-valuenow",a).find(".bar").css("width",a+"%").html(a+"%"),a>=100&&$("#overall-progress").removeClass("active").find(".bar").css("width","0%")},formData:function(e){var t=this.files[0].name,a={title:t.replace(/\.[^.]+$/,"")};return e.get(0).dispatchEvent(new CustomEvent("wagtail:documents-upload",{bubbles:!0,cancelable:!0,detail:{data:a,filename:t,maxTitleLength:this.maxTitleLength}}))?e.serializeArray().concat({name:"title",value:a.title}):e.serializeArray()},done:function(e,t){var a=$(t.context),s=JSON.parse(t.result);s.success?(a.addClass("upload-success"),$(".right",a).append(s.form)):(a.addClass("upload-failure"),$(".right .error_messages",a).append(s.error_message))},fail:function(e,t){$(t.context).addClass("upload-failure")},always:function(e,t){$(t.context).removeClass("upload-uploading").addClass("upload-complete")}}),$("#upload-list").on("submit","form",(function(e){var t=$(this),a=new FormData(this),s=t.closest("#upload-list > li");e.preventDefault(),$.ajax({contentType:!1,data:a,processData:!1,type:"POST",url:this.action}).done((function(e){if(e.success){var a=$(".status-msg.update-success").first().text();document.dispatchEvent(new CustomEvent("w-messages:add",{detail:{clear:!0,text:a,type:"success"}})),s.slideUp((function(){$(this).remove()}))}else t.replaceWith(e.form)}))})),$("#upload-list").on("click",".delete",(function(e){var t=$(this).closest("form"),a=t.closest("#upload-list > li");e.preventDefault();var s=$('input[name="csrfmiddlewaretoken"]',t).val();$.post(this.href,{csrfmiddlewaretoken:s},(function(e){e.success&&a.slideUp((function(){$(this).remove()}))}))}))}));
@@ -1,7 +1,11 @@
1
1
  {% extends 'wagtailadmin/bulk_actions/confirmation/base.html' %}
2
2
  {% load i18n %}
3
3
  {% load wagtailimages_tags wagtailadmin_tags %}
4
- {% block titletag %}{% blocktrans trimmed count counter=items|length %}Add tags to 1 document {% plural %}Add tags to {{ counter }} documents{% endblocktrans %}{% endblock %}
4
+ {% block titletag %}
5
+ {% with counter_val=items|length %}
6
+ {% blocktrans trimmed with counter=counter_val|intcomma count counter_val=counter_val %}Add tags to 1 document {% plural %}Add tags to {{ counter }} documents{% endblocktrans %}
7
+ {% endwith %}
8
+ {% endblock %}
5
9
 
6
10
  {% block header %}
7
11
  {% trans "Add tags to documents" as add_str %}
@@ -1,7 +1,11 @@
1
1
  {% extends 'wagtailadmin/bulk_actions/confirmation/base.html' %}
2
2
  {% load i18n %}
3
3
  {% load wagtailimages_tags wagtailadmin_tags %}
4
- {% block titletag %}{% blocktrans trimmed count counter=items|length %}Add 1 document to new collection {% plural %}Add {{ counter }} documents to new collection{% endblocktrans %}{% endblock %}
4
+ {% block titletag %}
5
+ {% with counter_val=items|length %}
6
+ {% blocktrans trimmed with counter=counter_val|intcomma count counter_val=counter_val %}Add 1 document to new collection {% plural %}Add {{ counter }} documents to new collection{% endblocktrans %}
7
+ {% endwith %}
8
+ {% endblock %}
5
9
 
6
10
  {% block header %}
7
11
  {% trans "Add documents to collection" as add_str %}
@@ -1,6 +1,10 @@
1
1
  {% extends 'wagtailadmin/bulk_actions/confirmation/base.html' %}
2
2
  {% load wagtailadmin_tags i18n %}
3
- {% block titletag %}{% blocktrans trimmed count counter=items|length %}Delete 1 document {% plural %}Delete {{ counter }} documents{% endblocktrans %}{% endblock %}
3
+ {% block titletag %}
4
+ {% with counter_val=items|length %}
5
+ {% blocktrans trimmed with counter=counter_val|intcomma count counter_val=counter_val %}Delete 1 document {% plural %}Delete {{ counter }} documents{% endblocktrans %}
6
+ {% endwith %}
7
+ {% endblock %}
4
8
 
5
9
  {% block header %}
6
10
  {% trans "Delete documents" as del_str %}
@@ -18,10 +22,12 @@
18
22
  </p>
19
23
  <ul>
20
24
  {% for document in items %}
21
- <li>
22
- <a href="{% url 'wagtaildocs:edit' document.item.id %}" target="_blank" rel="noreferrer">{{document.item.title}}</a>
23
- (<a href="{{ document.item.usage_url }}">{% blocktrans trimmed count usage_count=document.item.get_usage.count %}Used {{ usage_count }} time{% plural %}Used {{ usage_count }} times{% endblocktrans %}</a>)
24
- </li>
25
+ {% with usage_count_val=document.item.get_usage.count %}
26
+ <li>
27
+ <a href="{% url 'wagtaildocs:edit' document.item.id %}" target="_blank" rel="noreferrer">{{document.item.title}}</a>
28
+ (<a href="{{ document.item.usage_url }}">{% blocktrans trimmed with usage_count=usage_count_val|intcomma count usage_count_val=usage_count_val %}Used {{ usage_count }} time{% plural %}Used {{ usage_count }} times{% endblocktrans %}</a>)
29
+ </li>
30
+ {% endwith %}
25
31
  {% endfor %}
26
32
  </ul>
27
33
  {% endif %}
@@ -1,13 +1,10 @@
1
- {% extends "wagtailadmin/base.html" %}
2
- {% load i18n %}
3
- {% load wagtailimages_tags wagtailadmin_tags %}
1
+ {% extends "wagtailadmin/generic/form.html" %}
2
+ {% load i18n wagtailadmin_tags %}
4
3
  {% block titletag %}{% trans "Add a document" %}{% endblock %}
5
4
 
6
5
  {% block extra_js %}
7
6
  {{ block.super }}
8
7
 
9
- {{ form.media.js }}
10
-
11
8
  <script>
12
9
  $(function() {
13
10
  $('#id_file').on(
@@ -39,40 +36,15 @@
39
36
  </script>
40
37
  {% endblock %}
41
38
 
42
- {% block extra_css %}
43
- {{ block.super }}
44
- {{ form.media.css }}
45
- {% endblock %}
46
-
47
- {% block content %}
48
- {% trans "Add document" as add_str %}
49
- {% include "wagtailadmin/shared/header.html" with title=add_str icon="doc-full-inverse" %}
50
-
51
- <div class="nice-padding">
52
- {% include "wagtailadmin/shared/non_field_errors.html" %}
53
- <form action="{% url 'wagtaildocs:add' %}" method="POST" enctype="multipart/form-data" novalidate>
54
- {% csrf_token %}
55
- <ul class="fields">
56
- {% for field in form %}
57
- {% if field.is_hidden %}
58
- {{ field }}
59
- {% else %}
60
- <li>{% formattedfield field %}</li>
61
- {% endif %}
62
- {% endfor %}
63
- <li>
64
- <button
65
- type="submit"
66
- class="button button-longrunning"
67
- data-controller="w-progress"
68
- data-action="w-progress#activate"
69
- data-w-progress-active-value="{% trans 'Uploading…' %}"
70
- >
71
- {% icon name="spinner" %}
72
- <em data-w-progress-target="label">{% trans 'Upload' %}</em>
73
- </button>
74
- </li>
75
- </ul>
76
- </form>
77
- </div>
39
+ {% block actions %}
40
+ <button
41
+ type="submit"
42
+ class="button button-longrunning"
43
+ data-controller="w-progress"
44
+ data-action="w-progress#activate"
45
+ data-w-progress-active-value="{% trans 'Uploading…' %}"
46
+ >
47
+ {% icon name="spinner" %}
48
+ <em data-w-progress-target="label">{% trans 'Upload' %}</em>
49
+ </button>
78
50
  {% endblock %}
@@ -1,61 +1,33 @@
1
- {% extends "wagtailadmin/base.html" %}
2
- {% load i18n %}
3
- {% load wagtailimages_tags wagtailadmin_tags %}
4
- {% block titletag %}{% blocktrans trimmed with title=document.title %}Editing {{ title }}{% endblocktrans %}{% endblock %}
1
+ {% extends "wagtailadmin/generic/edit.html" %}
2
+ {% load i18n wagtailadmin_tags %}
5
3
 
6
- {% block extra_js %}
7
- {{ block.super }}
8
-
9
- {{ form.media.js }}
10
- {% endblock %}
11
-
12
- {% block extra_css %}
13
- {{ block.super }}
14
- {{ form.media.css }}
15
- {% endblock %}
16
-
17
- {% block content %}
18
- {% trans "Editing" as editing_str %}
19
- {% include "wagtailadmin/shared/header.html" with title=editing_str subtitle=document.title icon="doc-full-inverse" %}
20
- {% include "wagtailadmin/shared/non_field_errors.html" %}
21
-
22
- <div class="row row-flush nice-padding">
23
-
24
- <div class="col10">
25
- <form action="{% url 'wagtaildocs:edit' document.id %}" method="POST" enctype="multipart/form-data" novalidate>
26
- {% csrf_token %}
27
- <input type="hidden" value="{{ next }}" name="next">
28
- <ul class="fields">
29
- {% for field in form %}
30
- {% if field.name == 'file' %}
31
- <li>{% include "wagtaildocs/documents/_file_field.html" %}</li>
32
- {% elif field.is_hidden %}
33
- {{ field }}
34
- {% else %}
35
- <li>{% formattedfield field %}</li>
36
- {% endif %}
37
- {% endfor %}
38
- <li>
39
- <input type="submit" value="{% trans 'Save' %}" class="button" />
40
- {% if user_can_delete %}
41
- <a href="{% url 'wagtaildocs:delete' document.id %}{% if next %}?next={{ next|urlencode }}{% endif %}" class="button no">{% trans "Delete document" %}</a>
42
- {% endif %}
43
- </li>
44
- </ul>
45
- </form>
46
- </div>
47
- <div class="col2">
48
- <dl>
49
- {% if document.file %}
50
- <dt>{% trans "Filesize" %}</dt>
51
- <dd>{% if filesize %}{{ filesize|filesizeformat }}{% else %}{% trans "File not found" %}{% endif %}</dd>
4
+ {% block form_content %}
5
+ <div class="w-grid w-grid-cols-1 sm:w-grid-cols-6 w-gap-8">
6
+ <div class="sm:w-col-span-5">
7
+ <input type="hidden" value="{{ next }}" name="next">
8
+ {% for field in form %}
9
+ {% if field.name == 'file' %}
10
+ {% include "wagtaildocs/documents/_file_field.html" %}
11
+ {% elif field.is_hidden %}
12
+ {{ field }}
13
+ {% else %}
14
+ {% formattedfield field %}
52
15
  {% endif %}
53
-
54
- <dt>{% trans "Usage" %}</dt>
55
- <dd>
56
- <a href="{{ document.usage_url }}">{% blocktrans trimmed count usage_count=document.get_usage.count %}Used {{ usage_count }} time{% plural %}Used {{ usage_count }} times{% endblocktrans %}</a>
57
- </dd>
58
- </dl>
16
+ {% endfor %}
59
17
  </div>
18
+
19
+ <dl>
20
+ {% if document.file %}
21
+ <dt>{% trans "Filesize" %}</dt>
22
+ <dd>{% if filesize %}{{ filesize|filesizeformat }}{% else %}{% trans "File not found" %}{% endif %}</dd>
23
+ {% endif %}
24
+
25
+ <dt>{% trans "Usage" %}</dt>
26
+ <dd>
27
+ {% with usage_count_val=document.get_usage.count %}
28
+ <a href="{{ document.usage_url }}">{% blocktrans trimmed with usage_count=usage_count_val|intcomma count usage_count_val=usage_count_val %}Used {{ usage_count }} time{% plural %}Used {{ usage_count }} times{% endblocktrans %}</a>
29
+ {% endwith %}
30
+ </dd>
31
+ </dl>
60
32
  </div>
61
33
  {% endblock %}
@@ -3,13 +3,10 @@
3
3
 
4
4
  {% block extra_js %}
5
5
  {{ block.super }}
6
- <script>
7
- window.wagtailConfig.BULK_ACTION_ITEM_TYPE = 'DOCUMENT';
8
- </script>
9
6
  <script defer src="{% versioned_static 'wagtailadmin/js/bulk-actions.js' %}"></script>
10
7
  {% endblock %}
11
8
 
12
9
  {% block bulk_actions %}
13
10
  {% trans "Select all documents in listing" as select_all_text %}
14
- {% include 'wagtailadmin/bulk_actions/footer.html' with select_all_obj_text=select_all_text app_label=model_opts.app_label model_name=model_opts.model_name objects=page_obj parent=current_collection.id %}
11
+ {% include 'wagtailadmin/bulk_actions/footer.html' with select_all_obj_text=select_all_text app_label=model_opts.app_label model_name=model_opts.model_name objects=page_obj parent=current_collection.id item_type="DOCUMENT" %}
15
12
  {% endblock %}
@@ -4,9 +4,9 @@
4
4
  {% icon name="doc-full" %}
5
5
  <a href="{% url 'wagtaildocs:index' %}">
6
6
  {% blocktrans trimmed count counter=total_docs with total_docs|intcomma as total %}
7
- <span>{{ total }}</span> Document <span class="w-sr-only">created in {{ site_name }}</span>
7
+ {{ total }} Document <span class="w-sr-only">created in {{ site_name }}</span>
8
8
  {% plural %}
9
- <span>{{ total }}</span> Documents <span class="w-sr-only">created in {{ site_name }}</span>
9
+ {{ total }} Documents <span class="w-sr-only">created in {{ site_name }}</span>
10
10
  {% endblocktrans %}
11
11
  </a>
12
12
  </li>