wagtail 7.1.2__py3-none-any.whl → 7.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 (332) hide show
  1. wagtail/__init__.py +1 -1
  2. wagtail/actions/copy_page.py +1 -1
  3. wagtail/actions/create_alias.py +1 -1
  4. wagtail/actions/delete_page.py +1 -1
  5. wagtail/actions/publish_page_revision.py +1 -1
  6. wagtail/actions/publish_revision.py +1 -1
  7. wagtail/actions/revert_to_page_revision.py +1 -1
  8. wagtail/actions/unpublish.py +1 -1
  9. wagtail/actions/unpublish_page.py +1 -1
  10. wagtail/admin/auth.py +3 -1
  11. wagtail/admin/checks.py +2 -2
  12. wagtail/admin/filters.py +28 -1
  13. wagtail/admin/forms/collections.py +1 -1
  14. wagtail/admin/forms/comments.py +1 -1
  15. wagtail/admin/forms/models.py +1 -1
  16. wagtail/admin/forms/pages.py +1 -1
  17. wagtail/admin/forms/tags.py +1 -1
  18. wagtail/admin/locale/cs/LC_MESSAGES/django.mo +0 -0
  19. wagtail/admin/locale/cs/LC_MESSAGES/django.po +25 -1
  20. wagtail/admin/locale/en/LC_MESSAGES/django.po +278 -192
  21. wagtail/admin/locale/en/LC_MESSAGES/djangojs.po +29 -15
  22. wagtail/admin/locale/it/LC_MESSAGES/django.mo +0 -0
  23. wagtail/admin/locale/it/LC_MESSAGES/django.po +3 -2
  24. wagtail/admin/locale/nl/LC_MESSAGES/django.mo +0 -0
  25. wagtail/admin/locale/nl/LC_MESSAGES/django.po +57 -3
  26. wagtail/admin/locale/nl/LC_MESSAGES/djangojs.mo +0 -0
  27. wagtail/admin/locale/nl/LC_MESSAGES/djangojs.po +8 -2
  28. wagtail/admin/locale/ru/LC_MESSAGES/django.mo +0 -0
  29. wagtail/admin/locale/ru/LC_MESSAGES/django.po +58 -1
  30. wagtail/admin/locale/tr/LC_MESSAGES/django.mo +0 -0
  31. wagtail/admin/locale/tr/LC_MESSAGES/django.po +3 -2
  32. wagtail/admin/static/wagtailadmin/css/core.css +1 -1
  33. wagtail/admin/static/wagtailadmin/js/bulk-actions.js +1 -1
  34. wagtail/admin/static/wagtailadmin/js/chooser-modal.js +1 -1
  35. wagtail/admin/static/wagtailadmin/js/chooser-widget-telepath.js +1 -1
  36. wagtail/admin/static/wagtailadmin/js/chooser-widget.js +1 -1
  37. wagtail/admin/static/wagtailadmin/js/comments.js +1 -1
  38. wagtail/admin/static/wagtailadmin/js/core.js +1 -1
  39. wagtail/admin/static/wagtailadmin/js/core.js.LICENSE.txt +2 -2
  40. wagtail/admin/static/wagtailadmin/js/date-time-chooser.js +1 -1
  41. wagtail/admin/static/wagtailadmin/js/draftail.js +1 -1
  42. wagtail/admin/static/wagtailadmin/js/filtered-select.js +1 -1
  43. wagtail/admin/static/wagtailadmin/js/icons.js +1 -1
  44. wagtail/admin/static/wagtailadmin/js/modal-workflow.js +1 -1
  45. wagtail/admin/static/wagtailadmin/js/page-chooser-modal.js +1 -1
  46. wagtail/admin/static/wagtailadmin/js/page-chooser-telepath.js +1 -1
  47. wagtail/admin/static/wagtailadmin/js/page-chooser.js +1 -1
  48. wagtail/admin/static/wagtailadmin/js/privacy-switch.js +1 -1
  49. wagtail/admin/static/wagtailadmin/js/sidebar.js +1 -1
  50. wagtail/admin/static/wagtailadmin/js/task-chooser-modal.js +1 -1
  51. wagtail/admin/static/wagtailadmin/js/task-chooser.js +1 -1
  52. wagtail/admin/static/wagtailadmin/js/telepath/blocks.js +1 -1
  53. wagtail/admin/static/wagtailadmin/js/telepath/telepath.js +1 -1
  54. wagtail/admin/static/wagtailadmin/js/telepath/widgets.js +1 -1
  55. wagtail/admin/static/wagtailadmin/js/userbar.js +1 -1
  56. wagtail/admin/static/wagtailadmin/js/userbar.js.LICENSE.txt +2 -2
  57. wagtail/admin/static/wagtailadmin/js/vendor/bootstrap-modal.js +1 -1
  58. wagtail/admin/static/wagtailadmin/js/vendor/bootstrap-transition.js +1 -1
  59. wagtail/admin/static/wagtailadmin/js/vendor/jquery-3.6.0.min.js +1 -1
  60. wagtail/admin/static/wagtailadmin/js/vendor/jquery-ui-1.13.2.min.js +1 -1
  61. wagtail/admin/static/wagtailadmin/js/vendor/jquery.datetimepicker.js +1 -1
  62. wagtail/admin/static/wagtailadmin/js/vendor/jquery.fileupload-process.js +1 -1
  63. wagtail/admin/static/wagtailadmin/js/vendor/jquery.fileupload.js +1 -1
  64. wagtail/admin/static/wagtailadmin/js/vendor/jquery.iframe-transport.js +1 -1
  65. wagtail/admin/static/wagtailadmin/js/vendor/tag-it.js +1 -1
  66. wagtail/admin/static/wagtailadmin/js/vendor.js +1 -1
  67. wagtail/admin/static/wagtailadmin/js/vendor.js.LICENSE.txt +1 -1
  68. wagtail/admin/static/wagtailadmin/js/wagtailadmin.js +1 -1
  69. wagtail/admin/static/wagtailadmin/js/workflow-action.js +1 -1
  70. wagtail/admin/templates/wagtailadmin/account/account.html +2 -0
  71. wagtail/admin/templates/wagtailadmin/base.html +14 -0
  72. wagtail/admin/templates/wagtailadmin/generic/chooser/chooser.html +2 -1
  73. wagtail/admin/templates/wagtailadmin/generic/chooser/creation_form.html +2 -1
  74. wagtail/admin/templates/wagtailadmin/panels/multi_field_panel_child.html +1 -1
  75. wagtail/admin/templates/wagtailadmin/panels/object_list.html +1 -1
  76. wagtail/admin/templates/wagtailadmin/panels/tabbed_interface.html +3 -2
  77. wagtail/admin/templates/wagtailadmin/shared/formatted_field.html +1 -1
  78. wagtail/admin/templates/wagtailadmin/shared/forms/single_checkbox.html +1 -1
  79. wagtail/admin/templates/wagtailadmin/shared/keyboard_shortcuts_dialog.html +19 -0
  80. wagtail/admin/templates/wagtailadmin/shared/panel.html +1 -1
  81. wagtail/admin/templates/wagtailadmin/shared/set_privacy.html +15 -0
  82. wagtail/admin/templates/wagtailadmin/shared/side_panels/checks.html +28 -1
  83. wagtail/admin/templates/wagtailadmin/shared/workflow_history/detail.html +2 -2
  84. wagtail/admin/templates/wagtailadmin/{pages/listing/_ordering_header.html → tables/ordering_header.html} +2 -2
  85. wagtail/admin/templates/wagtailadmin/tables/title_cell.html +1 -1
  86. wagtail/admin/templates/wagtailadmin/widgets/{daterange_input.html → range_input.html} +1 -1
  87. wagtail/admin/templates/wagtailadmin/workflows/task_chooser/chooser.html +4 -2
  88. wagtail/admin/templatetags/wagtailadmin_tags.py +41 -22
  89. wagtail/admin/tests/api/test_pages.py +7 -7
  90. wagtail/admin/tests/api/test_renderer_classes.py +16 -0
  91. wagtail/admin/tests/pages/test_create_page.py +34 -2
  92. wagtail/admin/tests/pages/test_edit_page.py +128 -14
  93. wagtail/admin/tests/pages/test_explorer_view.py +34 -7
  94. wagtail/admin/tests/pages/test_reorder_page.py +11 -0
  95. wagtail/admin/tests/test_collections_views.py +12 -0
  96. wagtail/admin/tests/test_edit_handlers.py +3 -3
  97. wagtail/admin/tests/test_filters.py +2 -2
  98. wagtail/admin/tests/test_keyboard_shortcuts.py +52 -2
  99. wagtail/admin/tests/test_menu.py +0 -2
  100. wagtail/admin/tests/test_privacy.py +16 -16
  101. wagtail/admin/tests/test_templatetags.py +137 -0
  102. wagtail/admin/tests/test_workflows.py +34 -0
  103. wagtail/admin/tests/viewsets/test_model_viewset.py +322 -0
  104. wagtail/admin/ui/tables/orderable.py +73 -0
  105. wagtail/admin/ui/tables/pages.py +3 -13
  106. wagtail/admin/views/collection_privacy.py +6 -2
  107. wagtail/admin/views/generic/__init__.py +1 -0
  108. wagtail/admin/views/generic/mixins.py +20 -2
  109. wagtail/admin/views/generic/models.py +67 -1
  110. wagtail/admin/views/generic/ordering.py +79 -0
  111. wagtail/admin/views/home.py +3 -3
  112. wagtail/admin/views/page_privacy.py +5 -2
  113. wagtail/admin/views/pages/create.py +1 -1
  114. wagtail/admin/views/pages/edit.py +2 -2
  115. wagtail/admin/views/pages/listing.py +7 -42
  116. wagtail/admin/views/pages/move.py +1 -1
  117. wagtail/admin/views/pages/ordering.py +1 -1
  118. wagtail/admin/viewsets/base.py +1 -1
  119. wagtail/admin/viewsets/model.py +49 -1
  120. wagtail/admin/wagtail_hooks.py +2 -1
  121. wagtail/admin/widgets/slug.py +10 -10
  122. wagtail/api/v2/serializers.py +1 -1
  123. wagtail/api/v2/tests/test_renderer_classes.py +32 -0
  124. wagtail/apps.py +2 -0
  125. wagtail/bin/wagtail.py +1 -1
  126. wagtail/contrib/forms/locale/en/LC_MESSAGES/django.po +14 -14
  127. wagtail/contrib/forms/locale/nl/LC_MESSAGES/django.mo +0 -0
  128. wagtail/contrib/forms/locale/nl/LC_MESSAGES/django.po +19 -2
  129. wagtail/contrib/forms/locale/ru/LC_MESSAGES/django.mo +0 -0
  130. wagtail/contrib/forms/locale/ru/LC_MESSAGES/django.po +18 -1
  131. wagtail/contrib/frontend_cache/tests.py +4 -2
  132. wagtail/contrib/redirects/locale/en/LC_MESSAGES/django.po +4 -4
  133. wagtail/contrib/redirects/tests/test_tmp_storages.py +20 -0
  134. wagtail/contrib/redirects/tmp_storages.py +1 -1
  135. wagtail/contrib/redirects/views.py +3 -3
  136. wagtail/contrib/search_promotions/locale/en/LC_MESSAGES/django.po +3 -3
  137. wagtail/contrib/search_promotions/locale/tr/LC_MESSAGES/django.mo +0 -0
  138. wagtail/contrib/search_promotions/locale/tr/LC_MESSAGES/django.po +43 -3
  139. wagtail/contrib/search_promotions/static/wagtailsearchpromotions/js/query-chooser-modal.js +1 -1
  140. wagtail/contrib/search_promotions/views/settings.py +2 -2
  141. wagtail/contrib/settings/locale/cs/LC_MESSAGES/django.mo +0 -0
  142. wagtail/contrib/settings/locale/cs/LC_MESSAGES/django.po +6 -1
  143. wagtail/contrib/settings/locale/en/LC_MESSAGES/django.po +1 -1
  144. wagtail/contrib/settings/locale/nl/LC_MESSAGES/django.mo +0 -0
  145. wagtail/contrib/settings/locale/nl/LC_MESSAGES/django.po +6 -2
  146. wagtail/contrib/settings/locale/ru/LC_MESSAGES/django.mo +0 -0
  147. wagtail/contrib/settings/locale/ru/LC_MESSAGES/django.po +6 -1
  148. wagtail/contrib/settings/tests/site_specific/test_admin.py +40 -6
  149. wagtail/contrib/simple_translation/locale/en/LC_MESSAGES/django.po +1 -1
  150. wagtail/contrib/styleguide/locale/en/LC_MESSAGES/django.po +1 -1
  151. wagtail/contrib/styleguide/templates/wagtailstyleguide/base.html +5 -5
  152. wagtail/contrib/table_block/blocks.py +1 -0
  153. wagtail/contrib/table_block/locale/en/LC_MESSAGES/django.po +5 -1
  154. wagtail/contrib/table_block/static/table_block/js/table.js +1 -1
  155. wagtail/contrib/typed_table_block/locale/en/LC_MESSAGES/django.po +1 -1
  156. wagtail/contrib/typed_table_block/static/typed_table_block/js/typed_table_block.js +1 -1
  157. wagtail/coreutils.py +5 -5
  158. wagtail/documents/forms.py +18 -1
  159. wagtail/documents/locale/en/LC_MESSAGES/django.po +10 -10
  160. wagtail/documents/locale/nl/LC_MESSAGES/django.mo +0 -0
  161. wagtail/documents/locale/nl/LC_MESSAGES/django.po +9 -0
  162. wagtail/documents/locale/ru/LC_MESSAGES/django.mo +0 -0
  163. wagtail/documents/locale/ru/LC_MESSAGES/django.po +9 -0
  164. wagtail/documents/models.py +1 -1
  165. wagtail/documents/static/wagtaildocs/js/add-multiple.js +1 -1
  166. wagtail/documents/static/wagtaildocs/js/document-chooser-modal.js +1 -1
  167. wagtail/documents/static/wagtaildocs/js/document-chooser-telepath.js +1 -1
  168. wagtail/documents/static/wagtaildocs/js/document-chooser.js +1 -1
  169. wagtail/documents/templates/wagtaildocs/documents/add.html +0 -34
  170. wagtail/documents/tests/test_admin_views.py +132 -26
  171. wagtail/documents/tests/test_collection_privacy.py +18 -4
  172. wagtail/documents/tests/test_form_overrides.py +1 -1
  173. wagtail/documents/tests/test_search.py +21 -8
  174. wagtail/documents/views/documents.py +1 -1
  175. wagtail/embeds/locale/en/LC_MESSAGES/django.po +1 -1
  176. wagtail/embeds/static/wagtailembeds/js/embed-chooser-modal.js +1 -1
  177. wagtail/images/forms.py +16 -1
  178. wagtail/images/locale/cs/LC_MESSAGES/django.mo +0 -0
  179. wagtail/images/locale/cs/LC_MESSAGES/django.po +12 -1
  180. wagtail/images/locale/en/LC_MESSAGES/django.po +57 -46
  181. wagtail/images/locale/nl/LC_MESSAGES/django.mo +0 -0
  182. wagtail/images/locale/nl/LC_MESSAGES/django.po +37 -14
  183. wagtail/images/locale/ru/LC_MESSAGES/django.mo +0 -0
  184. wagtail/images/locale/ru/LC_MESSAGES/django.po +20 -1
  185. wagtail/images/models.py +1 -1
  186. wagtail/images/static/wagtailimages/js/add-multiple.js +1 -1
  187. wagtail/images/static/wagtailimages/js/focal-point-chooser.js +1 -1
  188. wagtail/images/static/wagtailimages/js/image-block.js +1 -1
  189. wagtail/images/static/wagtailimages/js/image-chooser-modal.js +1 -1
  190. wagtail/images/static/wagtailimages/js/image-chooser-telepath.js +1 -1
  191. wagtail/images/static/wagtailimages/js/image-chooser.js +1 -1
  192. wagtail/images/static/wagtailimages/js/image-url-generator.js +1 -1
  193. wagtail/images/static/wagtailimages/js/vendor/jquery.Jcrop.min.js +1 -1
  194. wagtail/images/static/wagtailimages/js/vendor/jquery.fileupload-image.js +1 -1
  195. wagtail/images/static/wagtailimages/js/vendor/jquery.fileupload-validate.js +1 -1
  196. wagtail/images/static/wagtailimages/js/vendor/load-image.min.js +1 -1
  197. wagtail/images/templates/wagtailimages/chooser/chooser.html +22 -13
  198. wagtail/images/templates/wagtailimages/chooser/image_preview_column_cell.html +10 -0
  199. wagtail/images/templates/wagtailimages/chooser/results.html +24 -20
  200. wagtail/images/templates/wagtailimages/chooser/title_column_cell.html +15 -0
  201. wagtail/images/templates/wagtailimages/images/add.html +0 -34
  202. wagtail/images/templates/wagtailimages/images/index.html +3 -3
  203. wagtail/images/templates/wagtailimages/images/index_results.html +1 -1
  204. wagtail/images/templates/wagtailimages/images/layout_toggle_button.html +8 -7
  205. wagtail/images/templatetags/wagtailimages_tags.py +2 -2
  206. wagtail/images/tests/test_admin_views.py +87 -0
  207. wagtail/images/tests/test_form_overrides.py +1 -1
  208. wagtail/images/tests/test_models.py +48 -9
  209. wagtail/images/views/chooser.py +66 -2
  210. wagtail/locale/en/LC_MESSAGES/django.po +55 -55
  211. wagtail/locale/is_IS/LC_MESSAGES/django.mo +0 -0
  212. wagtail/locale/is_IS/LC_MESSAGES/django.po +3 -3
  213. wagtail/locale/nl/LC_MESSAGES/django.mo +0 -0
  214. wagtail/locale/nl/LC_MESSAGES/django.po +11 -2
  215. wagtail/locale/ru/LC_MESSAGES/django.mo +0 -0
  216. wagtail/locale/ru/LC_MESSAGES/django.po +11 -1
  217. wagtail/locales/locale/en/LC_MESSAGES/django.po +1 -1
  218. wagtail/locales/locale/nl/LC_MESSAGES/django.mo +0 -0
  219. wagtail/locales/locale/nl/LC_MESSAGES/django.po +12 -1
  220. wagtail/locales/locale/ru/LC_MESSAGES/django.mo +0 -0
  221. wagtail/locales/locale/ru/LC_MESSAGES/django.po +10 -1
  222. wagtail/locales/views.py +2 -2
  223. wagtail/models/orderable.py +10 -0
  224. wagtail/models/pages.py +9 -11
  225. wagtail/models/sites.py +1 -1
  226. wagtail/models/workflows.py +8 -5
  227. wagtail/project_template/home/tests.py +6 -7
  228. wagtail/project_template/project_name/settings/base.py +9 -9
  229. wagtail/project_template/requirements.txt +1 -1
  230. wagtail/query.py +7 -2
  231. wagtail/rich_text/rewriters.py +1 -1
  232. wagtail/search/apps.py +4 -49
  233. wagtail/search/backends/__init__.py +1 -113
  234. wagtail/search/backends/base.py +1 -547
  235. wagtail/search/backends/database/__init__.py +1 -50
  236. wagtail/search/backends/database/fallback.py +1 -253
  237. wagtail/search/backends/database/mysql/mysql.py +1 -700
  238. wagtail/search/backends/database/mysql/query.py +1 -258
  239. wagtail/search/backends/database/postgres/postgres.py +1 -749
  240. wagtail/search/backends/database/postgres/query.py +1 -83
  241. wagtail/search/backends/database/postgres/weights.py +1 -63
  242. wagtail/search/backends/database/sqlite/query.py +1 -294
  243. wagtail/search/backends/database/sqlite/sqlite.py +1 -719
  244. wagtail/search/backends/database/sqlite/utils.py +1 -35
  245. wagtail/search/backends/deprecation.py +45 -0
  246. wagtail/search/backends/elasticsearch7.py +18 -1260
  247. wagtail/search/backends/elasticsearch8.py +21 -96
  248. wagtail/search/backends/elasticsearch9.py +35 -0
  249. wagtail/search/backends/opensearch2.py +35 -0
  250. wagtail/search/backends/opensearch3.py +35 -0
  251. wagtail/search/index.py +1 -358
  252. wagtail/search/locale/en/LC_MESSAGES/django.po +2 -10
  253. wagtail/search/management/commands/update_index.py +1 -205
  254. wagtail/search/management/commands/wagtail_update_index.py +1 -4
  255. wagtail/search/models.py +32 -158
  256. wagtail/search/query.py +1 -114
  257. wagtail/search/queryset.py +1 -43
  258. wagtail/search/signal_handlers.py +1 -24
  259. wagtail/search/tasks.py +1 -10
  260. wagtail/search/tests/test_elasticsearch.py +22 -0
  261. wagtail/search/utils.py +1 -206
  262. wagtail/sites/locale/en/LC_MESSAGES/django.po +1 -1
  263. wagtail/snippets/locale/en/LC_MESSAGES/django.po +3 -3
  264. wagtail/snippets/locale/ru/LC_MESSAGES/django.mo +0 -0
  265. wagtail/snippets/locale/ru/LC_MESSAGES/django.po +8 -1
  266. wagtail/snippets/locale/tr/LC_MESSAGES/django.mo +0 -0
  267. wagtail/snippets/locale/tr/LC_MESSAGES/django.po +8 -1
  268. wagtail/snippets/static/wagtailsnippets/js/snippet-chooser-telepath.js +1 -1
  269. wagtail/snippets/static/wagtailsnippets/js/snippet-chooser.js +1 -1
  270. wagtail/snippets/tests/test_reordering.py +319 -0
  271. wagtail/snippets/tests/test_snippets.py +65 -12
  272. wagtail/snippets/views/snippets.py +16 -0
  273. wagtail/test/numberformat.py +30 -0
  274. wagtail/test/settings.py +35 -12
  275. wagtail/test/testapp/fields.py +12 -0
  276. wagtail/test/testapp/migrations/0056_commentablejsonpage.py +50 -0
  277. wagtail/test/testapp/migrations/0057_featurecompletetoy_sort_order.py +23 -0
  278. wagtail/test/testapp/migrations/0058_customlocktask.py +31 -0
  279. wagtail/test/testapp/models.py +27 -0
  280. wagtail/test/testapp/views.py +3 -1
  281. wagtail/test/utils/page_tests.py +17 -17
  282. wagtail/test/utils/template_tests.py +4 -6
  283. wagtail/test/utils/wagtail_tests.py +1 -2
  284. wagtail/tests/test_page_model.py +15 -0
  285. wagtail/{search/tests → tests}/test_page_search.py +29 -2
  286. wagtail/tests/test_search_fields.py +69 -0
  287. wagtail/tests/test_tests.py +62 -6
  288. wagtail/tests/test_workflow.py +25 -1
  289. wagtail/users/locale/cs/LC_MESSAGES/django.mo +0 -0
  290. wagtail/users/locale/cs/LC_MESSAGES/django.po +3 -0
  291. wagtail/users/locale/en/LC_MESSAGES/django.po +2 -2
  292. wagtail/users/locale/nl/LC_MESSAGES/django.mo +0 -0
  293. wagtail/users/locale/nl/LC_MESSAGES/django.po +6 -3
  294. wagtail/users/locale/ru/LC_MESSAGES/django.mo +0 -0
  295. wagtail/users/locale/ru/LC_MESSAGES/django.po +5 -1
  296. wagtail/users/locale/tr/LC_MESSAGES/django.mo +0 -0
  297. wagtail/users/locale/tr/LC_MESSAGES/django.po +78 -4
  298. wagtail/users/templates/wagtailusers/users/create.html +2 -0
  299. wagtail/users/templates/wagtailusers/users/edit.html +2 -0
  300. wagtail/users/tests/test_admin_views.py +4 -0
  301. wagtail/users/views/users.py +1 -1
  302. {wagtail-7.1.2.dist-info → wagtail-7.2rc1.dist-info}/METADATA +7 -6
  303. {wagtail-7.1.2.dist-info → wagtail-7.2rc1.dist-info}/RECORD +309 -315
  304. wagtail/admin/templates/wagtailadmin/collection_privacy/set_privacy.html +0 -13
  305. wagtail/admin/templates/wagtailadmin/page_privacy/set_privacy.html +0 -13
  306. wagtail/search/tests/__init__.py +0 -0
  307. wagtail/search/tests/elasticsearch_common_tests.py +0 -251
  308. wagtail/search/tests/test_backends.py +0 -1215
  309. wagtail/search/tests/test_db_backend.py +0 -62
  310. wagtail/search/tests/test_elasticsearch7_backend.py +0 -1452
  311. wagtail/search/tests/test_elasticsearch8_backend.py +0 -15
  312. wagtail/search/tests/test_index_functions.py +0 -256
  313. wagtail/search/tests/test_indexed_class.py +0 -157
  314. wagtail/search/tests/test_mysql_backend.py +0 -192
  315. wagtail/search/tests/test_postgres_backend.py +0 -210
  316. wagtail/search/tests/test_queries.py +0 -332
  317. wagtail/search/tests/test_related_fields.py +0 -102
  318. wagtail/search/tests/test_sqlite_backend.py +0 -52
  319. wagtail/test/search/__init__.py +0 -0
  320. wagtail/test/search/apps.py +0 -9
  321. wagtail/test/search/fixtures/search.json +0 -545
  322. wagtail/test/search/migrations/0001_initial.py +0 -146
  323. wagtail/test/search/migrations/0002_bookunindexed.py +0 -43
  324. wagtail/test/search/migrations/0003_book_summary.py +0 -18
  325. wagtail/test/search/migrations/__init__.py +0 -0
  326. wagtail/test/search/models.py +0 -137
  327. /wagtail/admin/templates/wagtailadmin/{pages/listing/_ordering_cell.html → tables/ordering_cell.html} +0 -0
  328. /wagtail/{search/checks.py → checks.py} +0 -0
  329. {wagtail-7.1.2.dist-info → wagtail-7.2rc1.dist-info}/WHEEL +0 -0
  330. {wagtail-7.1.2.dist-info → wagtail-7.2rc1.dist-info}/entry_points.txt +0 -0
  331. {wagtail-7.1.2.dist-info → wagtail-7.2rc1.dist-info}/licenses/LICENSE +0 -0
  332. {wagtail-7.1.2.dist-info → wagtail-7.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 = (7, 1, 2, "final", 1)
9
+ VERSION = (7, 2, 0, "rc", 1)
10
10
 
11
11
  __version__ = get_version(VERSION)
12
12
 
@@ -104,7 +104,7 @@ class CopyPageAction:
104
104
 
105
105
  if not destination_perms.can_publish_subpage():
106
106
  raise CopyPagePermissionError(
107
- "You do not have permission to publish a page at the destination"
107
+ "You do not have permission to publish a page at the destination."
108
108
  )
109
109
 
110
110
  def _copy_page(
@@ -90,7 +90,7 @@ class CreatePageAliasAction:
90
90
  and not parent.permissions_for_user(self.user).can_publish_subpage()
91
91
  ):
92
92
  raise CreatePageAliasPermissionError(
93
- "You do not have permission to publish a page at the destination"
93
+ "You do not have permission to publish a page at the destination."
94
94
  )
95
95
 
96
96
  def _create_alias(
@@ -23,7 +23,7 @@ class DeletePageAction:
23
23
  and not self.page.permissions_for_user(self.user).can_delete()
24
24
  ):
25
25
  raise DeletePagePermissionError(
26
- "You do not have permission to delete this page"
26
+ "You do not have permission to delete this page."
27
27
  )
28
28
 
29
29
  def _delete_page(self, page, *args, **kwargs):
@@ -39,7 +39,7 @@ class PublishPageRevisionAction(PublishRevisionAction):
39
39
  and not self.object.permissions_for_user(self.user).can_publish()
40
40
  ):
