wagtail 6.1.2__py3-none-any.whl → 6.2rc1__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 (644) hide show
  1. wagtail/__init__.py +1 -1
  2. wagtail/actions/copy_for_translation.py +15 -1
  3. wagtail/admin/checks.py +20 -30
  4. wagtail/admin/forms/pages.py +10 -0
  5. wagtail/admin/icons.py +43 -0
  6. wagtail/admin/locale/ar/LC_MESSAGES/django.po +2 -2
  7. wagtail/admin/locale/be/LC_MESSAGES/django.po +7 -7
  8. wagtail/admin/locale/be/LC_MESSAGES/djangojs.po +3 -3
  9. wagtail/admin/locale/ca/LC_MESSAGES/django.mo +0 -0
  10. wagtail/admin/locale/ca/LC_MESSAGES/django.po +51 -50
  11. wagtail/admin/locale/cs/LC_MESSAGES/django.po +10 -8
  12. wagtail/admin/locale/de/LC_MESSAGES/django.po +49 -47
  13. wagtail/admin/locale/dv/LC_MESSAGES/django.po +8 -8
  14. wagtail/admin/locale/el/LC_MESSAGES/django.po +4 -4
  15. wagtail/admin/locale/en/LC_MESSAGES/django.po +405 -295
  16. wagtail/admin/locale/en/LC_MESSAGES/djangojs.po +21 -3
  17. wagtail/admin/locale/es/LC_MESSAGES/django.po +40 -39
  18. wagtail/admin/locale/es_419/LC_MESSAGES/django.po +8 -8
  19. wagtail/admin/locale/et/LC_MESSAGES/django.po +14 -12
  20. wagtail/admin/locale/fa/LC_MESSAGES/django.mo +0 -0
  21. wagtail/admin/locale/fa/LC_MESSAGES/django.po +93 -19
  22. wagtail/admin/locale/fa/LC_MESSAGES/djangojs.mo +0 -0
  23. wagtail/admin/locale/fa/LC_MESSAGES/djangojs.po +5 -1
  24. wagtail/admin/locale/fi/LC_MESSAGES/django.po +18 -18
  25. wagtail/admin/locale/fr/LC_MESSAGES/django.mo +0 -0
  26. wagtail/admin/locale/fr/LC_MESSAGES/django.po +134 -46
  27. wagtail/admin/locale/gl/LC_MESSAGES/django.po +55 -54
  28. wagtail/admin/locale/hr_HR/LC_MESSAGES/django.po +13 -12
  29. wagtail/admin/locale/hr_HR/LC_MESSAGES/djangojs.po +2 -2
  30. wagtail/admin/locale/hu/LC_MESSAGES/django.po +45 -42
  31. wagtail/admin/locale/id_ID/LC_MESSAGES/django.po +6 -6
  32. wagtail/admin/locale/is_IS/LC_MESSAGES/django.po +53 -51
  33. wagtail/admin/locale/it/LC_MESSAGES/django.po +56 -55
  34. wagtail/admin/locale/ja/LC_MESSAGES/django.po +2 -2
  35. wagtail/admin/locale/ko/LC_MESSAGES/django.po +18 -17
  36. wagtail/admin/locale/lt/LC_MESSAGES/django.po +4 -4
  37. wagtail/admin/locale/nb/LC_MESSAGES/django.po +22 -22
  38. wagtail/admin/locale/nl/LC_MESSAGES/django.po +44 -41
  39. wagtail/admin/locale/pl/LC_MESSAGES/django.po +49 -47
  40. wagtail/admin/locale/pl/LC_MESSAGES/djangojs.po +3 -3
  41. wagtail/admin/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  42. wagtail/admin/locale/pt_BR/LC_MESSAGES/django.po +46 -26
  43. wagtail/admin/locale/pt_PT/LC_MESSAGES/django.po +21 -20
  44. wagtail/admin/locale/ro/LC_MESSAGES/django.po +51 -50
  45. wagtail/admin/locale/ru/LC_MESSAGES/django.po +60 -59
  46. wagtail/admin/locale/ru/LC_MESSAGES/djangojs.po +3 -3
  47. wagtail/admin/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
  48. wagtail/admin/locale/sk_SK/LC_MESSAGES/django.po +15 -5
  49. wagtail/admin/locale/sl/LC_MESSAGES/django.mo +0 -0
  50. wagtail/admin/locale/sl/LC_MESSAGES/django.po +86 -39
  51. wagtail/admin/locale/sl/LC_MESSAGES/djangojs.po +2 -2
  52. wagtail/admin/locale/sv/LC_MESSAGES/django.mo +0 -0
  53. wagtail/admin/locale/sv/LC_MESSAGES/django.po +117 -41
  54. wagtail/admin/locale/sv/LC_MESSAGES/djangojs.mo +0 -0
  55. wagtail/admin/locale/sv/LC_MESSAGES/djangojs.po +5 -2
  56. wagtail/admin/locale/tet/LC_MESSAGES/django.po +2 -2
  57. wagtail/admin/locale/th/LC_MESSAGES/django.po +4 -4
  58. wagtail/admin/locale/tr/LC_MESSAGES/django.po +4 -4
  59. wagtail/admin/locale/tr_TR/LC_MESSAGES/django.po +4 -4
  60. wagtail/admin/locale/uk/LC_MESSAGES/django.po +11 -10
  61. wagtail/admin/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  62. wagtail/admin/locale/zh_Hans/LC_MESSAGES/django.po +84 -13
  63. wagtail/admin/locale/zh_Hant/LC_MESSAGES/django.po +2 -2
  64. wagtail/admin/menu.py +2 -2
  65. wagtail/admin/migrations/0004_editingsession.py +57 -0
  66. wagtail/admin/migrations/0005_editingsession_is_editing.py +18 -0
  67. wagtail/admin/models.py +36 -3
  68. wagtail/admin/rich_text/editors/draftail/__init__.py +2 -20
  69. wagtail/admin/static/wagtailadmin/css/core.css +1 -1
  70. wagtail/admin/static/wagtailadmin/js/bulk-actions.js +1 -1
  71. wagtail/admin/static/wagtailadmin/js/chooser-modal.js +1 -1
  72. wagtail/admin/static/wagtailadmin/js/chooser-widget-telepath.js +1 -1
  73. wagtail/admin/static/wagtailadmin/js/chooser-widget.js +1 -1
  74. wagtail/admin/static/wagtailadmin/js/comments.js +1 -1
  75. wagtail/admin/static/wagtailadmin/js/core.js +1 -1
  76. wagtail/admin/static/wagtailadmin/js/date-time-chooser.js +1 -1
  77. wagtail/admin/static/wagtailadmin/js/draftail.js +1 -1
  78. wagtail/admin/static/wagtailadmin/js/expanding-formset.js +1 -1
  79. wagtail/admin/static/wagtailadmin/js/filtered-select.js +1 -1
  80. wagtail/admin/static/wagtailadmin/js/modal-workflow.js +1 -1
  81. wagtail/admin/static/wagtailadmin/js/page-chooser-modal.js +1 -1
  82. wagtail/admin/static/wagtailadmin/js/page-chooser-telepath.js +1 -1
  83. wagtail/admin/static/wagtailadmin/js/page-chooser.js +1 -1
  84. wagtail/admin/static/wagtailadmin/js/preview-panel.js +2 -1
  85. wagtail/admin/static/wagtailadmin/js/preview-panel.js.LICENSE.txt +11 -0
  86. wagtail/admin/static/wagtailadmin/js/privacy-switch.js +1 -1
  87. wagtail/admin/static/wagtailadmin/js/sidebar.js +1 -1
  88. wagtail/admin/static/wagtailadmin/js/task-chooser-modal.js +1 -1
  89. wagtail/admin/static/wagtailadmin/js/task-chooser.js +1 -1
  90. wagtail/admin/static/wagtailadmin/js/telepath/blocks.js +1 -1
  91. wagtail/admin/static/wagtailadmin/js/telepath/widgets.js +1 -1
  92. wagtail/admin/static/wagtailadmin/js/userbar.js +2 -1
  93. wagtail/admin/static/wagtailadmin/js/userbar.js.LICENSE.txt +11 -0
  94. wagtail/admin/static/wagtailadmin/js/vendor.js +1 -1
  95. wagtail/admin/static/wagtailadmin/js/vendor.js.LICENSE.txt +0 -12
  96. wagtail/admin/static/wagtailadmin/js/wagtailadmin.js +1 -1
  97. wagtail/admin/static/wagtailadmin/js/workflow-action.js +1 -1
  98. wagtail/admin/templates/wagtailadmin/collection_privacy/ancestor_privacy.html +2 -6
  99. wagtail/admin/templates/wagtailadmin/generic/index_results.html +1 -17
  100. wagtail/admin/templates/wagtailadmin/generic/listing_results.html +20 -1
  101. wagtail/admin/templates/wagtailadmin/home/workflow_objects_to_moderate.html +2 -11
  102. wagtail/admin/templates/wagtailadmin/page_privacy/ancestor_privacy.html +2 -6
  103. wagtail/admin/templates/wagtailadmin/page_privacy/no_privacy.html +2 -0
  104. wagtail/admin/templates/wagtailadmin/pages/_editor_js.html +0 -1
  105. wagtail/admin/templates/wagtailadmin/pages/action_menu/menu.html +1 -1
  106. wagtail/admin/templates/wagtailadmin/reports/aging_pages_results.html +54 -0
  107. wagtail/admin/templates/wagtailadmin/reports/base_page_report.html +1 -17
  108. wagtail/admin/templates/wagtailadmin/reports/base_page_report_results.html +10 -0
  109. wagtail/admin/templates/wagtailadmin/reports/base_report.html +1 -40
  110. wagtail/admin/templates/wagtailadmin/reports/base_report_results.html +1 -0
  111. wagtail/admin/templates/wagtailadmin/reports/listing/_list_page_report.html +21 -27
  112. wagtail/admin/templates/wagtailadmin/reports/listing/_list_page_types_usage.html +48 -54
  113. wagtail/admin/templates/wagtailadmin/reports/{locked_pages.html → locked_pages_results.html} +3 -3
  114. wagtail/admin/templates/wagtailadmin/reports/page_types_usage_results.html +10 -0
  115. wagtail/admin/templates/wagtailadmin/reports/site_history_results.html +53 -0
  116. wagtail/admin/templates/wagtailadmin/reports/workflow_results.html +74 -0
  117. wagtail/admin/templates/wagtailadmin/reports/workflow_tasks_results.html +56 -0
  118. wagtail/admin/templates/wagtailadmin/shared/_workflow_init.html +8 -44
  119. wagtail/admin/templates/wagtailadmin/shared/avatar.html +11 -1
  120. wagtail/admin/templates/wagtailadmin/shared/dialog/dialog.html +5 -4
  121. wagtail/admin/templates/wagtailadmin/shared/dropdown/dropdown_button.html +2 -1
  122. wagtail/admin/templates/wagtailadmin/shared/editing_sessions/list.html +132 -0
  123. wagtail/admin/templates/wagtailadmin/shared/editing_sessions/module.html +44 -0
  124. wagtail/admin/templates/wagtailadmin/shared/headers/slim_header.html +7 -1
  125. wagtail/admin/templates/wagtailadmin/shared/page_status_tag_new.html +1 -1
  126. wagtail/admin/templates/wagtailadmin/shared/side_panels/checks.html +32 -16
  127. wagtail/admin/templates/wagtailadmin/skeleton.html +1 -1
  128. wagtail/admin/templates/wagtailadmin/userbar/item_accessibility.html +9 -11
  129. wagtail/admin/templatetags/wagtailadmin_tags.py +13 -2
  130. wagtail/admin/tests/formats/en/__init__.py +0 -0
  131. wagtail/admin/tests/formats/en/formats.py +1 -0
  132. wagtail/admin/tests/pages/test_create_page.py +47 -0
  133. wagtail/admin/tests/pages/test_edit_page.py +10 -8
  134. wagtail/admin/tests/pages/test_parent_page_chooser_view.py +45 -1
  135. wagtail/admin/tests/test_checks.py +53 -3
  136. wagtail/admin/tests/test_collections_views.py +62 -1
  137. wagtail/admin/tests/test_edit_handlers.py +37 -0
  138. wagtail/admin/tests/test_editing_sessions.py +1336 -0
  139. wagtail/admin/tests/test_icon_sprite.py +12 -21
  140. wagtail/admin/tests/test_page_chooser.py +309 -7
  141. wagtail/admin/tests/test_privacy.py +82 -0
  142. wagtail/admin/tests/test_reports_views.py +464 -70
  143. wagtail/admin/tests/test_userbar.py +93 -6
  144. wagtail/admin/tests/test_workflows.py +223 -33
  145. wagtail/admin/tests/viewsets/test_model_viewset.py +151 -2
  146. wagtail/admin/ui/editing_sessions.py +57 -0
  147. wagtail/admin/urls/__init__.py +9 -15
  148. wagtail/admin/urls/editing_sessions.py +17 -0
  149. wagtail/admin/urls/reports.py +33 -1
  150. wagtail/admin/userbar.py +77 -20
  151. wagtail/admin/views/chooser.py +49 -22
  152. wagtail/admin/views/collections.py +0 -11
  153. wagtail/admin/views/editing_sessions.py +193 -0
  154. wagtail/admin/views/generic/__init__.py +1 -0
  155. wagtail/admin/views/generic/base.py +3 -2
  156. wagtail/admin/views/generic/history.py +9 -3
  157. wagtail/admin/views/generic/mixins.py +44 -3
  158. wagtail/admin/views/generic/models.py +46 -72
  159. wagtail/admin/views/generic/permissions.py +20 -10
  160. wagtail/admin/views/home.py +2 -31
  161. wagtail/admin/views/page_privacy.py +20 -5
  162. wagtail/admin/views/pages/choose_parent.py +62 -0
  163. wagtail/admin/views/pages/edit.py +28 -0
  164. wagtail/admin/views/reports/aging_pages.py +6 -10
  165. wagtail/admin/views/reports/audit_logging.py +13 -42
  166. wagtail/admin/views/reports/base.py +31 -4
  167. wagtail/admin/views/reports/locked_pages.py +5 -8
  168. wagtail/admin/views/reports/page_types_usage.py +6 -10
  169. wagtail/admin/views/reports/workflows.py +36 -12
  170. wagtail/admin/viewsets/base.py +8 -3
  171. wagtail/admin/viewsets/chooser.py +1 -1
  172. wagtail/admin/viewsets/model.py +26 -1
  173. wagtail/admin/wagtail_hooks.py +2 -1
  174. wagtail/api/v2/filters.py +6 -0
  175. wagtail/api/v2/tests/test_documents.py +1 -1
  176. wagtail/api/v2/tests/test_images.py +1 -1
  177. wagtail/api/v2/tests/test_pages.py +11 -1
  178. wagtail/api/v2/utils.py +2 -2
  179. wagtail/blocks/base.py +35 -12
  180. wagtail/blocks/definition_lookup.py +85 -0
  181. wagtail/blocks/list_block.py +12 -0
  182. wagtail/blocks/migrations/migrate_operation.py +2 -0
  183. wagtail/blocks/stream_block.py +19 -0
  184. wagtail/blocks/struct_block.py +19 -0
  185. wagtail/contrib/forms/locale/be/LC_MESSAGES/django.po +3 -3
  186. wagtail/contrib/forms/locale/en/LC_MESSAGES/django.po +1 -1
  187. wagtail/contrib/forms/locale/hr_HR/LC_MESSAGES/django.po +2 -2
  188. wagtail/contrib/forms/locale/pl/LC_MESSAGES/django.po +3 -3
  189. wagtail/contrib/forms/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  190. wagtail/contrib/forms/locale/pt_BR/LC_MESSAGES/django.po +2 -2
  191. wagtail/contrib/forms/locale/ru/LC_MESSAGES/django.po +3 -3
  192. wagtail/contrib/forms/locale/sl/LC_MESSAGES/django.po +2 -2
  193. wagtail/contrib/frontend_cache/backends/__init__.py +5 -0
  194. wagtail/contrib/frontend_cache/backends/azure.py +179 -0
  195. wagtail/contrib/frontend_cache/backends/base.py +28 -0
  196. wagtail/contrib/frontend_cache/backends/cloudflare.py +114 -0
  197. wagtail/contrib/frontend_cache/backends/cloudfront.py +99 -0
  198. wagtail/contrib/frontend_cache/backends/http.py +64 -0
  199. wagtail/contrib/frontend_cache/tests.py +59 -17
  200. wagtail/contrib/frontend_cache/utils.py +26 -8
  201. wagtail/contrib/redirects/filters.py +15 -1
  202. wagtail/contrib/redirects/locale/ar/LC_MESSAGES/django.po +4 -4
  203. wagtail/contrib/redirects/locale/be/LC_MESSAGES/django.po +3 -3
  204. wagtail/contrib/redirects/locale/bg/LC_MESSAGES/django.po +4 -4
  205. wagtail/contrib/redirects/locale/ca/LC_MESSAGES/django.po +4 -4
  206. wagtail/contrib/redirects/locale/cs/LC_MESSAGES/django.po +4 -4
  207. wagtail/contrib/redirects/locale/cy/LC_MESSAGES/django.po +6 -6
  208. wagtail/contrib/redirects/locale/de/LC_MESSAGES/django.po +5 -4
  209. wagtail/contrib/redirects/locale/el/LC_MESSAGES/django.po +7 -7
  210. wagtail/contrib/redirects/locale/en/LC_MESSAGES/django.po +37 -72
  211. wagtail/contrib/redirects/locale/es/LC_MESSAGES/django.po +6 -6
  212. wagtail/contrib/redirects/locale/et/LC_MESSAGES/django.po +4 -4
  213. wagtail/contrib/redirects/locale/fa/LC_MESSAGES/django.mo +0 -0
  214. wagtail/contrib/redirects/locale/fa/LC_MESSAGES/django.po +18 -5
  215. wagtail/contrib/redirects/locale/fi/LC_MESSAGES/django.po +6 -6
  216. wagtail/contrib/redirects/locale/fr/LC_MESSAGES/django.po +4 -4
  217. wagtail/contrib/redirects/locale/gl/LC_MESSAGES/django.po +4 -4
  218. wagtail/contrib/redirects/locale/hr_HR/LC_MESSAGES/django.po +8 -8
  219. wagtail/contrib/redirects/locale/hu/LC_MESSAGES/django.po +6 -6
  220. wagtail/contrib/redirects/locale/id_ID/LC_MESSAGES/django.po +4 -4
  221. wagtail/contrib/redirects/locale/is_IS/LC_MESSAGES/django.po +6 -6
  222. wagtail/contrib/redirects/locale/it/LC_MESSAGES/django.po +4 -4
  223. wagtail/contrib/redirects/locale/ja/LC_MESSAGES/django.po +2 -2
  224. wagtail/contrib/redirects/locale/ko/LC_MESSAGES/django.po +4 -4
  225. wagtail/contrib/redirects/locale/lt/LC_MESSAGES/django.po +4 -4
  226. wagtail/contrib/redirects/locale/mn/LC_MESSAGES/django.po +4 -4
  227. wagtail/contrib/redirects/locale/nb/LC_MESSAGES/django.po +4 -4
  228. wagtail/contrib/redirects/locale/nl/LC_MESSAGES/django.po +4 -4
  229. wagtail/contrib/redirects/locale/pl/LC_MESSAGES/django.po +9 -9
  230. wagtail/contrib/redirects/locale/pt_BR/LC_MESSAGES/django.po +5 -5
  231. wagtail/contrib/redirects/locale/pt_PT/LC_MESSAGES/django.po +4 -4
  232. wagtail/contrib/redirects/locale/ro/LC_MESSAGES/django.po +4 -4
  233. wagtail/contrib/redirects/locale/ru/LC_MESSAGES/django.po +7 -7
  234. wagtail/contrib/redirects/locale/sk_SK/LC_MESSAGES/django.po +4 -4
  235. wagtail/contrib/redirects/locale/sl/LC_MESSAGES/django.po +6 -6
  236. wagtail/contrib/redirects/locale/sr/LC_MESSAGES/django.po +2 -2
  237. wagtail/contrib/redirects/locale/sv/LC_MESSAGES/django.po +4 -4
  238. wagtail/contrib/redirects/locale/tet/LC_MESSAGES/django.po +4 -4
  239. wagtail/contrib/redirects/locale/th/LC_MESSAGES/django.po +4 -4
  240. wagtail/contrib/redirects/locale/tr/LC_MESSAGES/django.po +4 -4
  241. wagtail/contrib/redirects/locale/tr_TR/LC_MESSAGES/django.po +4 -4
  242. wagtail/contrib/redirects/locale/uk/LC_MESSAGES/django.po +4 -4
  243. wagtail/contrib/redirects/locale/zh/LC_MESSAGES/django.po +4 -4
  244. wagtail/contrib/redirects/locale/zh_Hans/LC_MESSAGES/django.po +4 -4
  245. wagtail/contrib/redirects/locale/zh_Hant/LC_MESSAGES/django.po +4 -4
  246. wagtail/contrib/redirects/models.py +6 -5
  247. wagtail/contrib/redirects/templates/wagtailredirects/edit.html +1 -38
  248. wagtail/contrib/redirects/tests/test_redirects.py +141 -1
  249. wagtail/contrib/redirects/urls.py +1 -2
  250. wagtail/contrib/redirects/views.py +39 -80
  251. wagtail/contrib/routable_page/models.py +6 -4
  252. wagtail/contrib/routable_page/tests.py +11 -0
  253. wagtail/contrib/search_promotions/locale/ar/LC_MESSAGES/django.po +4 -4
  254. wagtail/contrib/search_promotions/locale/be/LC_MESSAGES/django.po +7 -7
  255. wagtail/contrib/search_promotions/locale/ca/LC_MESSAGES/django.po +8 -8
  256. wagtail/contrib/search_promotions/locale/cs/LC_MESSAGES/django.po +2 -2
  257. wagtail/contrib/search_promotions/locale/cy/LC_MESSAGES/django.po +4 -4
  258. wagtail/contrib/search_promotions/locale/de/LC_MESSAGES/django.po +6 -6
  259. wagtail/contrib/search_promotions/locale/el/LC_MESSAGES/django.po +4 -4
  260. wagtail/contrib/search_promotions/locale/en/LC_MESSAGES/django.po +1 -1
  261. wagtail/contrib/search_promotions/locale/es/LC_MESSAGES/django.po +6 -6
  262. wagtail/contrib/search_promotions/locale/et/LC_MESSAGES/django.po +4 -4
  263. wagtail/contrib/search_promotions/locale/fa/LC_MESSAGES/django.po +4 -4
  264. wagtail/contrib/search_promotions/locale/fi/LC_MESSAGES/django.po +6 -6
  265. wagtail/contrib/search_promotions/locale/fr/LC_MESSAGES/django.mo +0 -0
  266. wagtail/contrib/search_promotions/locale/fr/LC_MESSAGES/django.po +9 -6
  267. wagtail/contrib/search_promotions/locale/gl/LC_MESSAGES/django.po +6 -6
  268. wagtail/contrib/search_promotions/locale/hr_HR/LC_MESSAGES/django.po +8 -8
  269. wagtail/contrib/search_promotions/locale/hu/LC_MESSAGES/django.po +4 -4
  270. wagtail/contrib/search_promotions/locale/id_ID/LC_MESSAGES/django.po +4 -4
  271. wagtail/contrib/search_promotions/locale/is_IS/LC_MESSAGES/django.po +8 -8
  272. wagtail/contrib/search_promotions/locale/it/LC_MESSAGES/django.po +6 -6
  273. wagtail/contrib/search_promotions/locale/ja/LC_MESSAGES/django.po +4 -4
  274. wagtail/contrib/search_promotions/locale/ko/LC_MESSAGES/django.po +4 -4
  275. wagtail/contrib/search_promotions/locale/lt/LC_MESSAGES/django.po +6 -6
  276. wagtail/contrib/search_promotions/locale/nb/LC_MESSAGES/django.po +4 -4
  277. wagtail/contrib/search_promotions/locale/nl/LC_MESSAGES/django.po +6 -6
  278. wagtail/contrib/search_promotions/locale/pl/LC_MESSAGES/django.po +9 -9
  279. wagtail/contrib/search_promotions/locale/pt_BR/LC_MESSAGES/django.po +4 -4
  280. wagtail/contrib/search_promotions/locale/pt_PT/LC_MESSAGES/django.po +4 -4
  281. wagtail/contrib/search_promotions/locale/ro/LC_MESSAGES/django.po +4 -4
  282. wagtail/contrib/search_promotions/locale/ru/LC_MESSAGES/django.po +9 -9
  283. wagtail/contrib/search_promotions/locale/sk_SK/LC_MESSAGES/django.po +4 -4
  284. wagtail/contrib/search_promotions/locale/sl/LC_MESSAGES/django.mo +0 -0
  285. wagtail/contrib/search_promotions/locale/sl/LC_MESSAGES/django.po +62 -8
  286. wagtail/contrib/search_promotions/locale/sr/LC_MESSAGES/django.po +2 -2
  287. wagtail/contrib/search_promotions/locale/sv/LC_MESSAGES/django.mo +0 -0
  288. wagtail/contrib/search_promotions/locale/sv/LC_MESSAGES/django.po +9 -6
  289. wagtail/contrib/search_promotions/locale/th/LC_MESSAGES/django.po +4 -4
  290. wagtail/contrib/search_promotions/locale/tr/LC_MESSAGES/django.po +4 -4
  291. wagtail/contrib/search_promotions/locale/tr_TR/LC_MESSAGES/django.po +4 -4
  292. wagtail/contrib/search_promotions/locale/uk/LC_MESSAGES/django.po +4 -4
  293. wagtail/contrib/search_promotions/locale/zh_Hans/LC_MESSAGES/django.po +2 -2
  294. wagtail/contrib/search_promotions/locale/zh_Hant/LC_MESSAGES/django.po +2 -2
  295. wagtail/contrib/settings/locale/be/LC_MESSAGES/django.po +3 -3
  296. wagtail/contrib/settings/locale/en/LC_MESSAGES/django.po +4 -4
  297. wagtail/contrib/settings/locale/hr_HR/LC_MESSAGES/django.po +2 -2
  298. wagtail/contrib/settings/locale/pl/LC_MESSAGES/django.po +3 -3
  299. wagtail/contrib/settings/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  300. wagtail/contrib/settings/locale/ru/LC_MESSAGES/django.po +3 -3
  301. wagtail/contrib/settings/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
  302. wagtail/contrib/settings/locale/sk_SK/LC_MESSAGES/django.po +10 -1
  303. wagtail/contrib/settings/locale/sl/LC_MESSAGES/django.po +2 -2
  304. wagtail/contrib/settings/locale/sr/LC_MESSAGES/django.po +2 -2
  305. wagtail/contrib/simple_translation/locale/be/LC_MESSAGES/django.po +3 -3
  306. wagtail/contrib/simple_translation/locale/en/LC_MESSAGES/django.po +5 -1
  307. wagtail/contrib/simple_translation/locale/hr_HR/LC_MESSAGES/django.po +2 -2
  308. wagtail/contrib/simple_translation/locale/pl/LC_MESSAGES/django.po +3 -3
  309. wagtail/contrib/simple_translation/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  310. wagtail/contrib/simple_translation/locale/ru/LC_MESSAGES/django.po +3 -3
  311. wagtail/contrib/simple_translation/locale/sl/LC_MESSAGES/django.po +2 -2
  312. wagtail/contrib/simple_translation/models.py +2 -1
  313. wagtail/contrib/styleguide/locale/be/LC_MESSAGES/django.po +3 -3
  314. wagtail/contrib/styleguide/locale/en/LC_MESSAGES/django.po +7 -7
  315. wagtail/contrib/styleguide/locale/hr_HR/LC_MESSAGES/django.po +2 -2
  316. wagtail/contrib/styleguide/locale/pl/LC_MESSAGES/django.po +3 -3
  317. wagtail/contrib/styleguide/locale/ru/LC_MESSAGES/django.po +3 -3
  318. wagtail/contrib/styleguide/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
  319. wagtail/contrib/styleguide/locale/sk_SK/LC_MESSAGES/django.po +5 -1
  320. wagtail/contrib/styleguide/locale/sl/LC_MESSAGES/django.po +2 -2
  321. wagtail/contrib/styleguide/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  322. wagtail/contrib/styleguide/locale/zh_Hans/LC_MESSAGES/django.po +3 -0
  323. wagtail/contrib/table_block/locale/be/LC_MESSAGES/django.po +3 -3
  324. wagtail/contrib/table_block/locale/en/LC_MESSAGES/django.po +1 -1
  325. wagtail/contrib/table_block/locale/fr/LC_MESSAGES/django.mo +0 -0
  326. wagtail/contrib/table_block/locale/fr/LC_MESSAGES/django.po +27 -1
  327. wagtail/contrib/table_block/locale/hr_HR/LC_MESSAGES/django.po +2 -2
  328. wagtail/contrib/table_block/locale/pl/LC_MESSAGES/django.po +3 -3
  329. wagtail/contrib/table_block/locale/ru/LC_MESSAGES/django.po +3 -3
  330. wagtail/contrib/table_block/locale/sl/LC_MESSAGES/django.mo +0 -0
  331. wagtail/contrib/table_block/locale/sl/LC_MESSAGES/django.po +29 -3
  332. wagtail/contrib/table_block/static/table_block/js/table.js +1 -1
  333. wagtail/contrib/typed_table_block/blocks.py +19 -0
  334. wagtail/contrib/typed_table_block/locale/be/LC_MESSAGES/django.po +3 -3
  335. wagtail/contrib/typed_table_block/locale/en/LC_MESSAGES/django.po +10 -10
  336. wagtail/contrib/typed_table_block/locale/fr/LC_MESSAGES/django.mo +0 -0
  337. wagtail/contrib/typed_table_block/locale/fr/LC_MESSAGES/django.po +12 -1
  338. wagtail/contrib/typed_table_block/locale/pl/LC_MESSAGES/django.po +3 -3
  339. wagtail/contrib/typed_table_block/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  340. wagtail/contrib/typed_table_block/locale/ru/LC_MESSAGES/django.po +3 -3
  341. wagtail/contrib/typed_table_block/locale/sl/LC_MESSAGES/django.mo +0 -0
  342. wagtail/contrib/typed_table_block/locale/sl/LC_MESSAGES/django.po +14 -4
  343. wagtail/contrib/typed_table_block/static/typed_table_block/js/typed_table_block.js +1 -1
  344. wagtail/contrib/typed_table_block/tests.py +38 -0
  345. wagtail/coreutils.py +1 -1
  346. wagtail/documents/__init__.py +1 -1
  347. wagtail/documents/locale/ar/LC_MESSAGES/django.po +8 -8
  348. wagtail/documents/locale/be/LC_MESSAGES/django.po +11 -11
  349. wagtail/documents/locale/bg/LC_MESSAGES/django.po +4 -4
  350. wagtail/documents/locale/ca/LC_MESSAGES/django.mo +0 -0
  351. wagtail/documents/locale/ca/LC_MESSAGES/django.po +12 -11
  352. wagtail/documents/locale/cs/LC_MESSAGES/django.po +6 -6
  353. wagtail/documents/locale/de/LC_MESSAGES/django.po +10 -8
  354. wagtail/documents/locale/el/LC_MESSAGES/django.po +8 -8
  355. wagtail/documents/locale/en/LC_MESSAGES/django.po +8 -8
  356. wagtail/documents/locale/es/LC_MESSAGES/django.po +8 -8
  357. wagtail/documents/locale/et/LC_MESSAGES/django.po +6 -6
  358. wagtail/documents/locale/fa/LC_MESSAGES/django.mo +0 -0
  359. wagtail/documents/locale/fa/LC_MESSAGES/django.po +17 -8
  360. wagtail/documents/locale/fi/LC_MESSAGES/django.po +10 -10
  361. wagtail/documents/locale/fr/LC_MESSAGES/django.po +6 -6
  362. wagtail/documents/locale/gl/LC_MESSAGES/django.po +8 -8
  363. wagtail/documents/locale/hr_HR/LC_MESSAGES/django.po +14 -14
  364. wagtail/documents/locale/hu/LC_MESSAGES/django.po +12 -12
  365. wagtail/documents/locale/id_ID/LC_MESSAGES/django.po +6 -6
  366. wagtail/documents/locale/is_IS/LC_MESSAGES/django.po +8 -8
  367. wagtail/documents/locale/it/LC_MESSAGES/django.po +8 -8
  368. wagtail/documents/locale/ja/LC_MESSAGES/django.po +8 -8
  369. wagtail/documents/locale/ko/LC_MESSAGES/django.po +8 -8
  370. wagtail/documents/locale/lt/LC_MESSAGES/django.po +8 -8
  371. wagtail/documents/locale/mi/LC_MESSAGES/django.po +10 -10
  372. wagtail/documents/locale/mn/LC_MESSAGES/django.po +5 -4
  373. wagtail/documents/locale/nb/LC_MESSAGES/django.po +6 -6
  374. wagtail/documents/locale/nl/LC_MESSAGES/django.po +8 -8
  375. wagtail/documents/locale/pl/LC_MESSAGES/django.po +11 -11
  376. wagtail/documents/locale/pt_BR/LC_MESSAGES/django.po +8 -8
  377. wagtail/documents/locale/pt_PT/LC_MESSAGES/django.po +8 -8
  378. wagtail/documents/locale/ro/LC_MESSAGES/django.po +8 -8
  379. wagtail/documents/locale/ru/LC_MESSAGES/django.po +9 -9
  380. wagtail/documents/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
  381. wagtail/documents/locale/sk_SK/LC_MESSAGES/django.po +55 -12
  382. wagtail/documents/locale/sl/LC_MESSAGES/django.mo +0 -0
  383. wagtail/documents/locale/sl/LC_MESSAGES/django.po +30 -10
  384. wagtail/documents/locale/sr/LC_MESSAGES/django.po +2 -2
  385. wagtail/documents/locale/sv/LC_MESSAGES/django.po +6 -6
  386. wagtail/documents/locale/th/LC_MESSAGES/django.po +8 -8
  387. wagtail/documents/locale/tr/LC_MESSAGES/django.po +8 -8
  388. wagtail/documents/locale/tr_TR/LC_MESSAGES/django.po +8 -8
  389. wagtail/documents/locale/uk/LC_MESSAGES/django.po +8 -8
  390. wagtail/documents/locale/zh/LC_MESSAGES/django.po +2 -2
  391. wagtail/documents/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  392. wagtail/documents/locale/zh_Hans/LC_MESSAGES/django.po +11 -5
  393. wagtail/documents/locale/zh_Hant/LC_MESSAGES/django.po +4 -4
  394. wagtail/documents/models.py +5 -1
  395. wagtail/documents/static/wagtaildocs/js/document-chooser-modal.js +1 -1
  396. wagtail/documents/static/wagtaildocs/js/document-chooser-telepath.js +1 -1
  397. wagtail/documents/static/wagtaildocs/js/document-chooser.js +1 -1
  398. wagtail/documents/tests/test_models.py +5 -1
  399. wagtail/embeds/apps.py +2 -0
  400. wagtail/embeds/embeds.py +12 -14
  401. wagtail/embeds/finders/__init__.py +2 -0
  402. wagtail/embeds/finders/facebook.py +17 -33
  403. wagtail/embeds/finders/instagram.py +19 -16
  404. wagtail/embeds/locale/be/LC_MESSAGES/django.po +3 -3
  405. wagtail/embeds/locale/en/LC_MESSAGES/django.po +1 -1
  406. wagtail/embeds/locale/hr_HR/LC_MESSAGES/django.po +2 -2
  407. wagtail/embeds/locale/pl/LC_MESSAGES/django.po +3 -3
  408. wagtail/embeds/locale/ru/LC_MESSAGES/django.po +3 -3
  409. wagtail/embeds/locale/sl/LC_MESSAGES/django.po +2 -2
  410. wagtail/embeds/signal_handlers.py +13 -0
  411. wagtail/embeds/tests/test_embeds.py +7 -7
  412. wagtail/fields.py +58 -14
  413. wagtail/images/__init__.py +1 -1
  414. wagtail/images/locale/ar/LC_MESSAGES/django.po +6 -6
  415. wagtail/images/locale/be/LC_MESSAGES/django.po +3 -3
  416. wagtail/images/locale/ca/LC_MESSAGES/django.po +8 -8
  417. wagtail/images/locale/cs/LC_MESSAGES/django.po +8 -8
  418. wagtail/images/locale/cy/LC_MESSAGES/django.po +8 -8
  419. wagtail/images/locale/de/LC_MESSAGES/django.po +6 -6
  420. wagtail/images/locale/el/LC_MESSAGES/django.po +8 -8
  421. wagtail/images/locale/en/LC_MESSAGES/django.po +34 -34
  422. wagtail/images/locale/es/LC_MESSAGES/django.po +10 -10
  423. wagtail/images/locale/et/LC_MESSAGES/django.po +8 -8
  424. wagtail/images/locale/fa/LC_MESSAGES/django.mo +0 -0
  425. wagtail/images/locale/fa/LC_MESSAGES/django.po +28 -9
  426. wagtail/images/locale/fi/LC_MESSAGES/django.po +8 -8
  427. wagtail/images/locale/fr/LC_MESSAGES/django.po +6 -6
  428. wagtail/images/locale/gl/LC_MESSAGES/django.po +8 -8
  429. wagtail/images/locale/hr_HR/LC_MESSAGES/django.po +8 -8
  430. wagtail/images/locale/hu/LC_MESSAGES/django.po +8 -8
  431. wagtail/images/locale/id_ID/LC_MESSAGES/django.po +6 -6
  432. wagtail/images/locale/is_IS/LC_MESSAGES/django.po +8 -8
  433. wagtail/images/locale/it/LC_MESSAGES/django.po +8 -8
  434. wagtail/images/locale/ja/LC_MESSAGES/django.po +8 -8
  435. wagtail/images/locale/ko/LC_MESSAGES/django.po +6 -6
  436. wagtail/images/locale/lt/LC_MESSAGES/django.po +8 -8
  437. wagtail/images/locale/nb/LC_MESSAGES/django.po +8 -8
  438. wagtail/images/locale/nl/LC_MESSAGES/django.po +8 -8
  439. wagtail/images/locale/pl/LC_MESSAGES/django.po +11 -11
  440. wagtail/images/locale/pt_BR/LC_MESSAGES/django.po +8 -8
  441. wagtail/images/locale/pt_PT/LC_MESSAGES/django.po +8 -8
  442. wagtail/images/locale/ro/LC_MESSAGES/django.po +8 -8
  443. wagtail/images/locale/ru/LC_MESSAGES/django.po +11 -11
  444. wagtail/images/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
  445. wagtail/images/locale/sk_SK/LC_MESSAGES/django.po +23 -8
  446. wagtail/images/locale/sl/LC_MESSAGES/django.mo +0 -0
  447. wagtail/images/locale/sl/LC_MESSAGES/django.po +44 -12
  448. wagtail/images/locale/sv/LC_MESSAGES/django.mo +0 -0
  449. wagtail/images/locale/sv/LC_MESSAGES/django.po +20 -8
  450. wagtail/images/locale/tet/LC_MESSAGES/django.po +4 -4
  451. wagtail/images/locale/th/LC_MESSAGES/django.po +8 -8
  452. wagtail/images/locale/tr/LC_MESSAGES/django.po +6 -6
  453. wagtail/images/locale/tr_TR/LC_MESSAGES/django.po +6 -6
  454. wagtail/images/locale/uk/LC_MESSAGES/django.po +8 -8
  455. wagtail/images/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  456. wagtail/images/locale/zh_Hans/LC_MESSAGES/django.po +49 -5
  457. wagtail/images/locale/zh_Hant/LC_MESSAGES/django.po +4 -4
  458. wagtail/images/models.py +3 -0
  459. wagtail/images/static/wagtailimages/js/image-chooser-modal.js +1 -1
  460. wagtail/images/static/wagtailimages/js/image-chooser-telepath.js +1 -1
  461. wagtail/images/static/wagtailimages/js/image-chooser.js +1 -1
  462. wagtail/images/templates/wagtailimages/images/edit.html +4 -4
  463. wagtail/images/tests/test_admin_views.py +58 -2
  464. wagtail/images/tests/test_image_operations.py +12 -0
  465. wagtail/images/tests/tests.py +27 -2
  466. wagtail/images/views/chooser.py +6 -1
  467. wagtail/images/views/images.py +7 -3
  468. wagtail/images/views/serve.py +1 -0
  469. wagtail/locale/be/LC_MESSAGES/django.po +3 -3
  470. wagtail/locale/en/LC_MESSAGES/django.po +84 -80
  471. wagtail/locale/fa/LC_MESSAGES/django.mo +0 -0
  472. wagtail/locale/fa/LC_MESSAGES/django.po +3 -0
  473. wagtail/locale/fr/LC_MESSAGES/django.mo +0 -0
  474. wagtail/locale/fr/LC_MESSAGES/django.po +23 -4
  475. wagtail/locale/hr_HR/LC_MESSAGES/django.po +2 -2
  476. wagtail/locale/pl/LC_MESSAGES/django.po +3 -3
  477. wagtail/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  478. wagtail/locale/ru/LC_MESSAGES/django.po +3 -3
  479. wagtail/locale/sl/LC_MESSAGES/django.po +2 -2
  480. wagtail/locale/sv/LC_MESSAGES/django.mo +0 -0
  481. wagtail/locale/sv/LC_MESSAGES/django.po +11 -2
  482. wagtail/locales/locale/be/LC_MESSAGES/django.po +3 -3
  483. wagtail/locales/locale/en/LC_MESSAGES/django.po +2 -2
  484. wagtail/locales/locale/hr_HR/LC_MESSAGES/django.po +2 -2
  485. wagtail/locales/locale/pl/LC_MESSAGES/django.po +3 -3
  486. wagtail/locales/locale/ru/LC_MESSAGES/django.po +3 -3
  487. wagtail/locales/locale/sl/LC_MESSAGES/django.po +2 -2
  488. wagtail/locales/tests.py +16 -0
  489. wagtail/locales/wagtail_hooks.py +0 -9
  490. wagtail/migrations/0094_alter_page_locale.py +19 -0
  491. wagtail/models/__init__.py +11 -5
  492. wagtail/models/i18n.py +6 -1
  493. wagtail/project_template/requirements.txt +1 -1
  494. wagtail/search/locale/be/LC_MESSAGES/django.po +3 -3
  495. wagtail/search/locale/en/LC_MESSAGES/django.po +1 -1
  496. wagtail/search/locale/fa/LC_MESSAGES/django.mo +0 -0
  497. wagtail/search/locale/fa/LC_MESSAGES/django.po +24 -0
  498. wagtail/search/locale/hr_HR/LC_MESSAGES/django.po +2 -2
  499. wagtail/search/locale/pl/LC_MESSAGES/django.po +3 -3
  500. wagtail/search/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  501. wagtail/search/locale/pt_BR/LC_MESSAGES/django.po +2 -2
  502. wagtail/search/locale/ru/LC_MESSAGES/django.po +3 -3
  503. wagtail/search/locale/sl/LC_MESSAGES/django.po +2 -2
  504. wagtail/search/tests/test_queries.py +24 -0
  505. wagtail/search/utils.py +6 -12
  506. wagtail/signals.py +4 -0
  507. wagtail/sites/locale/be/LC_MESSAGES/django.po +3 -3
  508. wagtail/sites/locale/en/LC_MESSAGES/django.po +2 -2
  509. wagtail/sites/locale/hr_HR/LC_MESSAGES/django.po +2 -2
  510. wagtail/sites/locale/pl/LC_MESSAGES/django.po +3 -3
  511. wagtail/sites/locale/ru/LC_MESSAGES/django.po +3 -3
  512. wagtail/sites/locale/sl/LC_MESSAGES/django.po +2 -2
  513. wagtail/sites/locale/sr/LC_MESSAGES/django.po +2 -2
  514. wagtail/sites/tests.py +15 -0
  515. wagtail/sites/wagtail_hooks.py +0 -9
  516. wagtail/snippets/locale/be/LC_MESSAGES/django.po +3 -3
  517. wagtail/snippets/locale/ca/LC_MESSAGES/django.po +6 -6
  518. wagtail/snippets/locale/de/LC_MESSAGES/django.po +5 -5
  519. wagtail/snippets/locale/en/LC_MESSAGES/django.po +9 -9
  520. wagtail/snippets/locale/es/LC_MESSAGES/django.po +6 -6
  521. wagtail/snippets/locale/fa/LC_MESSAGES/django.mo +0 -0
  522. wagtail/snippets/locale/fa/LC_MESSAGES/django.po +17 -1
  523. wagtail/snippets/locale/fr/LC_MESSAGES/django.po +5 -5
  524. wagtail/snippets/locale/gl/LC_MESSAGES/django.po +6 -6
  525. wagtail/snippets/locale/hr_HR/LC_MESSAGES/django.po +8 -8
  526. wagtail/snippets/locale/hu/LC_MESSAGES/django.po +7 -7
  527. wagtail/snippets/locale/is_IS/LC_MESSAGES/django.po +5 -5
  528. wagtail/snippets/locale/it/LC_MESSAGES/django.po +5 -5
  529. wagtail/snippets/locale/ko/LC_MESSAGES/django.po +6 -6
  530. wagtail/snippets/locale/nb/LC_MESSAGES/django.po +6 -6
  531. wagtail/snippets/locale/nl/LC_MESSAGES/django.po +8 -8
  532. wagtail/snippets/locale/pl/LC_MESSAGES/django.po +9 -9
  533. wagtail/snippets/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  534. wagtail/snippets/locale/ro/LC_MESSAGES/django.po +6 -6
  535. wagtail/snippets/locale/ru/LC_MESSAGES/django.po +8 -8
  536. wagtail/snippets/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
  537. wagtail/snippets/locale/sk_SK/LC_MESSAGES/django.po +3 -0
  538. wagtail/snippets/locale/sl/LC_MESSAGES/django.po +8 -8
  539. wagtail/snippets/locale/sr/LC_MESSAGES/django.po +2 -2
  540. wagtail/snippets/locale/sv/LC_MESSAGES/django.po +6 -6
  541. wagtail/snippets/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  542. wagtail/snippets/locale/zh_Hans/LC_MESSAGES/django.po +40 -1
  543. wagtail/snippets/permissions.py +5 -3
  544. wagtail/snippets/static/wagtailsnippets/js/snippet-chooser-telepath.js +1 -1
  545. wagtail/snippets/static/wagtailsnippets/js/snippet-chooser.js +1 -1
  546. wagtail/snippets/templates/wagtailsnippets/snippets/action_menu/menu.html +1 -1
  547. wagtail/snippets/tests/test_snippets.py +78 -12
  548. wagtail/snippets/tests/test_viewset.py +22 -0
  549. wagtail/snippets/views/snippets.py +19 -14
  550. wagtail/snippets/wagtail_hooks.py +2 -10
  551. wagtail/templatetags/wagtailcore_tags.py +3 -0
  552. wagtail/test/dummy_external_storage.py +1 -1
  553. wagtail/test/i18n/migrations/0003_alter_clusterabletestmodel_locale_and_more.py +40 -0
  554. wagtail/test/routablepage/models.py +4 -0
  555. wagtail/test/snippets/migrations/0012_alter_translatablesnippet_locale.py +20 -0
  556. wagtail/test/testapp/migrations/0038_sociallink.py +52 -0
  557. wagtail/test/testapp/migrations/0039_alter_eventcategory_locale_and_more.py +45 -0
  558. wagtail/test/testapp/models.py +24 -0
  559. wagtail/test/testapp/views.py +1 -0
  560. wagtail/test/testapp/wagtail_hooks.py +9 -0
  561. wagtail/test/urls_multilang.py +6 -1
  562. wagtail/test/urls_multilang_non_root.py +11 -0
  563. wagtail/tests/streamfield_migrations/test_migrations.py +53 -12
  564. wagtail/tests/test_audit_log.py +72 -2
  565. wagtail/tests/test_blocks.py +103 -0
  566. wagtail/tests/test_signals.py +49 -2
  567. wagtail/tests/test_streamfield.py +153 -0
  568. wagtail/tests/test_utils.py +42 -1
  569. wagtail/tests/tests.py +5 -0
  570. wagtail/users/apps.py +1 -0
  571. wagtail/users/forms.py +7 -0
  572. wagtail/users/locale/ar/LC_MESSAGES/django.po +4 -4
  573. wagtail/users/locale/be/LC_MESSAGES/django.po +9 -9
  574. wagtail/users/locale/ca/LC_MESSAGES/django.po +8 -8
  575. wagtail/users/locale/cs/LC_MESSAGES/django.po +6 -6
  576. wagtail/users/locale/cy/LC_MESSAGES/django.po +8 -8
  577. wagtail/users/locale/de/LC_MESSAGES/django.po +8 -8
  578. wagtail/users/locale/el/LC_MESSAGES/django.po +4 -4
  579. wagtail/users/locale/en/LC_MESSAGES/django.po +55 -50
  580. wagtail/users/locale/es/LC_MESSAGES/django.po +8 -8
  581. wagtail/users/locale/et/LC_MESSAGES/django.po +8 -8
  582. wagtail/users/locale/fa/LC_MESSAGES/django.mo +0 -0
  583. wagtail/users/locale/fa/LC_MESSAGES/django.po +69 -7
  584. wagtail/users/locale/fi/LC_MESSAGES/django.po +8 -8
  585. wagtail/users/locale/fr/LC_MESSAGES/django.mo +0 -0
  586. wagtail/users/locale/fr/LC_MESSAGES/django.po +52 -11
  587. wagtail/users/locale/gl/LC_MESSAGES/django.po +8 -8
  588. wagtail/users/locale/hr_HR/LC_MESSAGES/django.po +10 -10
  589. wagtail/users/locale/hu/LC_MESSAGES/django.po +8 -8
  590. wagtail/users/locale/id_ID/LC_MESSAGES/django.po +4 -4
  591. wagtail/users/locale/is_IS/LC_MESSAGES/django.po +8 -8
  592. wagtail/users/locale/it/LC_MESSAGES/django.po +8 -8
  593. wagtail/users/locale/ja/LC_MESSAGES/django.po +4 -4
  594. wagtail/users/locale/ko/LC_MESSAGES/django.po +4 -4
  595. wagtail/users/locale/lt/LC_MESSAGES/django.po +4 -4
  596. wagtail/users/locale/lv/LC_MESSAGES/django.po +4 -4
  597. wagtail/users/locale/mn/LC_MESSAGES/django.po +5 -4
  598. wagtail/users/locale/nb/LC_MESSAGES/django.po +8 -8
  599. wagtail/users/locale/nl/LC_MESSAGES/django.po +6 -6
  600. wagtail/users/locale/pl/LC_MESSAGES/django.po +9 -9
  601. wagtail/users/locale/pt_BR/LC_MESSAGES/django.po +9 -9
  602. wagtail/users/locale/pt_PT/LC_MESSAGES/django.po +8 -8
  603. wagtail/users/locale/ro/LC_MESSAGES/django.po +8 -8
  604. wagtail/users/locale/ru/LC_MESSAGES/django.po +11 -11
  605. wagtail/users/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
  606. wagtail/users/locale/sk_SK/LC_MESSAGES/django.po +12 -5
  607. wagtail/users/locale/sl/LC_MESSAGES/django.mo +0 -0
  608. wagtail/users/locale/sl/LC_MESSAGES/django.po +56 -12
  609. wagtail/users/locale/sv/LC_MESSAGES/django.mo +0 -0
  610. wagtail/users/locale/sv/LC_MESSAGES/django.po +49 -10
  611. wagtail/users/locale/tet/LC_MESSAGES/django.po +4 -4
  612. wagtail/users/locale/th/LC_MESSAGES/django.po +4 -4
  613. wagtail/users/locale/tr/LC_MESSAGES/django.po +4 -4
  614. wagtail/users/locale/tr_TR/LC_MESSAGES/django.po +4 -4
  615. wagtail/users/locale/uk/LC_MESSAGES/django.po +8 -8
  616. wagtail/users/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  617. wagtail/users/locale/zh_Hans/LC_MESSAGES/django.po +49 -5
  618. wagtail/users/locale/zh_Hant/LC_MESSAGES/django.po +2 -2
  619. wagtail/users/models.py +1 -0
  620. wagtail/users/templates/wagtailusers/groups/includes/formatted_permissions.html +3 -2
  621. wagtail/users/templatetags/wagtailusers_tags.py +9 -0
  622. wagtail/users/tests/__init__.py +7 -1
  623. wagtail/users/tests/test_admin_views.py +117 -32
  624. wagtail/users/views/groups.py +4 -0
  625. wagtail/users/views/users.py +58 -14
  626. wagtail/users/wagtail_hooks.py +7 -123
  627. wagtail/utils/utils.py +27 -0
  628. wagtail/utils/version.py +5 -2
  629. wagtail-6.2rc1.dist-info/METADATA +78 -0
  630. {wagtail-6.1.2.dist-info → wagtail-6.2rc1.dist-info}/RECORD +634 -607
  631. {wagtail-6.1.2.dist-info → wagtail-6.2rc1.dist-info}/WHEEL +1 -1
  632. wagtail/admin/templates/wagtailadmin/reports/aging_pages.html +0 -58
  633. wagtail/admin/templates/wagtailadmin/reports/page_types_usage.html +0 -18
  634. wagtail/admin/templates/wagtailadmin/reports/site_history.html +0 -57
  635. wagtail/admin/templates/wagtailadmin/reports/workflow.html +0 -81
  636. wagtail/admin/templates/wagtailadmin/reports/workflow_tasks.html +0 -63
  637. wagtail/contrib/frontend_cache/backends.py +0 -400
  638. wagtail/contrib/redirects/templates/wagtailredirects/list.html +0 -43
  639. wagtail/contrib/redirects/templates/wagtailredirects/reports/redirects_report.html +0 -14
  640. wagtail/contrib/redirects/tests/test_reports_view.py +0 -82
  641. wagtail-6.1.2.dist-info/METADATA +0 -78
  642. {wagtail-6.1.2.dist-info → wagtail-6.2rc1.dist-info}/LICENSE +0 -0
  643. {wagtail-6.1.2.dist-info → wagtail-6.2rc1.dist-info}/entry_points.txt +0 -0
  644. {wagtail-6.1.2.dist-info → wagtail-6.2rc1.dist-info}/top_level.txt +0 -0
