wagtail 6.4rc1__py3-none-any.whl → 7.0__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 (1657) hide show
  1. wagtail/__init__.py +1 -1
  2. wagtail/actions/copy_page.py +4 -4
  3. wagtail/admin/action_menu.py +3 -0
  4. wagtail/admin/active_filters.py +218 -0
  5. wagtail/admin/auth.py +3 -39
  6. wagtail/admin/filters.py +9 -2
  7. wagtail/admin/forms/choosers.py +8 -7
  8. wagtail/admin/forms/models.py +46 -1
  9. wagtail/admin/forms/pages.py +9 -0
  10. wagtail/admin/locale/ar/LC_MESSAGES/django.mo +0 -0
  11. wagtail/admin/locale/ar/LC_MESSAGES/django.po +31 -34
  12. wagtail/admin/locale/ar/LC_MESSAGES/djangojs.mo +0 -0
  13. wagtail/admin/locale/ar/LC_MESSAGES/djangojs.po +9 -1
  14. wagtail/admin/locale/az_AZ/LC_MESSAGES/django.po +1 -1
  15. wagtail/admin/locale/be/LC_MESSAGES/django.mo +0 -0
  16. wagtail/admin/locale/be/LC_MESSAGES/django.po +28 -29
  17. wagtail/admin/locale/be/LC_MESSAGES/djangojs.mo +0 -0
  18. wagtail/admin/locale/be/LC_MESSAGES/djangojs.po +8 -2
  19. wagtail/admin/locale/bg/LC_MESSAGES/django.mo +0 -0
  20. wagtail/admin/locale/bg/LC_MESSAGES/django.po +3 -7
  21. wagtail/admin/locale/bg/LC_MESSAGES/djangojs.mo +0 -0
  22. wagtail/admin/locale/bg/LC_MESSAGES/djangojs.po +5 -2
  23. wagtail/admin/locale/bn/LC_MESSAGES/django.mo +0 -0
  24. wagtail/admin/locale/bn/LC_MESSAGES/django.po +1 -7
  25. wagtail/admin/locale/ca/LC_MESSAGES/django.mo +0 -0
  26. wagtail/admin/locale/ca/LC_MESSAGES/django.po +131 -122
  27. wagtail/admin/locale/ca/LC_MESSAGES/djangojs.mo +0 -0
  28. wagtail/admin/locale/ca/LC_MESSAGES/djangojs.po +8 -2
  29. wagtail/admin/locale/cs/LC_MESSAGES/django.mo +0 -0
  30. wagtail/admin/locale/cs/LC_MESSAGES/django.po +33 -46
  31. wagtail/admin/locale/cs/LC_MESSAGES/djangojs.mo +0 -0
  32. wagtail/admin/locale/cs/LC_MESSAGES/djangojs.po +9 -3
  33. wagtail/admin/locale/cy/LC_MESSAGES/django.mo +0 -0
  34. wagtail/admin/locale/cy/LC_MESSAGES/django.po +1 -7
  35. wagtail/admin/locale/cy/LC_MESSAGES/djangojs.mo +0 -0
  36. wagtail/admin/locale/cy/LC_MESSAGES/djangojs.po +8 -2
  37. wagtail/admin/locale/da/LC_MESSAGES/django.mo +0 -0
  38. wagtail/admin/locale/da/LC_MESSAGES/django.po +4 -21
  39. wagtail/admin/locale/da/LC_MESSAGES/djangojs.mo +0 -0
  40. wagtail/admin/locale/da/LC_MESSAGES/djangojs.po +5 -2
  41. wagtail/admin/locale/de/LC_MESSAGES/django.mo +0 -0
  42. wagtail/admin/locale/de/LC_MESSAGES/django.po +134 -126
  43. wagtail/admin/locale/de/LC_MESSAGES/djangojs.mo +0 -0
  44. wagtail/admin/locale/de/LC_MESSAGES/djangojs.po +9 -2
  45. wagtail/admin/locale/dv/LC_MESSAGES/django.mo +0 -0
  46. wagtail/admin/locale/dv/LC_MESSAGES/django.po +13 -61
  47. wagtail/admin/locale/dv/LC_MESSAGES/djangojs.mo +0 -0
  48. wagtail/admin/locale/dv/LC_MESSAGES/djangojs.po +8 -2
  49. wagtail/admin/locale/el/LC_MESSAGES/django.mo +0 -0
  50. wagtail/admin/locale/el/LC_MESSAGES/django.po +9 -71
  51. wagtail/admin/locale/el/LC_MESSAGES/djangojs.mo +0 -0
  52. wagtail/admin/locale/el/LC_MESSAGES/djangojs.po +9 -2
  53. wagtail/admin/locale/en/LC_MESSAGES/django.po +386 -319
  54. wagtail/admin/locale/en/LC_MESSAGES/djangojs.po +11 -7
  55. wagtail/admin/locale/en_IN/LC_MESSAGES/djangojs.po +2 -2
  56. wagtail/admin/locale/es/LC_MESSAGES/django.mo +0 -0
  57. wagtail/admin/locale/es/LC_MESSAGES/django.po +37 -147
  58. wagtail/admin/locale/es/LC_MESSAGES/djangojs.mo +0 -0
  59. wagtail/admin/locale/es/LC_MESSAGES/djangojs.po +9 -3
  60. wagtail/admin/locale/es_419/LC_MESSAGES/django.mo +0 -0
  61. wagtail/admin/locale/es_419/LC_MESSAGES/django.po +2 -7
  62. wagtail/admin/locale/es_VE/LC_MESSAGES/django.po +2 -1
  63. wagtail/admin/locale/es_VE/LC_MESSAGES/djangojs.po +2 -2
  64. wagtail/admin/locale/et/LC_MESSAGES/django.mo +0 -0
  65. wagtail/admin/locale/et/LC_MESSAGES/django.po +31 -38
  66. wagtail/admin/locale/et/LC_MESSAGES/djangojs.mo +0 -0
  67. wagtail/admin/locale/et/LC_MESSAGES/djangojs.po +8 -2
  68. wagtail/admin/locale/eu/LC_MESSAGES/django.po +1 -1
  69. wagtail/admin/locale/eu/LC_MESSAGES/djangojs.mo +0 -0
  70. wagtail/admin/locale/eu/LC_MESSAGES/djangojs.po +5 -2
  71. wagtail/admin/locale/fa/LC_MESSAGES/django.mo +0 -0
  72. wagtail/admin/locale/fa/LC_MESSAGES/django.po +11 -112
  73. wagtail/admin/locale/fa/LC_MESSAGES/djangojs.mo +0 -0
  74. wagtail/admin/locale/fa/LC_MESSAGES/djangojs.po +9 -2
  75. wagtail/admin/locale/fi/LC_MESSAGES/django.mo +0 -0
  76. wagtail/admin/locale/fi/LC_MESSAGES/django.po +34 -63
  77. wagtail/admin/locale/fi/LC_MESSAGES/djangojs.mo +0 -0
  78. wagtail/admin/locale/fi/LC_MESSAGES/djangojs.po +9 -3
  79. wagtail/admin/locale/fr/LC_MESSAGES/django.mo +0 -0
  80. wagtail/admin/locale/fr/LC_MESSAGES/django.po +139 -134
  81. wagtail/admin/locale/fr/LC_MESSAGES/djangojs.mo +0 -0
  82. wagtail/admin/locale/fr/LC_MESSAGES/djangojs.po +8 -2
  83. wagtail/admin/locale/gl/LC_MESSAGES/django.mo +0 -0
  84. wagtail/admin/locale/gl/LC_MESSAGES/django.po +130 -121
  85. wagtail/admin/locale/gl/LC_MESSAGES/djangojs.mo +0 -0
  86. wagtail/admin/locale/gl/LC_MESSAGES/djangojs.po +8 -2
  87. wagtail/admin/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  88. wagtail/admin/locale/he_IL/LC_MESSAGES/django.po +5 -9
  89. wagtail/admin/locale/he_IL/LC_MESSAGES/djangojs.mo +0 -0
  90. wagtail/admin/locale/he_IL/LC_MESSAGES/djangojs.po +7 -4
  91. wagtail/admin/locale/hr_HR/LC_MESSAGES/django.mo +0 -0
  92. wagtail/admin/locale/hr_HR/LC_MESSAGES/django.po +31 -38
  93. wagtail/admin/locale/hr_HR/LC_MESSAGES/djangojs.mo +0 -0
  94. wagtail/admin/locale/hr_HR/LC_MESSAGES/djangojs.po +10 -4
  95. wagtail/admin/locale/ht/LC_MESSAGES/django.po +1 -1
  96. wagtail/admin/locale/hu/LC_MESSAGES/django.mo +0 -0
  97. wagtail/admin/locale/hu/LC_MESSAGES/django.po +340 -115
  98. wagtail/admin/locale/hu/LC_MESSAGES/djangojs.mo +0 -0
  99. wagtail/admin/locale/hu/LC_MESSAGES/djangojs.po +13 -2
  100. wagtail/admin/locale/id_ID/LC_MESSAGES/django.mo +0 -0
  101. wagtail/admin/locale/id_ID/LC_MESSAGES/django.po +12 -27
  102. wagtail/admin/locale/id_ID/LC_MESSAGES/djangojs.mo +0 -0
  103. wagtail/admin/locale/id_ID/LC_MESSAGES/djangojs.po +5 -1
  104. wagtail/admin/locale/is_IS/LC_MESSAGES/django.mo +0 -0
  105. wagtail/admin/locale/is_IS/LC_MESSAGES/django.po +35 -144
  106. wagtail/admin/locale/is_IS/LC_MESSAGES/djangojs.mo +0 -0
  107. wagtail/admin/locale/is_IS/LC_MESSAGES/djangojs.po +11 -5
  108. wagtail/admin/locale/it/LC_MESSAGES/django.mo +0 -0
  109. wagtail/admin/locale/it/LC_MESSAGES/django.po +38 -164
  110. wagtail/admin/locale/it/LC_MESSAGES/djangojs.mo +0 -0
  111. wagtail/admin/locale/it/LC_MESSAGES/djangojs.po +9 -3
  112. wagtail/admin/locale/ja/LC_MESSAGES/django.mo +0 -0
  113. wagtail/admin/locale/ja/LC_MESSAGES/django.po +15 -40
  114. wagtail/admin/locale/ja/LC_MESSAGES/djangojs.mo +0 -0
  115. wagtail/admin/locale/ja/LC_MESSAGES/djangojs.po +9 -2
  116. wagtail/admin/locale/ka/LC_MESSAGES/django.po +1 -1
  117. wagtail/admin/locale/ko/LC_MESSAGES/django.mo +0 -0
  118. wagtail/admin/locale/ko/LC_MESSAGES/django.po +96 -114
  119. wagtail/admin/locale/ko/LC_MESSAGES/djangojs.mo +0 -0
  120. wagtail/admin/locale/ko/LC_MESSAGES/djangojs.po +21 -2
  121. wagtail/admin/locale/lt/LC_MESSAGES/django.mo +0 -0
  122. wagtail/admin/locale/lt/LC_MESSAGES/django.po +31 -40
  123. wagtail/admin/locale/lt/LC_MESSAGES/djangojs.mo +0 -0
  124. wagtail/admin/locale/lt/LC_MESSAGES/djangojs.po +8 -2
  125. wagtail/admin/locale/lv/LC_MESSAGES/django.mo +0 -0
  126. wagtail/admin/locale/lv/LC_MESSAGES/django.po +10 -13
  127. wagtail/admin/locale/lv/LC_MESSAGES/djangojs.mo +0 -0
  128. wagtail/admin/locale/lv/LC_MESSAGES/djangojs.po +8 -2
  129. wagtail/admin/locale/mi/LC_MESSAGES/django.po +1 -1
  130. wagtail/admin/locale/mi/LC_MESSAGES/djangojs.mo +0 -0
  131. wagtail/admin/locale/mi/LC_MESSAGES/djangojs.po +8 -2
  132. wagtail/admin/locale/mn/LC_MESSAGES/django.mo +0 -0
  133. wagtail/admin/locale/mn/LC_MESSAGES/django.po +14 -24
  134. wagtail/admin/locale/mn/LC_MESSAGES/djangojs.mo +0 -0
  135. wagtail/admin/locale/mn/LC_MESSAGES/djangojs.po +5 -2
  136. wagtail/admin/locale/my/LC_MESSAGES/django.po +1 -1
  137. wagtail/admin/locale/nb/LC_MESSAGES/django.mo +0 -0
  138. wagtail/admin/locale/nb/LC_MESSAGES/django.po +32 -37
  139. wagtail/admin/locale/nb/LC_MESSAGES/djangojs.mo +0 -0
  140. wagtail/admin/locale/nb/LC_MESSAGES/djangojs.po +11 -4
  141. wagtail/admin/locale/nl/LC_MESSAGES/django.mo +0 -0
  142. wagtail/admin/locale/nl/LC_MESSAGES/django.po +102 -132
  143. wagtail/admin/locale/nl/LC_MESSAGES/djangojs.mo +0 -0
  144. wagtail/admin/locale/nl/LC_MESSAGES/djangojs.po +9 -3
  145. wagtail/admin/locale/pl/LC_MESSAGES/django.mo +0 -0
  146. wagtail/admin/locale/pl/LC_MESSAGES/django.po +38 -106
  147. wagtail/admin/locale/pl/LC_MESSAGES/djangojs.mo +0 -0
  148. wagtail/admin/locale/pl/LC_MESSAGES/djangojs.po +8 -2
  149. wagtail/admin/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  150. wagtail/admin/locale/pt_BR/LC_MESSAGES/django.po +38 -151
  151. wagtail/admin/locale/pt_BR/LC_MESSAGES/djangojs.mo +0 -0
  152. wagtail/admin/locale/pt_BR/LC_MESSAGES/djangojs.po +10 -4
  153. wagtail/admin/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
  154. wagtail/admin/locale/pt_PT/LC_MESSAGES/django.po +32 -137
  155. wagtail/admin/locale/pt_PT/LC_MESSAGES/djangojs.mo +0 -0
  156. wagtail/admin/locale/pt_PT/LC_MESSAGES/djangojs.po +9 -3
  157. wagtail/admin/locale/ro/LC_MESSAGES/django.mo +0 -0
  158. wagtail/admin/locale/ro/LC_MESSAGES/django.po +35 -161
  159. wagtail/admin/locale/ro/LC_MESSAGES/djangojs.mo +0 -0
  160. wagtail/admin/locale/ro/LC_MESSAGES/djangojs.po +9 -3
  161. wagtail/admin/locale/ru/LC_MESSAGES/django.mo +0 -0
  162. wagtail/admin/locale/ru/LC_MESSAGES/django.po +100 -157
  163. wagtail/admin/locale/ru/LC_MESSAGES/djangojs.mo +0 -0
  164. wagtail/admin/locale/ru/LC_MESSAGES/djangojs.po +9 -3
  165. wagtail/admin/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
  166. wagtail/admin/locale/sk_SK/LC_MESSAGES/django.po +6 -17
  167. wagtail/admin/locale/sk_SK/LC_MESSAGES/djangojs.mo +0 -0
  168. wagtail/admin/locale/sk_SK/LC_MESSAGES/djangojs.po +10 -4
  169. wagtail/admin/locale/sl/LC_MESSAGES/django.mo +0 -0
  170. wagtail/admin/locale/sl/LC_MESSAGES/django.po +36 -77
  171. wagtail/admin/locale/sl/LC_MESSAGES/djangojs.mo +0 -0
  172. wagtail/admin/locale/sl/LC_MESSAGES/djangojs.po +8 -2
  173. wagtail/admin/locale/sv/LC_MESSAGES/django.mo +0 -0
  174. wagtail/admin/locale/sv/LC_MESSAGES/django.po +35 -129
  175. wagtail/admin/locale/sv/LC_MESSAGES/djangojs.mo +0 -0
  176. wagtail/admin/locale/sv/LC_MESSAGES/djangojs.po +9 -3
  177. wagtail/admin/locale/tet/LC_MESSAGES/django.mo +0 -0
  178. wagtail/admin/locale/tet/LC_MESSAGES/django.po +6 -21
  179. wagtail/admin/locale/tet/LC_MESSAGES/djangojs.mo +0 -0
  180. wagtail/admin/locale/tet/LC_MESSAGES/djangojs.po +9 -3
  181. wagtail/admin/locale/th/LC_MESSAGES/django.mo +0 -0
  182. wagtail/admin/locale/th/LC_MESSAGES/django.po +11 -33
  183. wagtail/admin/locale/th/LC_MESSAGES/djangojs.mo +0 -0
  184. wagtail/admin/locale/th/LC_MESSAGES/djangojs.po +5 -2
  185. wagtail/admin/locale/tr/LC_MESSAGES/django.mo +0 -0
  186. wagtail/admin/locale/tr/LC_MESSAGES/django.po +29 -29
  187. wagtail/admin/locale/tr/LC_MESSAGES/djangojs.mo +0 -0
  188. wagtail/admin/locale/tr/LC_MESSAGES/djangojs.po +9 -3
  189. wagtail/admin/locale/tr_TR/LC_MESSAGES/django.mo +0 -0
  190. wagtail/admin/locale/tr_TR/LC_MESSAGES/django.po +29 -29
  191. wagtail/admin/locale/tr_TR/LC_MESSAGES/djangojs.mo +0 -0
  192. wagtail/admin/locale/tr_TR/LC_MESSAGES/djangojs.po +11 -4
  193. wagtail/admin/locale/ug/LC_MESSAGES/django.mo +0 -0
  194. wagtail/admin/locale/ug/LC_MESSAGES/django.po +17 -134
  195. wagtail/admin/locale/ug/LC_MESSAGES/djangojs.mo +0 -0
  196. wagtail/admin/locale/ug/LC_MESSAGES/djangojs.po +8 -2
  197. wagtail/admin/locale/uk/LC_MESSAGES/django.mo +0 -0
  198. wagtail/admin/locale/uk/LC_MESSAGES/django.po +31 -161
  199. wagtail/admin/locale/uk/LC_MESSAGES/djangojs.mo +0 -0
  200. wagtail/admin/locale/uk/LC_MESSAGES/djangojs.po +10 -4
  201. wagtail/admin/locale/vi/LC_MESSAGES/django.mo +0 -0
  202. wagtail/admin/locale/vi/LC_MESSAGES/django.po +2 -8
  203. wagtail/admin/locale/vi/LC_MESSAGES/djangojs.mo +0 -0
  204. wagtail/admin/locale/vi/LC_MESSAGES/djangojs.po +5 -2
  205. wagtail/admin/locale/zh/LC_MESSAGES/django.mo +0 -0
  206. wagtail/admin/locale/zh/LC_MESSAGES/django.po +2 -6
  207. wagtail/admin/locale/zh/LC_MESSAGES/djangojs.mo +0 -0
  208. wagtail/admin/locale/zh/LC_MESSAGES/djangojs.po +5 -2
  209. wagtail/admin/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  210. wagtail/admin/locale/zh_Hans/LC_MESSAGES/django.po +38 -112
  211. wagtail/admin/locale/zh_Hans/LC_MESSAGES/djangojs.mo +0 -0
  212. wagtail/admin/locale/zh_Hans/LC_MESSAGES/djangojs.po +11 -5
  213. wagtail/admin/locale/zh_Hant/LC_MESSAGES/django.mo +0 -0
  214. wagtail/admin/locale/zh_Hant/LC_MESSAGES/django.po +12 -33
  215. wagtail/admin/locale/zh_Hant/LC_MESSAGES/djangojs.mo +0 -0
  216. wagtail/admin/locale/zh_Hant/LC_MESSAGES/djangojs.po +10 -4
  217. wagtail/admin/localization.py +42 -1
  218. wagtail/admin/menu.py +1 -10
  219. wagtail/admin/paginator.py +95 -0
  220. wagtail/admin/panels/field_panel.py +27 -6
  221. wagtail/admin/panels/inline_panel.py +28 -11
  222. wagtail/admin/panels/multiple_chooser_panel.py +3 -3
  223. wagtail/admin/rich_text/converters/html_to_contentstate.py +6 -6
  224. wagtail/admin/search.py +1 -10
  225. wagtail/admin/static/wagtailadmin/css/core.css +1 -1
  226. wagtail/admin/static/wagtailadmin/css/panels/draftail.css +1 -1
  227. wagtail/admin/static/wagtailadmin/js/bulk-actions.js +1 -1
  228. wagtail/admin/static/wagtailadmin/js/comments.js +1 -1
  229. wagtail/admin/static/wagtailadmin/js/core.js +1 -1
  230. wagtail/admin/static/wagtailadmin/js/draftail.js +1 -1
  231. wagtail/admin/static/wagtailadmin/js/sidebar.js +1 -1
  232. wagtail/admin/static/wagtailadmin/js/telepath/blocks.js +1 -1
  233. wagtail/admin/static/wagtailadmin/js/telepath/widgets.js +1 -1
  234. wagtail/admin/static/wagtailadmin/js/vendor.js +1 -1
  235. wagtail/admin/static/wagtailadmin/js/vendor.js.LICENSE.txt +32 -11
  236. wagtail/admin/static/wagtailadmin/js/wagtailadmin.js +1 -1
  237. wagtail/admin/static/wagtailadmin/js/workflow-action.js +1 -1
  238. wagtail/admin/templates/wagtailadmin/admin_base.html +1 -0
  239. wagtail/admin/templates/wagtailadmin/generic/index.html +7 -2
  240. wagtail/admin/templates/wagtailadmin/home/upgrade_notification.html +1 -0
  241. wagtail/admin/templates/wagtailadmin/pages/_editor_js.html +2 -3
  242. wagtail/admin/templates/wagtailadmin/pages/action_menu/publish.html +2 -2
  243. wagtail/admin/templates/wagtailadmin/pages/bulk_actions/confirm_bulk_move.html +0 -1
  244. wagtail/admin/templates/wagtailadmin/pages/move_choose_destination.html +0 -1
  245. wagtail/admin/templates/wagtailadmin/panels/publishing/schedule_publishing_panel.html +1 -1
  246. wagtail/admin/templates/wagtailadmin/shared/active_filters.html +8 -1
  247. wagtail/admin/templates/wagtailadmin/shared/pagination_nav.html +25 -13
  248. wagtail/admin/templates/wagtailadmin/shared/side_panels/includes/status/privacy.html +1 -2
  249. wagtail/admin/templates/wagtailadmin/shared/side_panels/includes/status/workflow.html +1 -1
  250. wagtail/admin/templates/wagtailadmin/skeleton.html +2 -1
  251. wagtail/admin/templates/wagtailadmin/tables/locale_cell.html +4 -0
  252. wagtail/admin/templates/wagtailadmin/userbar/base.html +10 -8
  253. wagtail/admin/templatetags/wagtailadmin_tags.py +57 -132
  254. wagtail/admin/tests/pages/test_bulk_actions/test_bulk_move.py +31 -0
  255. wagtail/admin/tests/pages/test_create_page.py +627 -0
  256. wagtail/admin/tests/pages/test_edit_page.py +102 -18
  257. wagtail/admin/tests/pages/test_explorer_view.py +55 -26
  258. wagtail/admin/tests/pages/test_page_search.py +10 -0
  259. wagtail/admin/tests/pages/test_page_usage.py +2 -1
  260. wagtail/admin/tests/pages/test_preview.py +176 -36
  261. wagtail/admin/tests/pages/test_revisions.py +4 -7
  262. wagtail/admin/tests/test_account_management.py +1 -1
  263. wagtail/admin/tests/test_admin_search.py +1 -0
  264. wagtail/admin/tests/test_block_preview.py +4 -0
  265. wagtail/admin/tests/test_buttons_hooks.py +9 -145
  266. wagtail/admin/tests/test_collections_views.py +60 -0
  267. wagtail/admin/tests/test_contentstate.py +1 -1
  268. wagtail/admin/tests/test_dashboard.py +25 -0
  269. wagtail/admin/tests/test_edit_handlers.py +64 -0
  270. wagtail/admin/tests/test_forms.py +38 -0
  271. wagtail/admin/tests/test_keyboard_shortcuts.py +141 -5
  272. wagtail/admin/tests/test_page_chooser.py +2 -2
  273. wagtail/admin/tests/test_paginator.py +86 -0
  274. wagtail/admin/tests/test_privacy.py +12 -1
  275. wagtail/admin/tests/test_reports_views.py +8 -43
  276. wagtail/admin/tests/test_rich_text.py +14 -0
  277. wagtail/admin/tests/test_templatetags.py +50 -36
  278. wagtail/admin/tests/test_upgrade_notification.py +3 -0
  279. wagtail/admin/tests/test_userbar.py +79 -15
  280. wagtail/admin/tests/test_views.py +16 -1
  281. wagtail/admin/tests/test_widgets.py +47 -8
  282. wagtail/admin/tests/test_workflows.py +119 -6
  283. wagtail/admin/tests/tests.py +16 -15
  284. wagtail/admin/tests/ui/test_sidebar.py +0 -27
  285. wagtail/admin/tests/viewsets/test_chooser_viewset.py +38 -4
  286. wagtail/admin/tests/viewsets/test_model_viewset.py +1 -37
  287. wagtail/admin/ui/side_panels.py +14 -16
  288. wagtail/admin/ui/sidebar.py +5 -37
  289. wagtail/admin/ui/tables/__init__.py +34 -2
  290. wagtail/admin/ui/tables/pages.py +9 -0
  291. wagtail/admin/urls/__init__.py +2 -2
  292. wagtail/admin/urls/pages.py +3 -1
  293. wagtail/admin/userbar.py +3 -5
  294. wagtail/admin/utils.py +43 -4
  295. wagtail/admin/views/generic/base.py +16 -115
  296. wagtail/admin/views/generic/chooser.py +25 -8
  297. wagtail/admin/views/generic/mixins.py +45 -11
  298. wagtail/admin/views/generic/models.py +15 -30
  299. wagtail/admin/views/generic/preview.py +11 -3
  300. wagtail/admin/views/generic/workflow.py +11 -1
  301. wagtail/admin/views/i18n.py +14 -0
  302. wagtail/admin/views/pages/bulk_actions/move.py +1 -1
  303. wagtail/admin/views/pages/create.py +68 -6
  304. wagtail/admin/views/pages/edit.py +33 -14
  305. wagtail/admin/views/pages/listing.py +3 -2
  306. wagtail/admin/views/pages/move.py +43 -29
  307. wagtail/admin/views/pages/preview.py +15 -2
  308. wagtail/admin/views/pages/search.py +3 -0
  309. wagtail/admin/views/reports/base.py +0 -22
  310. wagtail/admin/views/reports/page_types_usage.py +2 -1
  311. wagtail/admin/views/tags.py +3 -1
  312. wagtail/admin/views/workflows.py +0 -3
  313. wagtail/admin/viewsets/model.py +5 -48
  314. wagtail/admin/wagtail_hooks.py +16 -17
  315. wagtail/admin/widgets/button.py +3 -33
  316. wagtail/admin/widgets/tags.py +31 -3
  317. wagtail/api/v2/views.py +4 -4
  318. wagtail/blocks/base.py +78 -34
  319. wagtail/blocks/field_block.py +2 -1
  320. wagtail/blocks/list_block.py +2 -1
  321. wagtail/blocks/migrations/operations.py +10 -10
  322. wagtail/blocks/stream_block.py +19 -11
  323. wagtail/blocks/struct_block.py +4 -0
  324. wagtail/compat.py +17 -1
  325. wagtail/contrib/forms/forms.py +64 -31
  326. wagtail/contrib/forms/locale/af/LC_MESSAGES/django.po +1 -1
  327. wagtail/contrib/forms/locale/ar/LC_MESSAGES/django.mo +0 -0
  328. wagtail/contrib/forms/locale/ar/LC_MESSAGES/django.po +1 -7
  329. wagtail/contrib/forms/locale/az_AZ/LC_MESSAGES/django.po +1 -1
  330. wagtail/contrib/forms/locale/be/LC_MESSAGES/django.mo +0 -0
  331. wagtail/contrib/forms/locale/be/LC_MESSAGES/django.po +1 -7
  332. wagtail/contrib/forms/locale/bg/LC_MESSAGES/django.po +1 -1
  333. wagtail/contrib/forms/locale/bn/LC_MESSAGES/django.po +1 -1
  334. wagtail/contrib/forms/locale/ca/LC_MESSAGES/django.mo +0 -0
  335. wagtail/contrib/forms/locale/ca/LC_MESSAGES/django.po +15 -6
  336. wagtail/contrib/forms/locale/cs/LC_MESSAGES/django.mo +0 -0
  337. wagtail/contrib/forms/locale/cs/LC_MESSAGES/django.po +2 -9
  338. wagtail/contrib/forms/locale/cy/LC_MESSAGES/django.mo +0 -0
  339. wagtail/contrib/forms/locale/cy/LC_MESSAGES/django.po +2 -7
  340. wagtail/contrib/forms/locale/da/LC_MESSAGES/django.po +1 -1
  341. wagtail/contrib/forms/locale/de/LC_MESSAGES/django.mo +0 -0
  342. wagtail/contrib/forms/locale/de/LC_MESSAGES/django.po +3 -10
  343. wagtail/contrib/forms/locale/dv/LC_MESSAGES/django.po +2 -1
  344. wagtail/contrib/forms/locale/el/LC_MESSAGES/django.mo +0 -0
  345. wagtail/contrib/forms/locale/el/LC_MESSAGES/django.po +1 -9
  346. wagtail/contrib/forms/locale/en/LC_MESSAGES/django.po +13 -6
  347. wagtail/contrib/forms/locale/es/LC_MESSAGES/django.mo +0 -0
  348. wagtail/contrib/forms/locale/es/LC_MESSAGES/django.po +1 -9
  349. wagtail/contrib/forms/locale/es_419/LC_MESSAGES/django.po +1 -1
  350. wagtail/contrib/forms/locale/et/LC_MESSAGES/django.mo +0 -0
  351. wagtail/contrib/forms/locale/et/LC_MESSAGES/django.po +1 -7
  352. wagtail/contrib/forms/locale/eu/LC_MESSAGES/django.po +1 -1
  353. wagtail/contrib/forms/locale/fa/LC_MESSAGES/django.mo +0 -0
  354. wagtail/contrib/forms/locale/fa/LC_MESSAGES/django.po +1 -7
  355. wagtail/contrib/forms/locale/fi/LC_MESSAGES/django.mo +0 -0
  356. wagtail/contrib/forms/locale/fi/LC_MESSAGES/django.po +1 -9
  357. wagtail/contrib/forms/locale/fr/LC_MESSAGES/django.mo +0 -0
  358. wagtail/contrib/forms/locale/fr/LC_MESSAGES/django.po +8 -6
  359. wagtail/contrib/forms/locale/gl/LC_MESSAGES/django.mo +0 -0
  360. wagtail/contrib/forms/locale/gl/LC_MESSAGES/django.po +17 -6
  361. wagtail/contrib/forms/locale/he_IL/LC_MESSAGES/django.po +1 -1
  362. wagtail/contrib/forms/locale/hr_HR/LC_MESSAGES/django.mo +0 -0
  363. wagtail/contrib/forms/locale/hr_HR/LC_MESSAGES/django.po +1 -9
  364. wagtail/contrib/forms/locale/ht/LC_MESSAGES/django.po +1 -1
  365. wagtail/contrib/forms/locale/hu/LC_MESSAGES/django.mo +0 -0
  366. wagtail/contrib/forms/locale/hu/LC_MESSAGES/django.po +1 -9
  367. wagtail/contrib/forms/locale/hy/LC_MESSAGES/django.po +1 -1
  368. wagtail/contrib/forms/locale/id_ID/LC_MESSAGES/django.mo +0 -0
  369. wagtail/contrib/forms/locale/id_ID/LC_MESSAGES/django.po +1 -9
  370. wagtail/contrib/forms/locale/is_IS/LC_MESSAGES/django.mo +0 -0
  371. wagtail/contrib/forms/locale/is_IS/LC_MESSAGES/django.po +1 -9
  372. wagtail/contrib/forms/locale/it/LC_MESSAGES/django.mo +0 -0
  373. wagtail/contrib/forms/locale/it/LC_MESSAGES/django.po +1 -7
  374. wagtail/contrib/forms/locale/ja/LC_MESSAGES/django.mo +0 -0
  375. wagtail/contrib/forms/locale/ja/LC_MESSAGES/django.po +1 -9
  376. wagtail/contrib/forms/locale/ka/LC_MESSAGES/django.po +1 -1
  377. wagtail/contrib/forms/locale/ko/LC_MESSAGES/django.mo +0 -0
  378. wagtail/contrib/forms/locale/ko/LC_MESSAGES/django.po +1 -9
  379. wagtail/contrib/forms/locale/lt/LC_MESSAGES/django.mo +0 -0
  380. wagtail/contrib/forms/locale/lt/LC_MESSAGES/django.po +1 -8
  381. wagtail/contrib/forms/locale/lv/LC_MESSAGES/django.po +1 -1
  382. wagtail/contrib/forms/locale/mi/LC_MESSAGES/django.po +1 -1
  383. wagtail/contrib/forms/locale/mn/LC_MESSAGES/django.mo +0 -0
  384. wagtail/contrib/forms/locale/mn/LC_MESSAGES/django.po +3 -2
  385. wagtail/contrib/forms/locale/my/LC_MESSAGES/django.mo +0 -0
  386. wagtail/contrib/forms/locale/my/LC_MESSAGES/django.po +1 -7
  387. wagtail/contrib/forms/locale/nb/LC_MESSAGES/django.mo +0 -0
  388. wagtail/contrib/forms/locale/nb/LC_MESSAGES/django.po +1 -8
  389. wagtail/contrib/forms/locale/nl/LC_MESSAGES/django.mo +0 -0
  390. wagtail/contrib/forms/locale/nl/LC_MESSAGES/django.po +2 -10
  391. wagtail/contrib/forms/locale/pl/LC_MESSAGES/django.mo +0 -0
  392. wagtail/contrib/forms/locale/pl/LC_MESSAGES/django.po +2 -8
  393. wagtail/contrib/forms/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  394. wagtail/contrib/forms/locale/pt_BR/LC_MESSAGES/django.po +2 -8
  395. wagtail/contrib/forms/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
  396. wagtail/contrib/forms/locale/pt_PT/LC_MESSAGES/django.po +1 -8
  397. wagtail/contrib/forms/locale/ro/LC_MESSAGES/django.mo +0 -0
  398. wagtail/contrib/forms/locale/ro/LC_MESSAGES/django.po +2 -8
  399. wagtail/contrib/forms/locale/ru/LC_MESSAGES/django.mo +0 -0
  400. wagtail/contrib/forms/locale/ru/LC_MESSAGES/django.po +2 -7
  401. wagtail/contrib/forms/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
  402. wagtail/contrib/forms/locale/sk_SK/LC_MESSAGES/django.po +1 -8
  403. wagtail/contrib/forms/locale/sl/LC_MESSAGES/django.mo +0 -0
  404. wagtail/contrib/forms/locale/sl/LC_MESSAGES/django.po +2 -8
  405. wagtail/contrib/forms/locale/sv/LC_MESSAGES/django.mo +0 -0
  406. wagtail/contrib/forms/locale/sv/LC_MESSAGES/django.po +1 -9
  407. wagtail/contrib/forms/locale/tet/LC_MESSAGES/django.mo +0 -0
  408. wagtail/contrib/forms/locale/tet/LC_MESSAGES/django.po +1 -9
  409. wagtail/contrib/forms/locale/th/LC_MESSAGES/django.mo +0 -0
  410. wagtail/contrib/forms/locale/th/LC_MESSAGES/django.po +1 -7
  411. wagtail/contrib/forms/locale/tr/LC_MESSAGES/django.mo +0 -0
  412. wagtail/contrib/forms/locale/tr/LC_MESSAGES/django.po +1 -7
  413. wagtail/contrib/forms/locale/tr_TR/LC_MESSAGES/django.mo +0 -0
  414. wagtail/contrib/forms/locale/tr_TR/LC_MESSAGES/django.po +1 -7
  415. wagtail/contrib/forms/locale/ug/LC_MESSAGES/django.mo +0 -0
  416. wagtail/contrib/forms/locale/ug/LC_MESSAGES/django.po +1 -7
  417. wagtail/contrib/forms/locale/uk/LC_MESSAGES/django.mo +0 -0
  418. wagtail/contrib/forms/locale/uk/LC_MESSAGES/django.po +1 -7
  419. wagtail/contrib/forms/locale/vi/LC_MESSAGES/django.po +1 -1
  420. wagtail/contrib/forms/locale/zh/LC_MESSAGES/django.po +1 -1
  421. wagtail/contrib/forms/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  422. wagtail/contrib/forms/locale/zh_Hans/LC_MESSAGES/django.po +2 -8
  423. wagtail/contrib/forms/locale/zh_Hant/LC_MESSAGES/django.mo +0 -0
  424. wagtail/contrib/forms/locale/zh_Hant/LC_MESSAGES/django.po +1 -7
  425. wagtail/contrib/forms/tests/test_forms.py +62 -0
  426. wagtail/contrib/forms/tests/test_views.py +161 -5
  427. wagtail/contrib/frontend_cache/backends/cloudfront.py +1 -29
  428. wagtail/contrib/frontend_cache/tests.py +112 -52
  429. wagtail/contrib/frontend_cache/utils.py +109 -17
  430. wagtail/contrib/redirects/forms.py +3 -2
  431. wagtail/contrib/redirects/locale/ar/LC_MESSAGES/django.mo +0 -0
  432. wagtail/contrib/redirects/locale/ar/LC_MESSAGES/django.po +7 -16
  433. wagtail/contrib/redirects/locale/be/LC_MESSAGES/django.mo +0 -0
  434. wagtail/contrib/redirects/locale/be/LC_MESSAGES/django.po +1 -10
  435. wagtail/contrib/redirects/locale/bg/LC_MESSAGES/django.mo +0 -0
  436. wagtail/contrib/redirects/locale/bg/LC_MESSAGES/django.po +4 -13
  437. wagtail/contrib/redirects/locale/bn/LC_MESSAGES/django.mo +0 -0
  438. wagtail/contrib/redirects/locale/bn/LC_MESSAGES/django.po +1 -7
  439. wagtail/contrib/redirects/locale/ca/LC_MESSAGES/django.mo +0 -0
  440. wagtail/contrib/redirects/locale/ca/LC_MESSAGES/django.po +8 -17
  441. wagtail/contrib/redirects/locale/cs/LC_MESSAGES/django.mo +0 -0
  442. wagtail/contrib/redirects/locale/cs/LC_MESSAGES/django.po +7 -16
  443. wagtail/contrib/redirects/locale/cy/LC_MESSAGES/django.mo +0 -0
  444. wagtail/contrib/redirects/locale/cy/LC_MESSAGES/django.po +8 -16
  445. wagtail/contrib/redirects/locale/da/LC_MESSAGES/django.mo +0 -0
  446. wagtail/contrib/redirects/locale/da/LC_MESSAGES/django.po +1 -10
  447. wagtail/contrib/redirects/locale/de/LC_MESSAGES/django.mo +0 -0
  448. wagtail/contrib/redirects/locale/de/LC_MESSAGES/django.po +8 -16
  449. wagtail/contrib/redirects/locale/dv/LC_MESSAGES/django.mo +0 -0
  450. wagtail/contrib/redirects/locale/dv/LC_MESSAGES/django.po +2 -10
  451. wagtail/contrib/redirects/locale/el/LC_MESSAGES/django.mo +0 -0
  452. wagtail/contrib/redirects/locale/el/LC_MESSAGES/django.po +7 -16
  453. wagtail/contrib/redirects/locale/en/LC_MESSAGES/django.po +8 -8
  454. wagtail/contrib/redirects/locale/en_IN/LC_MESSAGES/django.po +1 -1
  455. wagtail/contrib/redirects/locale/es/LC_MESSAGES/django.mo +0 -0
  456. wagtail/contrib/redirects/locale/es/LC_MESSAGES/django.po +7 -16
  457. wagtail/contrib/redirects/locale/es_419/LC_MESSAGES/django.mo +0 -0
  458. wagtail/contrib/redirects/locale/es_419/LC_MESSAGES/django.po +1 -7
  459. wagtail/contrib/redirects/locale/es_VE/LC_MESSAGES/django.po +1 -1
  460. wagtail/contrib/redirects/locale/et/LC_MESSAGES/django.mo +0 -0
  461. wagtail/contrib/redirects/locale/et/LC_MESSAGES/django.po +7 -16
  462. wagtail/contrib/redirects/locale/eu/LC_MESSAGES/django.mo +0 -0
  463. wagtail/contrib/redirects/locale/eu/LC_MESSAGES/django.po +1 -4
  464. wagtail/contrib/redirects/locale/fa/LC_MESSAGES/django.mo +0 -0
  465. wagtail/contrib/redirects/locale/fa/LC_MESSAGES/django.po +9 -17
  466. wagtail/contrib/redirects/locale/fi/LC_MESSAGES/django.mo +0 -0
  467. wagtail/contrib/redirects/locale/fi/LC_MESSAGES/django.po +8 -17
  468. wagtail/contrib/redirects/locale/fr/LC_MESSAGES/django.mo +0 -0
  469. wagtail/contrib/redirects/locale/fr/LC_MESSAGES/django.po +9 -16
  470. wagtail/contrib/redirects/locale/gl/LC_MESSAGES/django.mo +0 -0
  471. wagtail/contrib/redirects/locale/gl/LC_MESSAGES/django.po +7 -16
  472. wagtail/contrib/redirects/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  473. wagtail/contrib/redirects/locale/he_IL/LC_MESSAGES/django.po +7 -16
  474. wagtail/contrib/redirects/locale/hi/LC_MESSAGES/django.po +1 -1
  475. wagtail/contrib/redirects/locale/hr_HR/LC_MESSAGES/django.mo +0 -0
  476. wagtail/contrib/redirects/locale/hr_HR/LC_MESSAGES/django.po +7 -16
  477. wagtail/contrib/redirects/locale/ht/LC_MESSAGES/django.mo +0 -0
  478. wagtail/contrib/redirects/locale/ht/LC_MESSAGES/django.po +1 -4
  479. wagtail/contrib/redirects/locale/hu/LC_MESSAGES/django.mo +0 -0
  480. wagtail/contrib/redirects/locale/hu/LC_MESSAGES/django.po +7 -16
  481. wagtail/contrib/redirects/locale/hy/LC_MESSAGES/django.po +1 -1
  482. wagtail/contrib/redirects/locale/id_ID/LC_MESSAGES/django.mo +0 -0
  483. wagtail/contrib/redirects/locale/id_ID/LC_MESSAGES/django.po +7 -16
  484. wagtail/contrib/redirects/locale/is_IS/LC_MESSAGES/django.mo +0 -0
  485. wagtail/contrib/redirects/locale/is_IS/LC_MESSAGES/django.po +8 -17
  486. wagtail/contrib/redirects/locale/it/LC_MESSAGES/django.mo +0 -0
  487. wagtail/contrib/redirects/locale/it/LC_MESSAGES/django.po +7 -16
  488. wagtail/contrib/redirects/locale/ja/LC_MESSAGES/django.mo +0 -0
  489. wagtail/contrib/redirects/locale/ja/LC_MESSAGES/django.po +7 -16
  490. wagtail/contrib/redirects/locale/ka/LC_MESSAGES/django.mo +0 -0
  491. wagtail/contrib/redirects/locale/ka/LC_MESSAGES/django.po +1 -7
  492. wagtail/contrib/redirects/locale/ko/LC_MESSAGES/django.mo +0 -0
  493. wagtail/contrib/redirects/locale/ko/LC_MESSAGES/django.po +23 -16
  494. wagtail/contrib/redirects/locale/lt/LC_MESSAGES/django.mo +0 -0
  495. wagtail/contrib/redirects/locale/lt/LC_MESSAGES/django.po +7 -16
  496. wagtail/contrib/redirects/locale/lv/LC_MESSAGES/django.mo +0 -0
  497. wagtail/contrib/redirects/locale/lv/LC_MESSAGES/django.po +4 -13
  498. wagtail/contrib/redirects/locale/mi/LC_MESSAGES/django.mo +0 -0
  499. wagtail/contrib/redirects/locale/mi/LC_MESSAGES/django.po +4 -13
  500. wagtail/contrib/redirects/locale/mn/LC_MESSAGES/django.mo +0 -0
  501. wagtail/contrib/redirects/locale/mn/LC_MESSAGES/django.po +7 -16
  502. wagtail/contrib/redirects/locale/my/LC_MESSAGES/django.mo +0 -0
  503. wagtail/contrib/redirects/locale/my/LC_MESSAGES/django.po +3 -12
  504. wagtail/contrib/redirects/locale/nb/LC_MESSAGES/django.mo +0 -0
  505. wagtail/contrib/redirects/locale/nb/LC_MESSAGES/django.po +8 -16
  506. wagtail/contrib/redirects/locale/nl/LC_MESSAGES/django.mo +0 -0
  507. wagtail/contrib/redirects/locale/nl/LC_MESSAGES/django.po +8 -17
  508. wagtail/contrib/redirects/locale/pl/LC_MESSAGES/django.mo +0 -0
  509. wagtail/contrib/redirects/locale/pl/LC_MESSAGES/django.po +8 -17
  510. wagtail/contrib/redirects/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  511. wagtail/contrib/redirects/locale/pt_BR/LC_MESSAGES/django.po +9 -17
  512. wagtail/contrib/redirects/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
  513. wagtail/contrib/redirects/locale/pt_PT/LC_MESSAGES/django.po +7 -16
  514. wagtail/contrib/redirects/locale/ro/LC_MESSAGES/django.mo +0 -0
  515. wagtail/contrib/redirects/locale/ro/LC_MESSAGES/django.po +9 -17
  516. wagtail/contrib/redirects/locale/ru/LC_MESSAGES/django.mo +0 -0
  517. wagtail/contrib/redirects/locale/ru/LC_MESSAGES/django.po +9 -17
  518. wagtail/contrib/redirects/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
  519. wagtail/contrib/redirects/locale/sk_SK/LC_MESSAGES/django.po +7 -16
  520. wagtail/contrib/redirects/locale/sl/LC_MESSAGES/django.mo +0 -0
  521. wagtail/contrib/redirects/locale/sl/LC_MESSAGES/django.po +8 -17
  522. wagtail/contrib/redirects/locale/sr/LC_MESSAGES/django.po +1 -1
  523. wagtail/contrib/redirects/locale/sv/LC_MESSAGES/django.mo +0 -0
  524. wagtail/contrib/redirects/locale/sv/LC_MESSAGES/django.po +8 -17
  525. wagtail/contrib/redirects/locale/ta/LC_MESSAGES/django.po +1 -1
  526. wagtail/contrib/redirects/locale/tet/LC_MESSAGES/django.mo +0 -0
  527. wagtail/contrib/redirects/locale/tet/LC_MESSAGES/django.po +7 -16
  528. wagtail/contrib/redirects/locale/th/LC_MESSAGES/django.mo +0 -0
  529. wagtail/contrib/redirects/locale/th/LC_MESSAGES/django.po +7 -16
  530. wagtail/contrib/redirects/locale/tr/LC_MESSAGES/django.mo +0 -0
  531. wagtail/contrib/redirects/locale/tr/LC_MESSAGES/django.po +7 -16
  532. wagtail/contrib/redirects/locale/tr_TR/LC_MESSAGES/django.mo +0 -0
  533. wagtail/contrib/redirects/locale/tr_TR/LC_MESSAGES/django.po +7 -16
  534. wagtail/contrib/redirects/locale/ug/LC_MESSAGES/django.mo +0 -0
  535. wagtail/contrib/redirects/locale/ug/LC_MESSAGES/django.po +7 -16
  536. wagtail/contrib/redirects/locale/uk/LC_MESSAGES/django.mo +0 -0
  537. wagtail/contrib/redirects/locale/uk/LC_MESSAGES/django.po +9 -17
  538. wagtail/contrib/redirects/locale/vi/LC_MESSAGES/django.mo +0 -0
  539. wagtail/contrib/redirects/locale/vi/LC_MESSAGES/django.po +1 -10
  540. wagtail/contrib/redirects/locale/zh/LC_MESSAGES/django.mo +0 -0
  541. wagtail/contrib/redirects/locale/zh/LC_MESSAGES/django.po +4 -13
  542. wagtail/contrib/redirects/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  543. wagtail/contrib/redirects/locale/zh_Hans/LC_MESSAGES/django.po +8 -17
  544. wagtail/contrib/redirects/locale/zh_Hant/LC_MESSAGES/django.mo +0 -0
  545. wagtail/contrib/redirects/locale/zh_Hant/LC_MESSAGES/django.po +7 -16
  546. wagtail/contrib/redirects/tmp_storages.py +1 -0
  547. wagtail/contrib/routable_page/tests.py +3 -3
  548. wagtail/contrib/search_promotions/forms.py +3 -2
  549. wagtail/contrib/search_promotions/locale/af/LC_MESSAGES/django.mo +0 -0
  550. wagtail/contrib/search_promotions/locale/af/LC_MESSAGES/django.po +4 -1
  551. wagtail/contrib/search_promotions/locale/ar/LC_MESSAGES/django.mo +0 -0
  552. wagtail/contrib/search_promotions/locale/ar/LC_MESSAGES/django.po +15 -31
  553. wagtail/contrib/search_promotions/locale/az_AZ/LC_MESSAGES/django.mo +0 -0
  554. wagtail/contrib/search_promotions/locale/az_AZ/LC_MESSAGES/django.po +1 -4
  555. wagtail/contrib/search_promotions/locale/be/LC_MESSAGES/django.mo +0 -0
  556. wagtail/contrib/search_promotions/locale/be/LC_MESSAGES/django.po +15 -31
  557. wagtail/contrib/search_promotions/locale/bg/LC_MESSAGES/django.mo +0 -0
  558. wagtail/contrib/search_promotions/locale/bg/LC_MESSAGES/django.po +9 -22
  559. wagtail/contrib/search_promotions/locale/bn/LC_MESSAGES/django.mo +0 -0
  560. wagtail/contrib/search_promotions/locale/bn/LC_MESSAGES/django.po +1 -7
  561. wagtail/contrib/search_promotions/locale/ca/LC_MESSAGES/django.mo +0 -0
  562. wagtail/contrib/search_promotions/locale/ca/LC_MESSAGES/django.po +27 -37
  563. wagtail/contrib/search_promotions/locale/cs/LC_MESSAGES/django.mo +0 -0
  564. wagtail/contrib/search_promotions/locale/cs/LC_MESSAGES/django.po +15 -31
  565. wagtail/contrib/search_promotions/locale/cy/LC_MESSAGES/django.mo +0 -0
  566. wagtail/contrib/search_promotions/locale/cy/LC_MESSAGES/django.po +18 -37
  567. wagtail/contrib/search_promotions/locale/da/LC_MESSAGES/django.mo +0 -0
  568. wagtail/contrib/search_promotions/locale/da/LC_MESSAGES/django.po +9 -12
  569. wagtail/contrib/search_promotions/locale/de/LC_MESSAGES/django.mo +0 -0
  570. wagtail/contrib/search_promotions/locale/de/LC_MESSAGES/django.po +27 -37
  571. wagtail/contrib/search_promotions/locale/dv/LC_MESSAGES/django.mo +0 -0
  572. wagtail/contrib/search_promotions/locale/dv/LC_MESSAGES/django.po +10 -12
  573. wagtail/contrib/search_promotions/locale/el/LC_MESSAGES/django.mo +0 -0
  574. wagtail/contrib/search_promotions/locale/el/LC_MESSAGES/django.po +14 -30
  575. wagtail/contrib/search_promotions/locale/en/LC_MESSAGES/django.po +19 -23
  576. wagtail/contrib/search_promotions/locale/es/LC_MESSAGES/django.mo +0 -0
  577. wagtail/contrib/search_promotions/locale/es/LC_MESSAGES/django.po +15 -31
  578. wagtail/contrib/search_promotions/locale/es_419/LC_MESSAGES/django.mo +0 -0
  579. wagtail/contrib/search_promotions/locale/es_419/LC_MESSAGES/django.po +1 -7
  580. wagtail/contrib/search_promotions/locale/et/LC_MESSAGES/django.mo +0 -0
  581. wagtail/contrib/search_promotions/locale/et/LC_MESSAGES/django.po +15 -31
  582. wagtail/contrib/search_promotions/locale/eu/LC_MESSAGES/django.mo +0 -0
  583. wagtail/contrib/search_promotions/locale/eu/LC_MESSAGES/django.po +7 -4
  584. wagtail/contrib/search_promotions/locale/fa/LC_MESSAGES/django.mo +0 -0
  585. wagtail/contrib/search_promotions/locale/fa/LC_MESSAGES/django.po +15 -31
  586. wagtail/contrib/search_promotions/locale/fi/LC_MESSAGES/django.mo +0 -0
  587. wagtail/contrib/search_promotions/locale/fi/LC_MESSAGES/django.po +15 -31
  588. wagtail/contrib/search_promotions/locale/fr/LC_MESSAGES/django.mo +0 -0
  589. wagtail/contrib/search_promotions/locale/fr/LC_MESSAGES/django.po +28 -38
  590. wagtail/contrib/search_promotions/locale/gl/LC_MESSAGES/django.mo +0 -0
  591. wagtail/contrib/search_promotions/locale/gl/LC_MESSAGES/django.po +29 -39
  592. wagtail/contrib/search_promotions/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  593. wagtail/contrib/search_promotions/locale/he_IL/LC_MESSAGES/django.po +12 -19
  594. wagtail/contrib/search_promotions/locale/hr_HR/LC_MESSAGES/django.mo +0 -0
  595. wagtail/contrib/search_promotions/locale/hr_HR/LC_MESSAGES/django.po +21 -37
  596. wagtail/contrib/search_promotions/locale/ht/LC_MESSAGES/django.mo +0 -0
  597. wagtail/contrib/search_promotions/locale/ht/LC_MESSAGES/django.po +3 -9
  598. wagtail/contrib/search_promotions/locale/hu/LC_MESSAGES/django.mo +0 -0
  599. wagtail/contrib/search_promotions/locale/hu/LC_MESSAGES/django.po +31 -38
  600. wagtail/contrib/search_promotions/locale/id_ID/LC_MESSAGES/django.mo +0 -0
  601. wagtail/contrib/search_promotions/locale/id_ID/LC_MESSAGES/django.po +15 -31
  602. wagtail/contrib/search_promotions/locale/is_IS/LC_MESSAGES/django.mo +0 -0
  603. wagtail/contrib/search_promotions/locale/is_IS/LC_MESSAGES/django.po +20 -36
  604. wagtail/contrib/search_promotions/locale/it/LC_MESSAGES/django.mo +0 -0
  605. wagtail/contrib/search_promotions/locale/it/LC_MESSAGES/django.po +18 -34
  606. wagtail/contrib/search_promotions/locale/ja/LC_MESSAGES/django.mo +0 -0
  607. wagtail/contrib/search_promotions/locale/ja/LC_MESSAGES/django.po +14 -30
  608. wagtail/contrib/search_promotions/locale/ka/LC_MESSAGES/django.mo +0 -0
  609. wagtail/contrib/search_promotions/locale/ka/LC_MESSAGES/django.po +3 -6
  610. wagtail/contrib/search_promotions/locale/ko/LC_MESSAGES/django.mo +0 -0
  611. wagtail/contrib/search_promotions/locale/ko/LC_MESSAGES/django.po +18 -30
  612. wagtail/contrib/search_promotions/locale/lt/LC_MESSAGES/django.mo +0 -0
  613. wagtail/contrib/search_promotions/locale/lt/LC_MESSAGES/django.po +15 -31
  614. wagtail/contrib/search_promotions/locale/lv/LC_MESSAGES/django.mo +0 -0
  615. wagtail/contrib/search_promotions/locale/lv/LC_MESSAGES/django.po +9 -22
  616. wagtail/contrib/search_promotions/locale/mi/LC_MESSAGES/django.mo +0 -0
  617. wagtail/contrib/search_promotions/locale/mi/LC_MESSAGES/django.po +6 -25
  618. wagtail/contrib/search_promotions/locale/mn/LC_MESSAGES/django.mo +0 -0
  619. wagtail/contrib/search_promotions/locale/mn/LC_MESSAGES/django.po +9 -22
  620. wagtail/contrib/search_promotions/locale/my/LC_MESSAGES/django.mo +0 -0
  621. wagtail/contrib/search_promotions/locale/my/LC_MESSAGES/django.po +3 -12
  622. wagtail/contrib/search_promotions/locale/nb/LC_MESSAGES/django.mo +0 -0
  623. wagtail/contrib/search_promotions/locale/nb/LC_MESSAGES/django.po +14 -30
  624. wagtail/contrib/search_promotions/locale/nl/LC_MESSAGES/django.mo +0 -0
  625. wagtail/contrib/search_promotions/locale/nl/LC_MESSAGES/django.po +27 -37
  626. wagtail/contrib/search_promotions/locale/pl/LC_MESSAGES/django.mo +0 -0
  627. wagtail/contrib/search_promotions/locale/pl/LC_MESSAGES/django.po +17 -33
  628. wagtail/contrib/search_promotions/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  629. wagtail/contrib/search_promotions/locale/pt_BR/LC_MESSAGES/django.po +18 -34
  630. wagtail/contrib/search_promotions/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
  631. wagtail/contrib/search_promotions/locale/pt_PT/LC_MESSAGES/django.po +15 -31
  632. wagtail/contrib/search_promotions/locale/ro/LC_MESSAGES/django.mo +0 -0
  633. wagtail/contrib/search_promotions/locale/ro/LC_MESSAGES/django.po +21 -37
  634. wagtail/contrib/search_promotions/locale/ru/LC_MESSAGES/django.mo +0 -0
  635. wagtail/contrib/search_promotions/locale/ru/LC_MESSAGES/django.po +29 -39
  636. wagtail/contrib/search_promotions/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
  637. wagtail/contrib/search_promotions/locale/sk_SK/LC_MESSAGES/django.po +12 -31
  638. wagtail/contrib/search_promotions/locale/sl/LC_MESSAGES/django.mo +0 -0
  639. wagtail/contrib/search_promotions/locale/sl/LC_MESSAGES/django.po +21 -37
  640. wagtail/contrib/search_promotions/locale/sv/LC_MESSAGES/django.mo +0 -0
  641. wagtail/contrib/search_promotions/locale/sv/LC_MESSAGES/django.po +15 -31
  642. wagtail/contrib/search_promotions/locale/tet/LC_MESSAGES/django.mo +0 -0
  643. wagtail/contrib/search_promotions/locale/tet/LC_MESSAGES/django.po +15 -28
  644. wagtail/contrib/search_promotions/locale/th/LC_MESSAGES/django.mo +0 -0
  645. wagtail/contrib/search_promotions/locale/th/LC_MESSAGES/django.po +15 -31
  646. wagtail/contrib/search_promotions/locale/tr/LC_MESSAGES/django.mo +0 -0
  647. wagtail/contrib/search_promotions/locale/tr/LC_MESSAGES/django.po +15 -31
  648. wagtail/contrib/search_promotions/locale/tr_TR/LC_MESSAGES/django.mo +0 -0
  649. wagtail/contrib/search_promotions/locale/tr_TR/LC_MESSAGES/django.po +15 -31
  650. wagtail/contrib/search_promotions/locale/ug/LC_MESSAGES/django.mo +0 -0
  651. wagtail/contrib/search_promotions/locale/ug/LC_MESSAGES/django.po +17 -36
  652. wagtail/contrib/search_promotions/locale/uk/LC_MESSAGES/django.mo +0 -0
  653. wagtail/contrib/search_promotions/locale/uk/LC_MESSAGES/django.po +15 -31
  654. wagtail/contrib/search_promotions/locale/vi/LC_MESSAGES/django.mo +0 -0
  655. wagtail/contrib/search_promotions/locale/vi/LC_MESSAGES/django.po +3 -12
  656. wagtail/contrib/search_promotions/locale/zh/LC_MESSAGES/django.mo +0 -0
  657. wagtail/contrib/search_promotions/locale/zh/LC_MESSAGES/django.po +9 -22
  658. wagtail/contrib/search_promotions/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  659. wagtail/contrib/search_promotions/locale/zh_Hans/LC_MESSAGES/django.po +15 -31
  660. wagtail/contrib/search_promotions/locale/zh_Hant/LC_MESSAGES/django.mo +0 -0
  661. wagtail/contrib/search_promotions/locale/zh_Hant/LC_MESSAGES/django.po +15 -31
  662. wagtail/contrib/search_promotions/models.py +1 -7
  663. wagtail/contrib/search_promotions/templates/wagtailsearchpromotions/queries/chooser/results.html +1 -1
  664. wagtail/contrib/search_promotions/tests.py +4 -5
  665. wagtail/contrib/search_promotions/views/settings.py +1 -2
  666. wagtail/contrib/settings/locale/ar/LC_MESSAGES/django.po +1 -1
  667. wagtail/contrib/settings/locale/az_AZ/LC_MESSAGES/django.po +1 -1
  668. wagtail/contrib/settings/locale/be/LC_MESSAGES/django.po +1 -1
  669. wagtail/contrib/settings/locale/bn/LC_MESSAGES/django.po +1 -1
  670. wagtail/contrib/settings/locale/ca/LC_MESSAGES/django.po +1 -1
  671. wagtail/contrib/settings/locale/cs/LC_MESSAGES/django.po +1 -1
  672. wagtail/contrib/settings/locale/cy/LC_MESSAGES/django.po +1 -1
  673. wagtail/contrib/settings/locale/da/LC_MESSAGES/django.po +1 -1
  674. wagtail/contrib/settings/locale/de/LC_MESSAGES/django.po +1 -1
  675. wagtail/contrib/settings/locale/dv/LC_MESSAGES/django.po +1 -1
  676. wagtail/contrib/settings/locale/el/LC_MESSAGES/django.po +1 -1
  677. wagtail/contrib/settings/locale/en/LC_MESSAGES/django.po +1 -1
  678. wagtail/contrib/settings/locale/en_IN/LC_MESSAGES/django.po +1 -1
  679. wagtail/contrib/settings/locale/es/LC_MESSAGES/django.po +1 -1
  680. wagtail/contrib/settings/locale/es_419/LC_MESSAGES/django.po +1 -1
  681. wagtail/contrib/settings/locale/es_VE/LC_MESSAGES/django.po +1 -1
  682. wagtail/contrib/settings/locale/et/LC_MESSAGES/django.po +1 -1
  683. wagtail/contrib/settings/locale/fa/LC_MESSAGES/django.po +1 -1
  684. wagtail/contrib/settings/locale/fi/LC_MESSAGES/django.po +1 -1
  685. wagtail/contrib/settings/locale/fr/LC_MESSAGES/django.po +1 -1
  686. wagtail/contrib/settings/locale/gl/LC_MESSAGES/django.po +1 -1
  687. wagtail/contrib/settings/locale/he_IL/LC_MESSAGES/django.po +1 -1
  688. wagtail/contrib/settings/locale/hi/LC_MESSAGES/django.po +1 -1
  689. wagtail/contrib/settings/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  690. wagtail/contrib/settings/locale/ht/LC_MESSAGES/django.po +1 -1
  691. wagtail/contrib/settings/locale/hu/LC_MESSAGES/django.po +1 -1
  692. wagtail/contrib/settings/locale/id_ID/LC_MESSAGES/django.po +1 -1
  693. wagtail/contrib/settings/locale/is_IS/LC_MESSAGES/django.po +1 -1
  694. wagtail/contrib/settings/locale/it/LC_MESSAGES/django.po +1 -1
  695. wagtail/contrib/settings/locale/ja/LC_MESSAGES/django.po +1 -1
  696. wagtail/contrib/settings/locale/ka/LC_MESSAGES/django.po +1 -1
  697. wagtail/contrib/settings/locale/ko/LC_MESSAGES/django.po +1 -1
  698. wagtail/contrib/settings/locale/lt/LC_MESSAGES/django.po +1 -1
  699. wagtail/contrib/settings/locale/lv/LC_MESSAGES/django.po +1 -1
  700. wagtail/contrib/settings/locale/mi/LC_MESSAGES/django.po +1 -1
  701. wagtail/contrib/settings/locale/mn/LC_MESSAGES/django.po +1 -1
  702. wagtail/contrib/settings/locale/my/LC_MESSAGES/django.po +1 -1
  703. wagtail/contrib/settings/locale/nb/LC_MESSAGES/django.po +1 -1
  704. wagtail/contrib/settings/locale/nl/LC_MESSAGES/django.po +1 -1
  705. wagtail/contrib/settings/locale/pl/LC_MESSAGES/django.po +1 -1
  706. wagtail/contrib/settings/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  707. wagtail/contrib/settings/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  708. wagtail/contrib/settings/locale/ro/LC_MESSAGES/django.po +1 -1
  709. wagtail/contrib/settings/locale/ru/LC_MESSAGES/django.po +1 -1
  710. wagtail/contrib/settings/locale/sk_SK/LC_MESSAGES/django.po +1 -1
  711. wagtail/contrib/settings/locale/sl/LC_MESSAGES/django.po +1 -1
  712. wagtail/contrib/settings/locale/sr/LC_MESSAGES/django.po +1 -1
  713. wagtail/contrib/settings/locale/sv/LC_MESSAGES/django.po +1 -1
  714. wagtail/contrib/settings/locale/ta/LC_MESSAGES/django.po +1 -1
  715. wagtail/contrib/settings/locale/tet/LC_MESSAGES/django.po +1 -1
  716. wagtail/contrib/settings/locale/th/LC_MESSAGES/django.po +1 -1
  717. wagtail/contrib/settings/locale/tr/LC_MESSAGES/django.po +1 -1
  718. wagtail/contrib/settings/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  719. wagtail/contrib/settings/locale/ug/LC_MESSAGES/django.po +1 -1
  720. wagtail/contrib/settings/locale/uk/LC_MESSAGES/django.po +1 -1
  721. wagtail/contrib/settings/locale/vi/LC_MESSAGES/django.po +1 -1
  722. wagtail/contrib/settings/locale/zh/LC_MESSAGES/django.po +1 -1
  723. wagtail/contrib/settings/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  724. wagtail/contrib/settings/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  725. wagtail/contrib/settings/registry.py +1 -11
  726. wagtail/contrib/simple_translation/locale/ar/LC_MESSAGES/django.po +1 -1
  727. wagtail/contrib/simple_translation/locale/be/LC_MESSAGES/django.po +1 -1
  728. wagtail/contrib/simple_translation/locale/ca/LC_MESSAGES/django.po +1 -1
  729. wagtail/contrib/simple_translation/locale/cs/LC_MESSAGES/django.po +1 -1
  730. wagtail/contrib/simple_translation/locale/cy/LC_MESSAGES/django.po +1 -1
  731. wagtail/contrib/simple_translation/locale/de/LC_MESSAGES/django.po +1 -1
  732. wagtail/contrib/simple_translation/locale/dv/LC_MESSAGES/django.po +1 -1
  733. wagtail/contrib/simple_translation/locale/el/LC_MESSAGES/django.po +1 -1
  734. wagtail/contrib/simple_translation/locale/en/LC_MESSAGES/django.po +1 -1
  735. wagtail/contrib/simple_translation/locale/es/LC_MESSAGES/django.po +1 -1
  736. wagtail/contrib/simple_translation/locale/es_419/LC_MESSAGES/django.po +1 -1
  737. wagtail/contrib/simple_translation/locale/fa/LC_MESSAGES/django.po +1 -1
  738. wagtail/contrib/simple_translation/locale/fi/LC_MESSAGES/django.po +1 -1
  739. wagtail/contrib/simple_translation/locale/fr/LC_MESSAGES/django.po +1 -1
  740. wagtail/contrib/simple_translation/locale/gl/LC_MESSAGES/django.po +1 -1
  741. wagtail/contrib/simple_translation/locale/hr_HR/LC_MESSAGES/django.po +3 -3
  742. wagtail/contrib/simple_translation/locale/hu/LC_MESSAGES/django.mo +0 -0
  743. wagtail/contrib/simple_translation/locale/hu/LC_MESSAGES/django.po +6 -3
  744. wagtail/contrib/simple_translation/locale/is_IS/LC_MESSAGES/django.po +3 -3
  745. wagtail/contrib/simple_translation/locale/it/LC_MESSAGES/django.po +1 -1
  746. wagtail/contrib/simple_translation/locale/ko/LC_MESSAGES/django.po +1 -1
  747. wagtail/contrib/simple_translation/locale/lt/LC_MESSAGES/django.po +1 -1
  748. wagtail/contrib/simple_translation/locale/mi/LC_MESSAGES/django.po +1 -1
  749. wagtail/contrib/simple_translation/locale/mn/LC_MESSAGES/django.po +1 -1
  750. wagtail/contrib/simple_translation/locale/nb/LC_MESSAGES/django.po +3 -3
  751. wagtail/contrib/simple_translation/locale/nl/LC_MESSAGES/django.po +1 -1
  752. wagtail/contrib/simple_translation/locale/pl/LC_MESSAGES/django.po +1 -1
  753. wagtail/contrib/simple_translation/locale/pt_BR/LC_MESSAGES/django.po +3 -3
  754. wagtail/contrib/simple_translation/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  755. wagtail/contrib/simple_translation/locale/ro/LC_MESSAGES/django.po +1 -1
  756. wagtail/contrib/simple_translation/locale/ru/LC_MESSAGES/django.po +1 -1
  757. wagtail/contrib/simple_translation/locale/sl/LC_MESSAGES/django.po +1 -1
  758. wagtail/contrib/simple_translation/locale/sv/LC_MESSAGES/django.po +1 -1
  759. wagtail/contrib/simple_translation/locale/ug/LC_MESSAGES/django.po +1 -1
  760. wagtail/contrib/simple_translation/locale/uk/LC_MESSAGES/django.po +1 -1
  761. wagtail/contrib/simple_translation/locale/vi/LC_MESSAGES/django.po +1 -1
  762. wagtail/contrib/simple_translation/locale/zh_Hans/LC_MESSAGES/django.po +3 -3
  763. wagtail/contrib/simple_translation/locale/zh_Hant/LC_MESSAGES/django.po +3 -3
  764. wagtail/contrib/styleguide/locale/af/LC_MESSAGES/django.po +1 -1
  765. wagtail/contrib/styleguide/locale/ar/LC_MESSAGES/django.po +1 -1
  766. wagtail/contrib/styleguide/locale/az_AZ/LC_MESSAGES/django.po +1 -1
  767. wagtail/contrib/styleguide/locale/be/LC_MESSAGES/django.mo +0 -0
  768. wagtail/contrib/styleguide/locale/be/LC_MESSAGES/django.po +3 -2
  769. wagtail/contrib/styleguide/locale/bg/LC_MESSAGES/django.po +1 -1
  770. wagtail/contrib/styleguide/locale/bn/LC_MESSAGES/django.po +1 -1
  771. wagtail/contrib/styleguide/locale/ca/LC_MESSAGES/django.po +1 -1
  772. wagtail/contrib/styleguide/locale/cs/LC_MESSAGES/django.po +1 -1
  773. wagtail/contrib/styleguide/locale/cy/LC_MESSAGES/django.po +2 -1
  774. wagtail/contrib/styleguide/locale/da/LC_MESSAGES/django.po +1 -1
  775. wagtail/contrib/styleguide/locale/de/LC_MESSAGES/django.po +1 -1
  776. wagtail/contrib/styleguide/locale/dv/LC_MESSAGES/django.po +2 -1
  777. wagtail/contrib/styleguide/locale/el/LC_MESSAGES/django.po +2 -1
  778. wagtail/contrib/styleguide/locale/en/LC_MESSAGES/django.po +7 -7
  779. wagtail/contrib/styleguide/locale/en_IN/LC_MESSAGES/django.po +1 -1
  780. wagtail/contrib/styleguide/locale/es/LC_MESSAGES/django.po +1 -1
  781. wagtail/contrib/styleguide/locale/es_419/LC_MESSAGES/django.po +1 -1
  782. wagtail/contrib/styleguide/locale/es_VE/LC_MESSAGES/django.po +1 -1
  783. wagtail/contrib/styleguide/locale/et/LC_MESSAGES/django.po +1 -1
  784. wagtail/contrib/styleguide/locale/fa/LC_MESSAGES/django.po +1 -1
  785. wagtail/contrib/styleguide/locale/fi/LC_MESSAGES/django.po +1 -1
  786. wagtail/contrib/styleguide/locale/fr/LC_MESSAGES/django.po +1 -1
  787. wagtail/contrib/styleguide/locale/gl/LC_MESSAGES/django.po +1 -1
  788. wagtail/contrib/styleguide/locale/he_IL/LC_MESSAGES/django.po +1 -1
  789. wagtail/contrib/styleguide/locale/hi/LC_MESSAGES/django.po +1 -1
  790. wagtail/contrib/styleguide/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  791. wagtail/contrib/styleguide/locale/ht/LC_MESSAGES/django.po +1 -1
  792. wagtail/contrib/styleguide/locale/hu/LC_MESSAGES/django.po +1 -1
  793. wagtail/contrib/styleguide/locale/id_ID/LC_MESSAGES/django.po +1 -1
  794. wagtail/contrib/styleguide/locale/is_IS/LC_MESSAGES/django.po +1 -1
  795. wagtail/contrib/styleguide/locale/it/LC_MESSAGES/django.po +1 -1
  796. wagtail/contrib/styleguide/locale/ja/LC_MESSAGES/django.po +1 -1
  797. wagtail/contrib/styleguide/locale/ka/LC_MESSAGES/django.po +1 -1
  798. wagtail/contrib/styleguide/locale/ko/LC_MESSAGES/django.po +1 -1
  799. wagtail/contrib/styleguide/locale/lt/LC_MESSAGES/django.po +1 -1
  800. wagtail/contrib/styleguide/locale/lv/LC_MESSAGES/django.po +1 -1
  801. wagtail/contrib/styleguide/locale/mi/LC_MESSAGES/django.po +1 -1
  802. wagtail/contrib/styleguide/locale/mn/LC_MESSAGES/django.po +1 -1
  803. wagtail/contrib/styleguide/locale/my/LC_MESSAGES/django.po +1 -1
  804. wagtail/contrib/styleguide/locale/nb/LC_MESSAGES/django.po +1 -1
  805. wagtail/contrib/styleguide/locale/nl/LC_MESSAGES/django.po +1 -1
  806. wagtail/contrib/styleguide/locale/pl/LC_MESSAGES/django.po +1 -1
  807. wagtail/contrib/styleguide/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  808. wagtail/contrib/styleguide/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  809. wagtail/contrib/styleguide/locale/ro/LC_MESSAGES/django.po +1 -1
  810. wagtail/contrib/styleguide/locale/ru/LC_MESSAGES/django.po +1 -1
  811. wagtail/contrib/styleguide/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
  812. wagtail/contrib/styleguide/locale/sk_SK/LC_MESSAGES/django.po +2 -2
  813. wagtail/contrib/styleguide/locale/sl/LC_MESSAGES/django.po +1 -1
  814. wagtail/contrib/styleguide/locale/sv/LC_MESSAGES/django.po +1 -1
  815. wagtail/contrib/styleguide/locale/ta/LC_MESSAGES/django.po +1 -1
  816. wagtail/contrib/styleguide/locale/tet/LC_MESSAGES/django.po +1 -1
  817. wagtail/contrib/styleguide/locale/th/LC_MESSAGES/django.po +1 -1
  818. wagtail/contrib/styleguide/locale/tr/LC_MESSAGES/django.po +1 -1
  819. wagtail/contrib/styleguide/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  820. wagtail/contrib/styleguide/locale/ug/LC_MESSAGES/django.po +1 -1
  821. wagtail/contrib/styleguide/locale/uk/LC_MESSAGES/django.po +1 -1
  822. wagtail/contrib/styleguide/locale/vi/LC_MESSAGES/django.po +1 -1
  823. wagtail/contrib/styleguide/locale/zh/LC_MESSAGES/django.po +1 -1
  824. wagtail/contrib/styleguide/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  825. wagtail/contrib/styleguide/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  826. wagtail/contrib/styleguide/views.py +2 -1
  827. wagtail/contrib/table_block/locale/ar/LC_MESSAGES/django.po +1 -1
  828. wagtail/contrib/table_block/locale/be/LC_MESSAGES/django.po +1 -1
  829. wagtail/contrib/table_block/locale/ca/LC_MESSAGES/django.po +1 -1
  830. wagtail/contrib/table_block/locale/cs/LC_MESSAGES/django.po +1 -1
  831. wagtail/contrib/table_block/locale/cy/LC_MESSAGES/django.po +1 -1
  832. wagtail/contrib/table_block/locale/de/LC_MESSAGES/django.po +1 -1
  833. wagtail/contrib/table_block/locale/dv/LC_MESSAGES/django.po +1 -1
  834. wagtail/contrib/table_block/locale/el/LC_MESSAGES/django.po +1 -1
  835. wagtail/contrib/table_block/locale/en/LC_MESSAGES/django.po +1 -1
  836. wagtail/contrib/table_block/locale/en_IN/LC_MESSAGES/django.po +1 -1
  837. wagtail/contrib/table_block/locale/es/LC_MESSAGES/django.po +1 -1
  838. wagtail/contrib/table_block/locale/et/LC_MESSAGES/django.po +1 -1
  839. wagtail/contrib/table_block/locale/fa/LC_MESSAGES/django.po +1 -1
  840. wagtail/contrib/table_block/locale/fi/LC_MESSAGES/django.po +1 -1
  841. wagtail/contrib/table_block/locale/fr/LC_MESSAGES/django.po +1 -1
  842. wagtail/contrib/table_block/locale/gl/LC_MESSAGES/django.po +1 -1
  843. wagtail/contrib/table_block/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  844. wagtail/contrib/table_block/locale/ht/LC_MESSAGES/django.po +1 -1
  845. wagtail/contrib/table_block/locale/hu/LC_MESSAGES/django.po +1 -1
  846. wagtail/contrib/table_block/locale/id_ID/LC_MESSAGES/django.po +1 -1
  847. wagtail/contrib/table_block/locale/is_IS/LC_MESSAGES/django.po +1 -1
  848. wagtail/contrib/table_block/locale/it/LC_MESSAGES/django.po +1 -1
  849. wagtail/contrib/table_block/locale/ja/LC_MESSAGES/django.po +1 -1
  850. wagtail/contrib/table_block/locale/ko/LC_MESSAGES/django.po +1 -1
  851. wagtail/contrib/table_block/locale/lt/LC_MESSAGES/django.po +1 -1
  852. wagtail/contrib/table_block/locale/lv/LC_MESSAGES/django.po +1 -1
  853. wagtail/contrib/table_block/locale/mi/LC_MESSAGES/django.po +1 -1
  854. wagtail/contrib/table_block/locale/mn/LC_MESSAGES/django.po +1 -1
  855. wagtail/contrib/table_block/locale/my/LC_MESSAGES/django.po +1 -1
  856. wagtail/contrib/table_block/locale/nb/LC_MESSAGES/django.po +1 -1
  857. wagtail/contrib/table_block/locale/nl/LC_MESSAGES/django.po +1 -1
  858. wagtail/contrib/table_block/locale/pl/LC_MESSAGES/django.po +1 -1
  859. wagtail/contrib/table_block/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  860. wagtail/contrib/table_block/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  861. wagtail/contrib/table_block/locale/ro/LC_MESSAGES/django.po +1 -1
  862. wagtail/contrib/table_block/locale/ru/LC_MESSAGES/django.po +1 -1
  863. wagtail/contrib/table_block/locale/sk_SK/LC_MESSAGES/django.po +1 -1
  864. wagtail/contrib/table_block/locale/sl/LC_MESSAGES/django.po +1 -1
  865. wagtail/contrib/table_block/locale/sv/LC_MESSAGES/django.po +1 -1
  866. wagtail/contrib/table_block/locale/tet/LC_MESSAGES/django.po +1 -1
  867. wagtail/contrib/table_block/locale/th/LC_MESSAGES/django.po +1 -1
  868. wagtail/contrib/table_block/locale/tr/LC_MESSAGES/django.po +1 -1
  869. wagtail/contrib/table_block/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  870. wagtail/contrib/table_block/locale/ug/LC_MESSAGES/django.po +1 -1
  871. wagtail/contrib/table_block/locale/uk/LC_MESSAGES/django.po +1 -1
  872. wagtail/contrib/table_block/locale/vi/LC_MESSAGES/django.po +1 -1
  873. wagtail/contrib/table_block/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  874. wagtail/contrib/table_block/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  875. wagtail/contrib/typed_table_block/blocks.py +5 -0
  876. wagtail/contrib/typed_table_block/locale/ar/LC_MESSAGES/django.po +1 -1
  877. wagtail/contrib/typed_table_block/locale/be/LC_MESSAGES/django.po +1 -1
  878. wagtail/contrib/typed_table_block/locale/ca/LC_MESSAGES/django.po +1 -1
  879. wagtail/contrib/typed_table_block/locale/cy/LC_MESSAGES/django.po +1 -1
  880. wagtail/contrib/typed_table_block/locale/de/LC_MESSAGES/django.po +1 -1
  881. wagtail/contrib/typed_table_block/locale/dv/LC_MESSAGES/django.po +1 -1
  882. wagtail/contrib/typed_table_block/locale/el/LC_MESSAGES/django.po +1 -1
  883. wagtail/contrib/typed_table_block/locale/en/LC_MESSAGES/django.po +10 -10
  884. wagtail/contrib/typed_table_block/locale/es/LC_MESSAGES/django.po +1 -1
  885. wagtail/contrib/typed_table_block/locale/fa/LC_MESSAGES/django.po +1 -1
  886. wagtail/contrib/typed_table_block/locale/fi/LC_MESSAGES/django.po +1 -1
  887. wagtail/contrib/typed_table_block/locale/fr/LC_MESSAGES/django.po +1 -1
  888. wagtail/contrib/typed_table_block/locale/gl/LC_MESSAGES/django.po +1 -1
  889. wagtail/contrib/typed_table_block/locale/hu/LC_MESSAGES/django.po +1 -1
  890. wagtail/contrib/typed_table_block/locale/is_IS/LC_MESSAGES/django.po +3 -3
  891. wagtail/contrib/typed_table_block/locale/it/LC_MESSAGES/django.po +1 -1
  892. wagtail/contrib/typed_table_block/locale/ko/LC_MESSAGES/django.po +1 -1
  893. wagtail/contrib/typed_table_block/locale/lt/LC_MESSAGES/django.po +1 -1
  894. wagtail/contrib/typed_table_block/locale/nl/LC_MESSAGES/django.po +1 -1
  895. wagtail/contrib/typed_table_block/locale/pl/LC_MESSAGES/django.po +1 -1
  896. wagtail/contrib/typed_table_block/locale/pt_BR/LC_MESSAGES/django.po +3 -3
  897. wagtail/contrib/typed_table_block/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  898. wagtail/contrib/typed_table_block/locale/ro/LC_MESSAGES/django.po +1 -1
  899. wagtail/contrib/typed_table_block/locale/ru/LC_MESSAGES/django.po +1 -1
  900. wagtail/contrib/typed_table_block/locale/sl/LC_MESSAGES/django.po +1 -1
  901. wagtail/contrib/typed_table_block/locale/sv/LC_MESSAGES/django.po +1 -1
  902. wagtail/contrib/typed_table_block/locale/th/LC_MESSAGES/django.po +1 -1
  903. wagtail/contrib/typed_table_block/locale/ug/LC_MESSAGES/django.po +1 -1
  904. wagtail/contrib/typed_table_block/locale/uk/LC_MESSAGES/django.po +1 -1
  905. wagtail/contrib/typed_table_block/locale/zh/LC_MESSAGES/django.po +1 -1
  906. wagtail/contrib/typed_table_block/locale/zh_Hans/LC_MESSAGES/django.po +3 -3
  907. wagtail/contrib/typed_table_block/locale/zh_Hant/LC_MESSAGES/django.po +3 -3
  908. wagtail/contrib/typed_table_block/tests.py +27 -0
  909. wagtail/coreutils.py +0 -19
  910. wagtail/documents/locale/af/LC_MESSAGES/django.po +1 -1
  911. wagtail/documents/locale/ar/LC_MESSAGES/django.mo +0 -0
  912. wagtail/documents/locale/ar/LC_MESSAGES/django.po +3 -2
  913. wagtail/documents/locale/az_AZ/LC_MESSAGES/django.po +1 -1
  914. wagtail/documents/locale/be/LC_MESSAGES/django.po +1 -1
  915. wagtail/documents/locale/bg/LC_MESSAGES/django.po +1 -1
  916. wagtail/documents/locale/bn/LC_MESSAGES/django.po +1 -1
  917. wagtail/documents/locale/ca/LC_MESSAGES/django.mo +0 -0
  918. wagtail/documents/locale/ca/LC_MESSAGES/django.po +2 -2
  919. wagtail/documents/locale/cs/LC_MESSAGES/django.po +1 -1
  920. wagtail/documents/locale/cy/LC_MESSAGES/django.po +1 -1
  921. wagtail/documents/locale/da/LC_MESSAGES/django.po +1 -1
  922. wagtail/documents/locale/de/LC_MESSAGES/django.mo +0 -0
  923. wagtail/documents/locale/de/LC_MESSAGES/django.po +3 -3
  924. wagtail/documents/locale/dv/LC_MESSAGES/django.po +2 -1
  925. wagtail/documents/locale/el/LC_MESSAGES/django.po +2 -1
  926. wagtail/documents/locale/en/LC_MESSAGES/django.po +4 -4
  927. wagtail/documents/locale/es/LC_MESSAGES/django.mo +0 -0
  928. wagtail/documents/locale/es/LC_MESSAGES/django.po +3 -2
  929. wagtail/documents/locale/es_419/LC_MESSAGES/django.po +1 -1
  930. wagtail/documents/locale/et/LC_MESSAGES/django.po +1 -1
  931. wagtail/documents/locale/eu/LC_MESSAGES/django.po +1 -1
  932. wagtail/documents/locale/fa/LC_MESSAGES/django.po +1 -1
  933. wagtail/documents/locale/fi/LC_MESSAGES/django.mo +0 -0
  934. wagtail/documents/locale/fi/LC_MESSAGES/django.po +2 -2
  935. wagtail/documents/locale/fr/LC_MESSAGES/django.po +2 -1
  936. wagtail/documents/locale/gl/LC_MESSAGES/django.po +1 -1
  937. wagtail/documents/locale/he_IL/LC_MESSAGES/django.po +1 -1
  938. wagtail/documents/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  939. wagtail/documents/locale/ht/LC_MESSAGES/django.po +1 -1
  940. wagtail/documents/locale/hu/LC_MESSAGES/django.mo +0 -0
  941. wagtail/documents/locale/hu/LC_MESSAGES/django.po +18 -3
  942. wagtail/documents/locale/id_ID/LC_MESSAGES/django.po +1 -1
  943. wagtail/documents/locale/is_IS/LC_MESSAGES/django.po +1 -1
  944. wagtail/documents/locale/it/LC_MESSAGES/django.mo +0 -0
  945. wagtail/documents/locale/it/LC_MESSAGES/django.po +2 -2
  946. wagtail/documents/locale/ja/LC_MESSAGES/django.po +1 -1
  947. wagtail/documents/locale/ka/LC_MESSAGES/django.po +1 -1
  948. wagtail/documents/locale/ko/LC_MESSAGES/django.mo +0 -0
  949. wagtail/documents/locale/ko/LC_MESSAGES/django.po +14 -2
  950. wagtail/documents/locale/lt/LC_MESSAGES/django.po +1 -1
  951. wagtail/documents/locale/lv/LC_MESSAGES/django.po +1 -1
  952. wagtail/documents/locale/mi/LC_MESSAGES/django.po +1 -1
  953. wagtail/documents/locale/mn/LC_MESSAGES/django.po +1 -1
  954. wagtail/documents/locale/my/LC_MESSAGES/django.po +1 -1
  955. wagtail/documents/locale/nb/LC_MESSAGES/django.mo +0 -0
  956. wagtail/documents/locale/nb/LC_MESSAGES/django.po +3 -2
  957. wagtail/documents/locale/nl/LC_MESSAGES/django.mo +0 -0
  958. wagtail/documents/locale/nl/LC_MESSAGES/django.po +2 -2
  959. wagtail/documents/locale/pl/LC_MESSAGES/django.mo +0 -0
  960. wagtail/documents/locale/pl/LC_MESSAGES/django.po +2 -2
  961. wagtail/documents/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  962. wagtail/documents/locale/pt_BR/LC_MESSAGES/django.po +2 -2
  963. wagtail/documents/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  964. wagtail/documents/locale/ro/LC_MESSAGES/django.mo +0 -0
  965. wagtail/documents/locale/ro/LC_MESSAGES/django.po +2 -2
  966. wagtail/documents/locale/ru/LC_MESSAGES/django.mo +0 -0
  967. wagtail/documents/locale/ru/LC_MESSAGES/django.po +5 -2
  968. wagtail/documents/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
  969. wagtail/documents/locale/sk_SK/LC_MESSAGES/django.po +2 -2
  970. wagtail/documents/locale/sl/LC_MESSAGES/django.mo +0 -0
  971. wagtail/documents/locale/sl/LC_MESSAGES/django.po +2 -2
  972. wagtail/documents/locale/sv/LC_MESSAGES/django.po +1 -1
  973. wagtail/documents/locale/tet/LC_MESSAGES/django.po +1 -1
  974. wagtail/documents/locale/th/LC_MESSAGES/django.po +1 -1
  975. wagtail/documents/locale/tr/LC_MESSAGES/django.po +1 -1
  976. wagtail/documents/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  977. wagtail/documents/locale/ug/LC_MESSAGES/django.po +1 -1
  978. wagtail/documents/locale/uk/LC_MESSAGES/django.po +1 -1
  979. wagtail/documents/locale/vi/LC_MESSAGES/django.po +1 -1
  980. wagtail/documents/locale/zh/LC_MESSAGES/django.po +1 -1
  981. wagtail/documents/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  982. wagtail/documents/locale/zh_Hans/LC_MESSAGES/django.po +3 -2
  983. wagtail/documents/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  984. wagtail/documents/rich_text/contentstate.py +1 -0
  985. wagtail/documents/rich_text/editor_html.py +1 -0
  986. wagtail/documents/tests/test_collection_privacy.py +1 -1
  987. wagtail/documents/tests/test_serializers.py +0 -1
  988. wagtail/documents/views/serve.py +0 -15
  989. wagtail/documents/wagtail_hooks.py +2 -17
  990. wagtail/embeds/locale/ar/LC_MESSAGES/django.po +1 -1
  991. wagtail/embeds/locale/az_AZ/LC_MESSAGES/django.po +1 -1
  992. wagtail/embeds/locale/be/LC_MESSAGES/django.po +1 -1
  993. wagtail/embeds/locale/bg/LC_MESSAGES/django.po +1 -1
  994. wagtail/embeds/locale/bn/LC_MESSAGES/django.po +1 -1
  995. wagtail/embeds/locale/ca/LC_MESSAGES/django.po +1 -1
  996. wagtail/embeds/locale/cs/LC_MESSAGES/django.po +1 -1
  997. wagtail/embeds/locale/cy/LC_MESSAGES/django.po +1 -1
  998. wagtail/embeds/locale/da/LC_MESSAGES/django.po +1 -1
  999. wagtail/embeds/locale/de/LC_MESSAGES/django.po +1 -1
  1000. wagtail/embeds/locale/dv/LC_MESSAGES/django.po +1 -1
  1001. wagtail/embeds/locale/el/LC_MESSAGES/django.po +1 -1
  1002. wagtail/embeds/locale/en/LC_MESSAGES/django.po +1 -1
  1003. wagtail/embeds/locale/es/LC_MESSAGES/django.po +1 -1
  1004. wagtail/embeds/locale/es_419/LC_MESSAGES/django.po +1 -1
  1005. wagtail/embeds/locale/et/LC_MESSAGES/django.po +1 -1
  1006. wagtail/embeds/locale/fa/LC_MESSAGES/django.po +1 -1
  1007. wagtail/embeds/locale/fi/LC_MESSAGES/django.po +1 -1
  1008. wagtail/embeds/locale/fr/LC_MESSAGES/django.po +1 -1
  1009. wagtail/embeds/locale/gl/LC_MESSAGES/django.po +1 -1
  1010. wagtail/embeds/locale/he_IL/LC_MESSAGES/django.po +1 -1
  1011. wagtail/embeds/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  1012. wagtail/embeds/locale/ht/LC_MESSAGES/django.po +1 -1
  1013. wagtail/embeds/locale/hu/LC_MESSAGES/django.po +1 -1
  1014. wagtail/embeds/locale/id_ID/LC_MESSAGES/django.po +1 -1
  1015. wagtail/embeds/locale/is_IS/LC_MESSAGES/django.po +1 -1
  1016. wagtail/embeds/locale/it/LC_MESSAGES/django.po +1 -1
  1017. wagtail/embeds/locale/ja/LC_MESSAGES/django.po +1 -1
  1018. wagtail/embeds/locale/ko/LC_MESSAGES/django.po +1 -1
  1019. wagtail/embeds/locale/lt/LC_MESSAGES/django.po +1 -1
  1020. wagtail/embeds/locale/lv/LC_MESSAGES/django.po +1 -1
  1021. wagtail/embeds/locale/mi/LC_MESSAGES/django.po +1 -1
  1022. wagtail/embeds/locale/mn/LC_MESSAGES/django.po +1 -1
  1023. wagtail/embeds/locale/my/LC_MESSAGES/django.po +1 -1
  1024. wagtail/embeds/locale/nb/LC_MESSAGES/django.po +1 -1
  1025. wagtail/embeds/locale/nl/LC_MESSAGES/django.po +1 -1
  1026. wagtail/embeds/locale/pl/LC_MESSAGES/django.po +1 -1
  1027. wagtail/embeds/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  1028. wagtail/embeds/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  1029. wagtail/embeds/locale/ro/LC_MESSAGES/django.po +1 -1
  1030. wagtail/embeds/locale/ru/LC_MESSAGES/django.po +1 -1
  1031. wagtail/embeds/locale/sk_SK/LC_MESSAGES/django.po +1 -1
  1032. wagtail/embeds/locale/sl/LC_MESSAGES/django.po +1 -1
  1033. wagtail/embeds/locale/sv/LC_MESSAGES/django.po +1 -1
  1034. wagtail/embeds/locale/tet/LC_MESSAGES/django.po +1 -1
  1035. wagtail/embeds/locale/th/LC_MESSAGES/django.po +1 -1
  1036. wagtail/embeds/locale/tr/LC_MESSAGES/django.po +1 -1
  1037. wagtail/embeds/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  1038. wagtail/embeds/locale/ug/LC_MESSAGES/django.po +1 -1
  1039. wagtail/embeds/locale/uk/LC_MESSAGES/django.po +1 -1
  1040. wagtail/embeds/locale/vi/LC_MESSAGES/django.po +1 -1
  1041. wagtail/embeds/locale/zh/LC_MESSAGES/django.po +1 -1
  1042. wagtail/embeds/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  1043. wagtail/embeds/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  1044. wagtail/embeds/rich_text/contentstate.py +1 -0
  1045. wagtail/embeds/rich_text/editor_html.py +1 -0
  1046. wagtail/embeds/wagtail_hooks.py +1 -1
  1047. wagtail/images/formats.py +0 -11
  1048. wagtail/images/locale/ar/LC_MESSAGES/django.po +1 -1
  1049. wagtail/images/locale/az_AZ/LC_MESSAGES/django.po +1 -1
  1050. wagtail/images/locale/be/LC_MESSAGES/django.po +1 -1
  1051. wagtail/images/locale/bg/LC_MESSAGES/django.po +1 -1
  1052. wagtail/images/locale/bn/LC_MESSAGES/django.po +1 -1
  1053. wagtail/images/locale/ca/LC_MESSAGES/django.mo +0 -0
  1054. wagtail/images/locale/ca/LC_MESSAGES/django.po +2 -2
  1055. wagtail/images/locale/cs/LC_MESSAGES/django.mo +0 -0
  1056. wagtail/images/locale/cs/LC_MESSAGES/django.po +3 -2
  1057. wagtail/images/locale/cy/LC_MESSAGES/django.po +2 -1
  1058. wagtail/images/locale/da/LC_MESSAGES/django.po +1 -1
  1059. wagtail/images/locale/de/LC_MESSAGES/django.mo +0 -0
  1060. wagtail/images/locale/de/LC_MESSAGES/django.po +3 -2
  1061. wagtail/images/locale/dv/LC_MESSAGES/django.po +2 -1
  1062. wagtail/images/locale/el/LC_MESSAGES/django.po +1 -1
  1063. wagtail/images/locale/en/LC_MESSAGES/django.po +4 -4
  1064. wagtail/images/locale/es/LC_MESSAGES/django.po +1 -1
  1065. wagtail/images/locale/es_419/LC_MESSAGES/django.po +1 -1
  1066. wagtail/images/locale/et/LC_MESSAGES/django.po +1 -1
  1067. wagtail/images/locale/eu/LC_MESSAGES/django.po +1 -1
  1068. wagtail/images/locale/fa/LC_MESSAGES/django.mo +0 -0
  1069. wagtail/images/locale/fa/LC_MESSAGES/django.po +3 -2
  1070. wagtail/images/locale/fi/LC_MESSAGES/django.mo +0 -0
  1071. wagtail/images/locale/fi/LC_MESSAGES/django.po +2 -2
  1072. wagtail/images/locale/fr/LC_MESSAGES/django.mo +0 -0
  1073. wagtail/images/locale/fr/LC_MESSAGES/django.po +3 -2
  1074. wagtail/images/locale/gl/LC_MESSAGES/django.mo +0 -0
  1075. wagtail/images/locale/gl/LC_MESSAGES/django.po +2 -2
  1076. wagtail/images/locale/he_IL/LC_MESSAGES/django.po +1 -1
  1077. wagtail/images/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  1078. wagtail/images/locale/ht/LC_MESSAGES/django.po +1 -1
  1079. wagtail/images/locale/hu/LC_MESSAGES/django.mo +0 -0
  1080. wagtail/images/locale/hu/LC_MESSAGES/django.po +23 -3
  1081. wagtail/images/locale/id_ID/LC_MESSAGES/django.po +1 -1
  1082. wagtail/images/locale/is_IS/LC_MESSAGES/django.po +1 -1
  1083. wagtail/images/locale/it/LC_MESSAGES/django.mo +0 -0
  1084. wagtail/images/locale/it/LC_MESSAGES/django.po +2 -2
  1085. wagtail/images/locale/ja/LC_MESSAGES/django.po +1 -1
  1086. wagtail/images/locale/ka/LC_MESSAGES/django.po +1 -1
  1087. wagtail/images/locale/ko/LC_MESSAGES/django.mo +0 -0
  1088. wagtail/images/locale/ko/LC_MESSAGES/django.po +31 -2
  1089. wagtail/images/locale/lt/LC_MESSAGES/django.po +1 -1
  1090. wagtail/images/locale/lv/LC_MESSAGES/django.po +1 -1
  1091. wagtail/images/locale/mi/LC_MESSAGES/django.po +1 -1
  1092. wagtail/images/locale/mn/LC_MESSAGES/django.mo +0 -0
  1093. wagtail/images/locale/mn/LC_MESSAGES/django.po +3 -2
  1094. wagtail/images/locale/my/LC_MESSAGES/django.po +1 -1
  1095. wagtail/images/locale/nb/LC_MESSAGES/django.mo +0 -0
  1096. wagtail/images/locale/nb/LC_MESSAGES/django.po +3 -2
  1097. wagtail/images/locale/nl/LC_MESSAGES/django.mo +0 -0
  1098. wagtail/images/locale/nl/LC_MESSAGES/django.po +4 -5
  1099. wagtail/images/locale/pl/LC_MESSAGES/django.mo +0 -0
  1100. wagtail/images/locale/pl/LC_MESSAGES/django.po +2 -2
  1101. wagtail/images/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  1102. wagtail/images/locale/pt_BR/LC_MESSAGES/django.po +2 -2
  1103. wagtail/images/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  1104. wagtail/images/locale/ro/LC_MESSAGES/django.mo +0 -0
  1105. wagtail/images/locale/ro/LC_MESSAGES/django.po +3 -2
  1106. wagtail/images/locale/ru/LC_MESSAGES/django.mo +0 -0
  1107. wagtail/images/locale/ru/LC_MESSAGES/django.po +5 -2
  1108. wagtail/images/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
  1109. wagtail/images/locale/sk_SK/LC_MESSAGES/django.po +2 -2
  1110. wagtail/images/locale/sl/LC_MESSAGES/django.mo +0 -0
  1111. wagtail/images/locale/sl/LC_MESSAGES/django.po +2 -2
  1112. wagtail/images/locale/sv/LC_MESSAGES/django.mo +0 -0
  1113. wagtail/images/locale/sv/LC_MESSAGES/django.po +2 -2
  1114. wagtail/images/locale/tet/LC_MESSAGES/django.po +1 -1
  1115. wagtail/images/locale/th/LC_MESSAGES/django.po +1 -1
  1116. wagtail/images/locale/tr/LC_MESSAGES/django.po +1 -1
  1117. wagtail/images/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  1118. wagtail/images/locale/ug/LC_MESSAGES/django.po +1 -1
  1119. wagtail/images/locale/uk/LC_MESSAGES/django.mo +0 -0
  1120. wagtail/images/locale/uk/LC_MESSAGES/django.po +5 -4
  1121. wagtail/images/locale/vi/LC_MESSAGES/django.po +1 -1
  1122. wagtail/images/locale/zh/LC_MESSAGES/django.po +1 -1
  1123. wagtail/images/locale/zh_Hans/LC_MESSAGES/django.po +2 -1
  1124. wagtail/images/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  1125. wagtail/images/management/commands/wagtail_update_image_renditions.py +1 -1
  1126. wagtail/images/models.py +23 -7
  1127. wagtail/images/signal_handlers.py +1 -1
  1128. wagtail/images/tests/test_admin_views.py +1 -1
  1129. wagtail/images/tests/test_models.py +39 -3
  1130. wagtail/images/tests/tests.py +0 -6
  1131. wagtail/images/wagtail_hooks.py +2 -2
  1132. wagtail/locale/af/LC_MESSAGES/django.po +1 -1
  1133. wagtail/locale/ar/LC_MESSAGES/django.mo +0 -0
  1134. wagtail/locale/ar/LC_MESSAGES/django.po +59 -50
  1135. wagtail/locale/az_AZ/LC_MESSAGES/django.po +1 -1
  1136. wagtail/locale/be/LC_MESSAGES/django.mo +0 -0
  1137. wagtail/locale/be/LC_MESSAGES/django.po +55 -51
  1138. wagtail/locale/bg/LC_MESSAGES/django.mo +0 -0
  1139. wagtail/locale/bg/LC_MESSAGES/django.po +7 -4
  1140. wagtail/locale/bn/LC_MESSAGES/django.mo +0 -0
  1141. wagtail/locale/bn/LC_MESSAGES/django.po +7 -1
  1142. wagtail/locale/ca/LC_MESSAGES/django.mo +0 -0
  1143. wagtail/locale/ca/LC_MESSAGES/django.po +243 -234
  1144. wagtail/locale/cs/LC_MESSAGES/django.mo +0 -0
  1145. wagtail/locale/cs/LC_MESSAGES/django.po +181 -172
  1146. wagtail/locale/cy/LC_MESSAGES/django.mo +0 -0
  1147. wagtail/locale/cy/LC_MESSAGES/django.po +18 -12
  1148. wagtail/locale/da/LC_MESSAGES/django.mo +0 -0
  1149. wagtail/locale/da/LC_MESSAGES/django.po +16 -7
  1150. wagtail/locale/de/LC_MESSAGES/django.mo +0 -0
  1151. wagtail/locale/de/LC_MESSAGES/django.po +248 -238
  1152. wagtail/locale/dv/LC_MESSAGES/django.mo +0 -0
  1153. wagtail/locale/dv/LC_MESSAGES/django.po +225 -215
  1154. wagtail/locale/el/LC_MESSAGES/django.mo +0 -0
  1155. wagtail/locale/el/LC_MESSAGES/django.po +85 -75
  1156. wagtail/locale/en/LC_MESSAGES/django.po +339 -339
  1157. wagtail/locale/es/LC_MESSAGES/django.mo +0 -0
  1158. wagtail/locale/es/LC_MESSAGES/django.po +201 -192
  1159. wagtail/locale/es_419/LC_MESSAGES/django.mo +0 -0
  1160. wagtail/locale/es_419/LC_MESSAGES/django.po +7 -1
  1161. wagtail/locale/et/LC_MESSAGES/django.mo +0 -0
  1162. wagtail/locale/et/LC_MESSAGES/django.po +176 -173
  1163. wagtail/locale/eu/LC_MESSAGES/django.po +1 -1
  1164. wagtail/locale/fa/LC_MESSAGES/django.mo +0 -0
  1165. wagtail/locale/fa/LC_MESSAGES/django.po +59 -50
  1166. wagtail/locale/fi/LC_MESSAGES/django.mo +0 -0
  1167. wagtail/locale/fi/LC_MESSAGES/django.po +198 -189
  1168. wagtail/locale/fr/LC_MESSAGES/django.mo +0 -0
  1169. wagtail/locale/fr/LC_MESSAGES/django.po +245 -235
  1170. wagtail/locale/gl/LC_MESSAGES/django.mo +0 -0
  1171. wagtail/locale/gl/LC_MESSAGES/django.po +244 -235
  1172. wagtail/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  1173. wagtail/locale/he_IL/LC_MESSAGES/django.po +12 -9
  1174. wagtail/locale/hr_HR/LC_MESSAGES/django.mo +0 -0
  1175. wagtail/locale/hr_HR/LC_MESSAGES/django.po +187 -184
  1176. wagtail/locale/hu/LC_MESSAGES/django.mo +0 -0
  1177. wagtail/locale/hu/LC_MESSAGES/django.po +260 -229
  1178. wagtail/locale/id_ID/LC_MESSAGES/django.mo +0 -0
  1179. wagtail/locale/id_ID/LC_MESSAGES/django.po +52 -49
  1180. wagtail/locale/is_IS/LC_MESSAGES/django.mo +0 -0
  1181. wagtail/locale/is_IS/LC_MESSAGES/django.po +241 -232
  1182. wagtail/locale/it/LC_MESSAGES/django.mo +0 -0
  1183. wagtail/locale/it/LC_MESSAGES/django.po +233 -224
  1184. wagtail/locale/ja/LC_MESSAGES/django.mo +0 -0
  1185. wagtail/locale/ja/LC_MESSAGES/django.po +119 -110
  1186. wagtail/locale/ka/LC_MESSAGES/django.po +4 -4
  1187. wagtail/locale/ko/LC_MESSAGES/django.mo +0 -0
  1188. wagtail/locale/ko/LC_MESSAGES/django.po +95 -51
  1189. wagtail/locale/lt/LC_MESSAGES/django.mo +0 -0
  1190. wagtail/locale/lt/LC_MESSAGES/django.po +62 -53
  1191. wagtail/locale/lv/LC_MESSAGES/django.mo +0 -0
  1192. wagtail/locale/lv/LC_MESSAGES/django.po +25 -22
  1193. wagtail/locale/mi/LC_MESSAGES/django.po +167 -167
  1194. wagtail/locale/mn/LC_MESSAGES/django.mo +0 -0
  1195. wagtail/locale/mn/LC_MESSAGES/django.po +54 -50
  1196. wagtail/locale/my/LC_MESSAGES/django.po +6 -6
  1197. wagtail/locale/nb/LC_MESSAGES/django.mo +0 -0
  1198. wagtail/locale/nb/LC_MESSAGES/django.po +59 -50
  1199. wagtail/locale/nl/LC_MESSAGES/django.mo +0 -0
  1200. wagtail/locale/nl/LC_MESSAGES/django.po +242 -233
  1201. wagtail/locale/pl/LC_MESSAGES/django.mo +0 -0
  1202. wagtail/locale/pl/LC_MESSAGES/django.po +241 -232
  1203. wagtail/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  1204. wagtail/locale/pt_BR/LC_MESSAGES/django.po +211 -202
  1205. wagtail/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
  1206. wagtail/locale/pt_PT/LC_MESSAGES/django.po +191 -180
  1207. wagtail/locale/ro/LC_MESSAGES/django.mo +0 -0
  1208. wagtail/locale/ro/LC_MESSAGES/django.po +242 -232
  1209. wagtail/locale/ru/LC_MESSAGES/django.mo +0 -0
  1210. wagtail/locale/ru/LC_MESSAGES/django.po +246 -234
  1211. wagtail/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
  1212. wagtail/locale/sk_SK/LC_MESSAGES/django.po +50 -47
  1213. wagtail/locale/sl/LC_MESSAGES/django.mo +0 -0
  1214. wagtail/locale/sl/LC_MESSAGES/django.po +242 -233
  1215. wagtail/locale/sv/LC_MESSAGES/django.mo +0 -0
  1216. wagtail/locale/sv/LC_MESSAGES/django.po +216 -207
  1217. wagtail/locale/tet/LC_MESSAGES/django.mo +0 -0
  1218. wagtail/locale/tet/LC_MESSAGES/django.po +40 -37
  1219. wagtail/locale/th/LC_MESSAGES/django.mo +0 -0
  1220. wagtail/locale/th/LC_MESSAGES/django.po +57 -53
  1221. wagtail/locale/tr/LC_MESSAGES/django.mo +0 -0
  1222. wagtail/locale/tr/LC_MESSAGES/django.po +53 -50
  1223. wagtail/locale/tr_TR/LC_MESSAGES/django.mo +0 -0
  1224. wagtail/locale/tr_TR/LC_MESSAGES/django.po +53 -50
  1225. wagtail/locale/ug/LC_MESSAGES/django.mo +0 -0
  1226. wagtail/locale/ug/LC_MESSAGES/django.po +241 -232
  1227. wagtail/locale/uk/LC_MESSAGES/django.mo +0 -0
  1228. wagtail/locale/uk/LC_MESSAGES/django.po +194 -185
  1229. wagtail/locale/vi/LC_MESSAGES/django.mo +0 -0
  1230. wagtail/locale/vi/LC_MESSAGES/django.po +20 -19
  1231. wagtail/locale/zh/LC_MESSAGES/django.mo +0 -0
  1232. wagtail/locale/zh/LC_MESSAGES/django.po +7 -4
  1233. wagtail/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  1234. wagtail/locale/zh_Hans/LC_MESSAGES/django.po +198 -189
  1235. wagtail/locale/zh_Hant/LC_MESSAGES/django.mo +0 -0
  1236. wagtail/locale/zh_Hant/LC_MESSAGES/django.po +164 -161
  1237. wagtail/locales/locale/ar/LC_MESSAGES/django.po +1 -1
  1238. wagtail/locales/locale/be/LC_MESSAGES/django.po +1 -1
  1239. wagtail/locales/locale/bg/LC_MESSAGES/django.po +1 -1
  1240. wagtail/locales/locale/ca/LC_MESSAGES/django.mo +0 -0
  1241. wagtail/locales/locale/ca/LC_MESSAGES/django.po +13 -3
  1242. wagtail/locales/locale/cs/LC_MESSAGES/django.po +1 -1
  1243. wagtail/locales/locale/cy/LC_MESSAGES/django.po +1 -1
  1244. wagtail/locales/locale/da/LC_MESSAGES/django.po +1 -1
  1245. wagtail/locales/locale/de/LC_MESSAGES/django.mo +0 -0
  1246. wagtail/locales/locale/de/LC_MESSAGES/django.po +13 -2
  1247. wagtail/locales/locale/dv/LC_MESSAGES/django.po +1 -1
  1248. wagtail/locales/locale/el/LC_MESSAGES/django.po +1 -1
  1249. wagtail/locales/locale/en/LC_MESSAGES/django.po +26 -14
  1250. wagtail/locales/locale/es/LC_MESSAGES/django.po +1 -1
  1251. wagtail/locales/locale/et/LC_MESSAGES/django.po +1 -1
  1252. wagtail/locales/locale/fa/LC_MESSAGES/django.po +1 -1
  1253. wagtail/locales/locale/fi/LC_MESSAGES/django.po +1 -1
  1254. wagtail/locales/locale/fr/LC_MESSAGES/django.mo +0 -0
  1255. wagtail/locales/locale/fr/LC_MESSAGES/django.po +14 -2
  1256. wagtail/locales/locale/gl/LC_MESSAGES/django.mo +0 -0
  1257. wagtail/locales/locale/gl/LC_MESSAGES/django.po +13 -3
  1258. wagtail/locales/locale/he_IL/LC_MESSAGES/django.po +3 -3
  1259. wagtail/locales/locale/hr_HR/LC_MESSAGES/django.po +3 -3
  1260. wagtail/locales/locale/hu/LC_MESSAGES/django.po +1 -1
  1261. wagtail/locales/locale/id_ID/LC_MESSAGES/django.po +1 -1
  1262. wagtail/locales/locale/is_IS/LC_MESSAGES/django.po +3 -3
  1263. wagtail/locales/locale/it/LC_MESSAGES/django.po +1 -1
  1264. wagtail/locales/locale/ja/LC_MESSAGES/django.po +1 -1
  1265. wagtail/locales/locale/ko/LC_MESSAGES/django.po +1 -1
  1266. wagtail/locales/locale/lt/LC_MESSAGES/django.po +1 -1
  1267. wagtail/locales/locale/lv/LC_MESSAGES/django.po +1 -1
  1268. wagtail/locales/locale/mi/LC_MESSAGES/django.po +1 -1
  1269. wagtail/locales/locale/mn/LC_MESSAGES/django.po +1 -1
  1270. wagtail/locales/locale/my/LC_MESSAGES/django.po +1 -1
  1271. wagtail/locales/locale/nb/LC_MESSAGES/django.po +3 -3
  1272. wagtail/locales/locale/nl/LC_MESSAGES/django.po +1 -1
  1273. wagtail/locales/locale/pl/LC_MESSAGES/django.po +1 -1
  1274. wagtail/locales/locale/pt_BR/LC_MESSAGES/django.po +3 -3
  1275. wagtail/locales/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  1276. wagtail/locales/locale/ro/LC_MESSAGES/django.po +1 -1
  1277. wagtail/locales/locale/ru/LC_MESSAGES/django.po +1 -1
  1278. wagtail/locales/locale/sk_SK/LC_MESSAGES/django.po +3 -3
  1279. wagtail/locales/locale/sl/LC_MESSAGES/django.po +1 -1
  1280. wagtail/locales/locale/sv/LC_MESSAGES/django.po +1 -1
  1281. wagtail/locales/locale/tet/LC_MESSAGES/django.po +1 -1
  1282. wagtail/locales/locale/th/LC_MESSAGES/django.po +1 -1
  1283. wagtail/locales/locale/tr/LC_MESSAGES/django.po +1 -1
  1284. wagtail/locales/locale/tr_TR/LC_MESSAGES/django.po +3 -3
  1285. wagtail/locales/locale/ug/LC_MESSAGES/django.po +1 -1
  1286. wagtail/locales/locale/uk/LC_MESSAGES/django.po +1 -1
  1287. wagtail/locales/locale/vi/LC_MESSAGES/django.po +1 -1
  1288. wagtail/locales/locale/zh/LC_MESSAGES/django.po +1 -1
  1289. wagtail/locales/locale/zh_Hans/LC_MESSAGES/django.po +3 -3
  1290. wagtail/locales/locale/zh_Hant/LC_MESSAGES/django.po +3 -3
  1291. wagtail/locales/tests.py +32 -1
  1292. wagtail/locales/views.py +39 -7
  1293. wagtail/models/__init__.py +67 -5002
  1294. wagtail/models/audit_log.py +1 -1
  1295. wagtail/models/content_types.py +11 -0
  1296. wagtail/models/draft_state.py +197 -0
  1297. wagtail/models/locking.py +82 -0
  1298. wagtail/models/orderable.py +10 -0
  1299. wagtail/models/pages.py +2755 -0
  1300. wagtail/models/preview.py +281 -0
  1301. wagtail/models/reference_index.py +1 -1
  1302. wagtail/models/revisions.py +433 -0
  1303. wagtail/models/view_restrictions.py +3 -3
  1304. wagtail/models/workflows.py +1348 -0
  1305. wagtail/project_template/home/apps.py +6 -0
  1306. wagtail/project_template/manage.py-tpl +22 -0
  1307. wagtail/project_template/project_name/settings/base.py +1 -0
  1308. wagtail/project_template/requirements.txt +2 -2
  1309. wagtail/search/backends/base.py +10 -5
  1310. wagtail/search/backends/database/fallback.py +3 -0
  1311. wagtail/search/backends/database/mysql/mysql.py +9 -2
  1312. wagtail/search/backends/database/mysql/query.py +8 -4
  1313. wagtail/search/backends/database/postgres/postgres.py +3 -0
  1314. wagtail/search/backends/database/sqlite/sqlite.py +3 -0
  1315. wagtail/search/backends/elasticsearch7.py +20 -7
  1316. wagtail/search/locale/ar/LC_MESSAGES/django.po +1 -1
  1317. wagtail/search/locale/be/LC_MESSAGES/django.po +1 -1
  1318. wagtail/search/locale/ca/LC_MESSAGES/django.po +1 -1
  1319. wagtail/search/locale/cs/LC_MESSAGES/django.po +1 -1
  1320. wagtail/search/locale/cy/LC_MESSAGES/django.po +1 -1
  1321. wagtail/search/locale/de/LC_MESSAGES/django.po +1 -1
  1322. wagtail/search/locale/dv/LC_MESSAGES/django.po +1 -1
  1323. wagtail/search/locale/en/LC_MESSAGES/django.po +1 -1
  1324. wagtail/search/locale/es/LC_MESSAGES/django.po +1 -1
  1325. wagtail/search/locale/et/LC_MESSAGES/django.po +1 -1
  1326. wagtail/search/locale/fa/LC_MESSAGES/django.po +1 -1
  1327. wagtail/search/locale/fi/LC_MESSAGES/django.po +1 -1
  1328. wagtail/search/locale/fr/LC_MESSAGES/django.po +1 -1
  1329. wagtail/search/locale/gl/LC_MESSAGES/django.po +1 -1
  1330. wagtail/search/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  1331. wagtail/search/locale/ht/LC_MESSAGES/django.po +1 -1
  1332. wagtail/search/locale/hu/LC_MESSAGES/django.po +1 -1
  1333. wagtail/search/locale/id_ID/LC_MESSAGES/django.po +1 -1
  1334. wagtail/search/locale/is_IS/LC_MESSAGES/django.po +1 -1
  1335. wagtail/search/locale/it/LC_MESSAGES/django.po +1 -1
  1336. wagtail/search/locale/ja/LC_MESSAGES/django.po +1 -1
  1337. wagtail/search/locale/ko/LC_MESSAGES/django.po +1 -1
  1338. wagtail/search/locale/lt/LC_MESSAGES/django.po +1 -1
  1339. wagtail/search/locale/mi/LC_MESSAGES/django.po +1 -1
  1340. wagtail/search/locale/mn/LC_MESSAGES/django.po +1 -1
  1341. wagtail/search/locale/my/LC_MESSAGES/django.po +1 -1
  1342. wagtail/search/locale/nb/LC_MESSAGES/django.po +1 -1
  1343. wagtail/search/locale/nl/LC_MESSAGES/django.po +1 -1
  1344. wagtail/search/locale/pl/LC_MESSAGES/django.po +1 -1
  1345. wagtail/search/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  1346. wagtail/search/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  1347. wagtail/search/locale/ro/LC_MESSAGES/django.po +1 -1
  1348. wagtail/search/locale/ru/LC_MESSAGES/django.po +1 -1
  1349. wagtail/search/locale/sl/LC_MESSAGES/django.po +1 -1
  1350. wagtail/search/locale/sv/LC_MESSAGES/django.po +1 -1
  1351. wagtail/search/locale/tet/LC_MESSAGES/django.po +1 -1
  1352. wagtail/search/locale/th/LC_MESSAGES/django.po +1 -1
  1353. wagtail/search/locale/tr/LC_MESSAGES/django.po +1 -1
  1354. wagtail/search/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  1355. wagtail/search/locale/ug/LC_MESSAGES/django.po +1 -1
  1356. wagtail/search/locale/uk/LC_MESSAGES/django.po +1 -1
  1357. wagtail/search/locale/vi/LC_MESSAGES/django.po +1 -1
  1358. wagtail/search/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  1359. wagtail/search/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  1360. wagtail/search/signal_handlers.py +1 -1
  1361. wagtail/search/tests/elasticsearch_common_tests.py +43 -0
  1362. wagtail/search/tests/test_backends.py +50 -13
  1363. wagtail/search/tests/test_index_functions.py +27 -1
  1364. wagtail/search/tests/test_mysql_backend.py +97 -0
  1365. wagtail/search/tests/test_page_search.py +2 -1
  1366. wagtail/search/tests/test_queries.py +2 -2
  1367. wagtail/signal_handlers.py +1 -1
  1368. wagtail/sites/locale/ar/LC_MESSAGES/django.po +1 -1
  1369. wagtail/sites/locale/be/LC_MESSAGES/django.po +1 -1
  1370. wagtail/sites/locale/bn/LC_MESSAGES/django.po +1 -1
  1371. wagtail/sites/locale/ca/LC_MESSAGES/django.po +1 -1
  1372. wagtail/sites/locale/cs/LC_MESSAGES/django.po +1 -1
  1373. wagtail/sites/locale/cy/LC_MESSAGES/django.po +1 -1
  1374. wagtail/sites/locale/da/LC_MESSAGES/django.po +1 -1
  1375. wagtail/sites/locale/de/LC_MESSAGES/django.po +1 -1
  1376. wagtail/sites/locale/dv/LC_MESSAGES/django.po +1 -1
  1377. wagtail/sites/locale/el/LC_MESSAGES/django.po +1 -1
  1378. wagtail/sites/locale/en/LC_MESSAGES/django.po +1 -1
  1379. wagtail/sites/locale/en_IN/LC_MESSAGES/django.po +1 -1
  1380. wagtail/sites/locale/es/LC_MESSAGES/django.po +1 -1
  1381. wagtail/sites/locale/es_419/LC_MESSAGES/django.po +1 -1
  1382. wagtail/sites/locale/es_VE/LC_MESSAGES/django.po +1 -1
  1383. wagtail/sites/locale/et/LC_MESSAGES/django.po +1 -1
  1384. wagtail/sites/locale/fa/LC_MESSAGES/django.po +1 -1
  1385. wagtail/sites/locale/fi/LC_MESSAGES/django.po +1 -1
  1386. wagtail/sites/locale/fr/LC_MESSAGES/django.po +1 -1
  1387. wagtail/sites/locale/gl/LC_MESSAGES/django.po +1 -1
  1388. wagtail/sites/locale/he_IL/LC_MESSAGES/django.po +1 -1
  1389. wagtail/sites/locale/hi/LC_MESSAGES/django.po +1 -1
  1390. wagtail/sites/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  1391. wagtail/sites/locale/ht/LC_MESSAGES/django.po +1 -1
  1392. wagtail/sites/locale/hu/LC_MESSAGES/django.po +1 -1
  1393. wagtail/sites/locale/id_ID/LC_MESSAGES/django.po +1 -1
  1394. wagtail/sites/locale/is_IS/LC_MESSAGES/django.po +1 -1
  1395. wagtail/sites/locale/it/LC_MESSAGES/django.po +1 -1
  1396. wagtail/sites/locale/ja/LC_MESSAGES/django.po +1 -1
  1397. wagtail/sites/locale/ka/LC_MESSAGES/django.po +1 -1
  1398. wagtail/sites/locale/ko/LC_MESSAGES/django.po +1 -1
  1399. wagtail/sites/locale/lt/LC_MESSAGES/django.po +1 -1
  1400. wagtail/sites/locale/lv/LC_MESSAGES/django.po +1 -1
  1401. wagtail/sites/locale/mi/LC_MESSAGES/django.po +1 -1
  1402. wagtail/sites/locale/mn/LC_MESSAGES/django.po +1 -1
  1403. wagtail/sites/locale/my/LC_MESSAGES/django.po +1 -1
  1404. wagtail/sites/locale/nb/LC_MESSAGES/django.po +1 -1
  1405. wagtail/sites/locale/nl/LC_MESSAGES/django.po +1 -1
  1406. wagtail/sites/locale/pl/LC_MESSAGES/django.po +1 -1
  1407. wagtail/sites/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  1408. wagtail/sites/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  1409. wagtail/sites/locale/ro/LC_MESSAGES/django.po +1 -1
  1410. wagtail/sites/locale/ru/LC_MESSAGES/django.po +1 -1
  1411. wagtail/sites/locale/sk_SK/LC_MESSAGES/django.po +1 -1
  1412. wagtail/sites/locale/sl/LC_MESSAGES/django.po +1 -1
  1413. wagtail/sites/locale/sr/LC_MESSAGES/django.po +1 -1
  1414. wagtail/sites/locale/sv/LC_MESSAGES/django.po +1 -1
  1415. wagtail/sites/locale/ta/LC_MESSAGES/django.po +1 -1
  1416. wagtail/sites/locale/tet/LC_MESSAGES/django.po +1 -1
  1417. wagtail/sites/locale/th/LC_MESSAGES/django.po +1 -1
  1418. wagtail/sites/locale/tr/LC_MESSAGES/django.po +1 -1
  1419. wagtail/sites/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  1420. wagtail/sites/locale/ug/LC_MESSAGES/django.po +1 -1
  1421. wagtail/sites/locale/uk/LC_MESSAGES/django.po +1 -1
  1422. wagtail/sites/locale/vi/LC_MESSAGES/django.po +1 -1
  1423. wagtail/sites/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  1424. wagtail/sites/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  1425. wagtail/snippets/action_menu.py +9 -30
  1426. wagtail/snippets/locale/af/LC_MESSAGES/django.po +1 -1
  1427. wagtail/snippets/locale/ar/LC_MESSAGES/django.po +4 -4
  1428. wagtail/snippets/locale/az_AZ/LC_MESSAGES/django.po +4 -4
  1429. wagtail/snippets/locale/be/LC_MESSAGES/django.mo +0 -0
  1430. wagtail/snippets/locale/be/LC_MESSAGES/django.po +6 -5
  1431. wagtail/snippets/locale/bg/LC_MESSAGES/django.po +4 -4
  1432. wagtail/snippets/locale/bn/LC_MESSAGES/django.po +4 -4
  1433. wagtail/snippets/locale/ca/LC_MESSAGES/django.mo +0 -0
  1434. wagtail/snippets/locale/ca/LC_MESSAGES/django.po +11 -13
  1435. wagtail/snippets/locale/cs/LC_MESSAGES/django.po +5 -4
  1436. wagtail/snippets/locale/cy/LC_MESSAGES/django.mo +0 -0
  1437. wagtail/snippets/locale/cy/LC_MESSAGES/django.po +5 -12
  1438. wagtail/snippets/locale/da/LC_MESSAGES/django.po +4 -4
  1439. wagtail/snippets/locale/de/LC_MESSAGES/django.mo +0 -0
  1440. wagtail/snippets/locale/de/LC_MESSAGES/django.po +13 -14
  1441. wagtail/snippets/locale/dv/LC_MESSAGES/django.po +5 -4
  1442. wagtail/snippets/locale/el/LC_MESSAGES/django.po +5 -4
  1443. wagtail/snippets/locale/en/LC_MESSAGES/django.po +31 -23
  1444. wagtail/snippets/locale/en_IN/LC_MESSAGES/django.po +1 -1
  1445. wagtail/snippets/locale/es/LC_MESSAGES/django.mo +0 -0
  1446. wagtail/snippets/locale/es/LC_MESSAGES/django.po +6 -13
  1447. wagtail/snippets/locale/es_419/LC_MESSAGES/django.po +4 -4
  1448. wagtail/snippets/locale/es_VE/LC_MESSAGES/django.po +1 -1
  1449. wagtail/snippets/locale/et/LC_MESSAGES/django.po +4 -4
  1450. wagtail/snippets/locale/eu/LC_MESSAGES/django.po +1 -1
  1451. wagtail/snippets/locale/fa/LC_MESSAGES/django.mo +0 -0
  1452. wagtail/snippets/locale/fa/LC_MESSAGES/django.po +6 -5
  1453. wagtail/snippets/locale/fi/LC_MESSAGES/django.mo +0 -0
  1454. wagtail/snippets/locale/fi/LC_MESSAGES/django.po +6 -9
  1455. wagtail/snippets/locale/fr/LC_MESSAGES/django.mo +0 -0
  1456. wagtail/snippets/locale/fr/LC_MESSAGES/django.po +13 -14
  1457. wagtail/snippets/locale/gl/LC_MESSAGES/django.mo +0 -0
  1458. wagtail/snippets/locale/gl/LC_MESSAGES/django.po +11 -13
  1459. wagtail/snippets/locale/he_IL/LC_MESSAGES/django.po +4 -4
  1460. wagtail/snippets/locale/hi/LC_MESSAGES/django.po +1 -1
  1461. wagtail/snippets/locale/hr_HR/LC_MESSAGES/django.mo +0 -0
  1462. wagtail/snippets/locale/hr_HR/LC_MESSAGES/django.po +4 -12
  1463. wagtail/snippets/locale/ht/LC_MESSAGES/django.po +1 -1
  1464. wagtail/snippets/locale/hu/LC_MESSAGES/django.mo +0 -0
  1465. wagtail/snippets/locale/hu/LC_MESSAGES/django.po +4 -12
  1466. wagtail/snippets/locale/id_ID/LC_MESSAGES/django.po +4 -4
  1467. wagtail/snippets/locale/is_IS/LC_MESSAGES/django.mo +0 -0
  1468. wagtail/snippets/locale/is_IS/LC_MESSAGES/django.po +5 -14
  1469. wagtail/snippets/locale/it/LC_MESSAGES/django.mo +0 -0
  1470. wagtail/snippets/locale/it/LC_MESSAGES/django.po +5 -13
  1471. wagtail/snippets/locale/ja/LC_MESSAGES/django.mo +0 -0
  1472. wagtail/snippets/locale/ja/LC_MESSAGES/django.po +6 -5
  1473. wagtail/snippets/locale/ka/LC_MESSAGES/django.po +4 -4
  1474. wagtail/snippets/locale/ko/LC_MESSAGES/django.po +4 -4
  1475. wagtail/snippets/locale/lt/LC_MESSAGES/django.po +4 -4
  1476. wagtail/snippets/locale/lv/LC_MESSAGES/django.po +4 -4
  1477. wagtail/snippets/locale/mi/LC_MESSAGES/django.po +4 -4
  1478. wagtail/snippets/locale/mn/LC_MESSAGES/django.po +4 -4
  1479. wagtail/snippets/locale/my/LC_MESSAGES/django.po +4 -4
  1480. wagtail/snippets/locale/nb/LC_MESSAGES/django.mo +0 -0
  1481. wagtail/snippets/locale/nb/LC_MESSAGES/django.po +5 -12
  1482. wagtail/snippets/locale/nl/LC_MESSAGES/django.mo +0 -0
  1483. wagtail/snippets/locale/nl/LC_MESSAGES/django.po +12 -13
  1484. wagtail/snippets/locale/pl/LC_MESSAGES/django.mo +0 -0
  1485. wagtail/snippets/locale/pl/LC_MESSAGES/django.po +5 -13
  1486. wagtail/snippets/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  1487. wagtail/snippets/locale/pt_BR/LC_MESSAGES/django.po +7 -13
  1488. wagtail/snippets/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
  1489. wagtail/snippets/locale/pt_PT/LC_MESSAGES/django.po +7 -5
  1490. wagtail/snippets/locale/ro/LC_MESSAGES/django.mo +0 -0
  1491. wagtail/snippets/locale/ro/LC_MESSAGES/django.po +6 -13
  1492. wagtail/snippets/locale/ru/LC_MESSAGES/django.mo +0 -0
  1493. wagtail/snippets/locale/ru/LC_MESSAGES/django.po +6 -13
  1494. wagtail/snippets/locale/sk_SK/LC_MESSAGES/django.po +4 -4
  1495. wagtail/snippets/locale/sl/LC_MESSAGES/django.mo +0 -0
  1496. wagtail/snippets/locale/sl/LC_MESSAGES/django.po +5 -13
  1497. wagtail/snippets/locale/sr/LC_MESSAGES/django.po +1 -1
  1498. wagtail/snippets/locale/sv/LC_MESSAGES/django.mo +0 -0
  1499. wagtail/snippets/locale/sv/LC_MESSAGES/django.po +5 -13
  1500. wagtail/snippets/locale/ta/LC_MESSAGES/django.po +1 -1
  1501. wagtail/snippets/locale/tet/LC_MESSAGES/django.po +4 -4
  1502. wagtail/snippets/locale/th/LC_MESSAGES/django.mo +0 -0
  1503. wagtail/snippets/locale/th/LC_MESSAGES/django.po +6 -5
  1504. wagtail/snippets/locale/tr/LC_MESSAGES/django.po +4 -4
  1505. wagtail/snippets/locale/tr_TR/LC_MESSAGES/django.po +4 -4
  1506. wagtail/snippets/locale/ug/LC_MESSAGES/django.mo +0 -0
  1507. wagtail/snippets/locale/ug/LC_MESSAGES/django.po +4 -12
  1508. wagtail/snippets/locale/uk/LC_MESSAGES/django.mo +0 -0
  1509. wagtail/snippets/locale/uk/LC_MESSAGES/django.po +6 -6
  1510. wagtail/snippets/locale/vi/LC_MESSAGES/django.po +4 -4
  1511. wagtail/snippets/locale/zh/LC_MESSAGES/django.po +4 -4
  1512. wagtail/snippets/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  1513. wagtail/snippets/locale/zh_Hans/LC_MESSAGES/django.po +6 -13
  1514. wagtail/snippets/locale/zh_Hant/LC_MESSAGES/django.po +4 -4
  1515. wagtail/snippets/permissions.py +6 -4
  1516. wagtail/snippets/static/wagtailsnippets/js/snippet-chooser-telepath.js +1 -1
  1517. wagtail/snippets/static/wagtailsnippets/js/snippet-chooser.js +1 -1
  1518. wagtail/snippets/templates/wagtailsnippets/snippets/action_menu/publish.html +3 -5
  1519. wagtail/snippets/tests/test_preview.py +62 -38
  1520. wagtail/snippets/tests/test_snippets.py +313 -130
  1521. wagtail/snippets/tests/test_viewset.py +69 -6
  1522. wagtail/snippets/tests/test_workflows.py +0 -4
  1523. wagtail/snippets/views/snippets.py +29 -53
  1524. wagtail/snippets/wagtail_hooks.py +3 -7
  1525. wagtail/templates/wagtailcore/shared/block_preview.html +9 -1
  1526. wagtail/test/apps.py +5 -0
  1527. wagtail/test/context_processors.py +19 -0
  1528. wagtail/test/customuser/forms.py +19 -0
  1529. wagtail/test/customuser/viewsets.py +12 -0
  1530. wagtail/test/settings.py +8 -9
  1531. wagtail/test/snippets/apps.py +10 -0
  1532. wagtail/test/streamfield_migrations/testutils.py +4 -4
  1533. wagtail/test/testapp/migrations/0046_alter_custom_rendition_to_unique_constraint.py +24 -0
  1534. wagtail/test/testapp/migrations/0047_advertwithcustomuuidprimarykey_page.py +25 -0
  1535. wagtail/test/testapp/migrations/0048_requireddatepage.py +36 -0
  1536. wagtail/test/testapp/migrations/0049_promotionalpage.py +35 -0
  1537. wagtail/test/testapp/migrations/0050_headcountrelatedmodelusingpk_related_page.py +25 -0
  1538. wagtail/test/testapp/migrations/0051_userapprovaltaskstate_userapprovaltask.py +59 -0
  1539. wagtail/test/testapp/models.py +190 -27
  1540. wagtail/test/testapp/templates/tests/workflows/approve_with_style.html +6 -0
  1541. wagtail/test/testapp/views.py +7 -1
  1542. wagtail/test/testapp/wagtail_hooks.py +6 -0
  1543. wagtail/test/utils/form_data.py +1 -0
  1544. wagtail/tests/streamfield_migrations/test_migration_names.py +6 -6
  1545. wagtail/tests/streamfield_migrations/test_migrations.py +46 -1
  1546. wagtail/tests/test_blocks.py +11 -18
  1547. wagtail/tests/test_management_commands.py +1 -1
  1548. wagtail/tests/test_page_model.py +27 -0
  1549. wagtail/tests/test_page_privacy.py +1 -1
  1550. wagtail/tests/test_reference_index.py +39 -0
  1551. wagtail/tests/test_streamfield.py +136 -0
  1552. wagtail/tests/test_utils.py +1 -23
  1553. wagtail/users/forms.py +3 -17
  1554. wagtail/users/locale/ar/LC_MESSAGES/django.po +1 -1
  1555. wagtail/users/locale/be/LC_MESSAGES/django.mo +0 -0
  1556. wagtail/users/locale/be/LC_MESSAGES/django.po +3 -2
  1557. wagtail/users/locale/bg/LC_MESSAGES/django.po +1 -1
  1558. wagtail/users/locale/bn/LC_MESSAGES/django.po +1 -1
  1559. wagtail/users/locale/ca/LC_MESSAGES/django.mo +0 -0
  1560. wagtail/users/locale/ca/LC_MESSAGES/django.po +2 -2
  1561. wagtail/users/locale/cs/LC_MESSAGES/django.po +2 -1
  1562. wagtail/users/locale/cy/LC_MESSAGES/django.po +2 -1
  1563. wagtail/users/locale/da/LC_MESSAGES/django.po +1 -1
  1564. wagtail/users/locale/de/LC_MESSAGES/django.mo +0 -0
  1565. wagtail/users/locale/de/LC_MESSAGES/django.po +3 -3
  1566. wagtail/users/locale/dv/LC_MESSAGES/django.po +2 -1
  1567. wagtail/users/locale/el/LC_MESSAGES/django.po +1 -1
  1568. wagtail/users/locale/en/LC_MESSAGES/django.po +71 -71
  1569. wagtail/users/locale/es/LC_MESSAGES/django.po +1 -1
  1570. wagtail/users/locale/es_419/LC_MESSAGES/django.po +1 -1
  1571. wagtail/users/locale/et/LC_MESSAGES/django.po +1 -1
  1572. wagtail/users/locale/eu/LC_MESSAGES/django.po +1 -1
  1573. wagtail/users/locale/fa/LC_MESSAGES/django.mo +0 -0
  1574. wagtail/users/locale/fa/LC_MESSAGES/django.po +3 -2
  1575. wagtail/users/locale/fi/LC_MESSAGES/django.mo +0 -0
  1576. wagtail/users/locale/fi/LC_MESSAGES/django.po +4 -4
  1577. wagtail/users/locale/fr/LC_MESSAGES/django.mo +0 -0
  1578. wagtail/users/locale/fr/LC_MESSAGES/django.po +4 -2
  1579. wagtail/users/locale/gl/LC_MESSAGES/django.mo +0 -0
  1580. wagtail/users/locale/gl/LC_MESSAGES/django.po +2 -2
  1581. wagtail/users/locale/he_IL/LC_MESSAGES/django.po +1 -1
  1582. wagtail/users/locale/hr_HR/LC_MESSAGES/django.mo +0 -0
  1583. wagtail/users/locale/hr_HR/LC_MESSAGES/django.po +2 -2
  1584. wagtail/users/locale/hu/LC_MESSAGES/django.mo +0 -0
  1585. wagtail/users/locale/hu/LC_MESSAGES/django.po +45 -3
  1586. wagtail/users/locale/hy/LC_MESSAGES/django.po +1 -1
  1587. wagtail/users/locale/id_ID/LC_MESSAGES/django.po +1 -1
  1588. wagtail/users/locale/is_IS/LC_MESSAGES/django.po +1 -1
  1589. wagtail/users/locale/it/LC_MESSAGES/django.mo +0 -0
  1590. wagtail/users/locale/it/LC_MESSAGES/django.po +2 -2
  1591. wagtail/users/locale/ja/LC_MESSAGES/django.po +1 -1
  1592. wagtail/users/locale/ka/LC_MESSAGES/django.po +1 -1
  1593. wagtail/users/locale/ko/LC_MESSAGES/django.mo +0 -0
  1594. wagtail/users/locale/ko/LC_MESSAGES/django.po +47 -2
  1595. wagtail/users/locale/lt/LC_MESSAGES/django.po +1 -1
  1596. wagtail/users/locale/lv/LC_MESSAGES/django.po +1 -1
  1597. wagtail/users/locale/mi/LC_MESSAGES/django.po +1 -1
  1598. wagtail/users/locale/mn/LC_MESSAGES/django.mo +0 -0
  1599. wagtail/users/locale/mn/LC_MESSAGES/django.po +3 -2
  1600. wagtail/users/locale/my/LC_MESSAGES/django.po +1 -1
  1601. wagtail/users/locale/nb/LC_MESSAGES/django.po +2 -1
  1602. wagtail/users/locale/nl/LC_MESSAGES/django.mo +0 -0
  1603. wagtail/users/locale/nl/LC_MESSAGES/django.po +3 -2
  1604. wagtail/users/locale/pl/LC_MESSAGES/django.mo +0 -0
  1605. wagtail/users/locale/pl/LC_MESSAGES/django.po +2 -2
  1606. wagtail/users/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  1607. wagtail/users/locale/pt_BR/LC_MESSAGES/django.po +3 -2
  1608. wagtail/users/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
  1609. wagtail/users/locale/pt_PT/LC_MESSAGES/django.po +3 -2
  1610. wagtail/users/locale/ro/LC_MESSAGES/django.mo +0 -0
  1611. wagtail/users/locale/ro/LC_MESSAGES/django.po +3 -2
  1612. wagtail/users/locale/ru/LC_MESSAGES/django.mo +0 -0
  1613. wagtail/users/locale/ru/LC_MESSAGES/django.po +4 -2
  1614. wagtail/users/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
  1615. wagtail/users/locale/sk_SK/LC_MESSAGES/django.po +2 -2
  1616. wagtail/users/locale/sl/LC_MESSAGES/django.mo +0 -0
  1617. wagtail/users/locale/sl/LC_MESSAGES/django.po +2 -2
  1618. wagtail/users/locale/sv/LC_MESSAGES/django.mo +0 -0
  1619. wagtail/users/locale/sv/LC_MESSAGES/django.po +2 -2
  1620. wagtail/users/locale/tet/LC_MESSAGES/django.po +1 -1
  1621. wagtail/users/locale/th/LC_MESSAGES/django.mo +0 -0
  1622. wagtail/users/locale/th/LC_MESSAGES/django.po +3 -2
  1623. wagtail/users/locale/tr/LC_MESSAGES/django.po +1 -1
  1624. wagtail/users/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  1625. wagtail/users/locale/ug/LC_MESSAGES/django.po +1 -1
  1626. wagtail/users/locale/uk/LC_MESSAGES/django.mo +0 -0
  1627. wagtail/users/locale/uk/LC_MESSAGES/django.po +3 -2
  1628. wagtail/users/locale/vi/LC_MESSAGES/django.po +2 -1
  1629. wagtail/users/locale/zh/LC_MESSAGES/django.po +1 -1
  1630. wagtail/users/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  1631. wagtail/users/locale/zh_Hans/LC_MESSAGES/django.po +3 -2
  1632. wagtail/users/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  1633. wagtail/users/models.py +7 -1
  1634. wagtail/users/permission_order.py +16 -2
  1635. wagtail/users/templatetags/wagtailusers_tags.py +3 -31
  1636. wagtail/users/tests/__init__.py +0 -6
  1637. wagtail/users/tests/test_admin_views.py +285 -611
  1638. wagtail/users/views/groups.py +1 -28
  1639. wagtail/users/views/users.py +3 -45
  1640. wagtail/utils/deprecation.py +3 -3
  1641. wagtail/whitelist.py +1 -0
  1642. wagtail/workflows.py +2 -2
  1643. wagtail-7.0.dist-info/METADATA +224 -0
  1644. {wagtail-6.4rc1.dist-info → wagtail-7.0.dist-info}/RECORD +1648 -1631
  1645. {wagtail-6.4rc1.dist-info → wagtail-7.0.dist-info}/WHEEL +1 -1
  1646. wagtail/admin/templates/wagtailadmin/shared/ajax_pagination_nav.html +0 -25
  1647. wagtail/contrib/redirects/locale/az_AZ/LC_MESSAGES/django.po +0 -22
  1648. wagtail/contrib/search_promotions/locale/en_IN/LC_MESSAGES/django.po +0 -22
  1649. wagtail/contrib/search_promotions/locale/hi/LC_MESSAGES/django.po +0 -22
  1650. wagtail/contrib/search_promotions/locale/sr/LC_MESSAGES/django.po +0 -23
  1651. wagtail/project_template/manage.py +0 -10
  1652. wagtail/utils/setup.py +0 -90
  1653. wagtail/utils/widgets.py +0 -46
  1654. wagtail-6.4rc1.dist-info/METADATA +0 -77
  1655. {wagtail-6.4rc1.dist-info → wagtail-7.0.dist-info}/entry_points.txt +0 -0
  1656. {wagtail-6.4rc1.dist-info → wagtail-7.0.dist-info/licenses}/LICENSE +0 -0
  1657. {wagtail-6.4rc1.dist-info → wagtail-7.0.dist-info}/top_level.txt +0 -0