41
41
  raise PublishPagePermissionError(
42
- "You do not have permission to publish this page"
42
+ "You do not have permission to publish this page."
43
43
  )
44
44
 
45
45
  def _after_publish(self):
@@ -64,7 +64,7 @@ class PublishRevisionAction:
64
64
  and not self.permission_policy.user_has_permission(self.user, "publish")
65
65
  ):
66
66
  raise PublishPermissionError(
67
- "You do not have permission to publish this object"
67
+ "You do not have permission to publish this object."
68
68
  )
69
69
 
70
70
  def log_scheduling_action(self):
@@ -49,7 +49,7 @@ class RevertToPageRevisionAction:
49
49
  and not self.page.permissions_for_user(self.user).can_edit()
50
50
  ):
51
51
  raise RevertToPageRevisionPermissionError(
52
- "You do not have permission to edit this page"
52
+ "You do not have permission to edit this page."
53
53
  )
54
54
 
55
55
  def execute(self, skip_permission_checks=False):
@@ -38,7 +38,7 @@ class UnpublishAction:
38
38
  and not self.object.permissions_for_user(self.user).can_unpublish()
39
39
  ):
40
40
  raise UnpublishPermissionError(
41
- "You do not have permission to unpublish this object"
41
+ "You do not have permission to unpublish this object."
42
42
  )
