wagtail 6.0.2__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 (355) 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/de/LC_MESSAGES/django.mo +0 -0
  9. wagtail/admin/locale/de/LC_MESSAGES/django.po +5 -5
  10. wagtail/admin/locale/en/LC_MESSAGES/django.po +474 -385
  11. wagtail/admin/locale/en/LC_MESSAGES/djangojs.po +3 -3
  12. wagtail/admin/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
  13. wagtail/admin/locale/pt_PT/LC_MESSAGES/django.po +73 -2
  14. wagtail/admin/locale/ro/LC_MESSAGES/django.mo +0 -0
  15. wagtail/admin/locale/ro/LC_MESSAGES/django.po +3 -3
  16. wagtail/admin/panels/comment_panel.py +1 -1
  17. wagtail/admin/panels/field_panel.py +1 -1
  18. wagtail/admin/rich_text/converters/editor_html.py +3 -1
  19. wagtail/admin/rich_text/editors/draftail/__init__.py +28 -2
  20. wagtail/admin/static/wagtailadmin/css/core.css +1 -1
  21. wagtail/admin/static/wagtailadmin/css/panels/draftail.css +1 -1
  22. wagtail/admin/static/wagtailadmin/images/favicon.ico +0 -0
  23. wagtail/admin/static/wagtailadmin/js/bulk-actions.js +1 -1
  24. wagtail/admin/static/wagtailadmin/js/chooser-modal.js +1 -1
  25. wagtail/admin/static/wagtailadmin/js/chooser-widget-telepath.js +1 -1
  26. wagtail/admin/static/wagtailadmin/js/chooser-widget.js +1 -1
  27. wagtail/admin/static/wagtailadmin/js/comments.js +1 -1
  28. wagtail/admin/static/wagtailadmin/js/core.js +1 -1
  29. wagtail/admin/static/wagtailadmin/js/core.js.LICENSE.txt +1 -1
  30. wagtail/admin/static/wagtailadmin/js/date-time-chooser.js +1 -1
  31. wagtail/admin/static/wagtailadmin/js/draftail.js +1 -1
  32. wagtail/admin/static/wagtailadmin/js/expanding-formset.js +1 -1
  33. wagtail/admin/static/wagtailadmin/js/filtered-select.js +1 -1
  34. wagtail/admin/static/wagtailadmin/js/modal-workflow.js +1 -1
  35. wagtail/admin/static/wagtailadmin/js/page-chooser-modal.js +1 -1
  36. wagtail/admin/static/wagtailadmin/js/page-chooser-telepath.js +1 -1
  37. wagtail/admin/static/wagtailadmin/js/page-chooser.js +1 -1
  38. wagtail/admin/static/wagtailadmin/js/preview-panel.js +1 -1
  39. wagtail/admin/static/wagtailadmin/js/privacy-switch.js +1 -1
  40. wagtail/admin/static/wagtailadmin/js/sidebar.js +1 -1
  41. wagtail/admin/static/wagtailadmin/js/task-chooser-modal.js +1 -1
  42. wagtail/admin/static/wagtailadmin/js/task-chooser.js +1 -1
  43. wagtail/admin/static/wagtailadmin/js/telepath/blocks.js +1 -1
  44. wagtail/admin/static/wagtailadmin/js/telepath/telepath.js +1 -1
  45. wagtail/admin/static/wagtailadmin/js/telepath/widgets.js +1 -1
  46. wagtail/admin/static/wagtailadmin/js/userbar.js +1 -1
  47. wagtail/admin/static/wagtailadmin/js/vendor.js +1 -1
  48. wagtail/admin/static/wagtailadmin/js/vendor.js.LICENSE.txt +4 -4
  49. wagtail/admin/static/wagtailadmin/js/wagtailadmin.js +1 -1
  50. wagtail/admin/static/wagtailadmin/js/workflow-action.js +1 -1
  51. wagtail/admin/staticfiles.py +1 -0
  52. wagtail/admin/templates/wagtailadmin/base.html +1 -0
  53. wagtail/admin/templates/wagtailadmin/collection_privacy/set_privacy.html +3 -1
  54. wagtail/admin/templates/wagtailadmin/collections/index_results.html +10 -0
  55. wagtail/admin/templates/wagtailadmin/generic/base.html +1 -9
  56. wagtail/admin/templates/wagtailadmin/generic/form.html +3 -2
  57. wagtail/admin/templates/wagtailadmin/generic/history/action_cell.html +27 -0
  58. wagtail/admin/templates/wagtailadmin/home/workflow_objects_to_moderate.html +3 -3
  59. wagtail/admin/templates/wagtailadmin/icons/keyboard.svg +1 -0
  60. wagtail/admin/templates/wagtailadmin/page_privacy/set_privacy.html +3 -1
  61. wagtail/admin/templates/wagtailadmin/pages/_editor_js.html +0 -14
  62. wagtail/admin/templates/wagtailadmin/pages/action_menu/save_draft.html +3 -1
  63. wagtail/admin/templates/wagtailadmin/pages/choose_parent.html +17 -0
  64. wagtail/admin/templates/wagtailadmin/pages/explorable_index.html +8 -0
  65. wagtail/admin/templates/wagtailadmin/pages/history.html +1 -61
  66. wagtail/admin/templates/wagtailadmin/pages/index.html +1 -3
  67. wagtail/admin/templates/wagtailadmin/pages/listing/_locked_indicator.html +2 -2
  68. wagtail/admin/templates/wagtailadmin/pages/listing/_page_title_column_header.html +25 -27
  69. wagtail/admin/templates/wagtailadmin/pages/page_listing_header.html +2 -1
  70. wagtail/admin/templates/wagtailadmin/panels/multi_field_panel_child.html +1 -1
  71. wagtail/admin/templates/wagtailadmin/panels/publishing/schedule_publishing_panel.html +3 -1
  72. wagtail/admin/templates/wagtailadmin/panels/tabbed_interface.html +1 -1
  73. wagtail/admin/templates/wagtailadmin/shared/active_filters.html +2 -1
  74. wagtail/admin/templates/wagtailadmin/shared/breadcrumbs.html +8 -0
  75. wagtail/admin/templates/wagtailadmin/shared/forms/single_checkbox.html +1 -1
  76. wagtail/admin/templates/wagtailadmin/shared/headers/page_edit_header.html +1 -1
  77. wagtail/admin/templates/wagtailadmin/shared/headers/slim_header.html +21 -9
  78. wagtail/admin/templates/wagtailadmin/shared/human_readable_date.html +1 -1
  79. wagtail/admin/templates/wagtailadmin/shared/keyboard_shortcuts_dialog.html +29 -0
  80. wagtail/admin/templates/wagtailadmin/shared/side_panel_toggle.html +2 -1
  81. wagtail/admin/templates/wagtailadmin/skeleton.html +2 -1
  82. wagtail/admin/templates/wagtailadmin/tables/related_objects_cell.html +9 -0
  83. wagtail/admin/templates/wagtailadmin/tables/title_cell.html +9 -7
  84. wagtail/admin/templates/wagtailadmin/widgets/draftail_rich_text_area.html +1 -1
  85. wagtail/admin/templates/wagtailadmin/workflows/create.html +6 -23
  86. wagtail/admin/templates/wagtailadmin/workflows/create_task.html +6 -15
  87. wagtail/admin/templates/wagtailadmin/workflows/edit.html +6 -23
  88. wagtail/admin/templates/wagtailadmin/workflows/edit_task.html +6 -13
  89. wagtail/admin/templates/wagtailadmin/workflows/includes/task_usage_cell.html +4 -4
  90. wagtail/admin/templates/wagtailadmin/workflows/includes/workflow_tasks_cell.html +18 -0
  91. wagtail/admin/templates/wagtailadmin/workflows/includes/workflow_title_cell.html +7 -0
  92. wagtail/admin/templates/wagtailadmin/workflows/includes/workflow_used_by_cell.html +25 -0
  93. wagtail/admin/templates/wagtailadmin/workflows/index.html +0 -99
  94. wagtail/admin/templates/wagtailadmin/workflows/index_results.html +10 -0
  95. wagtail/admin/templates/wagtailadmin/workflows/task_index.html +0 -30
  96. wagtail/admin/templates/wagtailadmin/workflows/task_index_results.html +10 -0
  97. wagtail/admin/templates/wagtailadmin/workflows/usage.html +1 -1
  98. wagtail/admin/templatetags/wagtailadmin_tags.py +116 -39
  99. wagtail/admin/tests/pages/test_create_page.py +10 -4
  100. wagtail/admin/tests/pages/test_custom_listing.py +37 -0
  101. wagtail/admin/tests/pages/test_edit_page.py +6 -6
  102. wagtail/admin/tests/pages/test_explorer_view.py +19 -18
  103. wagtail/admin/tests/pages/test_move_page.py +1 -1
  104. wagtail/admin/tests/pages/test_page_usage.py +50 -2
  105. wagtail/admin/tests/pages/test_parent_page_chooser_view.py +119 -0
  106. wagtail/admin/tests/pages/test_preview.py +18 -4
  107. wagtail/admin/tests/test_account_management.py +20 -1
  108. wagtail/admin/tests/test_audit_log.py +172 -5
  109. wagtail/admin/tests/test_checks.py +92 -0
  110. wagtail/admin/tests/test_collections_views.py +19 -5
  111. wagtail/admin/tests/test_compare.py +6 -6
  112. wagtail/admin/tests/test_dashboard.py +404 -0
  113. wagtail/admin/tests/test_dbwhitelister.py +4 -5
  114. wagtail/admin/tests/test_edit_handlers.py +2 -2
  115. wagtail/admin/tests/test_keyboard_shortcuts.py +84 -0
  116. wagtail/admin/tests/test_page_chooser.py +31 -18
  117. wagtail/admin/tests/test_privacy.py +36 -2
  118. wagtail/admin/tests/test_rich_text.py +168 -23
  119. wagtail/admin/tests/test_templatetags.py +411 -43
  120. wagtail/admin/tests/test_views.py +4 -2
  121. wagtail/admin/tests/test_workflows.py +531 -9
  122. wagtail/admin/tests/tests.py +3 -1
  123. wagtail/admin/tests/ui/test_tables.py +48 -1
  124. wagtail/admin/tests/viewsets/test_model_viewset.py +126 -29
  125. wagtail/admin/ui/side_panels.py +3 -1
  126. wagtail/admin/ui/tables/__init__.py +13 -1
  127. wagtail/admin/ui/tables/pages.py +17 -6
  128. wagtail/admin/urls/__init__.py +8 -3
  129. wagtail/admin/urls/pages.py +5 -0
  130. wagtail/admin/urls/workflows.py +10 -0
  131. wagtail/admin/views/chooser.py +20 -24
  132. wagtail/admin/views/collections.py +17 -1
  133. wagtail/admin/views/generic/base.py +31 -4
  134. wagtail/admin/views/generic/history.py +220 -51
  135. wagtail/admin/views/generic/mixins.py +7 -4
  136. wagtail/admin/views/generic/models.py +54 -38
  137. wagtail/admin/views/generic/multiple_upload.py +17 -8
  138. wagtail/admin/views/generic/usage.py +17 -11
  139. wagtail/admin/views/home.py +15 -12
  140. wagtail/admin/views/mixins.py +30 -0
  141. wagtail/admin/views/pages/choose_parent.py +73 -0
  142. wagtail/admin/views/pages/history.py +54 -66
  143. wagtail/admin/views/pages/listing.py +187 -106
  144. wagtail/admin/views/pages/usage.py +6 -1
  145. wagtail/admin/views/pages/utils.py +70 -1
  146. wagtail/admin/views/workflows.py +150 -21
  147. wagtail/admin/viewsets/model.py +2 -2
  148. wagtail/admin/viewsets/pages.py +77 -0
  149. wagtail/admin/wagtail_hooks.py +40 -2
  150. wagtail/admin/widgets/button.py +10 -9
  151. wagtail/api/v2/filters.py +1 -1
  152. wagtail/api/v2/tests/test_pages.py +1 -1
  153. wagtail/blocks/base.py +18 -9
  154. wagtail/blocks/field_block.py +9 -7
  155. wagtail/blocks/list_block.py +16 -6
  156. wagtail/blocks/static_block.py +3 -0
  157. wagtail/blocks/stream_block.py +58 -23
  158. wagtail/blocks/struct_block.py +15 -9
  159. wagtail/contrib/forms/locale/en/LC_MESSAGES/django.po +39 -47
  160. wagtail/contrib/forms/models.py +5 -5
  161. wagtail/contrib/forms/templates/wagtailforms/list_submissions.html +44 -33
  162. wagtail/contrib/forms/templates/wagtailforms/submissions_index.html +2 -63
  163. wagtail/contrib/forms/tests/test_models.py +26 -0
  164. wagtail/contrib/forms/urls.py +6 -0
  165. wagtail/contrib/forms/views.py +52 -49
  166. wagtail/contrib/redirects/locale/ca/LC_MESSAGES/django.mo +0 -0
  167. wagtail/contrib/redirects/locale/ca/LC_MESSAGES/django.po +3 -3
  168. wagtail/contrib/redirects/locale/en/LC_MESSAGES/django.po +34 -42
  169. wagtail/contrib/redirects/signal_handlers.py +1 -1
  170. wagtail/contrib/redirects/templates/wagtailredirects/index.html +1 -36
  171. wagtail/contrib/redirects/templates/wagtailredirects/index_results.html +18 -0
  172. wagtail/contrib/redirects/templates/wagtailredirects/redirect_target_cell.html +8 -0
  173. wagtail/contrib/redirects/tests/test_import_command.py +1 -1
  174. wagtail/contrib/redirects/tests/test_redirects.py +79 -8
  175. wagtail/contrib/redirects/urls.py +2 -1
  176. wagtail/contrib/redirects/views.py +85 -55
  177. wagtail/contrib/search_promotions/admin_urls.py +2 -1
  178. wagtail/contrib/search_promotions/locale/en/LC_MESSAGES/django.po +41 -64
  179. wagtail/contrib/search_promotions/templates/wagtailsearchpromotions/index.html +1 -16
  180. wagtail/contrib/search_promotions/templates/wagtailsearchpromotions/index_results.html +11 -0
  181. wagtail/contrib/search_promotions/templates/wagtailsearchpromotions/list.html +0 -51
  182. wagtail/contrib/search_promotions/templates/wagtailsearchpromotions/results.html +3 -16
  183. wagtail/contrib/search_promotions/templates/wagtailsearchpromotions/search_promotion_column.html +15 -0
  184. wagtail/contrib/search_promotions/tests.py +122 -9
  185. wagtail/contrib/search_promotions/views.py +66 -65
  186. wagtail/contrib/settings/locale/en/LC_MESSAGES/django.po +3 -3
  187. wagtail/contrib/settings/registry.py +10 -5
  188. wagtail/contrib/settings/tests/generic/test_admin.py +9 -0
  189. wagtail/contrib/settings/tests/site_specific/test_admin.py +10 -1
  190. wagtail/contrib/settings/tests/site_specific/test_model.py +3 -3
  191. wagtail/contrib/settings/tests/site_specific/test_templates.py +1 -1
  192. wagtail/contrib/settings/views.py +3 -1
  193. wagtail/contrib/simple_translation/locale/en/LC_MESSAGES/django.po +1 -1
  194. wagtail/contrib/simple_translation/tests/test_wagtail_hooks.py +2 -2
  195. wagtail/contrib/styleguide/locale/en/LC_MESSAGES/django.po +7 -7
  196. wagtail/contrib/table_block/blocks.py +1 -1
  197. wagtail/contrib/table_block/locale/en/LC_MESSAGES/django.po +1 -1
  198. wagtail/contrib/table_block/static/table_block/js/table.js +1 -1
  199. wagtail/contrib/typed_table_block/locale/en/LC_MESSAGES/django.po +1 -1
  200. wagtail/contrib/typed_table_block/static/typed_table_block/js/typed_table_block.js +1 -1
  201. wagtail/coreutils.py +3 -2
  202. wagtail/documents/admin_urls.py +2 -2
  203. wagtail/documents/locale/en/LC_MESSAGES/django.po +22 -22
  204. wagtail/documents/migrations/0013_delete_uploadeddocument.py +16 -0
  205. wagtail/documents/models.py +1 -20
  206. wagtail/documents/rich_text/__init__.py +11 -7
  207. wagtail/documents/static/wagtaildocs/js/document-chooser-modal.js +1 -1
  208. wagtail/documents/static/wagtaildocs/js/document-chooser-telepath.js +1 -1
  209. wagtail/documents/static/wagtaildocs/js/document-chooser.js +1 -1
  210. wagtail/documents/templates/wagtaildocs/documents/index.html +0 -16
  211. wagtail/documents/tests/test_admin_views.py +155 -23
  212. wagtail/documents/tests/test_collection_privacy.py +55 -1
  213. wagtail/documents/tests/test_rich_text.py +14 -0
  214. wagtail/documents/views/documents.py +25 -22
  215. wagtail/documents/views/multiple.py +6 -7
  216. wagtail/documents/views/serve.py +16 -1
  217. wagtail/documents/wagtail_hooks.py +20 -15
  218. wagtail/embeds/blocks.py +5 -0
  219. wagtail/embeds/locale/en/LC_MESSAGES/django.po +2 -2
  220. wagtail/embeds/rich_text/__init__.py +1 -1
  221. wagtail/embeds/tests/test_rich_text.py +14 -0
  222. wagtail/embeds/wagtail_hooks.py +4 -14
  223. wagtail/fields.py +3 -48
  224. wagtail/images/admin_urls.py +2 -2
  225. wagtail/images/check_files/wagtail.jpg +0 -0
  226. wagtail/images/check_files/wagtail.png +0 -0
  227. wagtail/images/fields.py +2 -0
  228. wagtail/images/image_operations.py +1 -1
  229. wagtail/images/locale/en/LC_MESSAGES/django.po +33 -45
  230. wagtail/images/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
  231. wagtail/images/locale/pt_PT/LC_MESSAGES/django.po +4 -0
  232. wagtail/images/migrations/0026_delete_uploadedimage.py +16 -0
  233. wagtail/images/models.py +49 -43
  234. wagtail/images/rich_text/__init__.py +18 -8
  235. wagtail/images/static/wagtailimages/js/image-chooser-modal.js +1 -1
  236. wagtail/images/static/wagtailimages/js/image-chooser-telepath.js +1 -1
  237. wagtail/images/static/wagtailimages/js/image-chooser.js +1 -1
  238. wagtail/images/templates/wagtailimages/images/image_listing_header.html +6 -0
  239. wagtail/images/templates/wagtailimages/images/index.html +11 -51
  240. wagtail/images/tests/test_admin_views.py +119 -62
  241. wagtail/images/tests/test_image_operations.py +10 -0
  242. wagtail/images/tests/test_models.py +35 -33
  243. wagtail/images/tests/test_rich_text.py +14 -0
  244. wagtail/images/tests/utils.py +1 -1
  245. wagtail/images/views/images.py +35 -64
  246. wagtail/images/views/multiple.py +6 -7
  247. wagtail/images/wagtail_hooks.py +4 -14
  248. wagtail/locale/en/LC_MESSAGES/django.po +150 -136
  249. wagtail/locales/locale/en/LC_MESSAGES/django.po +1 -1
  250. wagtail/locales/tests.py +18 -3
  251. wagtail/locales/views.py +0 -1
  252. wagtail/management/commands/rebuild_references_index.py +3 -1
  253. wagtail/migrations/0092_alter_collectionviewrestriction_password_and_more.py +33 -0
  254. wagtail/migrations/0093_uploadedfile.py +53 -0
  255. wagtail/models/__init__.py +147 -32
  256. wagtail/models/i18n.py +1 -1
  257. wagtail/models/{collections.py → media.py} +33 -2
  258. wagtail/models/reference_index.py +1 -1
  259. wagtail/models/view_restrictions.py +10 -3
  260. wagtail/project_template/project_name/settings/base.py +6 -0
  261. wagtail/project_template/requirements.txt +1 -1
  262. wagtail/rich_text/__init__.py +25 -8
  263. wagtail/rich_text/pages.py +19 -8
  264. wagtail/rich_text/rewriters.py +140 -68
  265. wagtail/search/backends/database/mysql/mysql.py +3 -3
  266. wagtail/search/backends/database/postgres/postgres.py +3 -3
  267. wagtail/search/backends/database/sqlite/sqlite.py +2 -2
  268. wagtail/search/backends/elasticsearch7.py +4 -0
  269. wagtail/search/locale/en/LC_MESSAGES/django.po +3 -3
  270. wagtail/search/tests/test_postgres_backend.py +50 -0
  271. wagtail/sites/locale/en/LC_MESSAGES/django.po +8 -8
  272. wagtail/sites/tests.py +35 -9
  273. wagtail/sites/views.py +3 -1
  274. wagtail/snippets/locale/de/LC_MESSAGES/django.mo +0 -0
  275. wagtail/snippets/locale/de/LC_MESSAGES/django.po +5 -6
  276. wagtail/snippets/locale/en/LC_MESSAGES/django.po +16 -56
  277. wagtail/snippets/static/wagtailsnippets/js/snippet-chooser-telepath.js +1 -1
  278. wagtail/snippets/static/wagtailsnippets/js/snippet-chooser.js +1 -1
  279. wagtail/snippets/templates/wagtailsnippets/snippets/action_menu/publish.html +3 -1
  280. wagtail/snippets/templates/wagtailsnippets/snippets/action_menu/save.html +3 -1
  281. wagtail/snippets/templates/wagtailsnippets/snippets/create.html +1 -1
  282. wagtail/snippets/templates/wagtailsnippets/snippets/edit.html +1 -1
  283. wagtail/snippets/tests/test_preview.py +13 -2
  284. wagtail/snippets/tests/test_snippets.py +41 -16
  285. wagtail/snippets/tests/test_viewset.py +63 -18
  286. wagtail/snippets/tests/test_workflows.py +12 -0
  287. wagtail/snippets/views/snippets.py +1 -40
  288. wagtail/templatetags/wagtailcore_tags.py +1 -1
  289. wagtail/test/demosite/models.py +1 -1
  290. wagtail/test/middleware.py +14 -1
  291. wagtail/test/testapp/fixtures/test.json +20 -0
  292. wagtail/test/testapp/migrations/0001_squashed_0073_revisablechildmodel_secret_text.py +8 -8
  293. wagtail/test/testapp/migrations/0023_snippetchoosermodel_full_featured.py +1 -0
  294. wagtail/test/testapp/migrations/0034_custompermissionmodel.py +44 -0
  295. wagtail/test/testapp/migrations/0035_modelwithcustommanager.py +30 -0
  296. wagtail/test/testapp/migrations/0036_complexdefaultstreampage.py +28 -0
  297. wagtail/test/testapp/models.py +79 -2
  298. wagtail/test/testapp/templates/tests/custom_docs_password_required.html +10 -0
  299. wagtail/test/testapp/templates/tests/custom_page_password_required.html +10 -0
  300. wagtail/test/testapp/views.py +24 -2
  301. wagtail/test/testapp/wagtail_hooks.py +19 -0
  302. wagtail/test/utils/wagtail_tests.py +2 -2
  303. wagtail/tests/test_blocks.py +262 -1
  304. wagtail/tests/test_migrations.py +1 -1
  305. wagtail/tests/test_page_model.py +77 -0
  306. wagtail/tests/test_page_privacy.py +18 -1
  307. wagtail/tests/test_rich_text.py +95 -5
  308. wagtail/tests/test_streamfield.py +43 -0
  309. wagtail/tests/test_utils.py +8 -2
  310. wagtail/tests/test_views.py +52 -1
  311. wagtail/tests/test_whitelist.py +7 -7
  312. wagtail/users/forms.py +3 -1
  313. wagtail/users/locale/en/LC_MESSAGES/django.po +124 -96
  314. wagtail/users/migrations/0013_userprofile_density.py +23 -0
  315. wagtail/users/models.py +14 -3
  316. wagtail/users/templates/wagtailusers/groups/create.html +1 -7
  317. wagtail/users/templates/wagtailusers/groups/edit.html +1 -13
  318. wagtail/users/templates/wagtailusers/groups/includes/formatted_permissions.html +46 -2
  319. wagtail/users/templates/wagtailusers/groups/includes/group_form_js.html +0 -2
  320. wagtail/users/templates/wagtailusers/users/create.html +1 -9
  321. wagtail/users/templates/wagtailusers/users/edit.html +1 -9
  322. wagtail/users/templates/wagtailusers/users/index.html +2 -5
  323. wagtail/users/templates/wagtailusers/users/index_results.html +3 -13
  324. wagtail/users/templates/wagtailusers/users/user_cell.html +9 -0
  325. wagtail/users/templatetags/wagtailusers_tags.py +107 -20
  326. wagtail/users/tests/test_admin_views.py +669 -90
  327. wagtail/users/views/groups.py +58 -61
  328. wagtail/users/views/users.py +211 -92
  329. wagtail/users/wagtail_hooks.py +6 -38
  330. wagtail/users/widgets.py +3 -5
  331. wagtail/utils/text.py +1 -1
  332. wagtail/views.py +5 -9
  333. wagtail/whitelist.py +1 -1
  334. {wagtail-6.0.2.dist-info → wagtail-6.1rc1.dist-info}/METADATA +4 -5
  335. {wagtail-6.0.2.dist-info → wagtail-6.1rc1.dist-info}/RECORD +339 -320
  336. wagtail/admin/static/wagtailadmin/js/page-editor.js +0 -1
  337. wagtail/admin/static/wagtailadmin/js/vendor/mousetrap.min.js +0 -1
  338. wagtail/admin/static/wagtailadmin/js/vendor/urlify.js +0 -1
  339. wagtail/admin/static/wagtailadmin/js/vendor/xregexp.min.js +0 -1
  340. wagtail/admin/templates/wagtailadmin/collections/index.html +0 -34
  341. wagtail/admin/templates/wagtailadmin/pages/revisions/_actions.html +0 -22
  342. wagtail/admin/templates/wagtailadmin/shared/page_breadcrumbs.html +0 -55
  343. wagtail/admin/tests/pages/test_dashboard.py +0 -172
  344. wagtail/contrib/redirects/templates/wagtailredirects/results.html +0 -23
  345. wagtail/documents/templates/wagtaildocs/documents/list.html +0 -2
  346. wagtail/search/tests/test_postgres_stemming.py +0 -40
  347. wagtail/sites/templates/wagtailsites/create.html +0 -6
  348. wagtail/sites/templates/wagtailsites/edit.html +0 -6
  349. wagtail/snippets/templates/wagtailsnippets/snippets/revisions/_actions.html +0 -36
  350. wagtail/users/templates/wagtailusers/users/list.html +0 -62
  351. wagtail/users/urls/users.py +0 -12
  352. {wagtail-6.0.2.dist-info → wagtail-6.1rc1.dist-info}/LICENSE +0 -0
  353. {wagtail-6.0.2.dist-info → wagtail-6.1rc1.dist-info}/WHEEL +0 -0
  354. {wagtail-6.0.2.dist-info → wagtail-6.1rc1.dist-info}/entry_points.txt +0 -0
  355. {wagtail-6.0.2.dist-info → wagtail-6.1rc1.dist-info}/top_level.txt +0 -0