wagtail/__init__.py CHANGED
@@ -6,7 +6,7 @@ from wagtail.utils.version import get_semver_version, get_version
6
6
 
7
7
  # major.minor.patch.release.number
8
8
  # release must be one of alpha, beta, rc, or final
9
- VERSION = (6, 1, 2, "final", 1)
9
+ VERSION = (6, 2, 0, "rc", 1)
10
10
 
11
11
  __version__ = get_version(VERSION)
12
12
 
@@ -3,6 +3,7 @@ from django.db import transaction
3
3
 
4
4
  from wagtail.coreutils import find_available_slug
5
5
  from wagtail.models.copying import _copy
6
+ from wagtail.signals import copy_for_translation_done
6
7
 
7
8
 
8
9
  class ParentNotTranslatedError(Exception):
@@ -79,7 +80,7 @@ class CopyPageForTranslationAction:
79
80
 
80
81
  def walk(self, current_page):
81
82
  for child_page in current_page.get_children():
82
- self._copy_for_translation(
83
+ translated_page = self._copy_for_translation(
83
84
  child_page
84
85
  if child_page.live
85
86
  else child_page.get_latest_revision_as_object(),
@@ -88,6 +89,13 @@ class CopyPageForTranslationAction:
88
89
  self.alias,
89
90
  self.exclude_fields,
90
91
  )
92
+
93
+ copy_for_translation_done.send(
94
+ sender=self.__class__,
95
+ source_obj=child_page.specific,
96
+ target_obj=translated_page,
97
+ )
98
+
91
99
  self.walk(child_page)
92
100
 
93
101
  @transaction.atomic
@@ -160,6 +168,12 @@ class CopyPageForTranslationAction:
160
168
  self.exclude_fields,
161
169
  )