@@ -1,11 +1,8 @@
1
- from warnings import warn
2
-
3
1
  from django.contrib.auth import get_permission_codename
4
2
  from django.contrib.auth.models import Permission
5
3
  from django.contrib.contenttypes.models import ContentType
6
4
  from django.core.exceptions import ImproperlyConfigured
7
5
  from django.forms.models import modelform_factory
8
- from django.shortcuts import redirect
9
6
  from django.urls import path
10
7
  from django.utils.functional import cached_property
11
8
  from django.utils.text import capfirst
@@ -20,7 +17,6 @@ from wagtail.admin.views import generic
20
17
  from wagtail.admin.views.generic import history, usage
21
18
  from wagtail.models import ReferenceIndex
22
19
  from wagtail.permissions import ModelPermissionPolicy
23
- from wagtail.utils.deprecation import RemovedInWagtail70Warning
24
20
 
25
21
  from .base import ViewSet, ViewSetGroup
26
22
 
@@ -236,36 +232,6 @@ class ModelViewSet(ViewSet):
236
232
  self.delete_view_class, **self.get_delete_view_kwargs()
237
233
  )
238
234
 
239
- @property
240
- def redirect_to_edit_view(self):
241
- def redirect_to_edit(request, pk):
242
- warn(
243
- (
244
- "%s's `/<pk>/` edit view URL pattern has been "
245
- "deprecated in favour of /edit/<pk>/."
246
- )
247
- % (self.__class__.__name__),
248
- category=RemovedInWagtail70Warning,
249
- )
250
- return redirect(self.get_url_name("edit"), pk, permanent=True)
251
-
252
- return redirect_to_edit
253
-
254
- @property
255
- def redirect_to_delete_view(self):
256
- def redirect_to_delete(request, pk):
257
- warn(
258
- (
259
- "%s's `/<pk>/delete/` delete view URL pattern has been "
260
- "deprecated in favour of /delete/<pk>/."
261
- )
262
- % (self.__class__.__name__),
263
- category=RemovedInWagtail70Warning,
264
- )
265
- return redirect(self.get_url_name("delete"), pk, permanent=True)
266
-
267
- return redirect_to_delete
268
-
269
235
  @property