@@ -41,7 +41,7 @@ msgstr ""
41
41
  msgid "Are you sure?"
42
42
  msgstr ""
43
43
 
44
- #: src/entrypoints/admin/telepath/widgets.js:334
44
+ #: src/entrypoints/admin/telepath/widgets.js:350
45
45
  msgid "Blocks"
46
46
  msgstr ""
47
47
 
@@ -268,7 +268,7 @@ msgstr ""
268
268
  msgid "Show latest content"
269
269
  msgstr ""
270
270
 
271
- #: src/entrypoints/admin/telepath/widgets.js:225
271
+ #: src/entrypoints/admin/telepath/widgets.js:241
272
272
  msgid "Split block"
273
273
  msgstr ""
274
274
 
@@ -280,7 +280,7 @@ msgstr ""
280
280
  msgid "This field is required."
281
281
  msgstr ""
282
282
 
283
- #: src/components/Minimap/Minimap.tsx:223
283
+ #: src/components/Minimap/Minimap.tsx:224
284
284
  msgid "Toggle side panel"
285
285
  msgstr ""
286
286
 
@@ -4,6 +4,7 @@
4
4
  #
5
5
  # Translators:
6
6
  # 425fe09b3064b9f906f637fff94056ae_a00ea56 <0fa3588fa89906bfcb3a354600956e0e_308047>, 2015
