wagtail 7.2.1__py3-none-any.whl → 7.3__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_for_translation.py +4 -2
- wagtail/admin/action_menu.py +4 -1
- wagtail/admin/api/actions/convert_alias.py +2 -2
- wagtail/admin/api/actions/copy.py +2 -2
- wagtail/admin/api/actions/copy_for_translation.py +2 -2
- wagtail/admin/api/actions/create_alias.py +2 -2
- wagtail/admin/api/actions/delete.py +1 -1
- wagtail/admin/api/actions/move.py +1 -1
- wagtail/admin/api/actions/publish.py +2 -2
- wagtail/admin/api/actions/revert_to_page_revision.py +2 -2
- wagtail/admin/api/actions/unpublish.py +1 -1
- wagtail/admin/api/filters.py +2 -2
- wagtail/admin/compare.py +22 -0
- wagtail/admin/forms/account.py +52 -1
- wagtail/admin/forms/comments.py +53 -0
- wagtail/admin/forms/models.py +36 -0
- wagtail/admin/forms/pages.py +7 -0
- wagtail/admin/forms/workflows.py +5 -2
- wagtail/admin/icons.py +4 -3
- wagtail/admin/locale/af/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/af/LC_MESSAGES/djangojs.po +8 -1
- wagtail/admin/locale/ar/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/ar/LC_MESSAGES/django.po +42 -16
- wagtail/admin/locale/ar/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/ar/LC_MESSAGES/djangojs.po +20 -11
- wagtail/admin/locale/az_AZ/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/az_AZ/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/az_AZ/LC_MESSAGES/djangojs.po +5 -2
- wagtail/admin/locale/be/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/be/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/be/LC_MESSAGES/djangojs.po +21 -3
- wagtail/admin/locale/bg/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/bg/LC_MESSAGES/django.po +299 -2
- wagtail/admin/locale/bg/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/bg/LC_MESSAGES/djangojs.po +37 -3
- wagtail/admin/locale/bn/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/bn/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/bn/LC_MESSAGES/djangojs.po +9 -3
- wagtail/admin/locale/ca/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/ca/LC_MESSAGES/django.po +36 -18
- wagtail/admin/locale/ca/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/ca/LC_MESSAGES/djangojs.po +34 -12
- wagtail/admin/locale/cs/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/cs/LC_MESSAGES/django.po +1 -7
- wagtail/admin/locale/cs/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/cs/LC_MESSAGES/djangojs.po +22 -4
- 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 +15 -3
- wagtail/admin/locale/da/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/da/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/da/LC_MESSAGES/djangojs.po +19 -4
- wagtail/admin/locale/de/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/de/LC_MESSAGES/django.po +201 -21
- wagtail/admin/locale/de/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/de/LC_MESSAGES/djangojs.po +53 -14
- wagtail/admin/locale/dv/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/dv/LC_MESSAGES/django.po +7 -16
- wagtail/admin/locale/dv/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/dv/LC_MESSAGES/djangojs.po +20 -2
- wagtail/admin/locale/el/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/el/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/el/LC_MESSAGES/djangojs.po +22 -13
- wagtail/admin/locale/en/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/en/LC_MESSAGES/django.po +262 -234
- wagtail/admin/locale/en/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/en/LC_MESSAGES/djangojs.po +72 -43
- wagtail/admin/locale/en_IN/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/en_IN/LC_MESSAGES/djangojs.po +5 -2
- wagtail/admin/locale/es/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/es/LC_MESSAGES/django.po +1 -10
- wagtail/admin/locale/es/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/es/LC_MESSAGES/djangojs.po +22 -13
- wagtail/admin/locale/es_419/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/es_419/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/es_419/LC_MESSAGES/djangojs.po +8 -2
- wagtail/admin/locale/es_VE/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/es_VE/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/es_VE/LC_MESSAGES/djangojs.po +5 -2
- wagtail/admin/locale/et/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/et/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/et/LC_MESSAGES/djangojs.po +17 -2
- wagtail/admin/locale/eu/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/eu/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/eu/LC_MESSAGES/djangojs.po +8 -2
- wagtail/admin/locale/fa/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/fa/LC_MESSAGES/django.po +5 -11
- wagtail/admin/locale/fa/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/fa/LC_MESSAGES/djangojs.po +18 -3
- wagtail/admin/locale/fi/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/fi/LC_MESSAGES/django.po +1 -12
- wagtail/admin/locale/fi/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/fi/LC_MESSAGES/djangojs.po +22 -12
- wagtail/admin/locale/fr/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/fr/LC_MESSAGES/django.po +38 -21
- wagtail/admin/locale/fr/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/fr/LC_MESSAGES/djangojs.po +35 -14
- wagtail/admin/locale/gl/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/gl/LC_MESSAGES/django.po +36 -18
- wagtail/admin/locale/gl/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/gl/LC_MESSAGES/djangojs.po +34 -12
- wagtail/admin/locale/he_IL/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/he_IL/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/he_IL/LC_MESSAGES/djangojs.po +20 -3
- wagtail/admin/locale/hi/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/hi/LC_MESSAGES/djangojs.po +5 -2
- wagtail/admin/locale/hr_HR/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/hr_HR/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/hr_HR/LC_MESSAGES/djangojs.po +17 -2
- wagtail/admin/locale/ht/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/ht/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/ht/LC_MESSAGES/djangojs.po +5 -2
- wagtail/admin/locale/hu/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/hu/LC_MESSAGES/django.po +7 -18
- wagtail/admin/locale/hu/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/hu/LC_MESSAGES/djangojs.po +21 -11
- wagtail/admin/locale/id_ID/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/id_ID/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/id_ID/LC_MESSAGES/djangojs.po +18 -3
- wagtail/admin/locale/is_IS/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/is_IS/LC_MESSAGES/django.po +7 -17
- wagtail/admin/locale/is_IS/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/is_IS/LC_MESSAGES/djangojs.po +21 -12
- wagtail/admin/locale/it/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/it/LC_MESSAGES/django.po +599 -19
- wagtail/admin/locale/it/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/it/LC_MESSAGES/djangojs.po +73 -13
- wagtail/admin/locale/ja/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/ja/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/ja/LC_MESSAGES/djangojs.po +23 -3
- wagtail/admin/locale/ka/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/ka/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/ka/LC_MESSAGES/djangojs.po +5 -2
- wagtail/admin/locale/ko/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/ko/LC_MESSAGES/django.po +1 -11
- wagtail/admin/locale/ko/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/ko/LC_MESSAGES/djangojs.po +23 -13
- wagtail/admin/locale/lt/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/lt/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/lt/LC_MESSAGES/djangojs.po +21 -12
- wagtail/admin/locale/lv/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/lv/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/lv/LC_MESSAGES/djangojs.po +22 -4
- 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 +14 -2
- wagtail/admin/locale/mn/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/mn/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/mn/LC_MESSAGES/djangojs.po +17 -2
- wagtail/admin/locale/my/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/my/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/my/LC_MESSAGES/djangojs.po +8 -2
- wagtail/admin/locale/nb/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/nb/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/nb/LC_MESSAGES/djangojs.po +18 -3
- wagtail/admin/locale/nl/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/nl/LC_MESSAGES/django.po +38 -21
- wagtail/admin/locale/nl/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/nl/LC_MESSAGES/djangojs.po +36 -13
- wagtail/admin/locale/pl/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/pl/LC_MESSAGES/django.po +1 -10
- wagtail/admin/locale/pl/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/pl/LC_MESSAGES/djangojs.po +21 -12
- wagtail/admin/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/pt_BR/LC_MESSAGES/django.po +7 -16
- wagtail/admin/locale/pt_BR/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/pt_BR/LC_MESSAGES/djangojs.po +21 -13
- wagtail/admin/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/pt_PT/LC_MESSAGES/django.po +1 -7
- wagtail/admin/locale/pt_PT/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/pt_PT/LC_MESSAGES/djangojs.po +18 -12
- wagtail/admin/locale/ro/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/ro/LC_MESSAGES/django.po +7 -16
- wagtail/admin/locale/ro/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/ro/LC_MESSAGES/djangojs.po +20 -11
- wagtail/admin/locale/ru/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/ru/LC_MESSAGES/django.po +186 -22
- wagtail/admin/locale/ru/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/ru/LC_MESSAGES/djangojs.po +53 -14
- wagtail/admin/locale/sk_SK/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/sk_SK/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/sk_SK/LC_MESSAGES/djangojs.po +20 -3
- wagtail/admin/locale/sl/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/sl/LC_MESSAGES/django.po +7 -16
- wagtail/admin/locale/sl/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/sl/LC_MESSAGES/djangojs.po +21 -12
- wagtail/admin/locale/sr/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/sr/LC_MESSAGES/djangojs.po +15 -0
- wagtail/admin/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/sv/LC_MESSAGES/django.po +329 -23
- wagtail/admin/locale/sv/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/sv/LC_MESSAGES/djangojs.po +23 -13
- wagtail/admin/locale/ta/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/ta/LC_MESSAGES/djangojs.po +5 -2
- wagtail/admin/locale/tet/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/tet/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/tet/LC_MESSAGES/djangojs.po +19 -4
- wagtail/admin/locale/th/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/th/LC_MESSAGES/django.po +1 -4
- wagtail/admin/locale/th/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/th/LC_MESSAGES/djangojs.po +22 -3
- wagtail/admin/locale/tr/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/tr/LC_MESSAGES/django.po +4 -10
- wagtail/admin/locale/tr/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/tr/LC_MESSAGES/djangojs.po +23 -5
- wagtail/admin/locale/tr_TR/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/tr_TR/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/tr_TR/LC_MESSAGES/djangojs.po +19 -4
- wagtail/admin/locale/ug/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/ug/LC_MESSAGES/django.po +7 -16
- wagtail/admin/locale/ug/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/ug/LC_MESSAGES/djangojs.po +20 -11
- wagtail/admin/locale/uk/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/uk/LC_MESSAGES/django.po +5 -11
- wagtail/admin/locale/uk/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/uk/LC_MESSAGES/djangojs.po +22 -14
- wagtail/admin/locale/vi/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/vi/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/vi/LC_MESSAGES/djangojs.po +9 -2
- wagtail/admin/locale/zh/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/zh/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/zh/LC_MESSAGES/djangojs.po +20 -5
- wagtail/admin/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/zh_Hans/LC_MESSAGES/django.po +1 -7
- wagtail/admin/locale/zh_Hans/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/zh_Hans/LC_MESSAGES/djangojs.po +23 -13
- wagtail/admin/locale/zh_Hant/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/zh_Hant/LC_MESSAGES/django.po +1 -7
- wagtail/admin/locale/zh_Hant/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/zh_Hant/LC_MESSAGES/djangojs.po +21 -3
- wagtail/admin/panels/comment_panel.py +1 -51
- wagtail/admin/panels/title_field_panel.py +3 -1
- wagtail/admin/static/wagtailadmin/css/core.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/core.js.LICENSE.txt +1 -1
- wagtail/admin/static/wagtailadmin/js/draftail.js +1 -1
- wagtail/admin/static/wagtailadmin/js/privacy-switch.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/userbar.js +1 -1
- wagtail/admin/static/wagtailadmin/js/userbar.js.LICENSE.txt +1 -1
- wagtail/admin/static/wagtailadmin/js/vendor.js +1 -1
- wagtail/admin/static/wagtailadmin/js/wagtailadmin.js +1 -1
- wagtail/admin/templates/wagtailadmin/base.html +1 -1
- wagtail/admin/templates/wagtailadmin/generic/edit_partials.html +100 -0
- wagtail/admin/templates/wagtailadmin/generic/form.html +26 -5
- wagtail/admin/templates/wagtailadmin/generic/includes/_loaded_revision_inputs.html +3 -0
- wagtail/admin/templates/wagtailadmin/generic/listing_results.html +1 -17
- wagtail/admin/templates/wagtailadmin/pages/create.html +14 -4
- wagtail/admin/templates/wagtailadmin/pages/edit.html +16 -3
- wagtail/admin/templates/wagtailadmin/pages/edit_partials.html +19 -0
- wagtail/admin/templates/wagtailadmin/pages/index_results.html +1 -9
- wagtail/admin/templates/wagtailadmin/shared/autosave/indicator.html +36 -0
- wagtail/admin/templates/wagtailadmin/shared/breadcrumbs.html +1 -1
- wagtail/admin/templates/wagtailadmin/shared/editing_sessions/list.html +2 -2
- wagtail/admin/templates/wagtailadmin/shared/editing_sessions/module.html +19 -3
- wagtail/admin/templates/wagtailadmin/shared/headers/_actions.html +5 -0
- wagtail/admin/templates/wagtailadmin/shared/headers/_history_icon_link.html +2 -2
- wagtail/admin/templates/wagtailadmin/shared/headers/slim_header.html +8 -9
- wagtail/admin/templates/wagtailadmin/shared/listing/filter_partials.html +19 -0
- wagtail/admin/templates/wagtailadmin/shared/side_panel_toggle.html +3 -3
- wagtail/admin/templates/wagtailadmin/shared/side_panels/includes/side_panel.html +3 -0
- wagtail/admin/templates/wagtailadmin/shared/side_panels/includes/status/privacy.html +18 -6
- wagtail/admin/templates/wagtailadmin/shared/side_panels/includes/status/usage.html +11 -4
- wagtail/admin/templates/wagtailadmin/shared/side_panels/includes/status/workflow.html +22 -1
- wagtail/admin/templates/wagtailadmin/shared/side_panels/preview.html +1 -0
- wagtail/admin/templates/wagtailadmin/shared/side_panels.html +1 -2
- wagtail/admin/templates/wagtailadmin/shared/unsaved_changes_warning.html +20 -20
- wagtail/admin/templates/wagtailadmin/userbar/base.html +2 -0
- wagtail/admin/templates/wagtailadmin/userbar/item_accessibility.html +1 -1
- wagtail/admin/templatetags/wagtailadmin_tags.py +6 -14
- wagtail/admin/tests/pages/test_create_page.py +359 -1
- wagtail/admin/tests/pages/test_custom_listing.py +48 -2
- wagtail/admin/tests/pages/test_edit_page.py +987 -10
- wagtail/admin/tests/pages/test_explorer_view.py +9 -5
- wagtail/admin/tests/pages/test_page_search.py +15 -0
- wagtail/admin/tests/pages/test_preview.py +81 -0
- wagtail/admin/tests/pages/test_revisions.py +4 -0
- wagtail/admin/tests/test_account_management.py +88 -2
- wagtail/admin/tests/test_collections_views.py +15 -15
- wagtail/admin/tests/test_compare.py +34 -0
- wagtail/admin/tests/test_editing_sessions.py +230 -8
- wagtail/admin/tests/test_forms.py +192 -1
- wagtail/admin/tests/test_icon_sprite.py +22 -2
- wagtail/admin/tests/test_page_chooser.py +13 -13
- wagtail/admin/tests/test_reports_views.py +4 -1
- wagtail/admin/tests/test_userbar.py +69 -5
- wagtail/admin/tests/test_views_generic.py +5 -5
- wagtail/admin/tests/test_workflows.py +14 -12
- wagtail/admin/tests/viewsets/test_model_viewset.py +13 -0
- wagtail/admin/ui/autosave.py +5 -0
- wagtail/admin/ui/editing_sessions.py +3 -0
- wagtail/admin/ui/side_panels.py +19 -20
- wagtail/admin/userbar.py +48 -27
- wagtail/admin/views/bulk_action/dispatcher.py +2 -2
- wagtail/admin/views/chooser.py +6 -6
- wagtail/admin/views/editing_sessions.py +20 -7
- wagtail/admin/views/generic/__init__.py +1 -0
- wagtail/admin/views/generic/chooser.py +5 -5
- wagtail/admin/views/generic/mixins.py +143 -26
- wagtail/admin/views/generic/models.py +157 -27
- wagtail/admin/views/generic/ordering.py +1 -1
- wagtail/admin/views/generic/preview.py +12 -5
- wagtail/admin/views/home.py +3 -1
- wagtail/admin/views/pages/create.py +78 -29
- wagtail/admin/views/pages/edit.py +162 -34
- wagtail/admin/views/pages/preview.py +14 -5
- wagtail/admin/views/pages/revisions.py +3 -0
- wagtail/admin/views/pages/search.py +4 -4
- wagtail/admin/views/pages/usage.py +2 -2
- wagtail/admin/views/tags.py +2 -2
- wagtail/admin/views/workflows.py +73 -54
- wagtail/admin/viewsets/model.py +34 -8
- wagtail/admin/widgets/button.py +11 -4
- wagtail/admin/widgets/chooser.py +6 -4
- wagtail/admin/widgets/slug.py +1 -1
- wagtail/api/v2/filters.py +27 -21
- wagtail/api/v2/pagination.py +4 -4
- wagtail/api/v2/views.py +7 -7
- wagtail/blocks/list_block.py +0 -8
- wagtail/blocks/migrations/migrate_operation.py +8 -1
- wagtail/blocks/stream_block.py +2 -10
- wagtail/blocks/struct_block.py +192 -12
- wagtail/compat.py +2 -2
- wagtail/contrib/forms/locale/af/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/forms/locale/az_AZ/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/forms/locale/bg/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/forms/locale/bg/LC_MESSAGES/django.po +4 -1
- wagtail/contrib/forms/locale/en/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/forms/locale/en/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/eu/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/forms/locale/ht/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/forms/locale/hy/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/forms/locale/it/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/forms/locale/it/LC_MESSAGES/django.po +40 -2
- wagtail/contrib/forms/locale/ka/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/frontend_cache/backends/azure.py +6 -6
- wagtail/contrib/frontend_cache/backends/cloudfront.py +2 -2
- wagtail/contrib/frontend_cache/utils.py +1 -1
- wagtail/contrib/redirects/forms.py +1 -1
- 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.mo +0 -0
- wagtail/contrib/redirects/locale/bg/LC_MESSAGES/django.po +7 -1
- wagtail/contrib/redirects/locale/bn/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/redirects/locale/bn/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/ca/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/cs/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/cy/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/da/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/de/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/redirects/locale/de/LC_MESSAGES/django.po +15 -3
- wagtail/contrib/redirects/locale/dv/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/el/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/en/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/redirects/locale/en/LC_MESSAGES/django.po +14 -14
- wagtail/contrib/redirects/locale/en_IN/LC_MESSAGES/django.mo +0 -0
- 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.mo +0 -0
- wagtail/contrib/redirects/locale/es_419/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/es_VE/LC_MESSAGES/django.mo +0 -0
- 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.mo +0 -0
- wagtail/contrib/redirects/locale/eu/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/fa/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/fi/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/fr/LC_MESSAGES/django.po +1 -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.mo +0 -0
- 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.mo +0 -0
- 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.mo +0 -0
- 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.mo +0 -0
- wagtail/contrib/redirects/locale/it/LC_MESSAGES/django.po +17 -4
- wagtail/contrib/redirects/locale/ja/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/ka/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/redirects/locale/ka/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/ko/LC_MESSAGES/django.po +1 -1
- 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 +1 -1
- wagtail/contrib/redirects/locale/nl/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/pl/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/pt_BR/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/pt_PT/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/ro/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/ru/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/redirects/locale/ru/LC_MESSAGES/django.po +15 -2
- wagtail/contrib/redirects/locale/sk_SK/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/sl/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/locale/sr/LC_MESSAGES/django.mo +0 -0
- 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 +17 -4
- wagtail/contrib/redirects/locale/ta/LC_MESSAGES/django.mo +0 -0
- 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.po +1 -1
- 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.po +1 -1
- wagtail/contrib/redirects/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/redirects/middleware.py +11 -7
- wagtail/contrib/redirects/models.py +17 -1
- wagtail/contrib/redirects/tests/test_import_admin_views.py +3 -3
- wagtail/contrib/redirects/tests/test_redirects.py +56 -8
- wagtail/contrib/search_promotions/locale/af/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/af/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/ar/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/az_AZ/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/az_AZ/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/be/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/bg/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/bn/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/bn/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/ca/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/cs/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/cy/LC_MESSAGES/django.po +1 -1
- 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 +9 -3
- wagtail/contrib/search_promotions/locale/dv/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/el/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/en/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/en/LC_MESSAGES/django.po +6 -6
- wagtail/contrib/search_promotions/locale/es/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/es_419/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/es_419/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/et/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/eu/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/fa/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/fi/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/fr/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/gl/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/he_IL/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/hr_HR/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/ht/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/hu/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/id_ID/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/is_IS/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/it/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/it/LC_MESSAGES/django.po +44 -3
- wagtail/contrib/search_promotions/locale/ja/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/ka/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/ko/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/lt/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/lv/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/mi/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/mn/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/my/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/nb/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/nl/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/pl/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/pt_BR/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/pt_PT/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/ro/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/ru/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/ru/LC_MESSAGES/django.po +9 -3
- wagtail/contrib/search_promotions/locale/sk_SK/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/sl/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/sv/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/tet/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/th/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/tr/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/tr_TR/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/ug/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/uk/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/vi/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/zh/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/tests.py +1 -1
- wagtail/contrib/search_promotions/views/settings.py +24 -25
- wagtail/contrib/settings/jinja2tags.py +2 -2
- wagtail/contrib/settings/locale/ar/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/az_AZ/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/settings/locale/az_AZ/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/be/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/bg/LC_MESSAGES/django.mo +0 -0
- wagtail/{locale/af → contrib/settings/locale/bg}/LC_MESSAGES/django.po +7 -16
- wagtail/contrib/settings/locale/bn/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/ca/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/cs/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/cy/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/da/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/de/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/settings/locale/de/LC_MESSAGES/django.po +7 -3
- wagtail/contrib/settings/locale/dv/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/el/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/en/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/settings/locale/en/LC_MESSAGES/django.po +2 -2
- wagtail/contrib/settings/locale/en_IN/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/settings/locale/en_IN/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/es/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/es_419/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/es_VE/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/et/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/fa/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/fi/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/fr/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/gl/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/he_IL/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/hi/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/hr_HR/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/ht/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/hu/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/id_ID/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/is_IS/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/it/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/settings/locale/it/LC_MESSAGES/django.po +7 -3
- wagtail/contrib/settings/locale/ja/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/ka/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/settings/locale/ka/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/ko/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/lt/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/lv/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/mi/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/mn/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/my/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/nb/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/nl/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/pl/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/pt_BR/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/pt_PT/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/ro/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/ru/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/sk_SK/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/sl/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/sr/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/settings/locale/sr/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/settings/locale/sv/LC_MESSAGES/django.po +4 -3
- wagtail/contrib/settings/locale/ta/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/tet/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/th/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/tr/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/tr_TR/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/ug/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/uk/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/vi/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/zh/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/settings/locale/zh/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/tests/generic/test_admin.py +118 -2
- wagtail/contrib/settings/tests/shared/test_preview.py +29 -0
- wagtail/contrib/settings/tests/site_specific/test_admin.py +78 -15
- wagtail/contrib/settings/tests/site_specific/test_model.py +2 -2
- wagtail/contrib/settings/views.py +15 -2
- wagtail/contrib/simple_translation/locale/bg/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/simple_translation/locale/bg/LC_MESSAGES/django.po +26 -0
- wagtail/contrib/simple_translation/locale/el/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/simple_translation/locale/en/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/simple_translation/locale/en/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/simple_translation/locale/es_419/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/simple_translation/locale/fa/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/simple_translation/locale/it/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/simple_translation/locale/it/LC_MESSAGES/django.po +5 -2
- wagtail/contrib/simple_translation/locale/mi/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/simple_translation/locale/mn/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/simple_translation/locale/nb/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/simple_translation/locale/vi/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/simple_translation/locale/zh_Hant/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/styleguide/locale/af/LC_MESSAGES/django.mo +0 -0
- 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.mo +0 -0
- wagtail/contrib/styleguide/locale/az_AZ/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/be/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/bg/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/styleguide/locale/bg/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/bn/LC_MESSAGES/django.mo +0 -0
- 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 +1 -1
- wagtail/contrib/styleguide/locale/da/LC_MESSAGES/django.mo +0 -0
- 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 +1 -1
- wagtail/contrib/styleguide/locale/el/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/en/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/styleguide/locale/en/LC_MESSAGES/django.po +7 -7
- wagtail/contrib/styleguide/locale/en_IN/LC_MESSAGES/django.mo +0 -0
- 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.mo +0 -0
- wagtail/contrib/styleguide/locale/es_419/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/es_VE/LC_MESSAGES/django.mo +0 -0
- 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.mo +0 -0
- wagtail/contrib/styleguide/locale/he_IL/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/hi/LC_MESSAGES/django.mo +0 -0
- 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.mo +0 -0
- 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.po +1 -1
- 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.mo +0 -0
- 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.mo +0 -0
- 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/tests.py +2 -0
- wagtail/contrib/styleguide/views.py +4 -5
- wagtail/contrib/table_block/locale/ar/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/table_block/locale/ar/LC_MESSAGES/django.po +5 -1
- wagtail/contrib/table_block/locale/de/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/table_block/locale/de/LC_MESSAGES/django.po +6 -3
- wagtail/contrib/table_block/locale/en/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/table_block/locale/en/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/table_block/locale/en_IN/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/table_block/locale/et/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/table_block/locale/fa/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/table_block/locale/ht/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/table_block/locale/id_ID/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/table_block/locale/it/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/table_block/locale/it/LC_MESSAGES/django.po +5 -2
- wagtail/contrib/table_block/locale/ja/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/table_block/locale/lv/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/table_block/locale/mi/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/table_block/locale/mn/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/table_block/locale/my/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/table_block/locale/nb/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/table_block/locale/ru/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/table_block/locale/ru/LC_MESSAGES/django.po +6 -3
- wagtail/contrib/table_block/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/table_block/locale/tet/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/table_block/locale/tr_TR/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/table_block/locale/zh_Hant/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/typed_table_block/blocks.py +37 -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.mo +0 -0
- 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.mo +0 -0
- 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.mo +0 -0
- wagtail/contrib/typed_table_block/locale/sv/LC_MESSAGES/django.po +5 -4
- wagtail/contrib/typed_table_block/locale/th/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/typed_table_block/locale/th/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/tr/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 +108 -0
- wagtail/coreutils.py +4 -4
- wagtail/documents/__init__.py +4 -4
- wagtail/documents/locale/af/LC_MESSAGES/django.mo +0 -0
- wagtail/documents/locale/af/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/ar/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/az_AZ/LC_MESSAGES/django.mo +0 -0
- 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.mo +0 -0
- wagtail/documents/locale/bg/LC_MESSAGES/django.po +10 -1
- wagtail/documents/locale/bn/LC_MESSAGES/django.mo +0 -0
- wagtail/documents/locale/bn/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/ca/LC_MESSAGES/django.po +1 -1
- 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 +18 -3
- wagtail/documents/locale/dv/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/el/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/en/LC_MESSAGES/django.mo +0 -0
- wagtail/documents/locale/en/LC_MESSAGES/django.po +15 -15
- wagtail/documents/locale/es/LC_MESSAGES/django.po +1 -1
- 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.mo +0 -0
- 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.po +1 -1
- wagtail/documents/locale/fr/LC_MESSAGES/django.po +1 -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.mo +0 -0
- wagtail/documents/locale/ht/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/hu/LC_MESSAGES/django.po +1 -1
- 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 +33 -3
- 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.po +1 -1
- 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.po +1 -1
- wagtail/documents/locale/nl/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/pl/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/pt_BR/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/pt_PT/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/ro/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/ru/LC_MESSAGES/django.mo +0 -0
- wagtail/documents/locale/ru/LC_MESSAGES/django.po +7 -3
- wagtail/documents/locale/sk_SK/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/sl/LC_MESSAGES/django.po +1 -1
- wagtail/documents/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/documents/locale/sv/LC_MESSAGES/django.po +33 -5
- 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.po +1 -1
- wagtail/documents/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
- wagtail/documents/models.py +1 -1
- wagtail/documents/tests/test_admin_views.py +19 -4
- wagtail/documents/tests/test_search.py +0 -2
- wagtail/documents/tests/test_views.py +6 -4
- wagtail/documents/views/bulk_actions/add_tags.py +1 -1
- wagtail/embeds/finders/facebook.py +3 -3
- wagtail/embeds/finders/instagram.py +3 -3
- wagtail/embeds/finders/oembed.py +7 -2
- wagtail/embeds/locale/az_AZ/LC_MESSAGES/django.mo +0 -0
- wagtail/embeds/locale/bn/LC_MESSAGES/django.mo +0 -0
- wagtail/embeds/locale/da/LC_MESSAGES/django.mo +0 -0
- wagtail/embeds/locale/dv/LC_MESSAGES/django.mo +0 -0
- wagtail/embeds/locale/en/LC_MESSAGES/django.mo +0 -0
- wagtail/embeds/locale/en/LC_MESSAGES/django.po +1 -1
- wagtail/embeds/locale/es_419/LC_MESSAGES/django.mo +0 -0
- wagtail/embeds/locale/lv/LC_MESSAGES/django.mo +0 -0
- wagtail/embeds/locale/my/LC_MESSAGES/django.mo +0 -0
- wagtail/embeds/oembed_providers.py +8 -0
- wagtail/embeds/tests/test_embeds.py +35 -0
- wagtail/images/__init__.py +4 -4
- wagtail/images/admin_urls.py +3 -3
- wagtail/images/blocks.py +1 -1
- wagtail/images/formats.py +2 -2
- wagtail/images/image_operations.py +2 -2
- wagtail/images/locale/ar/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/az_AZ/LC_MESSAGES/django.mo +0 -0
- 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.mo +0 -0
- wagtail/images/locale/bg/LC_MESSAGES/django.po +13 -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 +6 -3
- wagtail/images/locale/cs/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/cy/LC_MESSAGES/django.po +1 -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 +30 -3
- wagtail/images/locale/dv/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/el/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/en/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/en/LC_MESSAGES/django.po +44 -40
- 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.mo +0 -0
- wagtail/images/locale/eu/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/fa/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/fi/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/fr/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/fr/LC_MESSAGES/django.po +6 -3
- wagtail/images/locale/gl/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/gl/LC_MESSAGES/django.po +6 -3
- 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.mo +0 -0
- wagtail/images/locale/ht/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/hu/LC_MESSAGES/django.po +1 -1
- 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 +54 -5
- 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.po +1 -1
- 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.po +1 -1
- wagtail/images/locale/my/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/nb/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/nl/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/nl/LC_MESSAGES/django.po +9 -6
- wagtail/images/locale/pl/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/pt_BR/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/pt_PT/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/ro/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/ru/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/ru/LC_MESSAGES/django.po +15 -3
- wagtail/images/locale/sk_SK/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/sl/LC_MESSAGES/django.po +1 -1
- wagtail/images/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/sv/LC_MESSAGES/django.po +50 -7
- 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.po +1 -1
- 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 +1 -1
- wagtail/images/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
- wagtail/images/models.py +11 -10
- wagtail/images/templates/wagtailimages/images/index_results.html +1 -1
- wagtail/images/templates/wagtailimages/images/url_generator.html +17 -38
- wagtail/images/templates/wagtailimages/images/url_generator_output.html +28 -0
- wagtail/images/templatetags/wagtailimages_tags.py +4 -4
- wagtail/images/tests/test_admin_views.py +432 -59
- wagtail/images/tests/test_image_operations.py +2 -2
- wagtail/images/tests/test_models.py +0 -2
- wagtail/images/views/bulk_actions/add_tags.py +1 -1
- wagtail/images/views/images.py +72 -39
- wagtail/locale/ar/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/ar/LC_MESSAGES/django.po +10 -19
- wagtail/locale/az_AZ/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/az_AZ/LC_MESSAGES/django.po +4 -4
- wagtail/locale/be/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/be/LC_MESSAGES/django.po +7 -19
- wagtail/locale/bg/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/bg/LC_MESSAGES/django.po +35 -11
- wagtail/locale/bn/LC_MESSAGES/django.po +4 -4
- wagtail/locale/ca/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/ca/LC_MESSAGES/django.po +24 -21
- wagtail/locale/cs/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/cs/LC_MESSAGES/django.po +7 -19
- wagtail/locale/cy/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/cy/LC_MESSAGES/django.po +10 -13
- wagtail/locale/da/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/da/LC_MESSAGES/django.po +7 -16
- wagtail/locale/de/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/de/LC_MESSAGES/django.po +41 -21
- wagtail/locale/dv/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/dv/LC_MESSAGES/django.po +7 -19
- wagtail/locale/el/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/el/LC_MESSAGES/django.po +10 -19
- wagtail/locale/en/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/en/LC_MESSAGES/django.po +103 -105
- wagtail/locale/es/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/es/LC_MESSAGES/django.po +10 -19
- wagtail/locale/es_419/LC_MESSAGES/django.po +6 -6
- wagtail/locale/et/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/et/LC_MESSAGES/django.po +7 -16
- wagtail/locale/eu/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/eu/LC_MESSAGES/django.po +4 -10
- wagtail/locale/fa/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/fa/LC_MESSAGES/django.po +10 -16
- wagtail/locale/fi/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/fi/LC_MESSAGES/django.po +10 -19
- wagtail/locale/fr/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/fr/LC_MESSAGES/django.po +24 -21
- wagtail/locale/gl/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/gl/LC_MESSAGES/django.po +24 -21
- wagtail/locale/he_IL/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/he_IL/LC_MESSAGES/django.po +10 -16
- wagtail/locale/hr_HR/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/hr_HR/LC_MESSAGES/django.po +7 -16
- wagtail/locale/hu/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/hu/LC_MESSAGES/django.po +10 -19
- wagtail/locale/id_ID/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/id_ID/LC_MESSAGES/django.po +7 -16
- wagtail/locale/is_IS/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/is_IS/LC_MESSAGES/django.po +10 -19
- wagtail/locale/it/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/it/LC_MESSAGES/django.po +126 -21
- wagtail/locale/ja/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/ja/LC_MESSAGES/django.po +10 -19
- wagtail/locale/ka/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/ka/LC_MESSAGES/django.po +9 -6
- wagtail/locale/ko/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/ko/LC_MESSAGES/django.po +10 -19
- wagtail/locale/lt/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/lt/LC_MESSAGES/django.po +7 -19
- wagtail/locale/lv/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/lv/LC_MESSAGES/django.po +10 -19
- wagtail/locale/mi/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/mi/LC_MESSAGES/django.po +7 -13
- wagtail/locale/mn/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/mn/LC_MESSAGES/django.po +7 -16
- wagtail/locale/my/LC_MESSAGES/django.po +6 -6
- wagtail/locale/nb/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/nb/LC_MESSAGES/django.po +10 -16
- wagtail/locale/nl/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/nl/LC_MESSAGES/django.po +22 -21
- wagtail/locale/pl/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/pl/LC_MESSAGES/django.po +10 -19
- wagtail/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/pt_BR/LC_MESSAGES/django.po +10 -19
- wagtail/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/pt_PT/LC_MESSAGES/django.po +10 -19
- wagtail/locale/ro/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/ro/LC_MESSAGES/django.po +10 -19
- wagtail/locale/ru/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/ru/LC_MESSAGES/django.po +32 -21
- wagtail/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/sk_SK/LC_MESSAGES/django.po +10 -16
- wagtail/locale/sl/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/sl/LC_MESSAGES/django.po +10 -19
- wagtail/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/sv/LC_MESSAGES/django.po +105 -31
- wagtail/locale/tet/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/tet/LC_MESSAGES/django.po +7 -16
- wagtail/locale/th/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/th/LC_MESSAGES/django.po +7 -19
- wagtail/locale/tr/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/tr/LC_MESSAGES/django.po +10 -19
- wagtail/locale/tr_TR/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/tr_TR/LC_MESSAGES/django.po +10 -16
- wagtail/locale/ug/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/ug/LC_MESSAGES/django.po +10 -19
- wagtail/locale/uk/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/uk/LC_MESSAGES/django.po +7 -19
- wagtail/locale/vi/LC_MESSAGES/django.po +7 -7
- wagtail/locale/zh/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/zh/LC_MESSAGES/django.po +6 -15
- wagtail/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/zh_Hans/LC_MESSAGES/django.po +10 -19
- wagtail/locale/zh_Hant/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/zh_Hant/LC_MESSAGES/django.po +7 -19
- wagtail/locales/locale/bg/LC_MESSAGES/django.mo +0 -0
- wagtail/locales/locale/bg/LC_MESSAGES/django.po +9 -2
- wagtail/locales/locale/da/LC_MESSAGES/django.mo +0 -0
- wagtail/locales/locale/el/LC_MESSAGES/django.mo +0 -0
- wagtail/locales/locale/en/LC_MESSAGES/django.mo +0 -0
- wagtail/locales/locale/en/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/et/LC_MESSAGES/django.mo +0 -0
- wagtail/locales/locale/fa/LC_MESSAGES/django.mo +0 -0
- wagtail/locales/locale/he_IL/LC_MESSAGES/django.mo +0 -0
- wagtail/locales/locale/id_ID/LC_MESSAGES/django.mo +0 -0
- wagtail/locales/locale/it/LC_MESSAGES/django.mo +0 -0
- wagtail/locales/locale/it/LC_MESSAGES/django.po +13 -2
- wagtail/locales/locale/ja/LC_MESSAGES/django.mo +0 -0
- wagtail/locales/locale/lv/LC_MESSAGES/django.mo +0 -0
- wagtail/locales/locale/mn/LC_MESSAGES/django.mo +0 -0
- wagtail/locales/locale/my/LC_MESSAGES/django.mo +0 -0
- wagtail/locales/locale/nb/LC_MESSAGES/django.mo +0 -0
- wagtail/locales/locale/ru/LC_MESSAGES/django.mo +0 -0
- wagtail/locales/locale/ru/LC_MESSAGES/django.po +7 -2
- wagtail/locales/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
- wagtail/locales/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/locales/locale/sv/LC_MESSAGES/django.po +4 -3
- wagtail/locales/locale/tet/LC_MESSAGES/django.mo +0 -0
- wagtail/locales/locale/th/LC_MESSAGES/django.mo +0 -0
- wagtail/locales/locale/tr_TR/LC_MESSAGES/django.mo +0 -0
- wagtail/locales/locale/vi/LC_MESSAGES/django.mo +0 -0
- wagtail/locales/locale/zh/LC_MESSAGES/django.mo +0 -0
- wagtail/locales/locale/zh_Hant/LC_MESSAGES/django.mo +0 -0
- wagtail/locales/tests.py +5 -5
- wagtail/models/i18n.py +4 -6
- wagtail/models/media.py +18 -0
- wagtail/models/pages.py +65 -11
- wagtail/models/reference_index.py +15 -0
- wagtail/models/revisions.py +40 -12
- wagtail/models/workflows.py +0 -3
- wagtail/permission_policies/base.py +2 -2
- wagtail/permission_policies/collections.py +2 -2
- wagtail/project_template/requirements.txt +2 -2
- wagtail/search/locale/ar/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/be/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/ca/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/cs/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/cy/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/de/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/dv/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/en/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/en/LC_MESSAGES/django.po +1 -1
- wagtail/search/locale/es/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/et/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/fa/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/fi/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/fr/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/gl/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/hr_HR/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/ht/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/hu/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/id_ID/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/is_IS/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/it/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/ja/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/ko/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/lt/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/mi/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/mn/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/my/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/nb/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/nl/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/pl/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/ro/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/ru/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/sl/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/tet/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/th/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/tr/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/tr_TR/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/ug/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/uk/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/vi/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/zh_Hant/LC_MESSAGES/django.mo +0 -0
- wagtail/signal_handlers.py +1 -0
- wagtail/sites/locale/bn/LC_MESSAGES/django.mo +0 -0
- wagtail/sites/locale/da/LC_MESSAGES/django.mo +0 -0
- wagtail/sites/locale/dv/LC_MESSAGES/django.mo +0 -0
- wagtail/sites/locale/en/LC_MESSAGES/django.mo +0 -0
- wagtail/sites/locale/en/LC_MESSAGES/django.po +1 -1
- wagtail/sites/locale/en_IN/LC_MESSAGES/django.mo +0 -0
- wagtail/sites/locale/es_419/LC_MESSAGES/django.mo +0 -0
- wagtail/sites/locale/es_VE/LC_MESSAGES/django.mo +0 -0
- wagtail/sites/locale/hi/LC_MESSAGES/django.mo +0 -0
- wagtail/sites/locale/ka/LC_MESSAGES/django.mo +0 -0
- wagtail/sites/locale/sr/LC_MESSAGES/django.mo +0 -0
- wagtail/sites/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/sites/locale/sv/LC_MESSAGES/django.po +3 -2
- wagtail/sites/locale/ta/LC_MESSAGES/django.mo +0 -0
- wagtail/sites/tests.py +7 -7
- wagtail/snippets/action_menu.py +2 -1
- wagtail/snippets/locale/af/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/af/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/ar/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/az_AZ/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/be/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/bg/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/bg/LC_MESSAGES/django.po +10 -1
- wagtail/snippets/locale/bn/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/ca/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/ca/LC_MESSAGES/django.po +11 -3
- wagtail/snippets/locale/cs/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/cy/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/da/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/de/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/de/LC_MESSAGES/django.po +15 -3
- wagtail/snippets/locale/dv/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/el/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/en/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/en/LC_MESSAGES/django.po +23 -13
- wagtail/snippets/locale/en_IN/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/en_IN/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/es/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/es_419/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/es_VE/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/et/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/eu/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/eu/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/fa/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/fi/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/fr/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/fr/LC_MESSAGES/django.po +11 -3
- wagtail/snippets/locale/gl/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/gl/LC_MESSAGES/django.po +9 -1
- wagtail/snippets/locale/he_IL/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/hi/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/hi/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/hr_HR/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/ht/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/ht/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/hu/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/id_ID/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/is_IS/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/it/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/it/LC_MESSAGES/django.po +11 -1
- wagtail/snippets/locale/ja/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/ka/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/ka/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/ko/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/lt/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/lv/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/mi/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/mn/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/my/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/nb/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/nl/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/nl/LC_MESSAGES/django.po +11 -3
- wagtail/snippets/locale/pl/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/pt_BR/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/pt_PT/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/ro/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/ru/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/ru/LC_MESSAGES/django.po +11 -3
- wagtail/snippets/locale/sk_SK/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/sl/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/sr/LC_MESSAGES/django.mo +0 -0
- 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 +13 -2
- wagtail/snippets/locale/ta/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/ta/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/tet/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/th/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/tr/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/tr_TR/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/ug/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/uk/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/vi/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/zh/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/tests/test_chooser_block.py +197 -0
- wagtail/snippets/tests/test_chooser_panel.py +149 -0
- wagtail/snippets/tests/test_chooser_views.py +375 -0
- wagtail/snippets/tests/test_chooser_widget.py +22 -0
- wagtail/snippets/tests/test_compare_revisions_view.py +167 -0
- wagtail/snippets/tests/test_copy_view.py +38 -0
- wagtail/snippets/tests/test_create_view.py +1163 -0
- wagtail/snippets/tests/test_delete_view.py +225 -0
- wagtail/snippets/tests/test_edit_view.py +3243 -0
- wagtail/snippets/tests/test_history_view.py +182 -0
- wagtail/snippets/tests/test_index_view.py +105 -0
- wagtail/snippets/tests/test_list_view.py +786 -0
- wagtail/snippets/tests/test_locking.py +28 -0
- wagtail/snippets/tests/test_permissions.py +167 -0
- wagtail/snippets/tests/test_preview.py +56 -3
- wagtail/snippets/tests/test_revert_view.py +343 -0
- wagtail/snippets/tests/test_snippet_models.py +112 -0
- wagtail/snippets/tests/test_unpublish_view.py +228 -0
- wagtail/snippets/tests/test_unschedule_view.py +151 -0
- wagtail/snippets/tests/test_viewset.py +38 -5
- wagtail/snippets/views/snippets.py +76 -30
- wagtail/snippets/widgets.py +2 -2
- wagtail/templatetags/wagtailcore_tags.py +2 -2
- wagtail/test/dummy_external_storage.py +1 -1
- wagtail/test/testapp/fixtures/test.json +22 -0
- wagtail/test/testapp/fixtures/test_empty.json +2 -0
- wagtail/test/testapp/fixtures/test_explorable_pages.json +10 -0
- wagtail/test/testapp/fixtures/test_specific.json +9 -0
- wagtail/test/testapp/migrations/0059_nopromotepage.py +25 -0
- wagtail/test/testapp/models.py +7 -0
- wagtail/test/testapp/views.py +5 -0
- wagtail/test/utils/page_tests.py +7 -7
- wagtail/test/utils/wagtail_factories/builder.py +2 -2
- wagtail/tests/streamfield_migrations/test_migrations.py +35 -0
- wagtail/tests/test_blocks.py +321 -61
- wagtail/tests/test_collection_model.py +12 -0
- wagtail/tests/test_page_model.py +190 -1
- wagtail/tests/test_page_privacy.py +5 -0
- wagtail/tests/test_reference_index.py +42 -0
- wagtail/tests/test_revision_model.py +118 -1
- wagtail/tests/test_utils.py +2 -2
- wagtail/users/locale/ar/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/be/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/bg/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/bg/LC_MESSAGES/django.po +10 -1
- wagtail/users/locale/bn/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/ca/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/cs/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/cy/LC_MESSAGES/django.po +1 -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 +6 -3
- wagtail/users/locale/dv/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/el/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/en/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/en/LC_MESSAGES/django.po +14 -14
- 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.mo +0 -0
- wagtail/users/locale/eu/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/fa/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/fi/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/fr/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/gl/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/he_IL/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/hr_HR/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/hu/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/hy/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/id_ID/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/id_ID/LC_MESSAGES/django.po +7 -3
- 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 +15 -3
- 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.po +1 -1
- 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.po +1 -1
- wagtail/users/locale/my/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/nb/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/nl/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/pl/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/pt_BR/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/pt_PT/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/ro/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/ru/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/ru/LC_MESSAGES/django.po +4 -4
- wagtail/users/locale/sk_SK/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/sl/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/sv/LC_MESSAGES/django.po +49 -18
- wagtail/users/locale/tet/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/th/LC_MESSAGES/django.po +1 -1
- 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.po +1 -1
- wagtail/users/locale/vi/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/zh/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
- wagtail/users/tests/test_admin_views.py +39 -25
- wagtail/users/utils.py +4 -1
- wagtail/users/views/groups.py +19 -5
- wagtail/users/wagtail_hooks.py +1 -1
- wagtail/utils/loading.py +2 -2
- wagtail-7.3.data/data/AGENTS.md +21 -0
- wagtail-7.3.data/data/CHANGELOG.txt +4957 -0
- wagtail-7.3.data/data/CODE_OF_CONDUCT.md +71 -0
- wagtail-7.3.data/data/CONTRIBUTORS.md +1001 -0
- wagtail-7.3.data/data/SPONSORS.md +55 -0
- {wagtail-7.2.1.dist-info → wagtail-7.3.dist-info}/METADATA +6 -6
- {wagtail-7.2.1.dist-info → wagtail-7.3.dist-info}/RECORD +1301 -1267
- {wagtail-7.2.1.dist-info → wagtail-7.3.dist-info}/WHEEL +1 -1
- wagtail/images/static/wagtailimages/js/image-url-generator.js +0 -1
- wagtail/snippets/tests/test_snippets.py +0 -6377
- {wagtail-7.2.1.dist-info → wagtail-7.3.dist-info}/entry_points.txt +0 -0
- {wagtail-7.2.1.dist-info → wagtail-7.3.dist-info}/licenses/LICENSE +0 -0
- {wagtail-7.2.1.dist-info → wagtail-7.3.dist-info}/top_level.txt +0 -0
|
@@ -21,6 +21,7 @@ from willow.optimizers.base import OptimizerBase
|
|
|
21
21
|
from willow.registry import registry
|
|
22
22
|
|
|
23
23
|
from wagtail.admin.admin_url_finder import AdminURLFinder
|
|
24
|
+
from wagtail.admin.staticfiles import versioned_static
|
|
24
25
|
from wagtail.admin.ui.tables import Table
|
|
25
26
|
from wagtail.images import get_image_model
|
|
26
27
|
from wagtail.images.utils import generate_signature
|
|
@@ -60,7 +61,7 @@ class TestImageIndexView(WagtailTestUtils, TestCase):
|
|
|
60
61
|
file=get_test_image_file(size=(1, 1)),
|
|
61
62
|
)
|
|
62
63
|
|
|
63
|
-
def get(self, params=
|
|
64
|
+
def get(self, params=None):
|
|
64
65
|
return self.client.get(reverse("wagtailimages:index"), params)
|
|
65
66
|
|
|
66
67
|
def test_simple(self):
|
|
@@ -656,6 +657,20 @@ class TestImageIndexView(WagtailTestUtils, TestCase):
|
|
|
656
657
|
[unused_image],
|
|
657
658
|
)
|
|
658
659
|
|
|
660
|
+
def test_bulk_action_rendered(self):
|
|
661
|
+
response = self.get()
|
|
662
|
+
self.assertEqual(response.status_code, 200)
|
|
663
|
+
# Should render bulk actions markup
|
|
664
|
+
bulk_actions_js = versioned_static("wagtailadmin/js/bulk-actions.js")
|
|
665
|
+
soup = self.get_soup(response.content)
|
|
666
|
+
script = soup.select_one(f"script[src='{bulk_actions_js}']")
|
|
667
|
+
self.assertIsNotNone(script)
|
|
668
|
+
bulk_actions = soup.select("[data-bulk-action-button]")
|
|
669
|
+
self.assertTrue(bulk_actions)
|
|
670
|
+
# 'next' parameter is constructed client-side later based on filters state
|
|
671
|
+
for action in bulk_actions:
|
|
672
|
+
self.assertNotIn("next=", action["href"])
|
|
673
|
+
|
|
659
674
|
|
|
660
675
|
class TestBulkActionsColumn(WagtailTestUtils, TestCase):
|
|
661
676
|
def setUp(self):
|
|
@@ -710,7 +725,7 @@ class TestImageIndexViewSearch(WagtailTestUtils, TransactionTestCase):
|
|
|
710
725
|
self.puppy_image.created_at = local_datetime(2022, 2, 2)
|
|
711
726
|
self.puppy_image.save()
|
|
712
727
|
|
|
713
|
-
def get(self, params=
|
|
728
|
+
def get(self, params=None):
|
|
714
729
|
return self.client.get(reverse("wagtailimages:index"), params)
|
|
715
730
|
|
|
716
731
|
def test_search(self):
|
|
@@ -876,7 +891,7 @@ class TestImageListingResultsView(WagtailTestUtils, TransactionTestCase):
|
|
|
876
891
|
def setUp(self):
|
|
877
892
|
self.login()
|
|
878
893
|
|
|
879
|
-
def get(self, params=
|
|
894
|
+
def get(self, params=None):
|
|
880
895
|
return self.client.get(reverse("wagtailimages:index_results"), params)
|
|
881
896
|
|
|
882
897
|
def test_search(self):
|
|
@@ -898,10 +913,10 @@ class TestImageAddView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
|
|
898
913
|
def setUp(self):
|
|
899
914
|
self.login()
|
|
900
915
|
|
|
901
|
-
def get(self, params=
|
|
916
|
+
def get(self, params=None):
|
|
902
917
|
return self.client.get(reverse("wagtailimages:add"), params)
|
|
903
918
|
|
|
904
|
-
def post(self, post_data=
|
|
919
|
+
def post(self, post_data=None):
|
|
905
920
|
return self.client.post(reverse("wagtailimages:add"), post_data)
|
|
906
921
|
|
|
907
922
|
def test_get(self):
|
|
@@ -1280,10 +1295,10 @@ class TestImageAddViewWithLimitedCollectionPermissions(WagtailTestUtils, TestCas
|
|
|
1280
1295
|
|
|
1281
1296
|
self.login(username="moriarty", password="password")
|
|
1282
1297
|
|
|
1283
|
-
def get(self, params=
|
|
1298
|
+
def get(self, params=None):
|
|
1284
1299
|
return self.client.get(reverse("wagtailimages:add"), params)
|
|
1285
1300
|
|
|
1286
|
-
def post(self, post_data=
|
|
1301
|
+
def post(self, post_data=None):
|
|
1287
1302
|
return self.client.post(reverse("wagtailimages:add"), post_data)
|
|
1288
1303
|
|
|
1289
1304
|
def test_get(self):
|
|
@@ -1348,12 +1363,12 @@ class TestImageEditView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
|
|
1348
1363
|
def update_from_db(self):
|
|
1349
1364
|
self.image = Image.objects.get(pk=self.image.pk)
|
|
1350
1365
|
|
|
1351
|
-
def get(self, params=
|
|
1366
|
+
def get(self, params=None):
|
|
1352
1367
|
return self.client.get(
|
|
1353
1368
|
reverse("wagtailimages:edit", args=(self.image.id,)), params
|
|
1354
1369
|
)
|
|
1355
1370
|
|
|
1356
|
-
def post(self, post_data=
|
|
1371
|
+
def post(self, post_data=None):
|
|
1357
1372
|
return self.client.post(
|
|
1358
1373
|
reverse("wagtailimages:edit", args=(self.image.id,)), post_data
|
|
1359
1374
|
)
|
|
@@ -1739,7 +1754,7 @@ class TestImageEditViewWithCustomImageModel(WagtailTestUtils, TestCase):
|
|
|
1739
1754
|
|
|
1740
1755
|
self.storage = self.image.file.storage
|
|
1741
1756
|
|
|
1742
|
-
def get(self, params=
|
|
1757
|
+
def get(self, params=None):
|
|
1743
1758
|
return self.client.get(
|
|
1744
1759
|
reverse("wagtailimages:edit", args=(self.image.id,)), params
|
|
1745
1760
|
)
|
|
@@ -1768,10 +1783,10 @@ class TestImageDeleteView(WagtailTestUtils, TestCase):
|
|
|
1768
1783
|
|
|
1769
1784
|
self.delete_url = reverse("wagtailimages:delete", args=(self.image.id,))
|
|
1770
1785
|
|
|
1771
|
-
def get(self, params=
|
|
1786
|
+
def get(self, params=None):
|
|
1772
1787
|
return self.client.get(self.delete_url, params)
|
|
1773
1788
|
|
|
1774
|
-
def post(self, post_data=
|
|
1789
|
+
def post(self, post_data=None, **kwargs):
|
|
1775
1790
|
return self.client.post(self.delete_url, post_data, **kwargs)
|
|
1776
1791
|
|
|
1777
1792
|
def test_simple(self):
|
|
@@ -1987,7 +2002,7 @@ class TestImageChooserView(WagtailTestUtils, TestCase):
|
|
|
1987
2002
|
def setUp(self):
|
|
1988
2003
|
self.user = self.login()
|
|
1989
2004
|
|
|
1990
|
-
def get(self, params=
|
|
2005
|
+
def get(self, params=None):
|
|
1991
2006
|
return self.client.get(reverse("wagtailimages_chooser:choose"), params)
|
|
1992
2007
|
|
|
1993
2008
|
def test_simple(self):
|
|
@@ -2288,7 +2303,7 @@ class TestImageChooserViewSearch(WagtailTestUtils, TransactionTestCase):
|
|
|
2288
2303
|
def setUp(self):
|
|
2289
2304
|
self.user = self.login()
|
|
2290
2305
|
|
|
2291
|
-
def get(self, params=
|
|
2306
|
+
def get(self, params=None):
|
|
2292
2307
|
return self.client.get(reverse("wagtailimages_chooser:choose"), params)
|
|
2293
2308
|
|
|
2294
2309
|
def test_construct_queryset_hook_search(self):
|
|
@@ -2324,7 +2339,7 @@ class TestImageChooserChosenView(WagtailTestUtils, TestCase):
|
|
|
2324
2339
|
description="Test description",
|
|
2325
2340
|
)
|
|
2326
2341
|
|
|
2327
|
-
def get(self, params=
|
|
2342
|
+
def get(self, params=None):
|
|
2328
2343
|
return self.client.get(
|
|
2329
2344
|
reverse("wagtailimages_chooser:chosen", args=(self.image.id,)), params
|
|
2330
2345
|
)
|
|
@@ -2383,7 +2398,7 @@ class TestImageChooserChosenMultipleView(WagtailTestUtils, TestCase):
|
|
|
2383
2398
|
description="Unchosen test description",
|
|
2384
2399
|
)
|
|
2385
2400
|
|
|
2386
|
-
def get(self, params=
|
|
2401
|
+
def get(self, params=None):
|
|
2387
2402
|
return self.client.get(
|
|
2388
2403
|
"%s?id=%d&id=%d"
|
|
2389
2404
|
% (
|
|
@@ -2416,13 +2431,13 @@ class TestImageChooserSelectFormatView(WagtailTestUtils, TestCase):
|
|
|
2416
2431
|
file=get_test_image_file(),
|
|
2417
2432
|
)
|
|
2418
2433
|
|
|
2419
|
-
def get(self, params=
|
|
2434
|
+
def get(self, params=None):
|
|
2420
2435
|
return self.client.get(
|
|
2421
2436
|
reverse("wagtailimages_chooser:select_format", args=(self.image.id,)),
|
|
2422
2437
|
params,
|
|
2423
2438
|
)
|
|
2424
2439
|
|
|
2425
|
-
def post(self, post_data=
|
|
2440
|
+
def post(self, post_data=None):
|
|
2426
2441
|
return self.client.post(
|
|
2427
2442
|
reverse("wagtailimages_chooser:select_format", args=(self.image.id,)),
|
|
2428
2443
|
post_data,
|
|
@@ -2505,7 +2520,7 @@ class TestImageChooserUploadView(WagtailTestUtils, TestCase):
|
|
|
2505
2520
|
def setUp(self):
|
|
2506
2521
|
self.login()
|
|
2507
2522
|
|
|
2508
|
-
def get(self, params=
|
|
2523
|
+
def get(self, params=None):
|
|
2509
2524
|
return self.client.get(reverse("wagtailimages_chooser:create"), params)
|
|
2510
2525
|
|
|
2511
2526
|
def test_simple(self):
|
|
@@ -3943,8 +3958,46 @@ class TestURLGeneratorView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
|
|
3943
3958
|
# Check response
|
|
3944
3959
|
self.assertEqual(response.status_code, 200)
|
|
3945
3960
|
self.assertTemplateUsed(response, "wagtailimages/images/url_generator.html")
|
|
3961
|
+
self.assertTemplateUsed(
|
|
3962
|
+
response, "wagtailimages/images/url_generator_output.html"
|
|
3963
|
+
)
|
|
3946
3964
|
self.assertTemplateUsed(response, "wagtailadmin/generic/base.html")
|
|
3947
3965
|
|
|
3966
|
+
# Check form defaults are based on image with correct defaults are provided to context
|
|
3967
|
+
self.assertEqual(response.context["form"].initial["width"], self.image.width)
|
|
3968
|
+
self.assertEqual(response.context["form"].initial["height"], self.image.height)
|
|
3969
|
+
self.assertEqual(response.context["form"].initial["filter_method"], "original")
|
|
3970
|
+
self.assertEqual(response.context["form"].initial["closeness"], "0")
|
|
3971
|
+
|
|
3972
|
+
# Check the attributes on the root form for swap usage
|
|
3973
|
+
soup = self.get_soup(response.content)
|
|
3974
|
+
form = soup.find("form", {"id": "image-url-generator-form"})
|
|
3975
|
+
self.assertIsNotNone(form)
|
|
3976
|
+
self.assertIn("w-swap", form["data-controller"])
|
|
3977
|
+
self.assertEqual(form["data-w-swap-loading-class"], "loading")
|
|
3978
|
+
self.assertEqual(
|
|
3979
|
+
form["data-w-swap-messages-value"],
|
|
3980
|
+
'{"400": "The filter options you have selected are not valid."}',
|
|
3981
|
+
)
|
|
3982
|
+
self.assertEqual(
|
|
3983
|
+
form["data-w-swap-src-value"],
|
|
3984
|
+
reverse("wagtailimages:url_generator_output", args=(self.image.id,)),
|
|
3985
|
+
)
|
|
3986
|
+
self.assertEqual(
|
|
3987
|
+
form["data-w-swap-target-value"], "output[form='image-url-generator-form']"
|
|
3988
|
+
)
|
|
3989
|
+
|
|
3990
|
+
# Check that the correct URLs are provided to context to show the result and preview on initial load
|
|
3991
|
+
self.assertTrue(
|
|
3992
|
+
response.context["preview_url"].endswith(
|
|
3993
|
+
f"/images/{self.image.id}/preview/original/"
|
|
3994
|
+
)
|
|
3995
|
+
)
|
|
3996
|
+
self.assertTrue(
|
|
3997
|
+
response.context["result_url"].endswith(f"/{self.image.id}/original/")
|
|
3998
|
+
)
|
|
3999
|
+
|
|
4000
|
+
# Check that the breadcrumbs are correct
|
|
3948
4001
|
self.assertBreadcrumbsItemsRendered(
|
|
3949
4002
|
[
|
|
3950
4003
|
{"url": reverse("wagtailimages:index"), "label": "Images"},
|
|
@@ -3964,6 +4017,75 @@ class TestURLGeneratorView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
|
|
3964
4017
|
self.assertEqual(closeness.get("min"), "0")
|
|
3965
4018
|
self.assertEqual(closeness.get("max"), "100")
|
|
3966
4019
|
|
|
4020
|
+
def test_get_with_search_params(self):
|
|
4021
|
+
"""
|
|
4022
|
+
This tests that the view responds correctly with support for search params to override
|
|
4023
|
+
the form initial values & generated preview/result URLs when partial params are provided.
|
|
4024
|
+
"""
|
|
4025
|
+
# Get
|
|
4026
|
+
response = self.client.get(
|
|
4027
|
+
reverse("wagtailimages:url_generator", args=(self.image.id,))
|
|
4028
|
+
+ "?filter_method=max&closeness=5"
|
|
4029
|
+
)
|
|
4030
|
+
|
|
4031
|
+
# Check response
|
|
4032
|
+
self.assertEqual(response.status_code, 200)
|
|
4033
|
+
|
|
4034
|
+
# Check form defaults are based based on the search params & image sizes
|
|
4035
|
+
self.assertEqual(response.context["form"].initial["width"], self.image.width)
|
|
4036
|
+
self.assertEqual(response.context["form"].initial["height"], self.image.height)
|
|
4037
|
+
self.assertEqual(response.context["form"].initial["filter_method"], "max")
|
|
4038
|
+
self.assertEqual(response.context["form"].initial["closeness"], "5")
|
|
4039
|
+
|
|
4040
|
+
# Check that the correct URLs are provided to context to show the result based on the search params
|
|
4041
|
+
# -c5 should not be included as it's not part of that filter spec
|
|
4042
|
+
filter_spec = "max-640x480"
|
|
4043
|
+
|
|
4044
|
+
self.assertTrue(
|
|
4045
|
+
response.context["preview_url"].endswith(
|
|
4046
|
+
f"/images/{self.image.id}/preview/{filter_spec}/"
|
|
4047
|
+
),
|
|
4048
|
+
f"`{response.context['preview_url']}` does not end with `/images/{self.image.id}/preview/{filter_spec}/`",
|
|
4049
|
+
)
|
|
4050
|
+
self.assertTrue(
|
|
4051
|
+
response.context["result_url"].endswith(f"/{self.image.id}/{filter_spec}/"),
|
|
4052
|
+
f"`{response.context['result_url']}` does not end with `/{self.image.id}/{filter_spec}/`",
|
|
4053
|
+
)
|
|
4054
|
+
|
|
4055
|
+
def test_get_with_all_search_params(self):
|
|
4056
|
+
"""
|
|
4057
|
+
This tests that the view responds correctly with support for search params to override
|
|
4058
|
+
the form initial values & generated preview/result URLs.
|
|
4059
|
+
"""
|
|
4060
|
+
# Get
|
|
4061
|
+
response = self.client.get(
|
|
4062
|
+
reverse("wagtailimages:url_generator", args=(self.image.id,))
|
|
4063
|
+
+ "?filter_method=fill&width=75&height=50&closeness=5"
|
|
4064
|
+
)
|
|
4065
|
+
|
|
4066
|
+
# Check response
|
|
4067
|
+
self.assertEqual(response.status_code, 200)
|
|
4068
|
+
|
|
4069
|
+
# Check form defaults are based based on the search params
|
|
4070
|
+
self.assertEqual(response.context["form"].initial["width"], "75")
|
|
4071
|
+
self.assertEqual(response.context["form"].initial["height"], "50")
|
|
4072
|
+
self.assertEqual(response.context["form"].initial["filter_method"], "fill")
|
|
4073
|
+
self.assertEqual(response.context["form"].initial["closeness"], "5")
|
|
4074
|
+
|
|
4075
|
+
# Check that the correct URLs are provided to context to show the result based on the search params
|
|
4076
|
+
filter_spec = "fill-75x50-c5"
|
|
4077
|
+
|
|
4078
|
+
self.assertTrue(
|
|
4079
|
+
response.context["preview_url"].endswith(
|
|
4080
|
+
f"/images/{self.image.id}/preview/{filter_spec}/"
|
|
4081
|
+
),
|
|
4082
|
+
f"`{response.context['preview_url']}` does not end with `/images/{self.image.id}/preview/{filter_spec}/`",
|
|
4083
|
+
)
|
|
4084
|
+
self.assertTrue(
|
|
4085
|
+
response.context["result_url"].endswith(f"/{self.image.id}/{filter_spec}/"),
|
|
4086
|
+
f"`{response.context['result_url']}` does not end with `/{self.image.id}/{filter_spec}/`",
|
|
4087
|
+
)
|
|
4088
|
+
|
|
3967
4089
|
def test_get_bad_permissions(self):
|
|
3968
4090
|
"""
|
|
3969
4091
|
This tests that the view returns a "permission denied" redirect if a user without correct
|
|
@@ -3986,8 +4108,33 @@ class TestURLGeneratorView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
|
|
3986
4108
|
# Check response
|
|
3987
4109
|
self.assertRedirects(response, reverse("wagtailadmin_home"))
|
|
3988
4110
|
|
|
4111
|
+
def test_get_with_bad_search_params(self):
|
|
4112
|
+
"""
|
|
4113
|
+
This tests how the view responds when the search params
|
|
4114
|
+
result in an invalid filter spec.
|
|
4115
|
+
"""
|
|
4116
|
+
# Get
|
|
4117
|
+
response = self.client.get(
|
|
4118
|
+
reverse("wagtailimages:url_generator", args=(self.image.id,))
|
|
4119
|
+
+ "?filter_method=bad&width=75&height=50&closeness=5"
|
|
4120
|
+
)
|
|
4121
|
+
|
|
4122
|
+
# Check response
|
|
4123
|
+
self.assertEqual(response.status_code, 200)
|
|
4124
|
+
|
|
4125
|
+
# Check message provided
|
|
4126
|
+
messages = [m.message for m in response.context["messages"]]
|
|
4127
|
+
self.assertEqual(len(messages), 1)
|
|
4128
|
+
self.assertIn(
|
|
4129
|
+
"The filter options you have selected are not valid.", messages[0]
|
|
4130
|
+
)
|
|
4131
|
+
|
|
4132
|
+
|
|
4133
|
+
class TestURLGeneratorViewOutput(WagtailTestUtils, TestCase):
|
|
4134
|
+
"""
|
|
4135
|
+
Test the output partial HTML response for swapping into the image URL generator page.
|
|
4136
|
+
"""
|
|
3989
4137
|
|
|
3990
|
-
class TestGenerateURLView(WagtailTestUtils, TestCase):
|
|
3991
4138
|
def setUp(self):
|
|
3992
4139
|
# Create an image for running tests on
|
|
3993
4140
|
self.image = Image.objects.create(
|
|
@@ -4004,17 +4151,27 @@ class TestGenerateURLView(WagtailTestUtils, TestCase):
|
|
|
4004
4151
|
"""
|
|
4005
4152
|
# Get
|
|
4006
4153
|
response = self.client.get(
|
|
4007
|
-
reverse(
|
|
4154
|
+
reverse(
|
|
4155
|
+
"wagtailimages:url_generator_output",
|
|
4156
|
+
args=(self.image.id,),
|
|
4157
|
+
)
|
|
4158
|
+
+ "?filter_method=fill&width=800&height=600"
|
|
4008
4159
|
)
|
|
4009
4160
|
|
|
4010
4161
|
# Check response
|
|
4011
4162
|
self.assertEqual(response.status_code, 200)
|
|
4012
|
-
self.assertEqual(response["Content-Type"], "application/json")
|
|
4013
4163
|
|
|
4014
|
-
#
|
|
4015
|
-
|
|
4164
|
+
# should only use the 'output' template
|
|
4165
|
+
self.assertTemplateNotUsed(response, "wagtailimages/images/url_generator.html")
|
|
4166
|
+
self.assertTemplateUsed(
|
|
4167
|
+
response, "wagtailimages/images/url_generator_output.html"
|
|
4168
|
+
)
|
|
4169
|
+
self.assertTemplateNotUsed(response, "wagtailadmin/generic/base.html")
|
|
4016
4170
|
|
|
4017
|
-
self.
|
|
4171
|
+
soup = self.get_soup(response.content)
|
|
4172
|
+
|
|
4173
|
+
result_url = soup.find("textarea", {"id": "result-url"}).get_text()
|
|
4174
|
+
preview_url = soup.find("img")["src"]
|
|
4018
4175
|
|
|
4019
4176
|
expected_url = (
|
|
4020
4177
|
"http://localhost/images/%(signature)s/%(image_id)d/fill-800x600/"
|
|
@@ -4026,12 +4183,12 @@ class TestGenerateURLView(WagtailTestUtils, TestCase):
|
|
|
4026
4183
|
"image_id": self.image.id,
|
|
4027
4184
|
}
|
|
4028
4185
|
)
|
|
4029
|
-
self.assertEqual(
|
|
4186
|
+
self.assertEqual(result_url, expected_url)
|
|
4030
4187
|
|
|
4031
4188
|
expected_preview_url = reverse(
|
|
4032
4189
|
"wagtailimages:preview", args=(self.image.id, "fill-800x600")
|
|
4033
4190
|
)
|
|
4034
|
-
self.assertEqual(
|
|
4191
|
+
self.assertEqual(preview_url, expected_preview_url)
|
|
4035
4192
|
|
|
4036
4193
|
def test_get_bad_permissions(self):
|
|
4037
4194
|
"""
|
|
@@ -4048,21 +4205,18 @@ class TestGenerateURLView(WagtailTestUtils, TestCase):
|
|
|
4048
4205
|
|
|
4049
4206
|
# Get
|
|
4050
4207
|
response = self.client.get(
|
|
4051
|
-
reverse(
|
|
4208
|
+
reverse(
|
|
4209
|
+
"wagtailimages:url_generator_output",
|
|
4210
|
+
args=(self.image.id,),
|
|
4211
|
+
)
|
|
4212
|
+
+ "?filter_method=fill&width=800&height=600"
|
|
4052
4213
|
)
|
|
4053
4214
|
|
|
4054
4215
|
# Check response
|
|
4055
4216
|
self.assertEqual(response.status_code, 403)
|
|
4056
|
-
self.assertEqual(
|
|
4057
|
-
|
|
4058
|
-
# Check JSON
|
|
4059
|
-
self.assertJSONEqual(
|
|
4217
|
+
self.assertEqual(
|
|
4060
4218
|
response.content.decode(),
|
|
4061
|
-
|
|
4062
|
-
{
|
|
4063
|
-
"error": "You do not have permission to generate a URL for this image.",
|
|
4064
|
-
}
|
|
4065
|
-
),
|
|
4219
|
+
"You do not have permission to generate a URL for this image.",
|
|
4066
4220
|
)
|
|
4067
4221
|
|
|
4068
4222
|
def test_get_bad_image(self):
|
|
@@ -4072,23 +4226,14 @@ class TestGenerateURLView(WagtailTestUtils, TestCase):
|
|
|
4072
4226
|
# Get
|
|
4073
4227
|
response = self.client.get(
|
|
4074
4228
|
reverse(
|
|
4075
|
-
"wagtailimages:
|
|
4229
|
+
"wagtailimages:url_generator_output",
|
|
4230
|
+
args=(self.image.id + 1,),
|
|
4076
4231
|
)
|
|
4232
|
+
+ "?filter_method=fill&width=800&height=600"
|
|
4077
4233
|
)
|
|
4078
4234
|
|
|
4079
4235
|
# Check response
|
|
4080
4236
|
self.assertEqual(response.status_code, 404)
|
|
4081
|
-
self.assertEqual(response["Content-Type"], "application/json")
|
|
4082
|
-
|
|
4083
|
-
# Check JSON
|
|
4084
|
-
self.assertJSONEqual(
|
|
4085
|
-
response.content.decode(),
|
|
4086
|
-
json.dumps(
|
|
4087
|
-
{
|
|
4088
|
-
"error": "Cannot find image.",
|
|
4089
|
-
}
|
|
4090
|
-
),
|
|
4091
|
-
)
|
|
4092
4237
|
|
|
4093
4238
|
def test_get_bad_filter_spec(self):
|
|
4094
4239
|
"""
|
|
@@ -4097,23 +4242,251 @@ class TestGenerateURLView(WagtailTestUtils, TestCase):
|
|
|
4097
4242
|
# Get
|
|
4098
4243
|
response = self.client.get(
|
|
4099
4244
|
reverse(
|
|
4100
|
-
"wagtailimages:
|
|
4245
|
+
"wagtailimages:url_generator_output",
|
|
4246
|
+
args=(self.image.id,),
|
|
4101
4247
|
)
|
|
4248
|
+
+ "?filter_method=bad-filter-spec"
|
|
4102
4249
|
)
|
|
4103
4250
|
|
|
4104
4251
|
# Check response
|
|
4105
4252
|
self.assertEqual(response.status_code, 400)
|
|
4106
|
-
self.assertEqual(
|
|
4107
|
-
|
|
4108
|
-
# Check JSON
|
|
4109
|
-
self.assertJSONEqual(
|
|
4253
|
+
self.assertEqual(
|
|
4110
4254
|
response.content.decode(),
|
|
4111
|
-
|
|
4112
|
-
|
|
4113
|
-
|
|
4114
|
-
|
|
4115
|
-
|
|
4255
|
+
"Invalid filter spec: `bad-filter-spec`. Unrecognised operation: bad.",
|
|
4256
|
+
)
|
|
4257
|
+
|
|
4258
|
+
def test_get_with_default_filter_spec(self):
|
|
4259
|
+
response = self.client.get(
|
|
4260
|
+
reverse("wagtailimages:url_generator_output", args=(self.image.id,))
|
|
4261
|
+
)
|
|
4262
|
+
|
|
4263
|
+
# check response and find key values
|
|
4264
|
+
self.assertEqual(response.status_code, 200)
|
|
4265
|
+
soup = self.get_soup(response.content)
|
|
4266
|
+
|
|
4267
|
+
# check the result URL from the textarea
|
|
4268
|
+
result_url = soup.find("textarea", {"id": "result-url"}).get_text()
|
|
4269
|
+
expected_url = (
|
|
4270
|
+
"http://localhost/images/%(signature)s/%(image_id)d/original/"
|
|
4271
|
+
% {
|
|
4272
|
+
"signature": urllib.parse.quote(
|
|
4273
|
+
generate_signature(self.image.id, "original"),
|
|
4274
|
+
safe=urlquote_safechars,
|
|
4275
|
+
),
|
|
4276
|
+
"image_id": self.image.id,
|
|
4277
|
+
}
|
|
4278
|
+
)
|
|
4279
|
+
self.assertEqual(result_url, expected_url)
|
|
4280
|
+
|
|
4281
|
+
# check the preview URL from the image
|
|
4282
|
+
preview_url = soup.find("img")["src"]
|
|
4283
|
+
expected_preview_url = reverse(
|
|
4284
|
+
"wagtailimages:preview", args=(self.image.id, "original")
|
|
4285
|
+
)
|
|
4286
|
+
self.assertEqual(preview_url, expected_preview_url)
|
|
4287
|
+
|
|
4288
|
+
def test_get_with_width_filter_spec(self):
|
|
4289
|
+
response = self.client.get(
|
|
4290
|
+
reverse("wagtailimages:url_generator_output", args=(self.image.id,))
|
|
4291
|
+
+ "?filter_method=width&width=800&height=300"
|
|
4292
|
+
# height should be ignored as it's not part of the width filter spec values
|
|
4293
|
+
)
|
|
4294
|
+
|
|
4295
|
+
# check response and find key values
|
|
4296
|
+
self.assertEqual(response.status_code, 200)
|
|
4297
|
+
soup = self.get_soup(response.content)
|
|
4298
|
+
|
|
4299
|
+
# check the result URL from the textarea
|
|
4300
|
+
result_url = soup.find("textarea", {"id": "result-url"}).get_text()
|
|
4301
|
+
expected_url = (
|
|
4302
|
+
"http://localhost/images/%(signature)s/%(image_id)d/width-800/"
|
|
4303
|
+
% {
|
|
4304
|
+
"signature": urllib.parse.quote(
|
|
4305
|
+
generate_signature(self.image.id, "width-800"),
|
|
4306
|
+
safe=urlquote_safechars,
|
|
4307
|
+
),
|
|
4308
|
+
"image_id": self.image.id,
|
|
4309
|
+
}
|
|
4310
|
+
)
|
|
4311
|
+
self.assertEqual(result_url, expected_url)
|
|
4312
|
+
|
|
4313
|
+
# check the preview URL from the image
|
|
4314
|
+
preview_url = soup.find("img")["src"]
|
|
4315
|
+
expected_preview_url = reverse(
|
|
4316
|
+
"wagtailimages:preview", args=(self.image.id, "width-800")
|
|
4317
|
+
)
|
|
4318
|
+
self.assertEqual(preview_url, expected_preview_url)
|
|
4319
|
+
|
|
4320
|
+
def test_get_with_height_filter_spec(self):
|
|
4321
|
+
response = self.client.get(
|
|
4322
|
+
reverse("wagtailimages:url_generator_output", args=(self.image.id,))
|
|
4323
|
+
+ "?filter_method=height&width=800&height=320&closeness=20"
|
|
4324
|
+
# width & closeness should be ignored as it's not part of the height filter spec values
|
|
4325
|
+
)
|
|
4326
|
+
|
|
4327
|
+
# check response and find key values
|
|
4328
|
+
self.assertEqual(response.status_code, 200)
|
|
4329
|
+
soup = self.get_soup(response.content)
|
|
4330
|
+
|
|
4331
|
+
# check the result URL from the textarea
|
|
4332
|
+
result_url = soup.find("textarea", {"id": "result-url"}).get_text()
|
|
4333
|
+
expected_url = (
|
|
4334
|
+
"http://localhost/images/%(signature)s/%(image_id)d/height-320/"
|
|
4335
|
+
% {
|
|
4336
|
+
"signature": urllib.parse.quote(
|
|
4337
|
+
generate_signature(self.image.id, "height-320"),
|
|
4338
|
+
safe=urlquote_safechars,
|
|
4339
|
+
),
|
|
4340
|
+
"image_id": self.image.id,
|
|
4341
|
+
}
|
|
4342
|
+
)
|
|
4343
|
+
self.assertEqual(result_url, expected_url)
|
|
4344
|
+
|
|
4345
|
+
# check the preview URL from the image
|
|
4346
|
+
preview_url = soup.find("img")["src"]
|
|
4347
|
+
expected_preview_url = reverse(
|
|
4348
|
+
"wagtailimages:preview", args=(self.image.id, "height-320")
|
|
4349
|
+
)
|
|
4350
|
+
self.assertEqual(preview_url, expected_preview_url)
|
|
4351
|
+
|
|
4352
|
+
def test_get_with_fill_with_defaults_filter_spec(self):
|
|
4353
|
+
"""
|
|
4354
|
+
When only the `fill` filter spec is provided on its own, it should
|
|
4355
|
+
resolve default width & height values from the image size.
|
|
4356
|
+
"""
|
|
4357
|
+
|
|
4358
|
+
response = self.client.get(
|
|
4359
|
+
reverse("wagtailimages:url_generator_output", args=(self.image.id,))
|
|
4360
|
+
+ "?filter_method=fill"
|
|
4361
|
+
)
|
|
4362
|
+
|
|
4363
|
+
# check response and find key values
|
|
4364
|
+
self.assertEqual(response.status_code, 200)
|
|
4365
|
+
soup = self.get_soup(response.content)
|
|
4366
|
+
|
|
4367
|
+
# check the result URL from the textarea
|
|
4368
|
+
result_url = soup.find("textarea", {"id": "result-url"}).get_text()
|
|
4369
|
+
expected_url = (
|
|
4370
|
+
"http://localhost/images/%(signature)s/%(image_id)d/fill-640x480/"
|
|
4371
|
+
% {
|
|
4372
|
+
"signature": urllib.parse.quote(
|
|
4373
|
+
generate_signature(self.image.id, "fill-640x480"),
|
|
4374
|
+
safe=urlquote_safechars,
|
|
4375
|
+
),
|
|
4376
|
+
"image_id": self.image.id,
|
|
4377
|
+
}
|
|
4378
|
+
)
|
|
4379
|
+
self.assertEqual(result_url, expected_url)
|
|
4380
|
+
|
|
4381
|
+
# check the preview URL from the image
|
|
4382
|
+
preview_url = soup.find("img")["src"]
|
|
4383
|
+
expected_preview_url = reverse(
|
|
4384
|
+
"wagtailimages:preview", args=(self.image.id, "fill-640x480")
|
|
4385
|
+
)
|
|
4386
|
+
self.assertEqual(preview_url, expected_preview_url)
|
|
4387
|
+
|
|
4388
|
+
def test_get_with_min_with_defaults_filter_spec(self):
|
|
4389
|
+
"""
|
|
4390
|
+
When only the `min` filter spec is provided on its own, it should
|
|
4391
|
+
resolve default width & height values from the image size.
|
|
4392
|
+
"""
|
|
4393
|
+
|
|
4394
|
+
response = self.client.get(
|
|
4395
|
+
reverse("wagtailimages:url_generator_output", args=(self.image.id,))
|
|
4396
|
+
+ "?filter_method=min"
|
|
4397
|
+
)
|
|
4398
|
+
|
|
4399
|
+
# check response and find key values
|
|
4400
|
+
self.assertEqual(response.status_code, 200)
|
|
4401
|
+
soup = self.get_soup(response.content)
|
|
4402
|
+
|
|
4403
|
+
# check the result URL from the textarea
|
|
4404
|
+
result_url = soup.find("textarea", {"id": "result-url"}).get_text()
|
|
4405
|
+
expected_url = (
|
|
4406
|
+
"http://localhost/images/%(signature)s/%(image_id)d/min-640x480/"
|
|
4407
|
+
% {
|
|
4408
|
+
"signature": urllib.parse.quote(
|
|
4409
|
+
generate_signature(self.image.id, "min-640x480"),
|
|
4410
|
+
safe=urlquote_safechars,
|
|
4411
|
+
),
|
|
4412
|
+
"image_id": self.image.id,
|
|
4413
|
+
}
|
|
4414
|
+
)
|
|
4415
|
+
self.assertEqual(result_url, expected_url)
|
|
4416
|
+
|
|
4417
|
+
# check the preview URL from the image
|
|
4418
|
+
preview_url = soup.find("img")["src"]
|
|
4419
|
+
expected_preview_url = reverse(
|
|
4420
|
+
"wagtailimages:preview", args=(self.image.id, "min-640x480")
|
|
4421
|
+
)
|
|
4422
|
+
self.assertEqual(preview_url, expected_preview_url)
|
|
4423
|
+
|
|
4424
|
+
def test_get_with_max_with_defaults_filter_spec(self):
|
|
4425
|
+
"""
|
|
4426
|
+
When only the `max` filter spec is provided on its own, it should
|
|
4427
|
+
resolve default width & height values from the image size.
|
|
4428
|
+
"""
|
|
4429
|
+
|
|
4430
|
+
response = self.client.get(
|
|
4431
|
+
reverse("wagtailimages:url_generator_output", args=(self.image.id,))
|
|
4432
|
+
+ "?filter_method=max"
|
|
4433
|
+
)
|
|
4434
|
+
|
|
4435
|
+
# check response and find key values
|
|
4436
|
+
self.assertEqual(response.status_code, 200)
|
|
4437
|
+
soup = self.get_soup(response.content)
|
|
4438
|
+
|
|
4439
|
+
# check the result URL from the textarea
|
|
4440
|
+
result_url = soup.find("textarea", {"id": "result-url"}).get_text()
|
|
4441
|
+
expected_url = (
|
|
4442
|
+
"http://localhost/images/%(signature)s/%(image_id)d/max-640x480/"
|
|
4443
|
+
% {
|
|
4444
|
+
"signature": urllib.parse.quote(
|
|
4445
|
+
generate_signature(self.image.id, "max-640x480"),
|
|
4446
|
+
safe=urlquote_safechars,
|
|
4447
|
+
),
|
|
4448
|
+
"image_id": self.image.id,
|
|
4449
|
+
}
|
|
4450
|
+
)
|
|
4451
|
+
self.assertEqual(result_url, expected_url)
|
|
4452
|
+
|
|
4453
|
+
# check the preview URL from the image
|
|
4454
|
+
preview_url = soup.find("img")["src"]
|
|
4455
|
+
expected_preview_url = reverse(
|
|
4456
|
+
"wagtailimages:preview", args=(self.image.id, "max-640x480")
|
|
4457
|
+
)
|
|
4458
|
+
self.assertEqual(preview_url, expected_preview_url)
|
|
4459
|
+
|
|
4460
|
+
def test_get_with_fill_with_all_values_filter_spec(self):
|
|
4461
|
+
response = self.client.get(
|
|
4462
|
+
reverse("wagtailimages:url_generator_output", args=(self.image.id,))
|
|
4463
|
+
+ "?filter_method=fill&width=320&height=120&closeness=20"
|
|
4464
|
+
)
|
|
4465
|
+
|
|
4466
|
+
# check response and find key values
|
|
4467
|
+
self.assertEqual(response.status_code, 200)
|
|
4468
|
+
soup = self.get_soup(response.content)
|
|
4469
|
+
|
|
4470
|
+
# check the result URL from the textarea
|
|
4471
|
+
result_url = soup.find("textarea", {"id": "result-url"}).get_text()
|
|
4472
|
+
expected_url = (
|
|
4473
|
+
"http://localhost/images/%(signature)s/%(image_id)d/fill-320x120-c20/"
|
|
4474
|
+
% {
|
|
4475
|
+
"signature": urllib.parse.quote(
|
|
4476
|
+
generate_signature(self.image.id, "fill-320x120-c20"),
|
|
4477
|
+
safe=urlquote_safechars,
|
|
4478
|
+
),
|
|
4479
|
+
"image_id": self.image.id,
|
|
4480
|
+
}
|
|
4481
|
+
)
|
|
4482
|
+
self.assertEqual(result_url, expected_url)
|
|
4483
|
+
|
|
4484
|
+
# check the preview URL from the image
|
|
4485
|
+
preview_url = soup.find("img")["src"]
|
|
4486
|
+
expected_preview_url = reverse(
|
|
4487
|
+
"wagtailimages:preview", args=(self.image.id, "fill-320x120-c20")
|
|
4116
4488
|
)
|
|
4489
|
+
self.assertEqual(preview_url, expected_preview_url)
|
|
4117
4490
|
|
|
4118
4491
|
|
|
4119
4492
|
class TestPreviewView(WagtailTestUtils, TestCase):
|