270
236
  def history_view(self):
271
237
  return self.construct_view(
@@ -427,7 +393,7 @@ class ModelViewSet(ViewSet):
427
393
  - An instance of the ``wagtail.admin.ui.tables.Column`` class.
428
394
 
429
395
  If the name refers to a database field, the ability to sort the listing
430
- by the database column will be offerred and the field's verbose name
396
+ by the database column will be offered and the field's verbose name
431
397
  will be used as the column header.
432
398
 
433
399
  If the name refers to a callable or property, an ``admin_order_field``
@@ -438,9 +404,11 @@ class ModelViewSet(ViewSet):
438
404
  This list will be passed to the ``list_display`` attribute of the index
439
405
  view. If left unset, the ``list_display`` attribute of the index view
440
406
  will be used instead, which by default is defined as
441
- ``["__str__", wagtail.admin.ui.tables.UpdatedAtColumn()]``.
407
+ ``["__str__", wagtail.admin.ui.tables.LocaleColumn(), wagtail.admin.ui.tables.UpdatedAtColumn()]``.
408
+
409
+ Note that the ``LocaleColumn`` is only included if the model is translatable.
442
410
  """
443
- return self.index_view_class.list_display
411
+ return self.UNDEFINED
444
412
 
445
413
  @cached_property
446
414
  def list_filter(self):
@@ -661,19 +629,8 @@ class ModelViewSet(ViewSet):
661
629
  if self.copy_view_enabled:
662
630
  urlpatterns.append(path("copy/<str:pk>/", self.copy_view, name="copy"))
663
631
 
664
- # RemovedInWagtail70Warning: Remove legacy URL patterns
665
- urlpatterns += self._legacy_urlpatterns
666
-
667
632
  return urlpatterns
668
633
 
669
- @cached_property
670
- def _legacy_urlpatterns(self):
671
- # RemovedInWagtail70Warning: Remove legacy URL patterns
672
- return [
673
- path("<str:pk>/", self.redirect_to_edit_view),
674
- path("<str:pk>/delete/", self.redirect_to_delete_view),
675
- ]
676
-
677
634
  def on_register(self):
678
635
  super().on_register()
679
636
  self.register_admin_url_finder()
@@ -3,7 +3,6 @@ from django.contrib.auth.models import Permission
3
3
  from django.urls import reverse, reverse_lazy
4
4
  from django.utils.functional import cached_property
5
5
  from django.utils.http import urlencode
6
- from django.utils.translation import gettext
7
6
  from django.utils.translation import gettext_lazy as _
8
7
  from draftjs_exporter.dom import DOM
9
8
 
@@ -495,7 +494,7 @@ def register_core_features(features):
495
494
  {
496
495
  "icon": "h1",
497
496
  "type": "header-one",
498
- "description": gettext("Heading %(level)d") % {"level": 1},
497
+ "description": _("Heading 1"),
499
498
  }
500
499
  ),
501
500
  )
@@ -516,7 +515,7 @@ def register_core_features(features):
516
515
  {
517
516
  "icon": "h2",
518
517
  "type": "header-two",
519
- "description": gettext("Heading %(level)d") % {"level": 2},
518
+ "description": _("Heading 2"),
520
519
  }
521
520
  ),
522
521
  )
@@ -537,7 +536,7 @@ def register_core_features(features):
537
536
  {
538
537
  "icon": "h3",
539
538
  "type": "header-three",
540
- "description": gettext("Heading %(level)d") % {"level": 3},
539
+ "description": _("Heading 3"),
541
540
  }
542
541
  ),
543
542
  )
@@ -558,7 +557,7 @@ def register_core_features(features):
558
557
  {
559
558
  "icon": "h4",
560
559
  "type": "header-four",
561
- "description": gettext("Heading %(level)d") % {"level": 4},
560
+ "description": _("Heading 4"),
562
561
  }
563
562
  ),
564
563
  )
@@ -579,7 +578,7 @@ def register_core_features(features):
579
578
  {
580
579
  "icon": "h5",
581
580
  "type": "header-five",
582
- "description": gettext("Heading %(level)d") % {"level": 5},
581
+ "description": _("Heading 5"),
583
582
  }
584
583
  ),
585
584
  )
@@ -600,7 +599,7 @@ def register_core_features(features):
600
599
  {
601
600
  "icon": "h6",
602
601
  "type": "header-six",
603
- "description": gettext("Heading %(level)d") % {"level": 6},
602
+ "description": _("Heading 6"),
604
603
  }
605
604
  ),
606
605
  )
@@ -621,7 +620,7 @@ def register_core_features(features):
621
620
  {
622
621
  "type": "unordered-list-item",
623
622
  "icon": "list-ul",
624
- "description": gettext("Bulleted list"),
623
+ "description": _("Bulleted list"),
625
624
  }
626
625
  ),
627
626
  )
@@ -645,7 +644,7 @@ def register_core_features(features):
645
644
  {
646
645
  "type": "ordered-list-item",
647
646
  "icon": "list-ol",
648
- "description": gettext("Numbered list"),
647
+ "description": _("Numbered list"),
649
648
  }
650
649
  ),
651
650
  )
@@ -669,7 +668,7 @@ def register_core_features(features):
669
668
  {
670
669
  "type": "blockquote",
671
670
  "icon": "openquote",
672
- "description": gettext("Blockquote"),
671
+ "description": _("Blockquote"),
673
672
  }
674
673
  ),
675
674
  )
@@ -691,7 +690,7 @@ def register_core_features(features):
691
690
  {
692
691
  "type": "BOLD",
693
692
  "icon": "bold",
694
- "description": gettext("Bold"),
693
+ "description": _("Bold"),
695
694
  }
696
695
  ),
697
696
  )
@@ -713,7 +712,7 @@ def register_core_features(features):
713
712
  {
714
713
  "type": "ITALIC",
715
714
  "icon": "italic",
716
- "description": gettext("Italic"),
715
+ "description": _("Italic"),
717
716
  }
718
717
  ),
719
718
  )
@@ -736,7 +735,7 @@ def register_core_features(features):
736
735
  {
737
736
  "type": "LINK",
738
737
  "icon": "link",
739
- "description": gettext("Link"),
738
+ "description": _("Link"),
740
739
  # We want to enforce constraints on which links can be pasted into rich text.
741
740
  # Keep only the attributes Wagtail needs.
742
741
  "attributes": ["url", "id", "parentId"],
@@ -783,7 +782,7 @@ def register_core_features(features):
783
782
  {
784
783
  "type": "SUPERSCRIPT",
785
784
  "icon": "superscript",
786
- "description": gettext("Superscript"),
785
+ "description": _("Superscript"),
787
786
  }
788
787
  ),
789
788
  )
@@ -804,7 +803,7 @@ def register_core_features(features):
804
803
  {
805
804
  "type": "SUBSCRIPT",
806
805
  "icon": "subscript",
807
- "description": gettext("Subscript"),
806
+ "description": _("Subscript"),
808
807
  }
809
808
  ),
810
809
  )
@@ -825,7 +824,7 @@ def register_core_features(features):
825
824
  {
826
825
  "type": "STRIKETHROUGH",
827
826
  "icon": "strikethrough",
828
- "description": gettext("Strikethrough"),
827
+ "description": _("Strikethrough"),
829
828
  }
830
829
  ),
831
830
  )
@@ -846,7 +845,7 @@ def register_core_features(features):
846
845
  {
847
846
  "type": "CODE",
848
847
  "icon": "code",
849
- "description": gettext("Code"),
848
+ "description": _("Code"),
850
849
  }
851
850
  ),
852
851
  )
@@ -1,5 +1,3 @@
1
- from warnings import warn
2
-
3
1
  from django.forms.utils import flatatt
4
2
  from django.urls import reverse
5
3
  from django.utils.functional import cached_property
@@ -7,8 +5,6 @@ from django.utils.http import urlencode
7
5
 
8
6
  from wagtail import hooks
9
7
  from wagtail.admin.ui.components import Component
10
- from wagtail.coreutils import accepts_kwarg
11
- from wagtail.utils.deprecation import RemovedInWagtail70Warning
12
8
 
13
9
 
14
10
  class Button(Component):
@@ -199,27 +195,13 @@ class ButtonWithDropdownFromHook(BaseDropdownMenuButton):
199
195
  label,
200
196
  hook_name,
201
197
  page,
202
- user=None,
203
- page_perms=None,
198
+ user,
204
199
  next_url=None,
205
200
  **kwargs,
206
201
  ):
207
202
  self.hook_name = hook_name
208
203
  self.page = page
209
-
210
- if user is None:
211
- if page_perms is not None:
212
- warn(
213
- "ButtonWithDropdownFromHook should be passed a `user` argument instead of `page_perms`",
214
- category=RemovedInWagtail70Warning,
215
- stacklevel=2,
216
- )
217
- self.user = page_perms.user
218
- else:
219
- raise TypeError("ButtonWithDropdownFromHook requires a `user` argument")
220
- else:
221
- self.user = user
222
-
204
+ self.user = user
223
205
  self.next_url = next_url
224
206
 
225
207
  super().__init__(label, **kwargs)
@@ -234,19 +216,7 @@ class ButtonWithDropdownFromHook(BaseDropdownMenuButton):
234
216
 
235
217
  buttons = []
236
218
  for hook in button_hooks:
237
- if accepts_kwarg(hook, "user"):
238
- buttons.extend(
239
- hook(page=self.page, user=self.user, next_url=self.next_url)
240
- )
241
- else:
242
- # old-style hook that accepts page_perms instead of user
243
- warn(
244
- f"`{self.hook_name}` hook functions should accept a `user` argument instead of `page_perms` -"
245
- f" {hook.__module__}.{hook.__name__} needs to be updated",
246
- category=RemovedInWagtail70Warning,
247
- )
248
- page_perms = self.page.permissions_for_user(self.user)
249
- buttons.extend(hook(self.page, page_perms, self.next_url))
219
+ buttons.extend(hook(page=self.page, user=self.user, next_url=self.next_url))
250
220
 
251
221
  buttons = [b for b in buttons if b.show]
252
222
  return buttons
@@ -1,4 +1,5 @@
1
1
  import json
2
+ from warnings import warn
2
3
 
3
4
  from django.conf import settings
4
5
  from django.urls import reverse
@@ -6,6 +7,8 @@ from django.utils.translation import gettext_lazy as _
6
7
  from taggit.forms import TagWidget
7
8
  from taggit.models import Tag
8
9
 
10
+ from wagtail.utils.deprecation import RemovedInWagtail80Warning
11
+
9
12
 
10
13
  class AdminTagWidget(TagWidget):
11
14
  template_name = "wagtailadmin/widgets/tag_widget.html"
@@ -39,7 +42,19 @@ class AdminTagWidget(TagWidget):
39
42
  else:
40
43
  free_tagging = self.free_tagging
41
44
 
42
- tag_spaces_allowed = getattr(settings, "TAG_SPACES_ALLOWED", True)
45
+ if hasattr(settings, "TAG_SPACES_ALLOWED"):
46
+ warn(
47
+ "The setting 'TAG_SPACES_ALLOWED' is deprecated. "
48
+ "Please use 'WAGTAIL_TAG_SPACES_ALLOWED' instead.",
49
+ RemovedInWagtail80Warning,
50
+ )
51
+ tag_spaces_allowed = getattr(
52
+ settings,
53
+ "WAGTAIL_TAG_SPACES_ALLOWED",
54
+ # RemovedInWagtail80Warning: Remove fallback to deprecated setting
55
+ getattr(settings, "TAG_SPACES_ALLOWED", True),
56
+ )
57
+
43
58
  if tag_spaces_allowed:
44
59
  help_text = _(
45
60
  'Multi-word tags with spaces will automatically be enclosed in double quotes (").'
@@ -47,13 +62,26 @@ class AdminTagWidget(TagWidget):
47
62
  else:
48
63
  help_text = _("Tags can only consist of a single word, no spaces allowed.")
49
64
 
65
+ if hasattr(settings, "TAG_LIMIT"):
66
+ warn(
67
+ "The setting 'TAG_LIMIT' is deprecated. "
68
+ "Please use 'WAGTAIL_TAG_LIMIT' instead.",
69
+ RemovedInWagtail80Warning,
70
+ )
71
+ tag_limit = getattr(
72
+ settings,
73
+ "WAGTAIL_TAG_LIMIT",
74
+ # RemovedInWagtail80Warning: Remove fallback to deprecated setting
75
+ getattr(settings, "TAG_LIMIT", None),
76
+ )
77
+
50
78
  context["widget"]["help_text"] = help_text
51
79
  context["widget"]["attrs"]["data-w-tag-delay-value"] = 200
52
80
  context["widget"]["attrs"]["data-w-tag-url-value"] = autocomplete_url
53
81
  context["widget"]["attrs"]["data-w-tag-options-value"] = json.dumps(
54
82
  {
55
- "allowSpaces": getattr(settings, "TAG_SPACES_ALLOWED", True),
56
- "tagLimit": getattr(settings, "TAG_LIMIT", None),
83
+ "allowSpaces": tag_spaces_allowed,
84
+ "tagLimit": tag_limit,
57
85
  "autocompleteOnly": not free_tagging,
58
86
  }
59
87
  )
wagtail/api/v2/views.py CHANGED
@@ -305,10 +305,10 @@ class BaseAPIViewSet(GenericViewSet):
305
305
  child_endpoint_class = (
306
306
  child_endpoint_class[1] if child_endpoint_class else BaseAPIViewSet
307
307
  )
308
- child_serializer_classes[
309
- field_name
310
- ] = child_endpoint_class._get_serializer_class(
311
- router, child_model, child_sub_fields, nested=True
308
+ child_serializer_classes[field_name] = (
309
+ child_endpoint_class._get_serializer_class(
310
+ router, child_model, child_sub_fields, nested=True
311
+ )
312
312
  )
313
313
 
314
314
  else:
wagtail/blocks/base.py CHANGED
@@ -2,7 +2,6 @@ import collections
2
2
  import itertools
3
3
  import json
4
4
  import re
5
- import warnings
6
5
  from functools import lru_cache
7
6
  from importlib import import_module
8
7
 
@@ -17,9 +16,7 @@ from django.utils.safestring import mark_safe
17
16
  from django.utils.text import capfirst
18
17
 
19
18
  from wagtail.admin.staticfiles import versioned_static
20
- from wagtail.coreutils import accepts_kwarg
21
19
  from wagtail.telepath import JSContext
22
- from wagtail.utils.deprecation import RemovedInWagtail70Warning
23
20
  from wagtail.utils.templates import template_is_overridden
24
21
 
25
22
  __all__ = [
@@ -224,8 +221,9 @@ class Block(metaclass=BaseBlock):
224
221
 
225
222
  def get_context(self, value, parent_context=None):
226
223
  """
227
- Return a dict of context variables (derived from the block value and combined with the parent_context)
228
- to be used as the template context when rendering this value through a template.
224
+ Return a dict of context variables (derived from the block ``value`` and combined with the
225
+ ``parent_context``) to be used as the template context when rendering this value through a
226
+ template. See :ref:`the usage example <streamfield_get_context>` for more details.
229
227
  """
230
228
 
231
229
  context = parent_context or {}
@@ -239,11 +237,9 @@ class Block(metaclass=BaseBlock):
239
237
 
240
238
  def get_template(self, value=None, context=None):
241
239
  """
242
- Return the template to use for rendering the block if specified on meta class.
243
- This extraction was added to make dynamic templates possible if you override this method
244
-
245
- value contains the current value of the block, allowing overridden methods to
246
- select the proper template based on the actual block value.
240
+ Return the template to use for rendering the block if specified.
241
+ This method allows for dynamic templates based on the block instance and a given ``value``.
242
+ See :ref:`the usage example <streamfield_get_template>` for more details.
247
243
  """
248
244
  return getattr(self.meta, "template", None)
249
245
 
@@ -253,16 +249,7 @@ class Block(metaclass=BaseBlock):
253
249
  use a template (with the passed context, supplemented by the result of get_context) if a
254
250
  'template' property is specified on the block, and fall back on render_basic otherwise.
255
251
  """
256
- args = {"context": context}
257
- if accepts_kwarg(self.get_template, "value"):
258
- args["value"] = value
259
- else:
260
- warnings.warn(
261
- f"{self.__class__.__name__}.get_template should accept a 'value' argument as first argument",
262
- RemovedInWagtail70Warning,
263
- )
264
-
265
- template = self.get_template(**args)
252
+ template = self.get_template(value, context=context)
266
253
  if not template:
267
254
  return self.render_basic(value, context=context)
268
255
 
@@ -274,30 +261,67 @@ class Block(metaclass=BaseBlock):
274
261
  return mark_safe(render_to_string(template, new_context))
275
262
 
276
263
  def get_preview_context(self, value, parent_context=None):
277
- # We do not fall back to `get_context` here, because the preview context
278
- # will be used for a complete view, not just the block. Instead, the
279
- # default preview context uses `{% include_block %}`, which will use
280
- # `get_context`.
264
+ """
265
+ Return a dict of context variables to be used as the template context
266
+ when rendering the block's preview. The ``value`` argument is the value
267
+ returned by :meth:`get_preview_value`. The ``parent_context`` argument
268
+ contains the following variables:
269
+
270
+ - ``request``: The current request object.
271
+ - ``block_def``: The block instance.
272
+ - ``block_class``: The block class.
273
+ - ``bound_block``: A ``BoundBlock`` instance representing the block and its value.
274
+
275
+ If :ref:`the global preview template <streamfield_global_preview_template>`
276
+ is used, the block will be rendered as the main content using
277
+ ``{% include_block %}``, which in turn uses :meth:`get_context`. As a
278
+ result, the context returned by this method will be available as the
279
+ ``parent_context`` for ``get_context()`` when the preview is rendered.
280
+ """
281
+ # NOTE: see StreamFieldBlockPreview.base_context for the context variables
282
+ # that can be documented.
281
283
  return parent_context or {}
282
284
 
283
285
  def get_preview_template(self, value, context=None):
284
- # We do not fall back to `get_template` here, because the template will
285
- # be used for a complete view, not just the block. In most cases, the
286
- # block's template cannot stand alone for the preview, as it would be
287
- # missing the necessary static assets.
288
- #
289
- # Instead, the default preview template uses `{% include_block %}`,
290
- # which will use `get_template` if a template is defined.
286
+ """
287
+ Return the template to use for rendering the block's preview. The ``value``
288
+ argument is the value returned by :meth:`get_preview_value`. The ``context``
289
+ argument contains the variables listed for the ``parent_context`` argument
290
+ of :meth:`get_preview_context` above (and not the context returned by that
291
+ method itself).
292
+
293
+ Note that the preview template is used to render a complete HTML page of
294
+ the preview, not just an HTML fragment for the block. The method returns
295
+ the ``preview_template`` attribute from the block's options if provided,
296
+ and falls back to
297
+ :ref:`the global preview template <streamfield_global_preview_template>`
298
+ otherwise.
299
+
300
+ If the global preview template is used, the block will be rendered as the
301
+ main content using ``{% include_block %}``, which in turn uses
302
+ :meth:`get_template`.
303
+ """
291
304
  return (
292
305
  getattr(self.meta, "preview_template", None)
293
306
  or self.DEFAULT_PREVIEW_TEMPLATE
294
307
  )
295
308
 
296
309
  def get_preview_value(self):
310
+ """
311
+ Return the placeholder value that will be used for rendering the block's
312
+ preview. By default, the value is the ``preview_value`` from the block's
313
+ options if provided, otherwise the ``default`` is used as fallback. This
314
+ method can be overridden to provide a dynamic preview value, such as
315
+ from the database.
316
+ """
297
317
  if hasattr(self.meta, "preview_value"):
298
318
  return self.normalize(self.meta.preview_value)
299
319
  return self.get_default()
300
320
 
321
+ @cached_property
322
+ def _has_default(self):
323
+ return getattr(self.meta, "default", None) is not None
324
+
301
325
  @cached_property
302
326
  def is_previewable(self):
303
327
  # To prevent showing a broken preview if the block preview has not been
@@ -314,7 +338,7 @@ class Block(metaclass=BaseBlock):
314
338
  )