7
+ # Daniel Freira, 2024
7
8
  # Diogo Gomes, 2021
8
9
  # Diogo Gomes, 2021
9
10
  # Diogo Ribeiro <pdcribeiro95@gmail.com>, 2020
@@ -26,7 +27,7 @@ msgstr ""
26
27
  "Report-Msgid-Bugs-To: \n"
27
28
  "POT-Creation-Date: 2024-01-24 13:51+0000\n"
28
29
  "PO-Revision-Date: 2014-02-21 15:50+0000\n"
29
- "Last-Translator: Rui Martins <rmartins16@gmail.com>, 2019\n"
30
+ "Last-Translator: Daniel Freira, 2024\n"
30
31
  "Language-Team: Portuguese (Portugal) (http://app.transifex.com/torchbox/"
31
32
  "wagtail/language/pt_PT/)\n"
32
33
  "MIME-Version: 1.0\n"
@@ -257,6 +258,21 @@ msgstr ""
257
258
  "Não pode copiar uma página para dentro dela própria quando está a copiar "
258
259
  "páginas-filha"
259
260
 
261
+ #, python-format
262
+ msgid "The slug '%(page_slug)s' is already in use within the parent page"
263
+ msgstr "A referência '%(page_slug)s' já está em uso dentro da página-mãe"
264
+
265
+ msgid "Select a new parent for this page."
266
+ msgstr "Selecione uma nova página-mãe para esta página"
267
+
268
+ msgid "Search…"
269
+ msgstr "Procurar..."
270
+
271
+ #, python-format
272
+ msgid "Tag(s) %(value_too_long)s are over %(max_tag_length)d characters"
273
+ msgstr ""
274
+ "As etiquetas %(value_too_long)s estão acima de %(max_tag_length)d caracteres"
275
+
260
276
  msgid "Visibility"