162
170
 
171
+ copy_for_translation_done.send(
172
+ sender=self.__class__,
173
+ source_obj=self.page,
174
+ target_obj=translated_page,
175
+ )
176
+
163
177
  if self.include_subtree:
164
178
  self.walk(self.page)
165
179
 
wagtail/admin/checks.py CHANGED
@@ -246,43 +246,33 @@ def datetime_format_check(app_configs, **kwargs):
246
246
  """
247
247
 
248
248
  from django.conf import settings
249
- from django.utils import formats, translation
249
+ from django.utils import formats
250
250
 
251
251
  errors = []
252
252
 
253
253
  if not getattr(settings, "USE_L10N", False):
254
254
  return errors
255
255
 
256
- formats.FORMAT_SETTINGS = formats.FORMAT_SETTINGS.union(
257
- [
258
- "WAGTAIL_DATE_FORMAT",
259
- "WAGTAIL_DATETIME_FORMAT",
260
- "WAGTAIL_TIME_FORMAT",
261
- ]
262
- )
263
-
264
256
  for code, label in settings.LANGUAGES:
265
- with translation.override(code):
266
- for wagtail_format, django_formats in [
267
- ("WAGTAIL_DATE_FORMAT", "DATE_INPUT_FORMATS"),
268
- ("WAGTAIL_DATETIME_FORMAT", "DATETIME_INPUT_FORMATS"),
269
- ("WAGTAIL_TIME_FORMAT", "TIME_INPUT_FORMATS"),
270
- ]:
271
- wagtail_format_value = getattr(settings, wagtail_format, None)
272
- django_formats_value = getattr(settings, django_formats, None)
273
-
274
- if wagtail_format_value is None:
275
- # Skip the iteration if wagtail_format is not present
276
- continue
277
-
278
- input_format = formats.get_format_lazy(wagtail_format_value)
279
- input_formats = formats.get_format_lazy(django_formats_value)
280
- if str(input_format) not in str(input_formats):
281
- errors.append(
282
- Error(
283
- "Configuration error",
284
- hint=f"{wagtail_format} {input_format} must be in {django_formats} for language {label} ({code}).",
285
- )
257
+ for wagtail_setting, django_setting in [
258
+ ("WAGTAIL_DATE_FORMAT", "DATE_INPUT_FORMATS"),
259
+ ("WAGTAIL_DATETIME_FORMAT", "DATETIME_INPUT_FORMATS"),
260
+ ("WAGTAIL_TIME_FORMAT", "TIME_INPUT_FORMATS"),
261
+ ]:
262
+ wagtail_format_value = getattr(settings, wagtail_setting, None)
263
+ if wagtail_format_value is None:
264
+ # Skip the iteration if wagtail_format is not present
265
+ continue
266
+
267
+ input_formats = formats.get_format(django_setting, lang=code)
268
+ if wagtail_format_value not in input_formats:
269
+ errors.append(
270
+ Error(
271
+ "Configuration error",
272
+ hint=f"'{wagtail_format_value}' must be in {django_setting} for language {label} ({code}).",
273
+ obj=wagtail_setting,
274
+ id="wagtailadmin.E003",
286
275
  )
276
+ )
287
277
 
288
278
  return errors
@@ -125,6 +125,9 @@ class CopyForm(forms.Form):
125
125
 
126
126
  class PageViewRestrictionForm(BaseViewRestrictionForm):
127
127
  def __init__(self, *args, **kwargs):
128
+ # get the list of private page options from the page
129
+ private_page_options = kwargs.pop("private_page_options", [])
130
+
128
131
  super().__init__(*args, **kwargs)
129
132
 
130
133
  if not getattr(settings, "WAGTAIL_PRIVATE_PAGE_OPTIONS", {}).get(
@@ -136,6 +139,13 @@ class PageViewRestrictionForm(BaseViewRestrictionForm):
136
139
  if choice[0] != PageViewRestriction.PASSWORD
137
140
  ]
138
141
  del self.fields["password"]
142
+ # Remove the fields that are not allowed for the page
143
+ self.fields["restriction_type"].choices = [
144
+ choice
145
+ for choice in self.fields["restriction_type"].choices
146
+ if choice[0] in private_page_options
147
+ or choice[0] == PageViewRestriction.NONE
148
+ ]
139
149
 
140
150
  class Meta:
141
151
  model = PageViewRestriction
wagtail/admin/icons.py ADDED
@@ -0,0 +1,43 @@
1
+ import hashlib
2
+ import itertools
3
+ import re
4
+ from functools import lru_cache
5
+
6
+ from django.conf import settings
7
+ from django.template.loader import render_to_string
8
+ from django.urls import reverse
9
+
10
+ from wagtail import hooks
11
+
12
+ icon_comment_pattern = re.compile(r"<!--.*?-->")
13
+
14
+
15
+ @lru_cache(maxsize=None)
16
+ def get_icons():
17
+ icon_hooks = hooks.get_hooks("register_icons")
18
+ all_icons = sorted(itertools.chain.from_iterable(hook([]) for hook in icon_hooks))
19
+ combined_icon_markup = ""
20
+ for icon in all_icons:
21
+ symbol = (
22
+ render_to_string(icon)
23
+ .replace('xmlns="http://www.w3.org/2000/svg"', "")
24
+ .replace("svg", "symbol")
25
+ )
26
+ symbol = icon_comment_pattern.sub("", symbol)
27
+ combined_icon_markup += symbol
28
+
29
+ return render_to_string(
30
+ "wagtailadmin/shared/icons.html", {"icons": combined_icon_markup}
31
+ )
32
+
33
+
34
+ @lru_cache(maxsize=None)
35
+ def get_icon_sprite_hash():
36
+ # SECRET_KEY is used to prevent exposing the Wagtail version
37
+ return hashlib.sha1(
38
+ (get_icons() + settings.SECRET_KEY).encode("utf-8")
39
+ ).hexdigest()[:8]
40
+
41
+
42
+ def get_icon_sprite_url():
43
+ return reverse("wagtailadmin_sprite") + f"?h={get_icon_sprite_hash()}"
@@ -448,8 +448,8 @@ msgstr "المجموعة لايمكن حذفها. بسبب احتوائها عل
448
448
 
449
449
  #, python-format
450
450
  msgid ""
451
- "No collections have been created. Why not <a href=\"%(add_collection_url)s"
452
- "\">add one</a>?"
451
+ "No collections have been created. Why not <a "
452
+ "href=\"%(add_collection_url)s\">add one</a>?"
453
453
  msgstr ""
454
454
  "لم يتم إنشاء أي مجموعات. لماذا لا <a href=\"%(add_collection_url)s\">تضيف "
455
455
  "واحدة</a>؟"
@@ -19,9 +19,9 @@ msgstr ""
19
19
  "Content-Type: text/plain; charset=UTF-8\n"
20
20
  "Content-Transfer-Encoding: 8bit\n"
21
21
  "Language: be\n"
22
- "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
23
- "%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n"
24
- "%100>=11 && n%100<=14)? 2 : 3);\n"
22
+ "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
23
+ "n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || "
24
+ "(n%100>=11 && n%100<=14)? 2 : 3);\n"
25
25
 
26
26
  msgid "Publish"
27
27
  msgstr "Публікаваць"
@@ -408,11 +408,11 @@ msgstr ""
408
408
 
409
409
  #, python-format
410
410
  msgid ""
411
- "No collections have been created. Why not <a href=\"%(add_collection_url)s"
412
- "\">add one</a>?"
411
+ "No collections have been created. Why not <a "
412
+ "href=\"%(add_collection_url)s\">add one</a>?"
413
413
  msgstr ""
414
- "Калекцыі яшчэ не былі створаны. Давай <a href=\"%(add_collection_url)s"
415
- "\">створым адну</a>?"
414
+ "Калекцыі яшчэ не былі створаны. Давай <a "
415
+ "href=\"%(add_collection_url)s\">створым адну</a>?"
416
416
 
417
417
  msgid "Yes, delete"
418
418
  msgstr "Так. Выдаліць"
@@ -11,9 +11,9 @@ msgstr ""
11
11
  "be/)\n"
12
12
  "Content-Type: text/plain; charset=UTF-8\n"
13
13
  "Language: be\n"
14
- "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
15
- "%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n"
16
- "%100>=11 && n%100<=14)? 2 : 3);\n"
14
+ "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
15
+ "n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || "
16
+ "(n%100>=11 && n%100<=14)? 2 : 3);\n"
17
17
 
18
18
  msgid "Add a comment"
19
19
  msgstr "Дадаць каментар"
@@ -567,15 +567,15 @@ msgstr "Convertir a enllaç intern"
567
567
 
568
568
  #, python-format
569
569
  msgid ""
570
- "The URL you entered, <a target=\"_blank\" rel=\"noreferrer\" href="
571
- "\"%(submitted_url)s\">%(submitted_url)s</a>, looks like it matches the "
572
- "internal page %(page)s, which has the URL <a target=\"_blank\" rel="
573
- "\"noreferrer\" href=\"%(internal_url)s\">%(internal_url)s</a>."
570
+ "The URL you entered, <a target=\"_blank\" rel=\"noreferrer\" "
571
+ "href=\"%(submitted_url)s\">%(submitted_url)s</a>, looks like it matches the "
572
+ "internal page %(page)s, which has the URL <a target=\"_blank\" "
573
+ "rel=\"noreferrer\" href=\"%(internal_url)s\">%(internal_url)s</a>."
574
574
  msgstr ""
575
- "La URL que heu introduït, <a target=\"_blank\" rel=\"noreferrer\" href="
576
- "\"%(submitted_url)s\">%(submitted_url)s</a>, sembla que coincideix amb la "
577
- "pàgina interna %(page)s, la qual té la URL <a target=\"_blank\" rel="
578
- "\"noreferrer\" href=\"%(internal_url)s\">%(internal_url)s</a>."
575
+ "La URL que heu introduït, <a target=\"_blank\" rel=\"noreferrer\" "
576
+ "href=\"%(submitted_url)s\">%(submitted_url)s</a>, sembla que coincideix amb "
577
+ "la pàgina interna %(page)s, la qual té la URL <a target=\"_blank\" "
578
+ "rel=\"noreferrer\" href=\"%(internal_url)s\">%(internal_url)s</a>."
579
579
 
580
580
  #, python-format
581
581
  msgid ""
@@ -656,11 +656,11 @@ msgstr ""
656
656
 
657
657
  #, python-format
658
658
  msgid ""
659
- "No collections have been created. Why not <a href=\"%(add_collection_url)s"
660
- "\">add one</a>?"
659
+ "No collections have been created. Why not <a "
660
+ "href=\"%(add_collection_url)s\">add one</a>?"
661
661
  msgstr ""
662
- "No ha estat creada cap col·lecció. Per què no n'<a href="
663
- "\"%(add_collection_url)s\">afegiu una</a>?"
662
+ "No ha estat creada cap col·lecció. Per què no n'<a "
663
+ "href=\"%(add_collection_url)s\">afegiu una</a>?"
664
664
 
665
665
  #, python-format
666
666
  msgid "Sorry, there are no matches for \"<em>%(search_query)s</em>\""
@@ -698,13 +698,13 @@ msgid ""
698
698
  "This %(model_name)s was marked as needing changes at <strong>%(task)s</"
699
699
  "strong> in <strong>%(workflow)s</strong>."
700
700
  msgstr ""
701
- "Aquest/a %(model_name)s va ser marcat com que necessita canvis el <strong>"
702
- "%(task)s</strong> a <strong>%(workflow)s</strong>."
701
+ "Aquest/a %(model_name)s va ser marcat com que necessita canvis el "
702
+ "<strong>%(task)s</strong> a <strong>%(workflow)s</strong>."
703
703
 
704
704
  #, python-format
705
705
  msgid ""
706
- "This %(model_name)s is currently at <strong>%(task)s</strong> in <strong>"
707
- "%(workflow)s</strong>."
706
+ "This %(model_name)s is currently at <strong>%(task)s</strong> in "
707
+ "<strong>%(workflow)s</strong>."
708
708
  msgstr ""
709
709
  "Aquest/a %(model_name)s està actualment a <strong>%(task)s</strong> a "
710
710
  "<strong>%(workflow)s</strong>."
@@ -736,8 +736,8 @@ msgid ""
736
736
  "There are no %(model_name)s to display. Why not <a href=\"%(add_url)s\">add "
737
737
  "one</a>?"
738
738
  msgstr ""
739
- "No hi ha %(model_name)s per mostrar. En voleu <a href=\"%(add_url)s"
740
- "\">afegir</a>?"
739
+ "No hi ha %(model_name)s per mostrar. En voleu <a "
740
+ "href=\"%(add_url)s\">afegir</a>?"
741
741
 
742
742
  #, python-format
743
743
  msgid "There are no %(model_name)s to display."
@@ -845,9 +845,9 @@ msgid ""
845
845
  "strong>. New version: <strong data-w-upgrade-target=\"latestVersion\"></"
846
846
  "strong>."
847
847
  msgstr ""
848
- "Hi ha disponible una actualització de Wagtail. La vostra versió: <strong>"
849
- "%(current_version)s</strong>. Nova versió: <strong data-w-upgrade-target="
850
- "\"latestVersion\"></strong>."
848
+ "Hi ha disponible una actualització de Wagtail. La vostra versió: "
849
+ "<strong>%(current_version)s</strong>. Nova versió: <strong data-w-upgrade-"
850
+ "target=\"latestVersion\"></strong>."
851
851
 
852
852
  msgid "Read the release notes."
853
853
  msgstr "Llegiu les notes de publicació."
@@ -873,15 +873,15 @@ msgstr "Coses que han canviat a Wagtail %(version)s!"
873
873
 
874
874
  #, python-format
875
875
  msgid ""
876
- "Don't worry, we've got your back. Check out the <a class=\"w-whats-new__link"
877
- "\" href=\"%(editor_guide_link)s\" target=\"_blank\" rel=\"noreferrer"
878
- "\">Wagtail Editor Guide</a> to get the low down on what's changed and some "
879
- "exciting new features!"
876
+ "Don't worry, we've got your back. Check out the <a class=\"w-whats-"
877
+ "new__link\" href=\"%(editor_guide_link)s\" target=\"_blank\" "
878
+ "rel=\"noreferrer\">Wagtail Editor Guide</a> to get the low down on what's "
879
+ "changed and some exciting new features!"
880
880
  msgstr ""
881
881
  "No et preocupis, t'acompanyem. Fes una ullada a la <a class=\"w-whats-"
882
- "new__link\" href=\"%(editor_guide_link)s\" target=\"_blank\" rel=\"noreferrer"
883
- "\">Guia de l'editor de Wagtail</a> per conèixer el que ha canviat i algunes "
884
- "funcions noves i emocionants!"
882
+ "new__link\" href=\"%(editor_guide_link)s\" target=\"_blank\" "
883
+ "rel=\"noreferrer\">Guia de l'editor de Wagtail</a> per conèixer el que ha "
884
+ "canviat i algunes funcions noves i emocionants!"
885
885
 
886
886
  msgid "Awaiting your review"
887
887
  msgstr "En espera de la vostra revisió"
@@ -975,8 +975,8 @@ msgstr "El/la %(model_name)s \"%(title)s\" ha estat aprovat/da a \"%(task)s\"."
975
975
  msgid ""
976
976
  "The page \"%(title)s\" has been rejected in moderation stage \"%(task)s\"."
977
977
  msgstr ""
978
- "La pàgina \"%(title)s\" ha estat rebutjada a la fase de moderació \"%(task)s"
979
- "\"."
978
+ "La pàgina \"%(title)s\" ha estat rebutjada a la fase de moderació "
979
+ "\"%(task)s\"."
980
980
 
981
981
  #, python-format
982
982
  msgid ""
@@ -1093,8 +1093,8 @@ msgstr ""
1093
1093
 
1094
1094
  #, python-format
1095
1095
  msgid ""
1096
- "The %(model_name)s \"%(title)s\" has been approved in workflow \"%(workflow)s"
1097
- "\"."
1096
+ "The %(model_name)s \"%(title)s\" has been approved in workflow "
1097
+ "\"%(workflow)s\"."
1098
1098
  msgstr ""
1099
1099
  "El/la %(model_name)s \"%(title)s\" ha estat aprovat/da en el fluxe de "
1100
1100
  "treball \"%(workflow)s\"."
@@ -1152,8 +1152,8 @@ msgstr "La pàgina \"%(title)s\" ha estat rebutjada durant \"%(workflow)s\"."
1152
1152
  msgid ""
1153
1153
  "The %(model_name)s \"%(title)s\" has been rejected during \"%(workflow)s\"."
1154
1154
  msgstr ""
1155
- "El/la %(model_name)s \"%(title)s\" ha estat rebutjat/da durant \"%(workflow)s"
1156
- "\"."
1155
+ "El/la %(model_name)s \"%(title)s\" ha estat rebutjat/da durant "
1156
+ "\"%(workflow)s\"."
1157
1157
 
1158
1158
  #, python-format
1159
1159
  msgid ""
@@ -1565,8 +1565,8 @@ msgid_plural ""
1565
1565
  "have a combined %(translation_descendant_count)s translated child pages. "
1566
1566
  "Unpublish these too"
1567
1567
  msgstr[0] ""
1568
- "Aquesta pàgina té una pàgina filla i les seves traduccions tenen"
1569
- "%(translation_descendant_count)s pàgines filles traduïdes combinades. "
1568
+ "Aquesta pàgina té una pàgina filla i les seves traduccions "
1569
+ "tenen%(translation_descendant_count)s pàgines filles traduïdes combinades. "
1570
1570
  "Anul·leu també la publicació d'aquestes"
1571
1571
  msgstr[1] ""
1572
1572
  "Aquesta pàgina té %(live_descendant_count)s pàgines filles i les seves "
@@ -1599,8 +1599,8 @@ msgid ""
1599
1599
  "This page is currently at <strong>%(task)s</strong> in <strong>%(workflow)s</"
1600
1600
  "strong>."
1601
1601
  msgstr ""
1602
- "Aquesta pàgina està actualment a <strong>%(task)s</strong> a <strong>"
1603
- "%(workflow)s</strong>."
1602
+ "Aquesta pàgina està actualment a <strong>%(task)s</strong> a "
1603
+ "<strong>%(workflow)s</strong>."
1604
1604
 
1605
1605
  msgid "Publishing this page will cancel the current workflow."
1606
1606
  msgstr "Publicar aquesta pàgines cancel·larà el fluxe de treball actual."
@@ -1797,8 +1797,8 @@ msgid "Choose when this page should go live and/or expire"
1797
1797
  msgstr "Trieu quan aquesta pàgina ha de passar a En viu i/o caducar"
1798
1798
 
1799
1799
  msgid ""
1800
- "This publishing schedule will only take effect after you select the \"Publish"
1801
- "\" option"
1800
+ "This publishing schedule will only take effect after you select the "
1801
+ "\"Publish\" option"
1802
1802
  msgstr ""
1803
1803
  "Aquesta programació de publicació només serà efectiva quan seleccioneu "
1804
1804
  "l'opció \"Publicar\""
@@ -2237,9 +2237,9 @@ msgstr "Aquest/a %(model_name)s encara no ha estat enviat a moderació"
2237
2237
 
2238
2238
  msgid ""
2239
2239
  "JavaScript is required to use Wagtail, but it is currently disabled.<br /> "
2240
- "Here are the <a href=\"https://www.enable-javascript.com/\" target=\"_blank"
2241
- "\" rel=\"noreferrer\">instructions how to enable JavaScript in your web "
2242
- "browser</a>."
2240
+ "Here are the <a href=\"https://www.enable-javascript.com/\" "
2241
+ "target=\"_blank\" rel=\"noreferrer\">instructions how to enable JavaScript "
2242
+ "in your web browser</a>."
2243
2243
  msgstr ""
2244
2244
  "JavaScript is requerit per utilitzar Wagtail, però actualment està "
2245
2245
  "desactivat.<br /> Aquí hi ha <a href=\"https://www.enable-javascript.com/\" "
@@ -2302,8 +2302,9 @@ msgstr "Crear"
2302
2302
  #, python-format
2303
2303
  msgid ""
2304
2304
  "Workflows apply to child pages too. If you select a parent page here, its "
2305
- "child pages will also use this workflow. See <a href=\"%(workflow_pages_url)s"
2306
- "\">the list of the pages</a> your workflow applies to."
2305
+ "child pages will also use this workflow. See <a "
2306
+ "href=\"%(workflow_pages_url)s\">the list of the pages</a> your workflow "
2307
+ "applies to."
2307
2308
  msgstr ""
2308
2309
  "Els fluxes de treball s'apliquen també a les pàgines filles. Si selecciuneu "
2309
2310
  "una pàgina pare aquí, les seves pàgines filles també utilitzaran aquest "
@@ -2772,11 +2773,11 @@ msgstr "El fluxe de treball a %(model_name)s '%(object)s' ha estat cancel·lat."
2772
2773
 
2773
2774
  #, python-format
2774
2775
  msgid ""
2775
- "You are viewing a previous version of this %(model_name)s from <b>"
2776
- "%(created_at)s</b> by %(user)s"
2776
+ "You are viewing a previous version of this %(model_name)s from "
2777
+ "<b>%(created_at)s</b> by %(user)s"
2777
2778
  msgstr ""
2778
- "Esteu veient una versió anterior d'aquest/a %(model_name)s del <b>"
2779
- "%(created_at)s</b> per %(user)s"
2779
+ "Esteu veient una versió anterior d'aquest/a %(model_name)s del "
2780
+ "<b>%(created_at)s</b> per %(user)s"
2780
2781
 
2781
2782
  #, python-format
2782
2783
  msgid ""
@@ -2852,7 +2853,7 @@ msgstr "%(model_name)s '%(object)s' esborrat."
2852
2853
 
2853
2854
  #, python-format
2854
2855
  msgid "Are you sure you want to delete this %(model_name)s?"
2855
- msgstr "Segur que voleu esborrar aquest/a%(model_name)s?"
2856
+ msgstr "Segur que voleu esborrar aquest/a %(model_name)s?"
2856
2857
 
2857
2858
  msgid "Inspecting"
2858
2859
  msgstr "Inspeccionant"
@@ -518,11 +518,11 @@ msgstr "Tato kolekce nemůže být smazána protože není prázdná. Obsahuje:"
518
518
 
519
519
  #, python-format
520
520
  msgid ""
521
- "No collections have been created. Why not <a href=\"%(add_collection_url)s"
522
- "\">add one</a>?"
521
+ "No collections have been created. Why not <a "
522
+ "href=\"%(add_collection_url)s\">add one</a>?"
523
523
  msgstr ""
524
- "Nebyly nalezeny žádné kolekce. Novou kolekci můžete přidat <a href="
525
- "\"%(add_collection_url)s\">zde</a>."
524
+ "Nebyly nalezeny žádné kolekce. Novou kolekci můžete přidat <a "
525
+ "href=\"%(add_collection_url)s\">zde</a>."
526
526
 
527
527
  msgid "Yes, delete"
528
528
  msgstr "Ano, smazat"
@@ -1257,12 +1257,14 @@ msgstr "Vytvořit"
1257
1257
  #, python-format
1258
1258
  msgid ""
1259
1259
  "Workflows apply to child pages too. If you select a parent page here, its "
1260
- "child pages will also use this workflow. See <a href=\"%(workflow_pages_url)s"
1261
- "\">the list of the pages</a> your workflow applies to."
1260
+ "child pages will also use this workflow. See <a "
1261
+ "href=\"%(workflow_pages_url)s\">the list of the pages</a> your workflow "
1262
+ "applies to."
1262
1263
  msgstr ""
1263
1264
  "Postupy se uplatní i pro podstránky. Vyberete-li nyní nadřazenou stránku, i "
1264
- "její podřízené stránky použijí tento postup. Zobrazit <a href="
1265
- "\"%(workflow_pages_url)s\">seznam stránek</a>, které aplikují tento postup."
1265
+ "její podřízené stránky použijí tento postup. Zobrazit <a "
1266
+ "href=\"%(workflow_pages_url)s\">seznam stránek</a>, které aplikují tento "
1267
+ "postup."
1266
1268
 
1267
1269
  msgid "This workflow is disabled so it cannot be assigned to any pages."
1268
1270
  msgstr "Tento postup není povolen. Nelze ho proto přiřazovat ke stránkám."