43
43
 
44
44
  def _commit_unpublish(self, object):
@@ -38,7 +38,7 @@ class UnpublishPageAction(UnpublishAction):
38
38
  super().check(skip_permission_checks)
39
39
  except UnpublishPermissionError as error:
40
40
  raise UnpublishPagePermissionError(
41
- "You do not have permission to unpublish this page"
41
+ "You do not have permission to unpublish this page."
42
42
  ) from error
43
43
 
44
44
  def _commit_unpublish(self, object):
wagtail/admin/auth.py CHANGED
@@ -143,7 +143,9 @@ def require_admin_access(view_func):
143
143
  return permission_denied(request)
144
144
 
145
145
  if not request.headers.get("x-requested-with") == "XMLHttpRequest":
146
- messages.error(request, _("You do not have permission to access the admin"))
146
+ messages.error(
147
+ request, _("You do not have permission to access the admin.")
148
+ )
147
149
 
148
150
  return reject_request(request)
149
151
 
wagtail/admin/checks.py CHANGED
@@ -192,10 +192,10 @@ def file_overwrite_check(app_configs, **kwargs):
192
192
  from django.conf import settings
193
193
 
194
194
  if DJANGO_VERSION >= (5, 1):
195
- file_storage = getattr(settings, "STORAGES")["default"]["BACKEND"]
195
+ file_storage = settings.STORAGES["default"]["BACKEND"]
196
196
  else:
197
197
  try:
198
- file_storage = getattr(settings, "STORAGES")["default"]["BACKEND"]
198
+ file_storage = settings.STORAGES["default"]["BACKEND"]
199
199
  except AttributeError:
200
200
  file_storage = getattr(settings, "DEFAULT_FILE_STORAGE", None)
201
201
 
wagtail/admin/filters.py CHANGED
@@ -18,7 +18,7 @@ class DateRangePickerWidget(SuffixedMultiWidget):
18
18
  A widget allowing a start and end date to be picked.
19
19
  """
20
20
 
21
- template_name = "wagtailadmin/widgets/daterange_input.html"
21
+ template_name = "wagtailadmin/widgets/range_input.html"
22
22
  suffixes = ["from", "to"]
23
23
 
24
24
  def __init__(self, attrs=None):
@@ -34,6 +34,27 @@ class DateRangePickerWidget(SuffixedMultiWidget):
34
34
  return [None, None]
35
35
 
36
36
 
37
+ class NumberRangeWidget(SuffixedMultiWidget):
38
+ """
39
+ A widget allowing a minimum and maximum usage count to be picked.
40
+ """
41
+
42
+ template_name = "wagtailadmin/widgets/range_input.html"
43
+ suffixes = ["min", "max"]
44
+
45
+ def __init__(self, attrs=None):
46
+ widgets = (
47
+ forms.NumberInput(attrs={"placeholder": _("Minimum"), "min": "0"}),
48
+ forms.NumberInput(attrs={"placeholder": _("Maximum"), "min": "0"}),
49
+ )
50
+ super().__init__(widgets, attrs)
51
+
52
+ def decompress(self, value):
53
+ if value:
54
+ return [value.start, value.stop]
55
+ return [None, None]
56
+
57
+
37
58
  class FilteredModelChoiceIterator(django_filters.fields.ModelChoiceIterator):
38
59
  """