261
277
  msgstr "Visibilidade"
262
278
 
@@ -277,6 +293,13 @@ msgid "You cannot assign this workflow to the same page multiple times."
277
293
  msgstr ""
278
294
  "Não pode atribuir o mesmo fluxo de trabalho múltiplas vezes à mesma página."
279
295
 
296
+ #, python-format
297
+ msgid ""
298
+ "Snippet '%(content_type)s' already has workflow '%(workflow_name)s' assigned."
299
+ msgstr ""
300
+ "O trecho '%(content_type)s' já contém o fluxo de trabalho "
301
+ "'%(workflow_name)s' alocado"
302
+
280
303
  msgid "Give your workflow a name"
281
304
  msgstr "Dar um nome ao seu fluxo de trabalho"
282
305
 
@@ -342,6 +365,20 @@ msgstr "Todos os %(objects)s utilizadores neste ecrã foram selecionados"
342
365
  msgid "All users in listing selected"
343
366
  msgstr "Todos os utilizadores da listagem foram selecionados"
344
367
 
368
+ msgid "1 snippet selected"
369
+ msgstr "1 trecho selecionado"
370
+
371
+ #, python-format
372
+ msgid "%(objects)s snippets selected"
373
+ msgstr "%(objects)s trechos selecionados"
374
+
375
+ #, python-format
376
+ msgid "All %(objects)s snippets on this screen selected"
377
+ msgstr "Todos os %(objects)s trechos neste ecrã estão selecionados "
378
+
379
+ msgid "All snippets in listing selected"
380
+ msgstr "Selecionados todos os trechos da lista"
381
+
345
382
  msgid "1 item selected"
