wagtail 6.4.1__py3-none-any.whl → 7.0rc1__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.
- wagtail/__init__.py +1 -1
- wagtail/actions/copy_page.py +4 -4
- wagtail/admin/action_menu.py +3 -0
- wagtail/admin/active_filters.py +218 -0
- wagtail/admin/auth.py +3 -39
- wagtail/admin/forms/choosers.py +8 -7
- wagtail/admin/forms/models.py +46 -1
- wagtail/admin/forms/pages.py +9 -0
- wagtail/admin/locale/ar/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/ar/LC_MESSAGES/django.po +30 -12
- wagtail/admin/locale/ar/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/ar/LC_MESSAGES/djangojs.po +5 -1
- wagtail/admin/locale/az_AZ/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/be/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/be/LC_MESSAGES/django.po +27 -13
- wagtail/admin/locale/be/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/be/LC_MESSAGES/djangojs.po +3 -0
- wagtail/admin/locale/bg/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/bg/LC_MESSAGES/django.po +3 -3
- wagtail/admin/locale/bn/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/ca/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/ca/LC_MESSAGES/django.po +30 -28
- wagtail/admin/locale/ca/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/ca/LC_MESSAGES/djangojs.po +3 -0
- wagtail/admin/locale/cs/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/cs/LC_MESSAGES/django.po +30 -19
- wagtail/admin/locale/cs/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/cs/LC_MESSAGES/djangojs.po +5 -2
- wagtail/admin/locale/cy/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/cy/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/cy/LC_MESSAGES/djangojs.po +3 -0
- wagtail/admin/locale/da/LC_MESSAGES/django.po +4 -4
- wagtail/admin/locale/de/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/de/LC_MESSAGES/django.po +33 -30
- wagtail/admin/locale/de/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/de/LC_MESSAGES/djangojs.po +5 -1
- wagtail/admin/locale/dv/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/dv/LC_MESSAGES/django.po +7 -18
- wagtail/admin/locale/dv/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/dv/LC_MESSAGES/djangojs.po +3 -0
- wagtail/admin/locale/el/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/el/LC_MESSAGES/django.po +9 -8
- wagtail/admin/locale/el/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/el/LC_MESSAGES/djangojs.po +5 -2
- wagtail/admin/locale/en/LC_MESSAGES/django.po +386 -319
- wagtail/admin/locale/en/LC_MESSAGES/djangojs.po +11 -7
- wagtail/admin/locale/es/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/es/LC_MESSAGES/django.po +32 -22
- wagtail/admin/locale/es/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/es/LC_MESSAGES/djangojs.po +5 -2
- wagtail/admin/locale/es_419/LC_MESSAGES/django.po +2 -1
- wagtail/admin/locale/es_VE/LC_MESSAGES/django.po +2 -1
- wagtail/admin/locale/et/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/et/LC_MESSAGES/django.po +30 -19
- wagtail/admin/locale/et/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/et/LC_MESSAGES/djangojs.po +3 -0
- wagtail/admin/locale/eu/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/fa/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/fa/LC_MESSAGES/django.po +10 -9
- wagtail/admin/locale/fa/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/fa/LC_MESSAGES/djangojs.po +5 -2
- wagtail/admin/locale/fi/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/fi/LC_MESSAGES/django.po +30 -21
- wagtail/admin/locale/fi/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/fi/LC_MESSAGES/djangojs.po +5 -2
- wagtail/admin/locale/fr/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/fr/LC_MESSAGES/django.po +80 -24
- wagtail/admin/locale/fr/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/fr/LC_MESSAGES/djangojs.po +3 -0
- wagtail/admin/locale/gl/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/gl/LC_MESSAGES/django.po +75 -22
- wagtail/admin/locale/gl/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/gl/LC_MESSAGES/djangojs.po +3 -0
- wagtail/admin/locale/he_IL/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/he_IL/LC_MESSAGES/django.po +5 -5
- wagtail/admin/locale/hr_HR/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/hr_HR/LC_MESSAGES/django.po +30 -19
- wagtail/admin/locale/hr_HR/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/hr_HR/LC_MESSAGES/djangojs.po +3 -0
- wagtail/admin/locale/ht/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/hu/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/hu/LC_MESSAGES/django.po +350 -25
- wagtail/admin/locale/hu/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/hu/LC_MESSAGES/djangojs.po +8 -0
- wagtail/admin/locale/id_ID/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/id_ID/LC_MESSAGES/django.po +11 -11
- wagtail/admin/locale/is_IS/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/is_IS/LC_MESSAGES/django.po +30 -29
- wagtail/admin/locale/is_IS/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/is_IS/LC_MESSAGES/djangojs.po +5 -2
- wagtail/admin/locale/it/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/it/LC_MESSAGES/django.po +30 -29
- wagtail/admin/locale/it/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/it/LC_MESSAGES/djangojs.po +5 -2
- wagtail/admin/locale/ja/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/ja/LC_MESSAGES/django.po +14 -15
- wagtail/admin/locale/ja/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/ja/LC_MESSAGES/djangojs.po +5 -2
- wagtail/admin/locale/ka/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/ko/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/ko/LC_MESSAGES/django.po +92 -19
- wagtail/admin/locale/ko/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/ko/LC_MESSAGES/djangojs.po +16 -0
- wagtail/admin/locale/lt/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/lt/LC_MESSAGES/django.po +30 -15
- wagtail/admin/locale/lt/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/lt/LC_MESSAGES/djangojs.po +3 -0
- wagtail/admin/locale/lv/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/lv/LC_MESSAGES/django.po +10 -9
- wagtail/admin/locale/lv/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/lv/LC_MESSAGES/djangojs.po +3 -0
- wagtail/admin/locale/mi/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/mi/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/mi/LC_MESSAGES/djangojs.po +3 -0
- wagtail/admin/locale/mn/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/mn/LC_MESSAGES/django.po +12 -11
- wagtail/admin/locale/my/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/nb/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/nb/LC_MESSAGES/django.po +31 -15
- wagtail/admin/locale/nb/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/nb/LC_MESSAGES/djangojs.po +5 -2
- wagtail/admin/locale/nl/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/nl/LC_MESSAGES/django.po +32 -29
- wagtail/admin/locale/nl/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/nl/LC_MESSAGES/djangojs.po +5 -2
- wagtail/admin/locale/pl/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/pl/LC_MESSAGES/django.po +30 -22
- wagtail/admin/locale/pl/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/pl/LC_MESSAGES/djangojs.po +3 -0
- wagtail/admin/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/pt_BR/LC_MESSAGES/django.po +33 -28
- wagtail/admin/locale/pt_BR/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/pt_BR/LC_MESSAGES/djangojs.po +3 -0
- wagtail/admin/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/pt_PT/LC_MESSAGES/django.po +31 -18
- wagtail/admin/locale/pt_PT/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/pt_PT/LC_MESSAGES/djangojs.po +5 -2
- wagtail/admin/locale/ro/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/ro/LC_MESSAGES/django.po +30 -28
- wagtail/admin/locale/ro/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/ro/LC_MESSAGES/djangojs.po +5 -2
- wagtail/admin/locale/ru/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/ru/LC_MESSAGES/django.po +34 -29
- wagtail/admin/locale/ru/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/ru/LC_MESSAGES/djangojs.po +5 -2
- wagtail/admin/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/sk_SK/LC_MESSAGES/django.po +6 -6
- wagtail/admin/locale/sk_SK/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/sk_SK/LC_MESSAGES/djangojs.po +3 -0
- wagtail/admin/locale/sl/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/sl/LC_MESSAGES/django.po +31 -27
- wagtail/admin/locale/sl/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/sl/LC_MESSAGES/djangojs.po +3 -0
- wagtail/admin/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/sv/LC_MESSAGES/django.po +30 -18
- wagtail/admin/locale/sv/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/sv/LC_MESSAGES/djangojs.po +5 -2
- wagtail/admin/locale/tet/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/tet/LC_MESSAGES/django.po +5 -5
- wagtail/admin/locale/tet/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/tet/LC_MESSAGES/djangojs.po +5 -2
- wagtail/admin/locale/th/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/th/LC_MESSAGES/django.po +10 -17
- wagtail/admin/locale/tr/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/tr/LC_MESSAGES/django.po +28 -13
- wagtail/admin/locale/tr/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/tr/LC_MESSAGES/djangojs.po +5 -2
- wagtail/admin/locale/tr_TR/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/tr_TR/LC_MESSAGES/django.po +28 -13
- wagtail/admin/locale/tr_TR/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/tr_TR/LC_MESSAGES/djangojs.po +5 -2
- wagtail/admin/locale/ug/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/ug/LC_MESSAGES/django.po +12 -29
- wagtail/admin/locale/ug/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/ug/LC_MESSAGES/djangojs.po +3 -0
- wagtail/admin/locale/uk/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/uk/LC_MESSAGES/django.po +30 -26
- wagtail/admin/locale/uk/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/uk/LC_MESSAGES/djangojs.po +6 -3
- wagtail/admin/locale/vi/LC_MESSAGES/django.po +2 -1
- wagtail/admin/locale/zh/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/zh/LC_MESSAGES/django.po +2 -2
- wagtail/admin/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/zh_Hans/LC_MESSAGES/django.po +33 -18
- wagtail/admin/locale/zh_Hans/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/zh_Hans/LC_MESSAGES/djangojs.po +5 -2
- wagtail/admin/locale/zh_Hant/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/zh_Hant/LC_MESSAGES/django.po +11 -14
- wagtail/admin/locale/zh_Hant/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/zh_Hant/LC_MESSAGES/djangojs.po +3 -0
- wagtail/admin/localization.py +42 -1
- wagtail/admin/menu.py +1 -10
- wagtail/admin/paginator.py +95 -0
- wagtail/admin/panels/field_panel.py +27 -6
- wagtail/admin/panels/inline_panel.py +28 -11
- wagtail/admin/panels/multiple_chooser_panel.py +3 -3
- wagtail/admin/rich_text/converters/html_to_contentstate.py +6 -6
- wagtail/admin/search.py +1 -10
- wagtail/admin/static/wagtailadmin/css/core.css +1 -1
- wagtail/admin/static/wagtailadmin/css/panels/draftail.css +1 -1
- wagtail/admin/static/wagtailadmin/js/bulk-actions.js +1 -1
- wagtail/admin/static/wagtailadmin/js/comments.js +1 -1
- wagtail/admin/static/wagtailadmin/js/core.js +1 -1
- wagtail/admin/static/wagtailadmin/js/draftail.js +1 -1
- wagtail/admin/static/wagtailadmin/js/sidebar.js +1 -1
- wagtail/admin/static/wagtailadmin/js/telepath/blocks.js +1 -1
- wagtail/admin/static/wagtailadmin/js/telepath/widgets.js +1 -1
- wagtail/admin/static/wagtailadmin/js/vendor.js +1 -1
- wagtail/admin/static/wagtailadmin/js/vendor.js.LICENSE.txt +32 -11
- wagtail/admin/static/wagtailadmin/js/workflow-action.js +1 -1
- wagtail/admin/templates/wagtailadmin/admin_base.html +1 -0
- wagtail/admin/templates/wagtailadmin/generic/index.html +7 -2
- wagtail/admin/templates/wagtailadmin/pages/_editor_js.html +2 -3
- wagtail/admin/templates/wagtailadmin/pages/action_menu/publish.html +2 -2
- wagtail/admin/templates/wagtailadmin/pages/bulk_actions/confirm_bulk_move.html +0 -1
- wagtail/admin/templates/wagtailadmin/pages/move_choose_destination.html +0 -1
- wagtail/admin/templates/wagtailadmin/panels/publishing/schedule_publishing_panel.html +1 -1
- wagtail/admin/templates/wagtailadmin/shared/active_filters.html +8 -1
- wagtail/admin/templates/wagtailadmin/shared/pagination_nav.html +25 -13
- wagtail/admin/templates/wagtailadmin/shared/side_panels/includes/status/privacy.html +1 -2
- wagtail/admin/templates/wagtailadmin/shared/side_panels/includes/status/workflow.html +1 -1
- wagtail/admin/templates/wagtailadmin/skeleton.html +2 -1
- wagtail/admin/templates/wagtailadmin/tables/locale_cell.html +4 -0
- wagtail/admin/templates/wagtailadmin/userbar/base.html +10 -8
- wagtail/admin/templatetags/wagtailadmin_tags.py +57 -132
- wagtail/admin/tests/pages/test_bulk_actions/test_bulk_move.py +31 -0
- wagtail/admin/tests/pages/test_create_page.py +627 -0
- wagtail/admin/tests/pages/test_edit_page.py +102 -18
- wagtail/admin/tests/pages/test_explorer_view.py +55 -26
- wagtail/admin/tests/pages/test_page_search.py +10 -0
- wagtail/admin/tests/pages/test_page_usage.py +2 -1
- wagtail/admin/tests/pages/test_preview.py +176 -36
- wagtail/admin/tests/pages/test_revisions.py +4 -7
- wagtail/admin/tests/test_account_management.py +1 -1
- wagtail/admin/tests/test_admin_search.py +1 -0
- wagtail/admin/tests/test_buttons_hooks.py +9 -145
- wagtail/admin/tests/test_collections_views.py +60 -0
- wagtail/admin/tests/test_contentstate.py +1 -1
- wagtail/admin/tests/test_dashboard.py +25 -0
- wagtail/admin/tests/test_edit_handlers.py +64 -0
- wagtail/admin/tests/test_forms.py +38 -0
- wagtail/admin/tests/test_keyboard_shortcuts.py +141 -5
- wagtail/admin/tests/test_page_chooser.py +2 -2
- wagtail/admin/tests/test_paginator.py +86 -0
- wagtail/admin/tests/test_privacy.py +12 -1
- wagtail/admin/tests/test_reports_views.py +8 -43
- wagtail/admin/tests/test_rich_text.py +14 -0
- wagtail/admin/tests/test_templatetags.py +50 -36
- wagtail/admin/tests/test_userbar.py +79 -15
- wagtail/admin/tests/test_views.py +16 -1
- wagtail/admin/tests/test_widgets.py +47 -8
- wagtail/admin/tests/test_workflows.py +119 -6
- wagtail/admin/tests/tests.py +16 -15
- wagtail/admin/tests/ui/test_sidebar.py +0 -27
- wagtail/admin/tests/viewsets/test_chooser_viewset.py +38 -4
- wagtail/admin/tests/viewsets/test_model_viewset.py +1 -37
- wagtail/admin/ui/side_panels.py +14 -16
- wagtail/admin/ui/sidebar.py +5 -37
- wagtail/admin/ui/tables/__init__.py +34 -2
- wagtail/admin/ui/tables/pages.py +9 -0
- wagtail/admin/urls/__init__.py +2 -2
- wagtail/admin/urls/pages.py +3 -1
- wagtail/admin/userbar.py +3 -5
- wagtail/admin/utils.py +43 -4
- wagtail/admin/views/generic/base.py +16 -115
- wagtail/admin/views/generic/chooser.py +25 -8
- wagtail/admin/views/generic/mixins.py +45 -11
- wagtail/admin/views/generic/models.py +15 -30
- wagtail/admin/views/generic/preview.py +9 -3
- wagtail/admin/views/generic/workflow.py +11 -1
- wagtail/admin/views/i18n.py +14 -0
- wagtail/admin/views/pages/bulk_actions/move.py +1 -1
- wagtail/admin/views/pages/create.py +68 -6
- wagtail/admin/views/pages/edit.py +33 -14
- wagtail/admin/views/pages/listing.py +3 -2
- wagtail/admin/views/pages/move.py +43 -29
- wagtail/admin/views/pages/preview.py +15 -2
- wagtail/admin/views/pages/search.py +3 -0
- wagtail/admin/views/reports/base.py +0 -22
- wagtail/admin/views/reports/page_types_usage.py +2 -1
- wagtail/admin/views/tags.py +3 -1
- wagtail/admin/views/workflows.py +0 -3
- wagtail/admin/viewsets/model.py +5 -48
- wagtail/admin/wagtail_hooks.py +16 -17
- wagtail/admin/widgets/button.py +3 -33
- wagtail/admin/widgets/tags.py +31 -3
- wagtail/api/v2/views.py +4 -4
- wagtail/blocks/base.py +18 -15
- wagtail/blocks/field_block.py +2 -1
- wagtail/blocks/stream_block.py +15 -11
- wagtail/compat.py +17 -1
- wagtail/contrib/forms/forms.py +10 -7
- wagtail/contrib/forms/locale/af/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/ar/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/az_AZ/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/be/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/bg/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/bn/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/ca/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/cs/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/forms/locale/cs/LC_MESSAGES/django.po +2 -2
- wagtail/contrib/forms/locale/cy/LC_MESSAGES/django.po +2 -1
- wagtail/contrib/forms/locale/da/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/de/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/forms/locale/de/LC_MESSAGES/django.po +3 -2
- wagtail/contrib/forms/locale/dv/LC_MESSAGES/django.po +2 -1
- wagtail/contrib/forms/locale/el/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/en/LC_MESSAGES/django.po +4 -4
- wagtail/contrib/forms/locale/es/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/es_419/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/et/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/eu/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/fa/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/fi/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/fr/LC_MESSAGES/django.po +2 -1
- wagtail/contrib/forms/locale/gl/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/he_IL/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/hr_HR/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/ht/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/hu/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/hy/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/id_ID/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/is_IS/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/it/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/ja/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/ka/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/ko/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/lt/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/lv/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/mi/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/mn/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/forms/locale/mn/LC_MESSAGES/django.po +3 -2
- wagtail/contrib/forms/locale/my/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/nb/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/nl/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/forms/locale/nl/LC_MESSAGES/django.po +2 -2
- wagtail/contrib/forms/locale/pl/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/forms/locale/pl/LC_MESSAGES/django.po +2 -2
- wagtail/contrib/forms/locale/pt_BR/LC_MESSAGES/django.po +2 -1
- wagtail/contrib/forms/locale/pt_PT/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/ro/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/forms/locale/ro/LC_MESSAGES/django.po +2 -2
- wagtail/contrib/forms/locale/ru/LC_MESSAGES/django.po +2 -1
- wagtail/contrib/forms/locale/sk_SK/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/sl/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/forms/locale/sl/LC_MESSAGES/django.po +2 -2
- wagtail/contrib/forms/locale/sv/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/tet/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/th/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/tr/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/tr_TR/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/ug/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/uk/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/vi/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/zh/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/forms/locale/zh_Hans/LC_MESSAGES/django.po +2 -2
- wagtail/contrib/forms/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/tests/test_forms.py +62 -0
- wagtail/contrib/frontend_cache/backends/cloudfront.py +1 -29
- wagtail/contrib/frontend_cache/tests.py +112 -52
- wagtail/contrib/frontend_cache/utils.py +109 -17
- wagtail/contrib/redirects/forms.py +3 -2
- wagtail/contrib/redirects/locale/ar/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/be/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/bg/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/bn/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/ca/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/redirects/locale/ca/LC_MESSAGES/django.po +2 -2
- wagtail/contrib/redirects/locale/cs/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/cy/LC_MESSAGES/django.po +2 -1
- wagtail/contrib/redirects/locale/da/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/de/LC_MESSAGES/django.po +2 -1
- wagtail/contrib/redirects/locale/dv/LC_MESSAGES/django.po +2 -1
- wagtail/contrib/redirects/locale/el/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/en/LC_MESSAGES/django.po +8 -8
- wagtail/contrib/redirects/locale/en_IN/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/es/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/es_419/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/es_VE/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/et/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/eu/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/fa/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/redirects/locale/fa/LC_MESSAGES/django.po +3 -2
- wagtail/contrib/redirects/locale/fi/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/redirects/locale/fi/LC_MESSAGES/django.po +2 -2
- wagtail/contrib/redirects/locale/fr/LC_MESSAGES/django.po +3 -1
- wagtail/contrib/redirects/locale/gl/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/he_IL/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/hi/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/hr_HR/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/ht/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/hu/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/hy/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/id_ID/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/is_IS/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/it/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/ja/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/ka/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/ko/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/redirects/locale/ko/LC_MESSAGES/django.po +18 -2
- wagtail/contrib/redirects/locale/lt/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/lv/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/mi/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/mn/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/my/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/nb/LC_MESSAGES/django.po +2 -1
- wagtail/contrib/redirects/locale/nl/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/redirects/locale/nl/LC_MESSAGES/django.po +2 -2
- wagtail/contrib/redirects/locale/pl/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/redirects/locale/pl/LC_MESSAGES/django.po +2 -2
- wagtail/contrib/redirects/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/redirects/locale/pt_BR/LC_MESSAGES/django.po +3 -2
- wagtail/contrib/redirects/locale/pt_PT/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/ro/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/redirects/locale/ro/LC_MESSAGES/django.po +3 -2
- wagtail/contrib/redirects/locale/ru/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/redirects/locale/ru/LC_MESSAGES/django.po +3 -2
- wagtail/contrib/redirects/locale/sk_SK/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/sl/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/redirects/locale/sl/LC_MESSAGES/django.po +2 -2
- wagtail/contrib/redirects/locale/sr/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/redirects/locale/sv/LC_MESSAGES/django.po +2 -2
- wagtail/contrib/redirects/locale/ta/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/tet/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/th/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/tr/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/tr_TR/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/ug/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/uk/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/redirects/locale/uk/LC_MESSAGES/django.po +3 -2
- wagtail/contrib/redirects/locale/vi/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/zh/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/redirects/locale/zh_Hans/LC_MESSAGES/django.po +2 -2
- wagtail/contrib/redirects/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/tmp_storages.py +1 -0
- wagtail/contrib/routable_page/tests.py +3 -3
- wagtail/contrib/search_promotions/forms.py +3 -2
- wagtail/contrib/search_promotions/locale/af/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/ar/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/ar/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/az_AZ/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/be/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/be/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/bg/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/bg/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/bn/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/ca/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/ca/LC_MESSAGES/django.po +3 -6
- wagtail/contrib/search_promotions/locale/cs/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/cs/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/cy/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/cy/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/da/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/de/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/de/LC_MESSAGES/django.po +3 -6
- wagtail/contrib/search_promotions/locale/dv/LC_MESSAGES/django.po +2 -1
- wagtail/contrib/search_promotions/locale/el/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/el/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/en/LC_MESSAGES/django.po +19 -23
- wagtail/contrib/search_promotions/locale/es/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/es/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/es_419/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/et/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/et/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/eu/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/fa/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/fa/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/fi/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/fi/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/fr/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/fr/LC_MESSAGES/django.po +3 -6
- wagtail/contrib/search_promotions/locale/gl/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/gl/LC_MESSAGES/django.po +3 -6
- wagtail/contrib/search_promotions/locale/he_IL/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/hr_HR/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/hr_HR/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/ht/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/ht/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/hu/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/hu/LC_MESSAGES/django.po +11 -5
- wagtail/contrib/search_promotions/locale/id_ID/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/id_ID/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/is_IS/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/is_IS/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/it/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/it/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/ja/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/ja/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/ka/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/ko/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/ko/LC_MESSAGES/django.po +5 -4
- wagtail/contrib/search_promotions/locale/lt/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/lt/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/lv/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/lv/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/mi/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/mi/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/mn/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/mn/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/my/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/my/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/nb/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/nb/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/nl/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/nl/LC_MESSAGES/django.po +3 -6
- wagtail/contrib/search_promotions/locale/pl/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/pl/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/pt_BR/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/pt_PT/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/ro/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/ro/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/ru/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/ru/LC_MESSAGES/django.po +3 -6
- wagtail/contrib/search_promotions/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/sk_SK/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/sl/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/sl/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/sv/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/tet/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/tet/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/th/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/th/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/tr/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/tr/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/tr_TR/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/tr_TR/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/ug/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/ug/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/uk/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/uk/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/vi/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/vi/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/zh/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/zh/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/zh_Hans/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/locale/zh_Hant/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/zh_Hant/LC_MESSAGES/django.po +1 -4
- wagtail/contrib/search_promotions/models.py +1 -7
- wagtail/contrib/search_promotions/templates/wagtailsearchpromotions/queries/chooser/results.html +1 -1
- wagtail/contrib/search_promotions/tests.py +4 -5
- wagtail/contrib/search_promotions/views/settings.py +1 -2
- wagtail/contrib/settings/locale/en/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/registry.py +1 -11
- wagtail/contrib/simple_translation/locale/en/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/simple_translation/locale/hu/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/simple_translation/locale/hu/LC_MESSAGES/django.po +5 -2
- wagtail/contrib/styleguide/locale/af/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/ar/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/az_AZ/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/be/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/styleguide/locale/be/LC_MESSAGES/django.po +3 -2
- wagtail/contrib/styleguide/locale/bg/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/bn/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/ca/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/cs/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/cy/LC_MESSAGES/django.po +2 -1
- wagtail/contrib/styleguide/locale/da/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/de/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/dv/LC_MESSAGES/django.po +2 -1
- wagtail/contrib/styleguide/locale/el/LC_MESSAGES/django.po +2 -1
- wagtail/contrib/styleguide/locale/en/LC_MESSAGES/django.po +7 -7
- wagtail/contrib/styleguide/locale/en_IN/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/es/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/es_419/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/es_VE/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/et/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/fa/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/fi/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/fr/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/gl/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/he_IL/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/hi/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/hr_HR/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/ht/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/hu/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/id_ID/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/is_IS/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/it/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/ja/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/ka/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/ko/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/lt/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/lv/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/mi/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/mn/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/my/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/nb/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/nl/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/pl/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/pt_BR/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/pt_PT/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/ro/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/ru/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/styleguide/locale/sk_SK/LC_MESSAGES/django.po +2 -2
- wagtail/contrib/styleguide/locale/sl/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/sv/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/ta/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/tet/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/th/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/tr/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/tr_TR/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/ug/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/uk/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/vi/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/zh/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/views.py +2 -1
- wagtail/contrib/table_block/locale/en/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/blocks.py +5 -0
- wagtail/contrib/typed_table_block/locale/ar/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/be/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/ca/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/cy/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/de/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/dv/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/el/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/en/LC_MESSAGES/django.po +10 -10
- wagtail/contrib/typed_table_block/locale/es/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/fa/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/fi/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/fr/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/gl/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/hu/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/is_IS/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/it/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/ko/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/lt/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/nl/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/pl/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/pt_BR/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/pt_PT/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/ro/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/ru/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/sl/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/sv/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/th/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/ug/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/uk/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/zh/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/tests.py +27 -0
- wagtail/coreutils.py +0 -19
- wagtail/documents/locale/af/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/ar/LC_MESSAGES/django.mo +0 -0
- wagtail/documents/locale/ar/LC_MESSAGES/django.po +3 -2
- wagtail/documents/locale/az_AZ/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/be/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/bg/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/bn/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/ca/LC_MESSAGES/django.mo +0 -0
- wagtail/documents/locale/ca/LC_MESSAGES/django.po +2 -2
- wagtail/documents/locale/cs/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/cy/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/da/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/de/LC_MESSAGES/django.mo +0 -0
- wagtail/documents/locale/de/LC_MESSAGES/django.po +3 -3
- wagtail/documents/locale/dv/LC_MESSAGES/django.po +2 -1
- wagtail/documents/locale/el/LC_MESSAGES/django.po +2 -1
- wagtail/documents/locale/en/LC_MESSAGES/django.po +4 -4
- wagtail/documents/locale/es/LC_MESSAGES/django.mo +0 -0
- wagtail/documents/locale/es/LC_MESSAGES/django.po +3 -2
- wagtail/documents/locale/es_419/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/et/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/eu/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/fa/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/fi/LC_MESSAGES/django.mo +0 -0
- wagtail/documents/locale/fi/LC_MESSAGES/django.po +2 -2
- wagtail/documents/locale/fr/LC_MESSAGES/django.po +2 -1
- wagtail/documents/locale/gl/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/he_IL/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/hr_HR/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/ht/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/hu/LC_MESSAGES/django.mo +0 -0
- wagtail/documents/locale/hu/LC_MESSAGES/django.po +18 -3
- wagtail/documents/locale/id_ID/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/is_IS/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/it/LC_MESSAGES/django.mo +0 -0
- wagtail/documents/locale/it/LC_MESSAGES/django.po +2 -2
- wagtail/documents/locale/ja/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/ka/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/ko/LC_MESSAGES/django.mo +0 -0
- wagtail/documents/locale/ko/LC_MESSAGES/django.po +14 -2
- wagtail/documents/locale/lt/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/lv/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/mi/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/mn/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/my/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/nb/LC_MESSAGES/django.mo +0 -0
- wagtail/documents/locale/nb/LC_MESSAGES/django.po +3 -2
- wagtail/documents/locale/nl/LC_MESSAGES/django.mo +0 -0
- wagtail/documents/locale/nl/LC_MESSAGES/django.po +2 -2
- wagtail/documents/locale/pl/LC_MESSAGES/django.mo +0 -0
- wagtail/documents/locale/pl/LC_MESSAGES/django.po +2 -2
- wagtail/documents/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
- wagtail/documents/locale/pt_BR/LC_MESSAGES/django.po +2 -2
- wagtail/documents/locale/pt_PT/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/ro/LC_MESSAGES/django.mo +0 -0
- wagtail/documents/locale/ro/LC_MESSAGES/django.po +2 -2
- wagtail/documents/locale/ru/LC_MESSAGES/django.mo +0 -0
- wagtail/documents/locale/ru/LC_MESSAGES/django.po +5 -2
- wagtail/documents/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
- wagtail/documents/locale/sk_SK/LC_MESSAGES/django.po +2 -2
- wagtail/documents/locale/sl/LC_MESSAGES/django.mo +0 -0
- wagtail/documents/locale/sl/LC_MESSAGES/django.po +2 -2
- wagtail/documents/locale/sv/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/tet/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/th/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/tr/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/tr_TR/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/ug/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/uk/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/vi/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/zh/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
- wagtail/documents/locale/zh_Hans/LC_MESSAGES/django.po +3 -2
- wagtail/documents/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
- wagtail/documents/rich_text/contentstate.py +1 -0
- wagtail/documents/rich_text/editor_html.py +1 -0
- wagtail/documents/tests/test_collection_privacy.py +1 -1
- wagtail/documents/tests/test_serializers.py +0 -1
- wagtail/documents/views/serve.py +0 -15
- wagtail/documents/wagtail_hooks.py +2 -17
- wagtail/embeds/locale/en/LC_MESSAGES/django.po +1 -1
- wagtail/embeds/rich_text/contentstate.py +1 -0
- wagtail/embeds/rich_text/editor_html.py +1 -0
- wagtail/embeds/wagtail_hooks.py +1 -1
- wagtail/images/formats.py +0 -11
- wagtail/images/locale/ar/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/az_AZ/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/be/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/bg/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/bn/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/ca/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/ca/LC_MESSAGES/django.po +2 -2
- wagtail/images/locale/cs/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/cs/LC_MESSAGES/django.po +3 -2
- wagtail/images/locale/cy/LC_MESSAGES/django.po +2 -1
- wagtail/images/locale/da/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/de/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/de/LC_MESSAGES/django.po +3 -2
- wagtail/images/locale/dv/LC_MESSAGES/django.po +2 -1
- wagtail/images/locale/el/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/en/LC_MESSAGES/django.po +4 -4
- wagtail/images/locale/es/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/es_419/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/et/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/eu/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/fa/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/fa/LC_MESSAGES/django.po +3 -2
- wagtail/images/locale/fi/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/fi/LC_MESSAGES/django.po +2 -2
- wagtail/images/locale/fr/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/fr/LC_MESSAGES/django.po +3 -2
- wagtail/images/locale/gl/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/gl/LC_MESSAGES/django.po +2 -2
- wagtail/images/locale/he_IL/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/hr_HR/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/ht/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/hu/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/hu/LC_MESSAGES/django.po +23 -3
- wagtail/images/locale/id_ID/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/is_IS/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/it/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/it/LC_MESSAGES/django.po +2 -2
- wagtail/images/locale/ja/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/ka/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/ko/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/ko/LC_MESSAGES/django.po +31 -2
- wagtail/images/locale/lt/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/lv/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/mi/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/mn/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/mn/LC_MESSAGES/django.po +3 -2
- wagtail/images/locale/my/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/nb/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/nb/LC_MESSAGES/django.po +3 -2
- wagtail/images/locale/nl/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/nl/LC_MESSAGES/django.po +4 -5
- wagtail/images/locale/pl/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/pl/LC_MESSAGES/django.po +2 -2
- wagtail/images/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/pt_BR/LC_MESSAGES/django.po +2 -2
- wagtail/images/locale/pt_PT/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/ro/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/ro/LC_MESSAGES/django.po +3 -2
- wagtail/images/locale/ru/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/ru/LC_MESSAGES/django.po +5 -2
- wagtail/images/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/sk_SK/LC_MESSAGES/django.po +2 -2
- wagtail/images/locale/sl/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/sl/LC_MESSAGES/django.po +2 -2
- wagtail/images/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/sv/LC_MESSAGES/django.po +2 -2
- wagtail/images/locale/tet/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/th/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/tr/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/tr_TR/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/ug/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/uk/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/uk/LC_MESSAGES/django.po +5 -4
- wagtail/images/locale/vi/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/zh/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/zh_Hans/LC_MESSAGES/django.po +2 -1
- wagtail/images/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
- wagtail/images/management/commands/wagtail_update_image_renditions.py +1 -1
- wagtail/images/models.py +23 -7
- wagtail/images/tests/test_admin_views.py +1 -1
- wagtail/images/tests/test_models.py +33 -0
- wagtail/images/tests/tests.py +0 -6
- wagtail/images/wagtail_hooks.py +2 -2
- wagtail/locale/af/LC_MESSAGES/django.po +1 -1
- wagtail/locale/ar/LC_MESSAGES/django.po +50 -50
- wagtail/locale/az_AZ/LC_MESSAGES/django.po +1 -1
- wagtail/locale/be/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/be/LC_MESSAGES/django.po +52 -51
- wagtail/locale/bg/LC_MESSAGES/django.po +4 -4
- wagtail/locale/bn/LC_MESSAGES/django.po +1 -1
- wagtail/locale/ca/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/ca/LC_MESSAGES/django.po +234 -234
- wagtail/locale/cs/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/cs/LC_MESSAGES/django.po +172 -172
- wagtail/locale/cy/LC_MESSAGES/django.po +12 -12
- wagtail/locale/da/LC_MESSAGES/django.po +7 -7
- wagtail/locale/de/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/de/LC_MESSAGES/django.po +237 -236
- wagtail/locale/dv/LC_MESSAGES/django.po +216 -215
- wagtail/locale/el/LC_MESSAGES/django.po +76 -75
- wagtail/locale/en/LC_MESSAGES/django.po +339 -339
- wagtail/locale/es/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/es/LC_MESSAGES/django.po +192 -192
- wagtail/locale/es_419/LC_MESSAGES/django.po +1 -1
- wagtail/locale/et/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/et/LC_MESSAGES/django.po +173 -173
- wagtail/locale/eu/LC_MESSAGES/django.po +1 -1
- wagtail/locale/fa/LC_MESSAGES/django.po +50 -50
- wagtail/locale/fi/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/fi/LC_MESSAGES/django.po +187 -187
- wagtail/locale/fr/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/fr/LC_MESSAGES/django.po +236 -235
- wagtail/locale/gl/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/gl/LC_MESSAGES/django.po +235 -235
- wagtail/locale/he_IL/LC_MESSAGES/django.po +9 -9
- wagtail/locale/hr_HR/LC_MESSAGES/django.po +184 -184
- wagtail/locale/hu/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/hu/LC_MESSAGES/django.po +251 -229
- wagtail/locale/id_ID/LC_MESSAGES/django.po +49 -49
- wagtail/locale/is_IS/LC_MESSAGES/django.po +232 -232
- wagtail/locale/it/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/it/LC_MESSAGES/django.po +224 -224
- wagtail/locale/ja/LC_MESSAGES/django.po +110 -110
- wagtail/locale/ka/LC_MESSAGES/django.po +4 -4
- wagtail/locale/ko/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/ko/LC_MESSAGES/django.po +88 -53
- wagtail/locale/lt/LC_MESSAGES/django.po +53 -53
- wagtail/locale/lv/LC_MESSAGES/django.po +22 -22
- wagtail/locale/mi/LC_MESSAGES/django.po +167 -167
- wagtail/locale/mn/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/mn/LC_MESSAGES/django.po +51 -50
- wagtail/locale/my/LC_MESSAGES/django.po +6 -6
- wagtail/locale/nb/LC_MESSAGES/django.po +50 -50
- wagtail/locale/nl/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/nl/LC_MESSAGES/django.po +233 -233
- wagtail/locale/pl/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/pl/LC_MESSAGES/django.po +232 -232
- wagtail/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/pt_BR/LC_MESSAGES/django.po +202 -202
- wagtail/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/pt_PT/LC_MESSAGES/django.po +180 -178
- wagtail/locale/ro/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/ro/LC_MESSAGES/django.po +233 -232
- wagtail/locale/ru/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/ru/LC_MESSAGES/django.po +237 -234
- wagtail/locale/sk_SK/LC_MESSAGES/django.po +47 -47
- wagtail/locale/sl/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/sl/LC_MESSAGES/django.po +233 -233
- wagtail/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/sv/LC_MESSAGES/django.po +207 -207
- wagtail/locale/tet/LC_MESSAGES/django.po +37 -37
- wagtail/locale/th/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/th/LC_MESSAGES/django.po +54 -53
- wagtail/locale/tr/LC_MESSAGES/django.po +50 -50
- wagtail/locale/tr_TR/LC_MESSAGES/django.po +50 -50
- wagtail/locale/ug/LC_MESSAGES/django.po +232 -232
- wagtail/locale/uk/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/uk/LC_MESSAGES/django.po +185 -185
- wagtail/locale/vi/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/vi/LC_MESSAGES/django.po +20 -19
- wagtail/locale/zh/LC_MESSAGES/django.po +4 -4
- wagtail/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/zh_Hans/LC_MESSAGES/django.po +189 -189
- wagtail/locale/zh_Hant/LC_MESSAGES/django.po +161 -161
- wagtail/locales/locale/ar/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/be/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/bg/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/ca/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/cs/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/cy/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/da/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/de/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/dv/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/el/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/en/LC_MESSAGES/django.po +26 -14
- wagtail/locales/locale/es/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/et/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/fa/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/fi/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/fr/LC_MESSAGES/django.mo +0 -0
- wagtail/locales/locale/fr/LC_MESSAGES/django.po +14 -2
- wagtail/locales/locale/gl/LC_MESSAGES/django.mo +0 -0
- wagtail/locales/locale/gl/LC_MESSAGES/django.po +13 -3
- wagtail/locales/locale/he_IL/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/hr_HR/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/hu/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/id_ID/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/is_IS/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/it/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/ja/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/ko/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/lt/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/lv/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/mi/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/mn/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/my/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/nb/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/nl/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/pl/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/pt_BR/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/pt_PT/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/ro/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/ru/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/sk_SK/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/sl/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/sv/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/tet/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/th/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/tr/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/tr_TR/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/ug/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/uk/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/vi/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/zh/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
- wagtail/locales/tests.py +32 -1
- wagtail/locales/views.py +39 -7
- wagtail/models/__init__.py +67 -5002
- wagtail/models/audit_log.py +1 -1
- wagtail/models/content_types.py +11 -0
- wagtail/models/draft_state.py +197 -0
- wagtail/models/locking.py +82 -0
- wagtail/models/orderable.py +10 -0
- wagtail/models/pages.py +2754 -0
- wagtail/models/preview.py +281 -0
- wagtail/models/reference_index.py +1 -1
- wagtail/models/revisions.py +433 -0
- wagtail/models/view_restrictions.py +3 -3
- wagtail/models/workflows.py +1348 -0
- wagtail/project_template/home/apps.py +6 -0
- wagtail/project_template/manage.py-tpl +22 -0
- wagtail/project_template/project_name/settings/base.py +1 -0
- wagtail/project_template/requirements.txt +2 -2
- wagtail/search/backends/base.py +4 -0
- wagtail/search/backends/database/mysql/query.py +8 -4
- wagtail/search/backends/elasticsearch7.py +17 -7
- wagtail/search/locale/en/LC_MESSAGES/django.po +1 -1
- wagtail/search/tests/elasticsearch_common_tests.py +43 -0
- wagtail/search/tests/test_backends.py +43 -13
- wagtail/search/tests/test_mysql_backend.py +22 -0
- wagtail/search/tests/test_page_search.py +2 -1
- wagtail/search/tests/test_queries.py +2 -2
- wagtail/sites/locale/en/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/action_menu.py +9 -30
- wagtail/snippets/locale/af/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/ar/LC_MESSAGES/django.po +4 -4
- wagtail/snippets/locale/az_AZ/LC_MESSAGES/django.po +4 -4
- wagtail/snippets/locale/be/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/be/LC_MESSAGES/django.po +6 -5
- wagtail/snippets/locale/bg/LC_MESSAGES/django.po +4 -4
- wagtail/snippets/locale/bn/LC_MESSAGES/django.po +4 -4
- wagtail/snippets/locale/ca/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/ca/LC_MESSAGES/django.po +5 -5
- wagtail/snippets/locale/cs/LC_MESSAGES/django.po +5 -4
- wagtail/snippets/locale/cy/LC_MESSAGES/django.po +5 -4
- wagtail/snippets/locale/da/LC_MESSAGES/django.po +4 -4
- wagtail/snippets/locale/de/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/de/LC_MESSAGES/django.po +6 -5
- wagtail/snippets/locale/dv/LC_MESSAGES/django.po +5 -4
- wagtail/snippets/locale/el/LC_MESSAGES/django.po +5 -4
- wagtail/snippets/locale/en/LC_MESSAGES/django.po +31 -23
- wagtail/snippets/locale/en_IN/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/es/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/es/LC_MESSAGES/django.po +6 -5
- wagtail/snippets/locale/es_419/LC_MESSAGES/django.po +4 -4
- wagtail/snippets/locale/es_VE/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/et/LC_MESSAGES/django.po +4 -4
- wagtail/snippets/locale/eu/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/fa/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/fa/LC_MESSAGES/django.po +6 -5
- wagtail/snippets/locale/fi/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/fi/LC_MESSAGES/django.po +6 -5
- wagtail/snippets/locale/fr/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/fr/LC_MESSAGES/django.po +13 -6
- wagtail/snippets/locale/gl/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/gl/LC_MESSAGES/django.po +11 -5
- wagtail/snippets/locale/he_IL/LC_MESSAGES/django.po +4 -4
- wagtail/snippets/locale/hi/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/hr_HR/LC_MESSAGES/django.po +4 -4
- wagtail/snippets/locale/ht/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/hu/LC_MESSAGES/django.po +4 -4
- wagtail/snippets/locale/id_ID/LC_MESSAGES/django.po +4 -4
- wagtail/snippets/locale/is_IS/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/is_IS/LC_MESSAGES/django.po +5 -6
- wagtail/snippets/locale/it/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/it/LC_MESSAGES/django.po +5 -5
- wagtail/snippets/locale/ja/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/ja/LC_MESSAGES/django.po +6 -5
- wagtail/snippets/locale/ka/LC_MESSAGES/django.po +4 -4
- wagtail/snippets/locale/ko/LC_MESSAGES/django.po +4 -4
- wagtail/snippets/locale/lt/LC_MESSAGES/django.po +4 -4
- wagtail/snippets/locale/lv/LC_MESSAGES/django.po +4 -4
- wagtail/snippets/locale/mi/LC_MESSAGES/django.po +4 -4
- wagtail/snippets/locale/mn/LC_MESSAGES/django.po +4 -4
- wagtail/snippets/locale/my/LC_MESSAGES/django.po +4 -4
- wagtail/snippets/locale/nb/LC_MESSAGES/django.po +5 -4
- wagtail/snippets/locale/nl/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/nl/LC_MESSAGES/django.po +5 -5
- wagtail/snippets/locale/pl/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/pl/LC_MESSAGES/django.po +5 -5
- wagtail/snippets/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/pt_BR/LC_MESSAGES/django.po +7 -5
- wagtail/snippets/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/pt_PT/LC_MESSAGES/django.po +7 -5
- wagtail/snippets/locale/ro/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/ro/LC_MESSAGES/django.po +6 -5
- wagtail/snippets/locale/ru/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/ru/LC_MESSAGES/django.po +6 -5
- wagtail/snippets/locale/sk_SK/LC_MESSAGES/django.po +4 -4
- wagtail/snippets/locale/sl/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/sl/LC_MESSAGES/django.po +5 -5
- wagtail/snippets/locale/sr/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/sv/LC_MESSAGES/django.po +5 -5
- wagtail/snippets/locale/ta/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/tet/LC_MESSAGES/django.po +4 -4
- wagtail/snippets/locale/th/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/th/LC_MESSAGES/django.po +6 -5
- wagtail/snippets/locale/tr/LC_MESSAGES/django.po +4 -4
- wagtail/snippets/locale/tr_TR/LC_MESSAGES/django.po +4 -4
- wagtail/snippets/locale/ug/LC_MESSAGES/django.po +4 -4
- wagtail/snippets/locale/uk/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/uk/LC_MESSAGES/django.po +6 -6
- wagtail/snippets/locale/vi/LC_MESSAGES/django.po +4 -4
- wagtail/snippets/locale/zh/LC_MESSAGES/django.po +4 -4
- wagtail/snippets/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/zh_Hans/LC_MESSAGES/django.po +6 -5
- wagtail/snippets/locale/zh_Hant/LC_MESSAGES/django.po +4 -4
- wagtail/snippets/permissions.py +6 -4
- wagtail/snippets/static/wagtailsnippets/js/snippet-chooser-telepath.js +1 -1
- wagtail/snippets/static/wagtailsnippets/js/snippet-chooser.js +1 -1
- wagtail/snippets/templates/wagtailsnippets/snippets/action_menu/publish.html +3 -5
- wagtail/snippets/tests/test_preview.py +62 -38
- wagtail/snippets/tests/test_snippets.py +313 -130
- wagtail/snippets/tests/test_viewset.py +69 -6
- wagtail/snippets/tests/test_workflows.py +0 -4
- wagtail/snippets/views/snippets.py +29 -53
- wagtail/snippets/wagtail_hooks.py +3 -7
- wagtail/test/apps.py +5 -0
- wagtail/test/context_processors.py +19 -0
- wagtail/test/customuser/forms.py +19 -0
- wagtail/test/customuser/viewsets.py +12 -0
- wagtail/test/settings.py +8 -9
- wagtail/test/testapp/migrations/0046_alter_custom_rendition_to_unique_constraint.py +24 -0
- wagtail/test/testapp/migrations/{0046_advertwithcustomuuidprimarykey_page.py → 0047_advertwithcustomuuidprimarykey_page.py} +1 -1
- wagtail/test/testapp/migrations/0048_requireddatepage.py +36 -0
- wagtail/test/testapp/migrations/0049_promotionalpage.py +35 -0
- wagtail/test/testapp/migrations/0050_headcountrelatedmodelusingpk_related_page.py +25 -0
- wagtail/test/testapp/migrations/0051_userapprovaltaskstate_userapprovaltask.py +59 -0
- wagtail/test/testapp/models.py +183 -26
- wagtail/test/testapp/templates/tests/workflows/approve_with_style.html +6 -0
- wagtail/test/testapp/views.py +7 -1
- wagtail/test/testapp/wagtail_hooks.py +6 -0
- wagtail/test/utils/form_data.py +1 -0
- wagtail/tests/test_blocks.py +0 -18
- wagtail/tests/test_management_commands.py +1 -1
- wagtail/tests/test_page_model.py +27 -0
- wagtail/tests/test_page_privacy.py +1 -1
- wagtail/tests/test_reference_index.py +26 -0
- wagtail/tests/test_streamfield.py +136 -0
- wagtail/tests/test_utils.py +1 -23
- wagtail/users/forms.py +3 -17
- wagtail/users/locale/ar/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/be/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/be/LC_MESSAGES/django.po +3 -2
- wagtail/users/locale/bg/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/bn/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/ca/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/ca/LC_MESSAGES/django.po +2 -2
- wagtail/users/locale/cs/LC_MESSAGES/django.po +2 -1
- wagtail/users/locale/cy/LC_MESSAGES/django.po +2 -1
- wagtail/users/locale/da/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/de/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/de/LC_MESSAGES/django.po +3 -3
- wagtail/users/locale/dv/LC_MESSAGES/django.po +2 -1
- wagtail/users/locale/el/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/en/LC_MESSAGES/django.po +71 -71
- wagtail/users/locale/es/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/es_419/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/et/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/eu/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/fa/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/fa/LC_MESSAGES/django.po +3 -2
- wagtail/users/locale/fi/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/fi/LC_MESSAGES/django.po +2 -2
- wagtail/users/locale/fr/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/fr/LC_MESSAGES/django.po +4 -2
- wagtail/users/locale/gl/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/gl/LC_MESSAGES/django.po +2 -2
- wagtail/users/locale/he_IL/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/hr_HR/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/hr_HR/LC_MESSAGES/django.po +2 -2
- wagtail/users/locale/hu/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/hu/LC_MESSAGES/django.po +45 -3
- wagtail/users/locale/hy/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/id_ID/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/is_IS/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/it/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/it/LC_MESSAGES/django.po +2 -2
- wagtail/users/locale/ja/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/ka/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/ko/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/ko/LC_MESSAGES/django.po +47 -2
- wagtail/users/locale/lt/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/lv/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/mi/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/mn/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/mn/LC_MESSAGES/django.po +3 -2
- wagtail/users/locale/my/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/nb/LC_MESSAGES/django.po +2 -1
- wagtail/users/locale/nl/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/nl/LC_MESSAGES/django.po +3 -2
- wagtail/users/locale/pl/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/pl/LC_MESSAGES/django.po +2 -2
- wagtail/users/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/pt_BR/LC_MESSAGES/django.po +3 -2
- wagtail/users/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/pt_PT/LC_MESSAGES/django.po +3 -2
- wagtail/users/locale/ro/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/ro/LC_MESSAGES/django.po +3 -2
- wagtail/users/locale/ru/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/ru/LC_MESSAGES/django.po +4 -2
- wagtail/users/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/sk_SK/LC_MESSAGES/django.po +2 -2
- wagtail/users/locale/sl/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/sl/LC_MESSAGES/django.po +2 -2
- wagtail/users/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/sv/LC_MESSAGES/django.po +2 -2
- wagtail/users/locale/tet/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/th/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/th/LC_MESSAGES/django.po +3 -2
- wagtail/users/locale/tr/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/tr_TR/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/ug/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/uk/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/uk/LC_MESSAGES/django.po +3 -2
- wagtail/users/locale/vi/LC_MESSAGES/django.po +2 -1
- wagtail/users/locale/zh/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/zh_Hans/LC_MESSAGES/django.po +3 -2
- wagtail/users/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
- wagtail/users/models.py +7 -1
- wagtail/users/templatetags/wagtailusers_tags.py +0 -29
- wagtail/users/tests/__init__.py +0 -6
- wagtail/users/tests/test_admin_views.py +285 -611
- wagtail/users/views/groups.py +1 -28
- wagtail/users/views/users.py +3 -45
- wagtail/utils/deprecation.py +3 -3
- wagtail/whitelist.py +1 -0
- wagtail/workflows.py +2 -2
- wagtail-7.0rc1.dist-info/METADATA +224 -0
- {wagtail-6.4.1.dist-info → wagtail-7.0rc1.dist-info}/RECORD +1194 -1174
- {wagtail-6.4.1.dist-info → wagtail-7.0rc1.dist-info}/WHEEL +1 -1
- wagtail/admin/templates/wagtailadmin/shared/ajax_pagination_nav.html +0 -25
- wagtail/project_template/manage.py +0 -10
- wagtail/utils/setup.py +0 -90
- wagtail/utils/widgets.py +0 -46
- wagtail-6.4.1.dist-info/METADATA +0 -77
- {wagtail-6.4.1.dist-info → wagtail-7.0rc1.dist-info}/entry_points.txt +0 -0
- {wagtail-6.4.1.dist-info → wagtail-7.0rc1.dist-info/licenses}/LICENSE +0 -0
- {wagtail-6.4.1.dist-info → wagtail-7.0rc1.dist-info}/top_level.txt +0 -0
wagtail/admin/urls/__init__.py
CHANGED
|
@@ -6,7 +6,6 @@ from django.urls import include, path, re_path
|
|
|
6
6
|
from django.views.decorators.cache import never_cache
|
|
7
7
|
from django.views.defaults import page_not_found
|
|
8
8
|
from django.views.generic import TemplateView
|
|
9
|
-
from django.views.i18n import JavaScriptCatalog
|
|
10
9
|
|
|
11
10
|
from wagtail import hooks
|
|
12
11
|
from wagtail.admin.api import urls as api_urls
|
|
@@ -20,6 +19,7 @@ from wagtail.admin.urls import workflows as wagtailadmin_workflows_urls
|
|
|
20
19
|
from wagtail.admin.views import account, chooser, dismissibles, home, tags
|
|
21
20
|
from wagtail.admin.views.bulk_action import index as bulk_actions
|
|
22
21
|
from wagtail.admin.views.generic.preview import StreamFieldBlockPreview
|
|
22
|
+
from wagtail.admin.views.i18n import localized_js_catalog
|
|
23
23
|
from wagtail.admin.views.pages import listing
|
|
24
24
|
from wagtail.utils.urlpatterns import decorate_urlpatterns
|
|
25
25
|
|
|
@@ -147,7 +147,7 @@ urlpatterns += [
|
|
|
147
147
|
# JS translation catalog
|
|
148
148
|
path(
|
|
149
149
|
"jsi18n/",
|
|
150
|
-
|
|
150
|
+
localized_js_catalog,
|
|
151
151
|
name="wagtailadmin_javascript_catalog",
|
|
152
152
|
),
|
|
153
153
|
]
|
wagtail/admin/urls/pages.py
CHANGED
|
@@ -63,7 +63,9 @@ urlpatterns = [
|
|
|
63
63
|
search.SearchView.as_view(results_only=True),
|
|
64
64
|
name="search_results",
|
|
65
65
|
),
|
|
66
|
-
path(
|
|
66
|
+
path(
|
|
67
|
+
"<int:page_to_move_id>/move/", move.MoveChooseDestination.as_view(), name="move"
|
|
68
|
+
),
|
|
67
69
|
path(
|
|
68
70
|
"<int:page_to_move_id>/move/<int:destination_id>/confirm/",
|
|
69
71
|
move.move_confirm,
|
wagtail/admin/userbar.py
CHANGED
|
@@ -5,7 +5,7 @@ from django.utils.translation import gettext_lazy as _
|
|
|
5
5
|
|
|
6
6
|
from wagtail import hooks
|
|
7
7
|
from wagtail.coreutils import accepts_kwarg
|
|
8
|
-
from wagtail.utils.deprecation import
|
|
8
|
+
from wagtail.utils.deprecation import RemovedInWagtail80Warning
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
class BaseItem:
|
|
@@ -15,9 +15,7 @@ class BaseItem:
|
|
|
15
15
|
return {"self": self, "request": request}
|
|
16
16
|
|
|
17
17
|
def render(self, request):
|
|
18
|
-
return render_to_string(
|
|
19
|
-
self.template, self.get_context_data(request), request=request
|
|
20
|
-
)
|
|
18
|
+
return render_to_string(self.template, self.get_context_data(request))
|
|
21
19
|
|
|
22
20
|
|
|
23
21
|
class AdminItem(BaseItem):
|
|
@@ -314,6 +312,6 @@ def apply_userbar_hooks(request, items, page):
|
|
|
314
312
|
warn(
|
|
315
313
|
"`construct_wagtail_userbar` hook functions should accept a `page` argument in third position -"
|
|
316
314
|
f" {fn.__module__}.{fn.__name__} needs to be updated",
|
|
317
|
-
category=
|
|
315
|
+
category=RemovedInWagtail80Warning,
|
|
318
316
|
)
|
|
319
317
|
fn(request, items)
|
wagtail/admin/utils.py
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import re
|
|
2
|
+
from types import SimpleNamespace
|
|
1
3
|
from urllib.parse import parse_qs, urlsplit, urlunsplit
|
|
2
4
|
|
|
3
5
|
from django.conf import settings
|
|
4
6
|
from django.utils.http import url_has_allowed_host_and_scheme, urlencode
|
|
7
|
+
from django.utils.translation import gettext
|
|
5
8
|
|
|
6
9
|
|
|
7
10
|
def get_admin_base_url():
|
|
@@ -30,10 +33,19 @@ def get_latest_str(obj):
|
|
|
30
33
|
from wagtail.models import DraftStateMixin, Page
|
|
31
34
|
|
|
32
35
|
if isinstance(obj, Page):
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
result = obj.specific_deferred.get_admin_display_title()
|
|
37
|
+
elif isinstance(obj, DraftStateMixin) and obj.latest_revision:
|
|
38
|
+
result = obj.latest_revision.object_str
|
|
39
|
+
else:
|
|
40
|
+
result = str(obj)
|
|
41
|
+
|
|
42
|
+
if result.strip() == "":
|
|
43
|
+
result = gettext("%(classname)s object (%(id)s)") % {
|
|
44
|
+
"classname": obj.__class__.__name__,
|
|
45
|
+
"id": obj.pk,
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return result
|
|
37
49
|
|
|
38
50
|
|
|
39
51
|
def get_user_display_name(user):
|
|
@@ -70,3 +82,30 @@ def set_query_params(url: str, params: dict):
|
|
|
70
82
|
querydict = {key: value for key, value in querydict.items() if value is not None}
|
|
71
83
|
query = urlencode(querydict, doseq=True)
|
|
72
84
|
return urlunsplit((scheme, netloc, path, query, fragment))
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
def get_keyboard_key_labels_from_request(request):
|
|
88
|
+
"""
|
|
89
|
+
Returns an instance of SimpleNamespace based on the user's keyboard layout
|
|
90
|
+
based on the User-Agent header in the request.
|
|
91
|
+
|
|
92
|
+
These are intentionally not translated, as they are key labels that are assumed
|
|
93
|
+
to be consistent across all languages.
|
|
94
|
+
"""
|
|
95
|
+
|
|
96
|
+
user_agent = request.headers.get("User-Agent", "")
|
|
97
|
+
is_mac_os = re.search(r"Mac|iPod|iPhone|iPad", user_agent)
|
|
98
|
+
|
|
99
|
+
labels = {
|
|
100
|
+
"ALT": "⌥" if is_mac_os else "Alt",
|
|
101
|
+
"CMD": "⌘" if is_mac_os else "Ctrl",
|
|
102
|
+
"CTRL": "^" if is_mac_os else "Ctrl",
|
|
103
|
+
"DEL": "Delete",
|
|
104
|
+
"ENTER": "Return" if is_mac_os else "Enter",
|
|
105
|
+
"ESC": "Esc",
|
|
106
|
+
"MOD": "⌘" if is_mac_os else "Ctrl",
|
|
107
|
+
"SHIFT": "Shift",
|
|
108
|
+
"TAB": "Tab",
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
return SimpleNamespace(**labels)
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import warnings
|
|
2
|
-
from collections import namedtuple
|
|
3
2
|
|
|
4
3
|
from django.contrib.admin.utils import quote, unquote
|
|
5
4
|
from django.core.exceptions import ImproperlyConfigured
|
|
@@ -7,28 +6,21 @@ from django.db import models
|
|
|
7
6
|
from django.db.models import Q
|
|
8
7
|
from django.shortcuts import get_object_or_404, redirect
|
|
9
8
|
from django.urls import reverse, reverse_lazy
|
|
10
|
-
from django.utils.formats import date_format
|
|
11
9
|
from django.utils.functional import cached_property
|
|
12
10
|
from django.utils.translation import gettext_lazy as _
|
|
13
11
|
from django.views import View
|
|
14
12
|
from django.views.generic.base import ContextMixin, TemplateResponseMixin
|
|
15
13
|
from django.views.generic.list import BaseListView
|
|
16
|
-
from django_filters.filters import (
|
|
17
|
-
ChoiceFilter,
|
|
18
|
-
DateFromToRangeFilter,
|
|
19
|
-
ModelChoiceFilter,
|
|
20
|
-
ModelMultipleChoiceFilter,
|
|
21
|
-
MultipleChoiceFilter,
|
|
22
|
-
)
|
|
23
14
|
|
|
24
15
|
from wagtail.admin import messages
|
|
16
|
+
from wagtail.admin.active_filters import filter_adapter_class_registry
|
|
25
17
|
from wagtail.admin.forms.search import SearchForm
|
|
18
|
+
from wagtail.admin.paginator import WagtailPaginator
|
|
26
19
|
from wagtail.admin.ui.tables import Column, Table
|
|
27
20
|
from wagtail.admin.utils import get_valid_next_url_from_request
|
|
28
21
|
from wagtail.admin.widgets.button import ButtonWithDropdown
|
|
29
22
|
from wagtail.search.backends import get_search_backend
|
|
30
23
|
from wagtail.search.index import class_is_indexed
|
|
31
|
-
from wagtail.utils.utils import flatten_choices
|
|
32
24
|
|
|
33
25
|
|
|
34
26
|
class WagtailAdminTemplateMixin(TemplateResponseMixin, ContextMixin):
|
|
@@ -191,12 +183,6 @@ class BaseOperationView(BaseObjectMixin, View):
|
|
|
191
183
|
return redirect(self.get_success_url())
|
|
192
184
|
|
|
193
185
|
|
|
194
|
-
# Represents a django-filters filter that is currently in force on a listing queryset
|
|
195
|
-
ActiveFilter = namedtuple(
|
|
196
|
-
"ActiveFilter", ["auto_id", "field_label", "value", "removed_filter_url"]
|
|
197
|
-
)
|
|
198
|
-
|
|
199
|
-
|
|
200
186
|
class BaseListingView(WagtailAdminTemplateMixin, BaseListView):
|
|
201
187
|
template_name = "wagtailadmin/generic/listing.html"
|
|
202
188
|
results_template_name = "wagtailadmin/generic/listing_results.html"
|
|
@@ -214,6 +200,7 @@ class BaseListingView(WagtailAdminTemplateMixin, BaseListView):
|
|
|
214
200
|
default_ordering = None
|
|
215
201
|
filterset_class = None
|
|
216
202
|
verbose_name_plural = None
|
|
203
|
+
paginator_class = WagtailPaginator
|
|
217
204
|
|
|
218
205
|
def get_template_names(self):
|
|
219
206
|
if self.results_only:
|
|
@@ -317,35 +304,6 @@ class BaseListingView(WagtailAdminTemplateMixin, BaseListView):
|
|
|
317
304
|
queryset = self.filters.filter_queryset(queryset)
|
|
318
305
|
return queryset
|
|
319
306
|
|
|
320
|
-
def get_url_without_filter_param(self, param):
|
|
321
|
-
"""
|
|
322
|
-
Return the index URL with the given filter parameter removed from the query string
|
|
323
|
-
"""
|
|
324
|
-
base_url = self.index_results_url.split("?")[0]
|
|
325
|
-
query_dict = self.request.GET.copy()
|
|
326
|
-
query_dict.pop(self.page_kwarg, None) # reset pagination to first page
|
|
327
|
-
if isinstance(param, (list, tuple)):
|
|
328
|
-
for p in param:
|
|
329
|
-
query_dict.pop(p, None)
|
|
330
|
-
else:
|
|
331
|
-
query_dict.pop(param, None)
|
|
332
|
-
query_dict["_w_filter_fragment"] = 1
|
|
333
|
-
return base_url + "?" + query_dict.urlencode()
|
|
334
|
-
|
|
335
|
-
def get_url_without_filter_param_value(self, param, value):
|
|
336
|
-
"""
|
|
337
|
-
Return the index URL where the filter parameter with the given value has been removed
|
|
338
|
-
from the query string, preserving all other values for that parameter
|
|
339
|
-
"""
|
|
340
|
-
base_url = self.index_results_url.split("?")[0]
|
|
341
|
-
query_dict = self.request.GET.copy()
|
|
342
|
-
query_dict.pop(self.page_kwarg, None) # reset pagination to first page
|
|
343
|
-
query_dict.setlist(
|
|
344
|
-
param, [v for v in query_dict.getlist(param) if v != str(value)]
|
|
345
|
-
)
|
|
346
|
-
query_dict["_w_filter_fragment"] = 1
|
|
347
|
-
return base_url + "?" + query_dict.urlencode()
|
|
348
|
-
|
|
349
307
|
@cached_property
|
|
350
308
|
def active_filters(self):
|
|
351
309
|
filters = []
|
|
@@ -353,6 +311,11 @@ class BaseListingView(WagtailAdminTemplateMixin, BaseListView):
|
|
|
353
311
|
if not self.filters:
|
|
354
312
|
return filters
|
|
355
313
|
|
|
314
|
+
base_url = self.index_results_url.split("?")[0]
|
|
315
|
+
query_dict = self.request.GET.copy()
|
|
316
|
+
query_dict.pop(self.page_kwarg, None) # reset pagination to first page
|
|
317
|
+
query_dict["_w_filter_fragment"] = 1
|
|
318
|
+
|
|
356
319
|
for field_name in self.filters.form.changed_data:
|
|
357
320
|
filter_def = self.filters.filters[field_name]
|
|
358
321
|
bound_field = self.filters.form[field_name]
|
|
@@ -364,76 +327,11 @@ class BaseListingView(WagtailAdminTemplateMixin, BaseListView):
|
|
|
364
327
|
if value == bound_field.initial:
|
|
365
328
|
continue # filter value is the same as the default
|
|
366
329
|
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
bound_field.auto_id,
|
|
373
|
-
filter_def.label,
|
|
374
|
-
field.label_from_instance(item),
|
|
375
|
-
self.get_url_without_filter_param_value(
|
|
376
|
-
field_name, item.pk
|
|
377
|
-
),
|
|
378
|
-
)
|
|
379
|
-
)
|
|
380
|
-
elif isinstance(filter_def, MultipleChoiceFilter):
|
|
381
|
-
choices = flatten_choices(filter_def.field.choices)
|
|
382
|
-
for item in value:
|
|
383
|
-
filters.append(
|
|
384
|
-
ActiveFilter(
|
|
385
|
-
bound_field.auto_id,
|
|
386
|
-
filter_def.label,
|
|
387
|
-
choices.get(str(item), str(item)),
|
|
388
|
-
self.get_url_without_filter_param_value(field_name, item),
|
|
389
|
-
)
|
|
390
|
-
)
|
|
391
|
-
elif isinstance(filter_def, ModelChoiceFilter):
|
|
392
|
-
field = filter_def.field
|
|
393
|
-
filters.append(
|
|
394
|
-
ActiveFilter(
|
|
395
|
-
bound_field.auto_id,
|
|
396
|
-
filter_def.label,
|
|
397
|
-
field.label_from_instance(value),
|
|
398
|
-
self.get_url_without_filter_param(field_name),
|
|
399
|
-
)
|
|
400
|
-
)
|
|
401
|
-
elif isinstance(filter_def, DateFromToRangeFilter):
|
|
402
|
-
start_date_display = date_format(value.start) if value.start else ""
|
|
403
|
-
end_date_display = date_format(value.stop) if value.stop else ""
|
|
404
|
-
widget = filter_def.field.widget
|
|
405
|
-
filters.append(
|
|
406
|
-
ActiveFilter(
|
|
407
|
-
bound_field.auto_id,
|
|
408
|
-
filter_def.label,
|
|
409
|
-
f"{start_date_display} - {end_date_display}",
|
|
410
|
-
self.get_url_without_filter_param(
|
|
411
|
-
[
|
|
412
|
-
widget.suffixed(field_name, suffix)
|
|
413
|
-
for suffix in widget.suffixes
|
|
414
|
-
]
|
|
415
|
-
),
|
|
416
|
-
)
|
|
417
|
-
)
|
|
418
|
-
elif isinstance(filter_def, ChoiceFilter):
|
|
419
|
-
choices = flatten_choices(filter_def.field.choices)
|
|
420
|
-
filters.append(
|
|
421
|
-
ActiveFilter(
|
|
422
|
-
bound_field.auto_id,
|
|
423
|
-
filter_def.label,
|
|
424
|
-
choices.get(str(value), str(value)),
|
|
425
|
-
self.get_url_without_filter_param(field_name),
|
|
426
|
-
)
|
|
427
|
-
)
|
|
428
|
-
else:
|
|
429
|
-
filters.append(
|
|
430
|
-
ActiveFilter(
|
|
431
|
-
bound_field.auto_id,
|
|
432
|
-
filter_def.label,
|
|
433
|
-
str(value),
|
|
434
|
-
self.get_url_without_filter_param(field_name),
|
|
435
|
-
)
|
|
436
|
-
)
|
|
330
|
+
filter_adapter_class = filter_adapter_class_registry.get(filter_def)
|
|
331
|
+
filter_adapter = filter_adapter_class(
|
|
332
|
+
filter_def, bound_field, value, base_url, query_dict
|
|
333
|
+
)
|
|
334
|
+
filters.extend(filter_adapter.get_active_filters())
|
|
437
335
|
|
|
438
336
|
return filters
|
|
439
337
|
|
|
@@ -573,6 +471,9 @@ class BaseListingView(WagtailAdminTemplateMixin, BaseListView):
|
|
|
573
471
|
|
|
574
472
|
if context["is_paginated"]:
|
|
575
473
|
context["items_count"] = context["paginator"].count
|
|
474
|
+
context["elided_page_range"] = context["paginator"].get_elided_page_range(
|
|
475
|
+
self.request.GET.get(self.page_kwarg, 1)
|
|
476
|
+
)
|
|
576
477
|
else:
|
|
577
478
|
context["items_count"] = len(context["object_list"])
|
|
578
479
|
|
|
@@ -8,7 +8,7 @@ from django.core.exceptions import (
|
|
|
8
8
|
ObjectDoesNotExist,
|
|
9
9
|
PermissionDenied,
|
|
10
10
|
)
|
|
11
|
-
from django.core.paginator import InvalidPage
|
|
11
|
+
from django.core.paginator import InvalidPage
|
|
12
12
|
from django.db.models import Model
|
|
13
13
|
from django.forms.models import modelform_factory
|
|
14
14
|
from django.http import Http404
|
|
@@ -28,7 +28,8 @@ from wagtail.admin.forms.choosers import (
|
|
|
28
28
|
SearchFilterMixin,
|
|
29
29
|
)
|
|
30
30
|
from wagtail.admin.modal_workflow import render_modal_workflow
|
|
31
|
-
from wagtail.admin.
|
|
31
|
+
from wagtail.admin.paginator import WagtailPaginator
|
|
32
|
+
from wagtail.admin.ui.tables import Column, LocaleColumn, Table, TitleColumn
|
|
32
33
|
from wagtail.coreutils import resolve_model_string
|
|
33
34
|
from wagtail.models import CollectionMember, TranslatableMixin
|
|
34
35
|
from wagtail.permission_policies import BlanketPermissionPolicy, ModelPermissionPolicy
|
|
@@ -131,6 +132,15 @@ class BaseChooseView(
|
|
|
131
132
|
results_template_name = "wagtailadmin/generic/chooser/results.html"
|
|
132
133
|
construct_queryset_hook_name = None
|
|
133
134
|
url_filter_parameters = []
|
|
135
|
+
paginator_class = WagtailPaginator
|
|
136
|
+
|
|
137
|
+
@cached_property
|
|
138
|
+
def i18n_enabled(self) -> bool:
|
|
139
|
+
return (
|
|
140
|
+
getattr(settings, "WAGTAIL_I18N_ENABLED", False)
|
|
141
|
+
and self.model_class is not None
|
|
142
|
+
and issubclass(self.model_class, TranslatableMixin)
|
|
143
|
+
)
|
|
134
144
|
|
|
135
145
|
def get_object_list(self):
|
|
136
146
|
return self.model_class.objects.all()
|
|
@@ -160,8 +170,7 @@ class BaseChooseView(
|
|
|
160
170
|
if issubclass(self.model_class, CollectionMember):
|
|
161
171
|
bases.insert(0, CollectionFilterMixin)
|
|
162
172
|
|
|
163
|
-
i18n_enabled
|
|
164
|
-
if i18n_enabled and issubclass(self.model_class, TranslatableMixin):
|
|
173
|
+
if self.i18n_enabled:
|
|
165
174
|
bases.insert(0, LocaleFilterMixin)
|
|
166
175
|
|
|
167
176
|
return type(
|
|
@@ -206,8 +215,11 @@ class BaseChooseView(
|
|
|
206
215
|
return self.request.GET.get("multiple")
|
|
207
216
|
|
|
208
217
|
@property
|
|
209
|
-
def columns(self):
|
|
210
|
-
|
|
218
|
+
def columns(self) -> list[Column]:
|
|
219
|
+
columns = [self.title_column]
|
|
220
|
+
if self.i18n_enabled:
|
|
221
|
+
columns.append(LocaleColumn(sort_key=None))
|
|
222
|
+
return columns
|
|
211
223
|
|
|
212
224
|
@property
|
|
213
225
|
def title_column(self):
|
|
@@ -242,9 +254,9 @@ class BaseChooseView(
|
|
|
242
254
|
objects = self.apply_object_list_ordering(objects)
|
|
243
255
|
objects = self.filter_object_list(objects)
|
|
244
256
|
|
|
245
|
-
paginator =
|
|
257
|
+
self.paginator = self.paginator_class(objects, per_page=self.per_page)
|
|
246
258
|
try:
|
|
247
|
-
return paginator.page(request.GET.get("p", 1))
|
|
259
|
+
return self.paginator.page(request.GET.get("p", 1))
|
|
248
260
|
except InvalidPage:
|
|
249
261
|
raise Http404
|
|
250
262
|
|
|
@@ -268,12 +280,17 @@ class BaseChooseView(
|
|
|
268
280
|
# so that the pagination include can append its own parameters via the {% querystring %} template tag
|
|
269
281
|
results_pagination_url = re.sub(r"\?.*$", "", results_url)
|
|
270
282
|
|
|
283
|
+
elided_page_range = self.paginator.get_elided_page_range(
|
|
284
|
+
self.request.GET.get("p", 1)
|
|
285
|
+
)
|
|
286
|
+
|
|
271
287
|
context.update(
|
|
272
288
|
{
|
|
273
289
|
"results": self.results,
|
|
274
290
|
"table": self.table,
|
|
275
291
|
"results_url": results_url,
|
|
276
292
|
"results_pagination_url": results_pagination_url,
|
|
293
|
+
"elided_page_range": elided_page_range,
|
|
277
294
|
"is_searching": self.filter_form.is_searching,
|
|
278
295
|
"is_filtering_by_collection": self.filter_form.is_filtering_by_collection,
|
|
279
296
|
"is_multiple_choice": self.is_multiple_choice,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import json
|
|
2
|
+
from typing import Optional
|
|
2
3
|
|
|
3
4
|
from django.conf import settings
|
|
4
5
|
from django.contrib.admin.utils import quote
|
|
@@ -17,10 +18,11 @@ from django.utils.translation import gettext as _
|
|
|
17
18
|
|
|
18
19
|
from wagtail import hooks
|
|
19
20
|
from wagtail.admin import messages
|
|
21
|
+
from wagtail.admin.forms.models import WagtailAdminModelForm
|
|
20
22
|
from wagtail.admin.models import EditingSession
|
|
21
23
|
from wagtail.admin.templatetags.wagtailadmin_tags import user_display_name
|
|
22
24
|
from wagtail.admin.ui.editing_sessions import EditingSessionsModule
|
|
23
|
-
from wagtail.admin.ui.tables import TitleColumn
|
|
25
|
+
from wagtail.admin.ui.tables import LiveStatusTagColumn, TitleColumn
|
|
24
26
|
from wagtail.admin.utils import get_latest_str, set_query_params
|
|
25
27
|
from wagtail.locks import BasicLock, ScheduledForPublishLock, WorkflowLock
|
|
26
28
|
from wagtail.log_actions import log
|
|
@@ -104,6 +106,14 @@ class BeforeAfterHookMixin(HookResponseMixin):
|
|
|
104
106
|
|
|
105
107
|
|
|
106
108
|
class LocaleMixin:
|
|
109
|
+
@cached_property
|
|
110
|
+
def i18n_enabled(self) -> bool:
|
|
111
|
+
return (
|
|
112
|
+
getattr(settings, "WAGTAIL_I18N_ENABLED", False)
|
|
113
|
+
and (model := getattr(self, "model", None)) is not None
|
|
114
|
+
and issubclass(model, TranslatableMixin)
|
|
115
|
+
)
|
|
116
|
+
|
|
107
117
|
@cached_property
|
|
108
118
|
def locale(self):
|
|
109
119
|
return self.get_locale()
|
|
@@ -112,19 +122,17 @@ class LocaleMixin:
|
|
|
112
122
|
def translations(self):
|
|
113
123
|
return self.get_translations() if self.locale else []
|
|
114
124
|
|
|
115
|
-
def get_locale(self):
|
|
125
|
+
def get_locale(self) -> Optional[Locale]:
|
|
116
126
|
if not getattr(self, "model", None):
|
|
117
127
|
return None
|
|
118
128
|
|
|
119
|
-
|
|
120
|
-
if not i18n_enabled or not issubclass(self.model, TranslatableMixin):
|
|
129
|
+
if not self.i18n_enabled:
|
|
121
130
|
return None
|
|
122
131
|
|
|
123
132
|
if hasattr(self, "object") and self.object:
|
|
124
133
|
return self.object.locale
|
|
125
134
|
|
|
126
|
-
selected_locale
|
|
127
|
-
if selected_locale:
|
|
135
|
+
if selected_locale := self.request.GET.get("locale"):
|
|
128
136
|
return get_object_or_404(Locale, language_code=selected_locale)
|
|
129
137
|
return Locale.get_default()
|
|
130
138
|
|
|
@@ -218,6 +226,13 @@ class IndexViewOptionalFeaturesMixin:
|
|
|
218
226
|
return queryset
|
|
219
227
|
return super()._annotate_queryset_updated_at(queryset)
|
|
220
228
|
|
|
229
|
+
@cached_property
|
|
230
|
+
def list_display(self):
|
|
231
|
+
list_display = super().list_display.copy()
|
|
232
|
+
if issubclass(self.model, DraftStateMixin):
|
|
233
|
+
list_display.append(LiveStatusTagColumn())
|
|
234
|
+
return list_display
|
|
235
|
+
|
|
221
236
|
|
|
222
237
|
class CreateEditViewOptionalFeaturesMixin:
|
|
223
238
|
"""
|
|
@@ -254,6 +269,11 @@ class CreateEditViewOptionalFeaturesMixin:
|
|
|
254
269
|
self.lock = self.get_lock()
|
|
255
270
|
self.locked_for_user = self.lock and self.lock.for_user(request.user)
|
|
256
271
|
super().setup(request, *args, **kwargs)
|
|
272
|
+
self.saving_as_draft = (
|
|
273
|
+
self.draftstate_enabled
|
|
274
|
+
and request.method == "POST"
|
|
275
|
+
and self.action in ("create", "edit")
|
|
276
|
+
)
|
|
257
277
|
|
|
258
278
|
@cached_property
|
|
259
279
|
def workflow(self):
|
|
@@ -502,7 +522,9 @@ class CreateEditViewOptionalFeaturesMixin:
|
|
|
502
522
|
# Save revision if the model inherits from RevisionMixin
|
|
503
523
|
self.new_revision = None
|
|
504
524
|
if self.revision_enabled:
|
|
505
|
-
self.new_revision = instance.save_revision(
|
|
525
|
+
self.new_revision = instance.save_revision(
|
|
526
|
+
user=self.request.user, clean=not self.saving_as_draft
|
|
527
|
+
)
|
|
506
528
|
|
|
507
529
|
log(
|
|
508
530
|
instance=instance,
|
|
@@ -723,9 +745,9 @@ class CreateEditViewOptionalFeaturesMixin:
|
|
|
723
745
|
context["draftstate_enabled"] = self.draftstate_enabled
|
|
724
746
|
context["workflow_enabled"] = self.workflow_enabled
|
|
725
747
|
context["workflow_history_url"] = self.get_workflow_history_url()
|
|
726
|
-
context[
|
|
727
|
-
|
|
728
|
-
|
|
748
|
+
context["confirm_workflow_cancellation_url"] = (
|
|
749
|
+
self.get_confirm_workflow_cancellation_url()
|
|
750
|
+
)
|
|
729
751
|
context["publishing_will_cancel_workflow"] = getattr(
|
|
730
752
|
settings, "WAGTAIL_WORKFLOW_CANCEL_ON_PUBLISH", True
|
|
731
753
|
) and bool(self.workflow_tasks)
|
|
@@ -735,8 +757,20 @@ class CreateEditViewOptionalFeaturesMixin:
|
|
|
735
757
|
|
|
736
758
|
def post(self, request, *args, **kwargs):
|
|
737
759
|
form = self.get_form()
|
|
760
|
+
|
|
738
761
|
# Make sure object is not locked
|
|
739
|
-
if
|
|
762
|
+
if self.locked_for_user:
|
|
763
|
+
return self.form_invalid(form)
|
|
764
|
+
|
|
765
|
+
# If saving as draft, do not enforce full validation
|
|
766
|
+
if self.saving_as_draft and isinstance(form, WagtailAdminModelForm):
|
|
767
|
+
form.defer_required_fields()
|
|
768
|
+
form_is_valid = form.is_valid()
|
|
769
|
+
form.restore_required_fields()
|
|
770
|
+
else:
|
|
771
|
+
form_is_valid = form.is_valid()
|
|
772
|
+
|
|
773
|
+
if form_is_valid:
|
|
740
774
|
return self.form_valid(form)
|
|
741
775
|
else:
|
|
742
776
|
return self.form_invalid(form)
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import warnings
|
|
2
|
-
|
|
3
1
|
from django.contrib.admin.utils import label_for_field, quote, unquote
|
|
4
2
|
from django.contrib.contenttypes.models import ContentType
|
|
5
3
|
from django.core.exceptions import (
|
|
@@ -35,6 +33,7 @@ from wagtail.admin.ui.side_panels import StatusSidePanel
|
|
|
35
33
|
from wagtail.admin.ui.tables import (
|
|
36
34
|
ButtonsColumnMixin,
|
|
37
35
|
Column,
|
|
36
|
+
LocaleColumn,
|
|
38
37
|
TitleColumn,
|
|
39
38
|
UpdatedAtColumn,
|
|
40
39
|
)
|
|
@@ -51,7 +50,6 @@ from wagtail.log_actions import registry as log_registry
|
|
|
51
50
|
from wagtail.models import DraftStateMixin, Locale, ReferenceIndex
|
|
52
51
|
from wagtail.models.audit_log import ModelLogEntry
|
|
53
52
|
from wagtail.search.index import class_is_indexed
|
|
54
|
-
from wagtail.utils.deprecation import RemovedInWagtail70Warning
|
|
55
53
|
|
|
56
54
|
from .base import BaseListingView, WagtailAdminTemplateMixin
|
|
57
55
|
from .mixins import BeforeAfterHookMixin, HookResponseMixin, LocaleMixin, PanelMixin
|
|
@@ -73,28 +71,9 @@ class IndexView(
|
|
|
73
71
|
inspect_url_name = None
|
|
74
72
|
delete_url_name = None
|
|
75
73
|
any_permission_required = ["add", "change", "delete", "view"]
|
|
76
|
-
columns = None # If not explicitly specified, will be derived from list_display
|
|
77
|
-
list_display = ["__str__", UpdatedAtColumn()]
|
|
78
74
|
list_filter = None
|
|
79
75
|
show_other_searches = False
|
|
80
76
|
|
|
81
|
-
def get_search_url(self):
|
|
82
|
-
# This is only used by views that do not use breadcrumbs, thus uses the
|
|
83
|
-
# legacy header.html. The search in that header template accepts both
|
|
84
|
-
# the search_url (which really should be search_url_name) and the
|
|
85
|
-
# index_results_url. This means we can advise using the latter instead,
|
|
86
|
-
# without having to instruct how to set up breadcrumbs.
|
|
87
|
-
warnings.warn(
|
|
88
|
-
"`IndexView.get_search_url` is deprecated. "
|
|
89
|
-
"Use `IndexView.get_index_results_url` instead.",
|
|
90
|
-
RemovedInWagtail70Warning,
|
|
91
|
-
)
|
|
92
|
-
return self.index_url_name
|
|
93
|
-
|
|
94
|
-
@cached_property
|
|
95
|
-
def search_url(self):
|
|
96
|
-
return self.get_search_url()
|
|
97
|
-
|
|
98
77
|
@cached_property
|
|
99
78
|
def is_searchable(self):
|
|
100
79
|
# Do not automatically enable search if the model is not indexed and
|
|
@@ -256,8 +235,16 @@ class IndexView(
|
|
|
256
235
|
**kwargs,
|
|
257
236
|
)
|
|
258
237
|
|
|
238
|
+
@cached_property
|
|
239
|
+
def list_display(self):
|
|
240
|
+
list_display = ["__str__", UpdatedAtColumn()]
|
|
241
|
+
if self.i18n_enabled:
|
|
242
|
+
list_display.insert(1, LocaleColumn())
|
|
243
|
+
return list_display
|
|
244
|
+
|
|
259
245
|
@cached_property
|
|
260
246
|
def columns(self):
|
|
247
|
+
# If not explicitly overridden, derive from list_display
|
|
261
248
|
columns = []
|
|
262
249
|
for i, field in enumerate(self.list_display):
|
|
263
250
|
if isinstance(field, Column):
|
|
@@ -405,12 +392,6 @@ class IndexView(
|
|
|
405
392
|
context["add_url"] = context["header_action_url"] = self.add_url
|
|
406
393
|
context["header_action_label"] = self.add_item_label
|
|
407
394
|
|
|
408
|
-
# RemovedInWagtail70Warning:
|
|
409
|
-
# Remove these in favor of using search_form and index_results_url
|
|
410
|
-
if self.is_searchable and not self.index_results_url:
|
|
411
|
-
context["is_searchable"] = self.is_searchable
|
|
412
|
-
context["search_url"] = self.search_url
|
|
413
|
-
|
|
414
395
|
context["model_opts"] = self.model and self.model._meta
|
|
415
396
|
return context
|
|
416
397
|
|
|
@@ -1124,8 +1105,13 @@ class InspectView(PermissionCheckedMixin, WagtailAdminTemplateMixin, TemplateVie
|
|
|
1124
1105
|
return capfirst(label_for_field(field_name, model=self.model))
|
|
1125
1106
|
|
|
1126
1107
|
def get_field_display_value(self, field_name, field):
|
|
1127
|
-
# First we check for a
|
|
1108
|
+
# First we check for a `get_fieldname_display_value` method on the InspectView
|
|
1109
|
+
# then for a 'get_fieldname_display' property/method on
|
|
1128
1110
|
# the model, and return the value of that, if present.
|
|
1111
|
+
value_func = getattr(self, f"get_{field_name}_display_value", None)
|
|
1112
|
+
if value_func is not None and callable(value_func):
|
|
1113
|
+
return value_func()
|
|
1114
|
+
|
|
1129
1115
|
value_func = getattr(self.object, "get_%s_display" % field_name, None)
|
|
1130
1116
|
if value_func is not None:
|
|
1131
1117
|
if callable(value_func):
|
|
@@ -1190,7 +1176,6 @@ class RevisionsCompareView(WagtailAdminTemplateMixin, TemplateView):
|
|
|
1190
1176
|
history_label = gettext_lazy("History")
|
|
1191
1177
|
page_title = gettext_lazy("Compare")
|
|
1192
1178
|
template_name = "wagtailadmin/generic/revisions/compare.html"
|
|
1193
|
-
_show_breadcrumbs = True
|
|
1194
1179
|
model = None
|
|
1195
1180
|
|
|
1196
1181
|
def get_breadcrumbs_items(self):
|
|
@@ -11,6 +11,7 @@ from django.utils.functional import cached_property
|
|
|
11
11
|
from django.utils.translation import gettext
|
|
12
12
|
from django.views.generic import TemplateView, View
|
|
13
13
|
|
|
14
|
+
from wagtail.admin.forms.models import WagtailAdminModelForm
|
|
14
15
|
from wagtail.admin.panels import get_edit_handler
|
|
15
16
|
from wagtail.blocks.base import Block
|
|
16
17
|
from wagtail.models import PreviewableMixin, RevisionMixin
|
|
@@ -77,10 +78,15 @@ class PreviewOnEdit(View):
|
|
|
77
78
|
post_data = ""
|
|
78
79
|
return QueryDict(post_data)
|
|
79
80
|
|
|
81
|
+
def validate_form(self, form):
|
|
82
|
+
if isinstance(form, WagtailAdminModelForm):
|
|
83
|
+
form.defer_required_fields()
|
|
84
|
+
return form.is_valid()
|
|
85
|
+
|
|
80
86
|
def post(self, request, *args, **kwargs):
|
|
81
87
|
self.remove_old_preview_data()
|
|
82
88
|
form = self.get_form(request.POST)
|
|
83
|
-
is_valid =
|
|
89
|
+
is_valid = self.validate_form(form)
|
|
84
90
|
|
|
85
91
|
if is_valid:
|
|
86
92
|
# TODO: Handle request.FILES.
|
|
@@ -89,7 +95,7 @@ class PreviewOnEdit(View):
|
|
|
89
95
|
else:
|
|
90
96
|
# Check previous data in session to determine preview availability
|
|
91
97
|
form = self.get_form(self._get_data_from_session())
|
|
92
|
-
is_available =
|
|
98
|
+
is_available = self.validate_form(form)
|
|
93
99
|
|
|
94
100
|
return JsonResponse({"is_valid": is_valid, "is_available": is_available})
|
|
95
101
|
|
|
@@ -104,7 +110,7 @@ class PreviewOnEdit(View):
|
|
|
104
110
|
def get(self, request, *args, **kwargs):
|
|
105
111
|
form = self.get_form(self._get_data_from_session())
|
|
106
112
|
|
|
107
|
-
if not
|
|
113
|
+
if not self.validate_form(form):
|
|
108
114
|
return self.error_response()
|
|
109
115
|
|
|
110
116
|
form.save(commit=False)
|