39
60
  A variant of Django's ModelChoiceIterator that, instead of yielding (value, label) tuples,
@@ -248,6 +269,12 @@ class PopularTagsFilter(RelatedFilterMixin, django_filters.MultipleChoiceFilter)
248
269
  class BaseMediaFilterSet(WagtailFilterSet):
249
270
  permission_policy = None
250
271
 
272
+ usage_count = django_filters.RangeFilter(
273
+ field_name="usage_count",
274
+ label=_("Usage count"),
275
+ widget=NumberRangeWidget(),
276
+ )
277
+
251
278
  def __init__(
252
279
  self, data=None, queryset=None, *, request=None, prefix=None, is_searching=None
253
280
  ):
@@ -126,7 +126,7 @@ class CollectionForm(forms.ModelForm):
126
126
  )
127
127
  )
128
128
  if parent.pk in old_descendants:
129
- raise ValidationError(gettext_lazy("Please select another parent"))
129
+ raise ValidationError(gettext_lazy("Please select another parent."))
130
130
  return parent
131
131
 
132
132
 
@@ -67,7 +67,7 @@ class CommentForm(WagtailAdminModelForm):
67
67
 
68
68
  def save(self, *args, **kwargs):
69
69
  if self.cleaned_data.get("resolved", False):
70
- if not getattr(self.instance, "resolved_at"):
70
+ if not self.instance.resolved_at:
71
71
  self.instance.resolved_at = now()