346
383
  msgstr "1 item selecionado"
347
384
 
@@ -448,15 +485,24 @@ msgstr "Reinicialize a sua senha"
448
485
  msgid "Reset to default"
449
486
  msgstr "Repôr as pré-definições"
450
487
 
488
+ msgid "Default avatar"
489
+ msgstr "Avatar padrão"
490
+
451
491
  msgid "Upload a profile picture:"
452
492
  msgstr "Carregar uma foto de perfil:"
453
493
 
494
+ msgid "Sidebar"
495
+ msgstr "Barra lateral"
496
+
454
497
  msgid "Go back"
455
498
  msgstr "Voltar atrás"
456
499
 
457
500
  msgid "Bulk actions"
458
501
  msgstr "Ações em bloco"
459
502
 
503
+ msgid "Select"
504
+ msgstr "Selecionar"
505
+
460
506
  msgid "Select row"
461
507
  msgstr "Selecionar linha"
462
508
 
@@ -514,6 +560,9 @@ msgstr[2] ""
514
560
  "Só páginas do tipo \"%(type)s\" podem ser escolhidas para este campo. Os "
515
561
  "resultados de pesquisa irão excluir páginas de outros tipos."
516
562
 
563
+ msgid "Confirm selection"
564
+ msgstr "Confirmar seleção"
565
+
517
566
  msgid "Convert to internal link"