315
339
  has_preview_value = (
316
340
  hasattr(self.meta, "preview_value")
317
- or getattr(self.meta, "default", None) is not None
341
+ or self._has_default
318
342
  or self.__class__.get_preview_context is not Block.get_preview_context
319
343
  or self.__class__.get_preview_value is not Block.get_preview_value
320
344
  )
@@ -325,6 +349,11 @@ class Block(metaclass=BaseBlock):
325
349
  return has_specific_template or (has_preview_value and has_global_template)
326
350
 
327
351
  def get_description(self):
352
+ """
353
+ Return the description of the block to be shown to editors as part of the preview.
354
+ For :ref:`field block types <field_block_types>`, it will fall back to
355
+ ``help_text`` if not provided.
356
+ """
328
357
  return getattr(self.meta, "description", "")
329
358
 
330
359
  def get_api_representation(self, value, context=None):
@@ -682,7 +711,7 @@ class BlockWidget(forms.Widget):
682
711
  def media(self):
683
712
  return self.js_context.media + forms.Media(
684
713
  js=[
685
- # needed for initBlockWidget, although these will almost certainly be
714
+ # these will almost certainly be
686
715
  # pulled in by the block adapters too
687
716
  versioned_static("wagtailadmin/js/telepath/telepath.js"),
688
717
  versioned_static("wagtailadmin/js/telepath/blocks.js"),
@@ -715,7 +744,22 @@ class BlockField(forms.Field):
715
744
  super().__init__(**kwargs)
716
745
 
717
746
  def clean(self, value):
718
- return self.block.clean(value)
747
+ from wagtail.blocks.stream_block import StreamBlock
748
+
749
+ if isinstance(self.block, StreamBlock):
750
+ # StreamBlock is the only block type that is formally-supported as the top level block
751
+ # of a BlockField, but it's possible that other block types could be used, so check
752
+ # this explicitly.
753
+ # self.block has a `required` attribute that is consistent with the StreamField's `blank`
754
+ # attribute and thus the `required` attribute of BlockField - but if the latter has been
755
+ # assigned dynamically (e.g. by defer_required_fields) we want this to take precedence.
756
+ # We do this through the `ignore_required_constraints` flag recognised by
757
+ # StreamBlock.clean.
758
+ return self.block.clean(
759
+ value, ignore_required_constraints=not self.required
760
+ )
761
+ else:
762
+ return self.block.clean(value)
719
763
 
720
764
  def has_changed(self, initial_value, data_value):
721
765
  return self.block.get_prep_value(initial_value) != self.block.get_prep_value(
@@ -13,6 +13,7 @@ from django.utils.safestring import mark_safe
13
13
  from django.utils.translation import gettext as _
14
14
 
15
15
  from wagtail.admin.staticfiles import versioned_static
16
+ from wagtail.compat import URLField
16
17
  from wagtail.coreutils import camelcase_to_underscore, resolve_model_string
17
18
  from wagtail.rich_text import (
18
19
  RichText,
@@ -318,7 +319,7 @@ class URLBlock(FieldBlock):
318
319
  validators=(),
319
320
  **kwargs,
320
321
  ):
321
- self.field = forms.URLField(
322
+ self.field = URLField(
322
323
  required=required,
323
324
  help_text=help_text,
324
325
  max_length=max_length,
@@ -147,7 +147,8 @@ class ListBlock(Block):
147
147
  else:
148
148
  self.child_block = child_block
149
149
 
150
- if not hasattr(self.meta, "default"):
150
+ self._has_default = hasattr(self.meta, "default")
151
+ if not self._has_default:
151
152
  # Default to a list consisting of one empty (i.e. default-valued) child item
152
153
  self.meta.default = [self.child_block.get_default()]
153
154
 
@@ -153,29 +153,29 @@ class StreamChildrenToListBlockOperation(BaseBlockOperation):
153
153
  super().__init__()
154
154
  self.block_name = block_name
155
155
  self.list_block_name = list_block_name
156
- self.temp_blocks = []
157
156
 
158
157
  def apply(self, block_value):
158
+ candidate_blocks = []
159
159
  mapped_block_value = []
160
160
  for child_block in block_value:
161
161
  if child_block["type"] == self.block_name:
162
- self.temp_blocks.append(child_block)
162
+ candidate_blocks.append(child_block)
163
163
  else:
164
164
  mapped_block_value.append(child_block)
165
165
 
166
- self.map_temp_blocks_to_list_items()
166
+ list_items = self.map_temp_blocks_to_list_items(candidate_blocks)
167
167
 
168
- if self.temp_blocks:
169
- new_list_block = {"type": self.list_block_name, "value": self.temp_blocks}
168
+ if list_items:
169
+ new_list_block = {"type": self.list_block_name, "value": list_items}
170
170
  mapped_block_value.append(new_list_block)
171
171
 
172
172
  return mapped_block_value
173
173
 
174
- def map_temp_blocks_to_list_items(self):
175
- new_temp_blocks = []
176
- for block in self.temp_blocks:
177
- new_temp_blocks.append({**block, "type": "item"})
178
- self.temp_blocks = new_temp_blocks
174
+ def map_temp_blocks_to_list_items(self, blocks):
175
+ list_items = []
176
+ for block in blocks:
177
+ list_items.append({**block, "type": "item"})
178
+ return list_items
179
179
 
180
180
  @property
181
181
  def operation_name_fragment(self):