72
72
  self.instance.resolved_by = self.for_user
73
73
  else:
@@ -201,7 +201,7 @@ class WagtailAdminDraftStateFormMixin:
201
201
  if expire_at and expire_at < timezone.now():
202
202
  self.add_error(
203
203
  "expire_at",
204
- forms.ValidationError(_("Expiry date/time must be in the future")),
204
+ forms.ValidationError(_("Expiry date/time must be in the future.")),
205
205
  )
206
206
 
207
207
  # Don't allow an existing first_published_at to be unset by clearing the field
@@ -214,7 +214,7 @@ class WagtailAdminPageForm(WagtailAdminModelForm):
214
214
  "slug",
215
215
  forms.ValidationError(
216
216
  _(
217
- "The slug '%(page_slug)s' is already in use within the parent page"
217
+ "The slug '%(page_slug)s' is already in use within the parent page."
218
218
  )
219
219
  % {"page_slug": page_slug}
220
220
  ),
@@ -19,7 +19,7 @@ def validate_tag_length(
19
19
  value_too_long += val
20
20
  if value_too_long:
21
21
  raise ValidationError(
22
- _("Tag(s) %(value_too_long)s are over %(max_tag_length)d characters")
22
+ _("Tag(s) %(value_too_long)s are over %(max_tag_length)d characters.")
23
23
  % {
24
24
  "value_too_long": value_too_long,
25
25
  "max_tag_length": max_tag_length,
@@ -8,6 +8,7 @@
8
8
  # IT Management <hudan@itmanagement.cz>, 2018,2020,2023
9
9
  # IT Management <hudan@itmanagement.cz>, 2020
10
10
  # Ivan Pomykacz <mist@alastify.cz>, 2015
11
+ # Jan Zelený <janzeleny@outlook.com>, 2025
11
12
  # Jiri Stepanek <stepiiicz@gmail.com>, 2015
12
13
  # Kryštof Pilnáček <krystof.pilnacek@rossum.ai>, 2022
13
14
  # Marek Turnovec <aesculap@gmail.com>, 2016,2020,2022
@@ -23,7 +24,7 @@ msgstr ""
23
24
  "Report-Msgid-Bugs-To: \n"
24
25
  "POT-Creation-Date: 2025-07-24 16:20+0200\n"
25
26
  "PO-Revision-Date: 2014-02-21 15:50+0000\n"
26
- "Last-Translator: Matt Westcott <matthew@torchbox.com>, 2018,2025\n"
27
+ "Last-Translator: Jan Zelený <janzeleny@outlook.com>, 2025\n"
27
28
  "Language-Team: Czech (http://app.transifex.com/torchbox/wagtail/language/"
28
29
  "cs/)\n"
29
30
  "MIME-Version: 1.0\n"
@@ -462,6 +463,10 @@ msgstr "Vložit externí odkaz"
462
463
  msgid "Add a phone link"
463
464
  msgstr "Vložit telefonní odkaz"
464
465
 
466
+ #, python-format
467
+ msgid "Select %(title)s"
468
+ msgstr "Vybrat %(title)s"
469
+
465
470
  #, python-format
466
471
  msgid "Explore subpages of '%(title)s'"
467
472
  msgstr "Prozkoumat podstránky '%(title)s'"
@@ -1064,6 +1069,9 @@ msgstr "Zpět"
1064
1069
  msgid "History"
1065
1070
  msgstr "Historie"
1066
1071
 
1072
+ msgid "Keyboard shortcuts"
1073
+ msgstr "Klávesové zkratky"
1074
+
1067
1075
  msgid "Current page status:"
1068
1076
  msgstr "Aktuální stav stránky:"
1069
1077
 
@@ -1168,6 +1176,9 @@ msgstr "Tato stránka zatím nebyla uložena k posouzení"
1168
1176
  msgid "Skip to main content"
1169
1177
  msgstr "Přeskočit na hlavní obsah"
1170
1178
 
1179
+ msgid "Warnings"
1180
+ msgstr "Varování"
1181
+
1171
1182
  msgid "Add a child page"
1172
1183
  msgstr "Přidat podstránku"
1173
1184
 
@@ -1327,12 +1338,21 @@ msgstr "před %(time_period)s"
1327
1338
  msgid "Log out"
1328
1339
  msgstr "Odhlásit"
1329
1340
 
1341
+ msgid "Cut"
1342
+ msgstr "Vyjmout"
1343
+
1344
+ msgid "Paste"
1345
+ msgstr "Vložit"
1346
+
1330
1347
  msgid "Undo"
1331
1348
  msgstr "Vrátit zpět"
1332
1349
 
1333
1350
  msgid "Redo"
1334
1351
  msgstr "Opakovat"
1335
1352
 
1353
+ msgid "Save changes"
1354
+ msgstr "Uložit změny"
1355
+
1336
1356
  msgid "Italic"
1337
1357
  msgstr "Šikmé"
1338
1358
 
@@ -1761,6 +1781,10 @@ msgstr "Kód"
1761
1781
  msgid "Reports"
1762
1782
  msgstr "Výkazy"
1763
1783
 
1784
+ #, python-format
1785
+ msgid "What's new in Wagtail %(version)s"
1786
+ msgstr "Co je nového ve Wagtail %(version)s"
1787
+
1764
1788
  msgid "Help"
1765
1789
  msgstr "Nápověda"
1766
1790