518
567
  msgstr "Converter para ligação interna"
519
568
 
@@ -544,6 +593,10 @@ msgstr "Adicionar link externo"
544
593
  msgid "Add a phone link"
545
594
  msgstr "Adicionar uma ligação para um número de telefone"
546
595
 
596
+ #, python-format
597
+ msgid "Select %(title)s"
598
+ msgstr "Selecionar %(title)s"
599
+
547
600
  #, python-format
548
601
  msgid "Explore subpages of '%(title)s'"
549
602
  msgstr "Explorar páginas-filha de '%(title)s'"
@@ -563,6 +616,9 @@ msgstr "Pode alterar as definições de privacidade em:"
563
616
  msgid "Save"
564
617
  msgstr "Gravar"
565
618
 
619
+ msgid "Change privacy"
620
+ msgstr "Alterar privacidade"
621
+
566
622
  msgid ""
567
623
  "Privacy settings determine who is able to view documents in this collection."
568
624
  msgstr ""
@@ -599,6 +655,13 @@ msgstr ""
599
655
  "Ainda não foram criadas coleções. Que tal <a "
600
656
  "href=\"%(add_collection_url)s\">adicionar uma</a>?"
601
657
 
658
+ #, python-format
659
+ msgid "Sorry, there are no matches for \"<em>%(search_query)s</em>\""
660
+ msgstr "Desculpe, não existem correspondências para \"%(search_query)s\""
661
+
662
+ msgid "There are no results."
663
+ msgstr "Não existem resultados."
664
+
602
665
  msgid "Yes, delete"
603
666
  msgstr "Sim, apagar"
604
667
 
@@ -609,12 +672,20 @@ msgstr "Não, não apagar"
609
672
  msgid "Unpublish %(title)s"
610
673
  msgstr "Despublicar %(title)s"
611
674
 
675
+ #, python-format
676
+ msgid "Are you sure you want to unpublish this %(model_name)s?"
677
+ msgstr "Tem certeza de que quer despublicar '%(model_name)s'?"
678
+
612
679
  msgid "Yes, unpublish it"
613
680
  msgstr "Sim, despublicar"
614
681
 
615
682
  msgid "No, don't unpublish"
616
683
  msgstr "Não. Não despublicar"
617
684
 
685
+ #, python-format
686
+ msgid "Publish %(model_name)s"
687
+ msgstr "Publicar %(model_name)s"
688
+
618
689
  msgid "Cancel"
619
690
  msgstr "Cancelar"
620
691
 
@@ -1987,7 +2058,7 @@ msgid ""
1987
2058
  "The slug '%(page_slug)s' is already in use at the selected parent page. Make "
1988
2059
  "sure the slug is unique and try again"
1989
2060
  msgstr ""
1990
- "A referência '%(page_slug)s' já está em uso para a página-mãe selecionada. "
2061
+ "A referência '%(page_slug)s' já está em uso na página-mãe selecionada. "
1991
2062
  "Certifique-se que a referência é única e tente outra vez."
1992
2063
 
1993
2064
  #, python-format
@@ -3,7 +3,7 @@
3
3
  # This file is distributed under the same license as the PACKAGE package.
4
4
  #
5
5
  # Translators:
6
- # Alex Morega, 2023
6
+ # Alex Morega, 2023-2024
7
7
  # Bogdan Mateescu, 2019
8
8
  # Bogdan Mateescu, 2019
9
9
  # Dan Braghis, 2014-2023
@@ -14,7 +14,7 @@ msgstr ""
14
14
  "Report-Msgid-Bugs-To: \n"
15
15
  "POT-Creation-Date: 2024-01-24 13:51+0000\n"
16
16
  "PO-Revision-Date: 2014-02-21 15:50+0000\n"
17
- "Last-Translator: Alex Morega, 2023\n"
17
+ "Last-Translator: Alex Morega, 2023-2024\n"
18
18
  "Language-Team: Romanian (http://app.transifex.com/torchbox/wagtail/language/"
19
19
  "ro/)\n"
20
20
  "MIME-Version: 1.0\n"
@@ -377,7 +377,7 @@ msgid "All items in listing selected"
377
377
  msgstr "Toate articolele din listă selectate"
378
378
 
379
379
  msgid "For search engines"
380
- msgstr "Pentru mașini de căutare"
380
+ msgstr "Pentru motoare de căutare"
381
381
 
382
382
  msgid "For site menus"
383
383
  msgstr "Pentru meniuri"
@@ -28,7 +28,7 @@ class CommentPanel(Panel):
28
28
 
29
29
  @property
30
30
  def clean_name(self):
31
- return super().clean_name or "commments"
31
+ return super().clean_name or "comments"
32
32
 
33
33
  class BoundPanel(Panel.BoundPanel):
34
34
  template_name = "wagtailadmin/panels/comments/comment_panel.html"
@@ -168,7 +168,7 @@ class FieldPanel(Panel):
168
168
  )
169
169
  return
170
170
 
171
- # Ensure heading and help_text are consistant accross
171
+ # Ensure heading and help_text are consistent across
172
172
  # Panel, BoundPanel and Field
173
173
  if self.panel.heading:
174
174
  self.heading = self.bound_field.label = self.panel.heading
@@ -143,7 +143,9 @@ class EditorHTMLConverter:
143
143
  elif isinstance(rule, LinkTypeRule):
144
144
  link_rules[rule.link_type] = rule.handler.expand_db_attributes
145
145
 
146
- return MultiRuleRewriter([LinkRewriter(link_rules), EmbedRewriter(embed_rules)])
146
+ return MultiRuleRewriter(
147
+ [LinkRewriter(rules=link_rules), EmbedRewriter(rules=embed_rules)]
148
+ )
147
149
 
148
150
  def from_database_format(self, html):
149
151
  return self.html_rewriter(html)
@@ -2,7 +2,9 @@ import json
2
2
  import warnings
3
3
 
4
4
  from django.forms import Media, widgets
5
+ from django.urls import reverse_lazy
5
6
  from django.utils.functional import cached_property
7
+ from django.utils.translation import gettext_lazy
6
8
 
7
9
  from wagtail.admin.rich_text.converters.contentstate import ContentstateConverter
8
10
  from wagtail.admin.staticfiles import versioned_static
@@ -11,6 +13,23 @@ from wagtail.telepath import register
11
13
  from wagtail.widget_adapters import WidgetAdapter
12
14
 
13
15
 
16
+ class LazyStringEncoder(json.JSONEncoder):
17
+ """
18
+ Add support for lazy strings to the JSON encoder so that URLs and
19
+ translations can be resolved when rendering the widget only.
20
+ """
21
+
22
+ # The string "Edit" here is arbitrary, chosen because it exists elsewhere in the
23
+ # translations dictionary and is likely to remain in the future.
24
+ lazy_string_types = [type(reverse_lazy("Edit")), type(gettext_lazy("Edit"))]
25
+
26
+ def default(self, obj):
27
+ if type(obj) in self.lazy_string_types:
28
+ return str(obj)
29
+
30
+ return json.JSONEncoder.default(self, obj)
31
+
32
+
14
33
  class DraftailRichTextArea(widgets.HiddenInput):
15
34
  template_name = "wagtailadmin/widgets/draftail_rich_text_area.html"
16
35
  is_hidden = False
@@ -45,7 +64,11 @@ class DraftailRichTextArea(widgets.HiddenInput):
45
64
 
46
65
  self.converter = ContentstateConverter(self.features)
47
66
 
48
- default_attrs = {"data-draftail-input": True}
67
+ default_attrs = {
68
+ "data-draftail-input": True,
69
+ "data-controller": "w-init",
70
+ "data-w-init-event-value": "w-draftail:init",
71
+ }
49
72
  attrs = kwargs.get("attrs")
50
73
  if attrs:
51
74
  default_attrs.update(attrs)
@@ -65,7 +88,10 @@ class DraftailRichTextArea(widgets.HiddenInput):
65
88
 
66
89
  def get_context(self, name, value, attrs):
67
90
  context = super().get_context(name, value, attrs)
68
- context["widget"]["options_json"] = json.dumps(self.options)
91
+ context["widget"]["attrs"]["data-w-init-detail-value"] = json.dumps(
92
+ self.options,
93
+ cls=LazyStringEncoder,
94
+ )
69
95
  return context
70
96
 
71
97
  def value_from_datadict(self, data, files, name):