wagtail 6.0.2__py3-none-any.whl → 6.1rc1__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/admin/checks.py +51 -0
- wagtail/admin/compare.py +1 -1
- wagtail/admin/filters.py +70 -1
- wagtail/admin/forms/account.py +1 -1
- wagtail/admin/forms/collections.py +15 -0
- wagtail/admin/forms/pages.py +49 -0
- wagtail/admin/locale/de/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/de/LC_MESSAGES/django.po +5 -5
- wagtail/admin/locale/en/LC_MESSAGES/django.po +474 -385
- wagtail/admin/locale/en/LC_MESSAGES/djangojs.po +3 -3
- wagtail/admin/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/pt_PT/LC_MESSAGES/django.po +73 -2
- wagtail/admin/locale/ro/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/ro/LC_MESSAGES/django.po +3 -3
- wagtail/admin/panels/comment_panel.py +1 -1
- wagtail/admin/panels/field_panel.py +1 -1
- wagtail/admin/rich_text/converters/editor_html.py +3 -1
- wagtail/admin/rich_text/editors/draftail/__init__.py +28 -2
- wagtail/admin/static/wagtailadmin/css/core.css +1 -1
- wagtail/admin/static/wagtailadmin/css/panels/draftail.css +1 -1
- wagtail/admin/static/wagtailadmin/images/favicon.ico +0 -0
- wagtail/admin/static/wagtailadmin/js/bulk-actions.js +1 -1
- wagtail/admin/static/wagtailadmin/js/chooser-modal.js +1 -1
- wagtail/admin/static/wagtailadmin/js/chooser-widget-telepath.js +1 -1
- wagtail/admin/static/wagtailadmin/js/chooser-widget.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/date-time-chooser.js +1 -1
- wagtail/admin/static/wagtailadmin/js/draftail.js +1 -1
- wagtail/admin/static/wagtailadmin/js/expanding-formset.js +1 -1
- wagtail/admin/static/wagtailadmin/js/filtered-select.js +1 -1
- wagtail/admin/static/wagtailadmin/js/modal-workflow.js +1 -1
- wagtail/admin/static/wagtailadmin/js/page-chooser-modal.js +1 -1
- wagtail/admin/static/wagtailadmin/js/page-chooser-telepath.js +1 -1
- wagtail/admin/static/wagtailadmin/js/page-chooser.js +1 -1
- wagtail/admin/static/wagtailadmin/js/preview-panel.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/task-chooser-modal.js +1 -1
- wagtail/admin/static/wagtailadmin/js/task-chooser.js +1 -1
- wagtail/admin/static/wagtailadmin/js/telepath/blocks.js +1 -1
- wagtail/admin/static/wagtailadmin/js/telepath/telepath.js +1 -1
- wagtail/admin/static/wagtailadmin/js/telepath/widgets.js +1 -1
- wagtail/admin/static/wagtailadmin/js/userbar.js +1 -1
- wagtail/admin/static/wagtailadmin/js/vendor.js +1 -1
- wagtail/admin/static/wagtailadmin/js/vendor.js.LICENSE.txt +4 -4
- wagtail/admin/static/wagtailadmin/js/wagtailadmin.js +1 -1
- wagtail/admin/static/wagtailadmin/js/workflow-action.js +1 -1
- wagtail/admin/staticfiles.py +1 -0
- wagtail/admin/templates/wagtailadmin/base.html +1 -0
- wagtail/admin/templates/wagtailadmin/collection_privacy/set_privacy.html +3 -1
- wagtail/admin/templates/wagtailadmin/collections/index_results.html +10 -0
- wagtail/admin/templates/wagtailadmin/generic/base.html +1 -9
- wagtail/admin/templates/wagtailadmin/generic/form.html +3 -2
- wagtail/admin/templates/wagtailadmin/generic/history/action_cell.html +27 -0
- wagtail/admin/templates/wagtailadmin/home/workflow_objects_to_moderate.html +3 -3
- wagtail/admin/templates/wagtailadmin/icons/keyboard.svg +1 -0
- wagtail/admin/templates/wagtailadmin/page_privacy/set_privacy.html +3 -1
- wagtail/admin/templates/wagtailadmin/pages/_editor_js.html +0 -14
- wagtail/admin/templates/wagtailadmin/pages/action_menu/save_draft.html +3 -1
- wagtail/admin/templates/wagtailadmin/pages/choose_parent.html +17 -0
- wagtail/admin/templates/wagtailadmin/pages/explorable_index.html +8 -0
- wagtail/admin/templates/wagtailadmin/pages/history.html +1 -61
- wagtail/admin/templates/wagtailadmin/pages/index.html +1 -3
- wagtail/admin/templates/wagtailadmin/pages/listing/_locked_indicator.html +2 -2
- wagtail/admin/templates/wagtailadmin/pages/listing/_page_title_column_header.html +25 -27
- wagtail/admin/templates/wagtailadmin/pages/page_listing_header.html +2 -1
- wagtail/admin/templates/wagtailadmin/panels/multi_field_panel_child.html +1 -1
- wagtail/admin/templates/wagtailadmin/panels/publishing/schedule_publishing_panel.html +3 -1
- wagtail/admin/templates/wagtailadmin/panels/tabbed_interface.html +1 -1
- wagtail/admin/templates/wagtailadmin/shared/active_filters.html +2 -1
- wagtail/admin/templates/wagtailadmin/shared/breadcrumbs.html +8 -0
- wagtail/admin/templates/wagtailadmin/shared/forms/single_checkbox.html +1 -1
- wagtail/admin/templates/wagtailadmin/shared/headers/page_edit_header.html +1 -1
- wagtail/admin/templates/wagtailadmin/shared/headers/slim_header.html +21 -9
- wagtail/admin/templates/wagtailadmin/shared/human_readable_date.html +1 -1
- wagtail/admin/templates/wagtailadmin/shared/keyboard_shortcuts_dialog.html +29 -0
- wagtail/admin/templates/wagtailadmin/shared/side_panel_toggle.html +2 -1
- wagtail/admin/templates/wagtailadmin/skeleton.html +2 -1
- wagtail/admin/templates/wagtailadmin/tables/related_objects_cell.html +9 -0
- wagtail/admin/templates/wagtailadmin/tables/title_cell.html +9 -7
- wagtail/admin/templates/wagtailadmin/widgets/draftail_rich_text_area.html +1 -1
- wagtail/admin/templates/wagtailadmin/workflows/create.html +6 -23
- wagtail/admin/templates/wagtailadmin/workflows/create_task.html +6 -15
- wagtail/admin/templates/wagtailadmin/workflows/edit.html +6 -23
- wagtail/admin/templates/wagtailadmin/workflows/edit_task.html +6 -13
- wagtail/admin/templates/wagtailadmin/workflows/includes/task_usage_cell.html +4 -4
- wagtail/admin/templates/wagtailadmin/workflows/includes/workflow_tasks_cell.html +18 -0
- wagtail/admin/templates/wagtailadmin/workflows/includes/workflow_title_cell.html +7 -0
- wagtail/admin/templates/wagtailadmin/workflows/includes/workflow_used_by_cell.html +25 -0
- wagtail/admin/templates/wagtailadmin/workflows/index.html +0 -99
- wagtail/admin/templates/wagtailadmin/workflows/index_results.html +10 -0
- wagtail/admin/templates/wagtailadmin/workflows/task_index.html +0 -30
- wagtail/admin/templates/wagtailadmin/workflows/task_index_results.html +10 -0
- wagtail/admin/templates/wagtailadmin/workflows/usage.html +1 -1
- wagtail/admin/templatetags/wagtailadmin_tags.py +116 -39
- wagtail/admin/tests/pages/test_create_page.py +10 -4
- wagtail/admin/tests/pages/test_custom_listing.py +37 -0
- wagtail/admin/tests/pages/test_edit_page.py +6 -6
- wagtail/admin/tests/pages/test_explorer_view.py +19 -18
- wagtail/admin/tests/pages/test_move_page.py +1 -1
- wagtail/admin/tests/pages/test_page_usage.py +50 -2
- wagtail/admin/tests/pages/test_parent_page_chooser_view.py +119 -0
- wagtail/admin/tests/pages/test_preview.py +18 -4
- wagtail/admin/tests/test_account_management.py +20 -1
- wagtail/admin/tests/test_audit_log.py +172 -5
- wagtail/admin/tests/test_checks.py +92 -0
- wagtail/admin/tests/test_collections_views.py +19 -5
- wagtail/admin/tests/test_compare.py +6 -6
- wagtail/admin/tests/test_dashboard.py +404 -0
- wagtail/admin/tests/test_dbwhitelister.py +4 -5
- wagtail/admin/tests/test_edit_handlers.py +2 -2
- wagtail/admin/tests/test_keyboard_shortcuts.py +84 -0
- wagtail/admin/tests/test_page_chooser.py +31 -18
- wagtail/admin/tests/test_privacy.py +36 -2
- wagtail/admin/tests/test_rich_text.py +168 -23
- wagtail/admin/tests/test_templatetags.py +411 -43
- wagtail/admin/tests/test_views.py +4 -2
- wagtail/admin/tests/test_workflows.py +531 -9
- wagtail/admin/tests/tests.py +3 -1
- wagtail/admin/tests/ui/test_tables.py +48 -1
- wagtail/admin/tests/viewsets/test_model_viewset.py +126 -29
- wagtail/admin/ui/side_panels.py +3 -1
- wagtail/admin/ui/tables/__init__.py +13 -1
- wagtail/admin/ui/tables/pages.py +17 -6
- wagtail/admin/urls/__init__.py +8 -3
- wagtail/admin/urls/pages.py +5 -0
- wagtail/admin/urls/workflows.py +10 -0
- wagtail/admin/views/chooser.py +20 -24
- wagtail/admin/views/collections.py +17 -1
- wagtail/admin/views/generic/base.py +31 -4
- wagtail/admin/views/generic/history.py +220 -51
- wagtail/admin/views/generic/mixins.py +7 -4
- wagtail/admin/views/generic/models.py +54 -38
- wagtail/admin/views/generic/multiple_upload.py +17 -8
- wagtail/admin/views/generic/usage.py +17 -11
- wagtail/admin/views/home.py +15 -12
- wagtail/admin/views/mixins.py +30 -0
- wagtail/admin/views/pages/choose_parent.py +73 -0
- wagtail/admin/views/pages/history.py +54 -66
- wagtail/admin/views/pages/listing.py +187 -106
- wagtail/admin/views/pages/usage.py +6 -1
- wagtail/admin/views/pages/utils.py +70 -1
- wagtail/admin/views/workflows.py +150 -21
- wagtail/admin/viewsets/model.py +2 -2
- wagtail/admin/viewsets/pages.py +77 -0
- wagtail/admin/wagtail_hooks.py +40 -2
- wagtail/admin/widgets/button.py +10 -9
- wagtail/api/v2/filters.py +1 -1
- wagtail/api/v2/tests/test_pages.py +1 -1
- wagtail/blocks/base.py +18 -9
- wagtail/blocks/field_block.py +9 -7
- wagtail/blocks/list_block.py +16 -6
- wagtail/blocks/static_block.py +3 -0
- wagtail/blocks/stream_block.py +58 -23
- wagtail/blocks/struct_block.py +15 -9
- wagtail/contrib/forms/locale/en/LC_MESSAGES/django.po +39 -47
- wagtail/contrib/forms/models.py +5 -5
- wagtail/contrib/forms/templates/wagtailforms/list_submissions.html +44 -33
- wagtail/contrib/forms/templates/wagtailforms/submissions_index.html +2 -63
- wagtail/contrib/forms/tests/test_models.py +26 -0
- wagtail/contrib/forms/urls.py +6 -0
- wagtail/contrib/forms/views.py +52 -49
- wagtail/contrib/redirects/locale/ca/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/redirects/locale/ca/LC_MESSAGES/django.po +3 -3
- wagtail/contrib/redirects/locale/en/LC_MESSAGES/django.po +34 -42
- wagtail/contrib/redirects/signal_handlers.py +1 -1
- wagtail/contrib/redirects/templates/wagtailredirects/index.html +1 -36
- wagtail/contrib/redirects/templates/wagtailredirects/index_results.html +18 -0
- wagtail/contrib/redirects/templates/wagtailredirects/redirect_target_cell.html +8 -0
- wagtail/contrib/redirects/tests/test_import_command.py +1 -1
- wagtail/contrib/redirects/tests/test_redirects.py +79 -8
- wagtail/contrib/redirects/urls.py +2 -1
- wagtail/contrib/redirects/views.py +85 -55
- wagtail/contrib/search_promotions/admin_urls.py +2 -1
- wagtail/contrib/search_promotions/locale/en/LC_MESSAGES/django.po +41 -64
- wagtail/contrib/search_promotions/templates/wagtailsearchpromotions/index.html +1 -16
- wagtail/contrib/search_promotions/templates/wagtailsearchpromotions/index_results.html +11 -0
- wagtail/contrib/search_promotions/templates/wagtailsearchpromotions/list.html +0 -51
- wagtail/contrib/search_promotions/templates/wagtailsearchpromotions/results.html +3 -16
- wagtail/contrib/search_promotions/templates/wagtailsearchpromotions/search_promotion_column.html +15 -0
- wagtail/contrib/search_promotions/tests.py +122 -9
- wagtail/contrib/search_promotions/views.py +66 -65
- wagtail/contrib/settings/locale/en/LC_MESSAGES/django.po +3 -3
- wagtail/contrib/settings/registry.py +10 -5
- wagtail/contrib/settings/tests/generic/test_admin.py +9 -0
- wagtail/contrib/settings/tests/site_specific/test_admin.py +10 -1
- wagtail/contrib/settings/tests/site_specific/test_model.py +3 -3
- wagtail/contrib/settings/tests/site_specific/test_templates.py +1 -1
- wagtail/contrib/settings/views.py +3 -1
- wagtail/contrib/simple_translation/locale/en/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/simple_translation/tests/test_wagtail_hooks.py +2 -2
- wagtail/contrib/styleguide/locale/en/LC_MESSAGES/django.po +7 -7
- wagtail/contrib/table_block/blocks.py +1 -1
- wagtail/contrib/table_block/locale/en/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/table_block/static/table_block/js/table.js +1 -1
- wagtail/contrib/typed_table_block/locale/en/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/static/typed_table_block/js/typed_table_block.js +1 -1
- wagtail/coreutils.py +3 -2
- wagtail/documents/admin_urls.py +2 -2
- wagtail/documents/locale/en/LC_MESSAGES/django.po +22 -22
- wagtail/documents/migrations/0013_delete_uploadeddocument.py +16 -0
- wagtail/documents/models.py +1 -20
- wagtail/documents/rich_text/__init__.py +11 -7
- wagtail/documents/static/wagtaildocs/js/document-chooser-modal.js +1 -1
- wagtail/documents/static/wagtaildocs/js/document-chooser-telepath.js +1 -1
- wagtail/documents/static/wagtaildocs/js/document-chooser.js +1 -1
- wagtail/documents/templates/wagtaildocs/documents/index.html +0 -16
- wagtail/documents/tests/test_admin_views.py +155 -23
- wagtail/documents/tests/test_collection_privacy.py +55 -1
- wagtail/documents/tests/test_rich_text.py +14 -0
- wagtail/documents/views/documents.py +25 -22
- wagtail/documents/views/multiple.py +6 -7
- wagtail/documents/views/serve.py +16 -1
- wagtail/documents/wagtail_hooks.py +20 -15
- wagtail/embeds/blocks.py +5 -0
- wagtail/embeds/locale/en/LC_MESSAGES/django.po +2 -2
- wagtail/embeds/rich_text/__init__.py +1 -1
- wagtail/embeds/tests/test_rich_text.py +14 -0
- wagtail/embeds/wagtail_hooks.py +4 -14
- wagtail/fields.py +3 -48
- wagtail/images/admin_urls.py +2 -2
- wagtail/images/check_files/wagtail.jpg +0 -0
- wagtail/images/check_files/wagtail.png +0 -0
- wagtail/images/fields.py +2 -0
- wagtail/images/image_operations.py +1 -1
- wagtail/images/locale/en/LC_MESSAGES/django.po +33 -45
- wagtail/images/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/pt_PT/LC_MESSAGES/django.po +4 -0
- wagtail/images/migrations/0026_delete_uploadedimage.py +16 -0
- wagtail/images/models.py +49 -43
- wagtail/images/rich_text/__init__.py +18 -8
- wagtail/images/static/wagtailimages/js/image-chooser-modal.js +1 -1
- wagtail/images/static/wagtailimages/js/image-chooser-telepath.js +1 -1
- wagtail/images/static/wagtailimages/js/image-chooser.js +1 -1
- wagtail/images/templates/wagtailimages/images/image_listing_header.html +6 -0
- wagtail/images/templates/wagtailimages/images/index.html +11 -51
- wagtail/images/tests/test_admin_views.py +119 -62
- wagtail/images/tests/test_image_operations.py +10 -0
- wagtail/images/tests/test_models.py +35 -33
- wagtail/images/tests/test_rich_text.py +14 -0
- wagtail/images/tests/utils.py +1 -1
- wagtail/images/views/images.py +35 -64
- wagtail/images/views/multiple.py +6 -7
- wagtail/images/wagtail_hooks.py +4 -14
- wagtail/locale/en/LC_MESSAGES/django.po +150 -136
- wagtail/locales/locale/en/LC_MESSAGES/django.po +1 -1
- wagtail/locales/tests.py +18 -3
- wagtail/locales/views.py +0 -1
- wagtail/management/commands/rebuild_references_index.py +3 -1
- wagtail/migrations/0092_alter_collectionviewrestriction_password_and_more.py +33 -0
- wagtail/migrations/0093_uploadedfile.py +53 -0
- wagtail/models/__init__.py +147 -32
- wagtail/models/i18n.py +1 -1
- wagtail/models/{collections.py → media.py} +33 -2
- wagtail/models/reference_index.py +1 -1
- wagtail/models/view_restrictions.py +10 -3
- wagtail/project_template/project_name/settings/base.py +6 -0
- wagtail/project_template/requirements.txt +1 -1
- wagtail/rich_text/__init__.py +25 -8
- wagtail/rich_text/pages.py +19 -8
- wagtail/rich_text/rewriters.py +140 -68
- wagtail/search/backends/database/mysql/mysql.py +3 -3
- wagtail/search/backends/database/postgres/postgres.py +3 -3
- wagtail/search/backends/database/sqlite/sqlite.py +2 -2
- wagtail/search/backends/elasticsearch7.py +4 -0
- wagtail/search/locale/en/LC_MESSAGES/django.po +3 -3
- wagtail/search/tests/test_postgres_backend.py +50 -0
- wagtail/sites/locale/en/LC_MESSAGES/django.po +8 -8
- wagtail/sites/tests.py +35 -9
- wagtail/sites/views.py +3 -1
- wagtail/snippets/locale/de/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/de/LC_MESSAGES/django.po +5 -6
- wagtail/snippets/locale/en/LC_MESSAGES/django.po +16 -56
- wagtail/snippets/static/wagtailsnippets/js/snippet-chooser-telepath.js +1 -1
- wagtail/snippets/static/wagtailsnippets/js/snippet-chooser.js +1 -1
- wagtail/snippets/templates/wagtailsnippets/snippets/action_menu/publish.html +3 -1
- wagtail/snippets/templates/wagtailsnippets/snippets/action_menu/save.html +3 -1
- wagtail/snippets/templates/wagtailsnippets/snippets/create.html +1 -1
- wagtail/snippets/templates/wagtailsnippets/snippets/edit.html +1 -1
- wagtail/snippets/tests/test_preview.py +13 -2
- wagtail/snippets/tests/test_snippets.py +41 -16
- wagtail/snippets/tests/test_viewset.py +63 -18
- wagtail/snippets/tests/test_workflows.py +12 -0
- wagtail/snippets/views/snippets.py +1 -40
- wagtail/templatetags/wagtailcore_tags.py +1 -1
- wagtail/test/demosite/models.py +1 -1
- wagtail/test/middleware.py +14 -1
- wagtail/test/testapp/fixtures/test.json +20 -0
- wagtail/test/testapp/migrations/0001_squashed_0073_revisablechildmodel_secret_text.py +8 -8
- wagtail/test/testapp/migrations/0023_snippetchoosermodel_full_featured.py +1 -0
- wagtail/test/testapp/migrations/0034_custompermissionmodel.py +44 -0
- wagtail/test/testapp/migrations/0035_modelwithcustommanager.py +30 -0
- wagtail/test/testapp/migrations/0036_complexdefaultstreampage.py +28 -0
- wagtail/test/testapp/models.py +79 -2
- wagtail/test/testapp/templates/tests/custom_docs_password_required.html +10 -0
- wagtail/test/testapp/templates/tests/custom_page_password_required.html +10 -0
- wagtail/test/testapp/views.py +24 -2
- wagtail/test/testapp/wagtail_hooks.py +19 -0
- wagtail/test/utils/wagtail_tests.py +2 -2
- wagtail/tests/test_blocks.py +262 -1
- wagtail/tests/test_migrations.py +1 -1
- wagtail/tests/test_page_model.py +77 -0
- wagtail/tests/test_page_privacy.py +18 -1
- wagtail/tests/test_rich_text.py +95 -5
- wagtail/tests/test_streamfield.py +43 -0
- wagtail/tests/test_utils.py +8 -2
- wagtail/tests/test_views.py +52 -1
- wagtail/tests/test_whitelist.py +7 -7
- wagtail/users/forms.py +3 -1
- wagtail/users/locale/en/LC_MESSAGES/django.po +124 -96
- wagtail/users/migrations/0013_userprofile_density.py +23 -0
- wagtail/users/models.py +14 -3
- wagtail/users/templates/wagtailusers/groups/create.html +1 -7
- wagtail/users/templates/wagtailusers/groups/edit.html +1 -13
- wagtail/users/templates/wagtailusers/groups/includes/formatted_permissions.html +46 -2
- wagtail/users/templates/wagtailusers/groups/includes/group_form_js.html +0 -2
- wagtail/users/templates/wagtailusers/users/create.html +1 -9
- wagtail/users/templates/wagtailusers/users/edit.html +1 -9
- wagtail/users/templates/wagtailusers/users/index.html +2 -5
- wagtail/users/templates/wagtailusers/users/index_results.html +3 -13
- wagtail/users/templates/wagtailusers/users/user_cell.html +9 -0
- wagtail/users/templatetags/wagtailusers_tags.py +107 -20
- wagtail/users/tests/test_admin_views.py +669 -90
- wagtail/users/views/groups.py +58 -61
- wagtail/users/views/users.py +211 -92
- wagtail/users/wagtail_hooks.py +6 -38
- wagtail/users/widgets.py +3 -5
- wagtail/utils/text.py +1 -1
- wagtail/views.py +5 -9
- wagtail/whitelist.py +1 -1
- {wagtail-6.0.2.dist-info → wagtail-6.1rc1.dist-info}/METADATA +4 -5
- {wagtail-6.0.2.dist-info → wagtail-6.1rc1.dist-info}/RECORD +339 -320
- wagtail/admin/static/wagtailadmin/js/page-editor.js +0 -1
- wagtail/admin/static/wagtailadmin/js/vendor/mousetrap.min.js +0 -1
- wagtail/admin/static/wagtailadmin/js/vendor/urlify.js +0 -1
- wagtail/admin/static/wagtailadmin/js/vendor/xregexp.min.js +0 -1
- wagtail/admin/templates/wagtailadmin/collections/index.html +0 -34
- wagtail/admin/templates/wagtailadmin/pages/revisions/_actions.html +0 -22
- wagtail/admin/templates/wagtailadmin/shared/page_breadcrumbs.html +0 -55
- wagtail/admin/tests/pages/test_dashboard.py +0 -172
- wagtail/contrib/redirects/templates/wagtailredirects/results.html +0 -23
- wagtail/documents/templates/wagtaildocs/documents/list.html +0 -2
- wagtail/search/tests/test_postgres_stemming.py +0 -40
- wagtail/sites/templates/wagtailsites/create.html +0 -6
- wagtail/sites/templates/wagtailsites/edit.html +0 -6
- wagtail/snippets/templates/wagtailsnippets/snippets/revisions/_actions.html +0 -36
- wagtail/users/templates/wagtailusers/users/list.html +0 -62
- wagtail/users/urls/users.py +0 -12
- {wagtail-6.0.2.dist-info → wagtail-6.1rc1.dist-info}/LICENSE +0 -0
- {wagtail-6.0.2.dist-info → wagtail-6.1rc1.dist-info}/WHEEL +0 -0
- {wagtail-6.0.2.dist-info → wagtail-6.1rc1.dist-info}/entry_points.txt +0 -0
- {wagtail-6.0.2.dist-info → wagtail-6.1rc1.dist-info}/top_level.txt +0 -0
wagtail/images/views/images.py
CHANGED
|
@@ -7,6 +7,7 @@ from django.shortcuts import get_object_or_404, redirect
|
|
|
7
7
|
from django.template.response import TemplateResponse
|
|
8
8
|
from django.urls import reverse
|
|
9
9
|
from django.urls.exceptions import NoReverseMatch
|
|
10
|
+
from django.utils.functional import cached_property
|
|
10
11
|
from django.utils.http import urlencode
|
|
11
12
|
from django.utils.translation import gettext as _
|
|
12
13
|
from django.utils.translation import gettext_lazy, ngettext
|
|
@@ -14,7 +15,7 @@ from django.views import View
|
|
|
14
15
|
|
|
15
16
|
from wagtail.admin import messages
|
|
16
17
|
from wagtail.admin.auth import PermissionPolicyChecker
|
|
17
|
-
from wagtail.admin.
|
|
18
|
+
from wagtail.admin.filters import BaseMediaFilterSet
|
|
18
19
|
from wagtail.admin.utils import get_valid_next_url_from_request, set_query_params
|
|
19
20
|
from wagtail.admin.views import generic
|
|
20
21
|
from wagtail.images import get_image_model
|
|
@@ -23,29 +24,38 @@ from wagtail.images.forms import URLGeneratorForm, get_image_form
|
|
|
23
24
|
from wagtail.images.models import Filter, SourceImageIOError
|
|
24
25
|
from wagtail.images.permissions import permission_policy
|
|
25
26
|
from wagtail.images.utils import generate_signature
|
|
26
|
-
from wagtail.models import
|
|
27
|
+
from wagtail.models import Site
|
|
27
28
|
|
|
28
29
|
permission_checker = PermissionPolicyChecker(permission_policy)
|
|
29
30
|
|
|
30
|
-
|
|
31
|
+
Image = get_image_model()
|
|
32
|
+
|
|
31
33
|
USAGE_PAGE_SIZE = getattr(settings, "WAGTAILIMAGES_USAGE_PAGE_SIZE", 20)
|
|
32
34
|
|
|
33
35
|
|
|
36
|
+
class ImagesFilterSet(BaseMediaFilterSet):
|
|
37
|
+
permission_policy = permission_policy
|
|
38
|
+
|
|
39
|
+
class Meta:
|
|
40
|
+
model = Image
|
|
41
|
+
fields = []
|
|
42
|
+
|
|
43
|
+
|
|
34
44
|
class IndexView(generic.IndexView):
|
|
35
|
-
ENTRIES_PER_PAGE_CHOICES = sorted({10, 30, 60, 100, 250, INDEX_PAGE_SIZE})
|
|
36
45
|
ORDERING_OPTIONS = {
|
|
37
|
-
"-created_at":
|
|
38
|
-
"created_at":
|
|
39
|
-
"title":
|
|
40
|
-
"-title":
|
|
41
|
-
"file_size":
|
|
42
|
-
"-file_size":
|
|
46
|
+
"-created_at": gettext_lazy("Newest"),
|
|
47
|
+
"created_at": gettext_lazy("Oldest"),
|
|
48
|
+
"title": gettext_lazy("Title: (A -> Z)"),
|
|
49
|
+
"-title": gettext_lazy("Title: (Z -> A)"),
|
|
50
|
+
"file_size": gettext_lazy("File size: (low to high)"),
|
|
51
|
+
"-file_size": gettext_lazy("File size: (high to low)"),
|
|
43
52
|
}
|
|
44
53
|
default_ordering = "-created_at"
|
|
45
54
|
context_object_name = "images"
|
|
46
55
|
permission_policy = permission_policy
|
|
47
56
|
any_permission_required = ["add", "change", "delete"]
|
|
48
|
-
model =
|
|
57
|
+
model = Image
|
|
58
|
+
filterset_class = ImagesFilterSet
|
|
49
59
|
show_other_searches = True
|
|
50
60
|
header_icon = "image"
|
|
51
61
|
page_title = gettext_lazy("Images")
|
|
@@ -54,21 +64,13 @@ class IndexView(generic.IndexView):
|
|
|
54
64
|
index_results_url_name = "wagtailimages:index_results"
|
|
55
65
|
add_url_name = "wagtailimages:add_multiple"
|
|
56
66
|
edit_url_name = "wagtailimages:edit"
|
|
67
|
+
_show_breadcrumbs = True
|
|
57
68
|
template_name = "wagtailimages/images/index.html"
|
|
58
69
|
results_template_name = "wagtailimages/images/index_results.html"
|
|
70
|
+
columns = []
|
|
59
71
|
|
|
60
72
|
def get_paginate_by(self, queryset):
|
|
61
|
-
|
|
62
|
-
try:
|
|
63
|
-
entries_per_page = int(entries_per_page)
|
|
64
|
-
except ValueError:
|
|
65
|
-
entries_per_page = INDEX_PAGE_SIZE
|
|
66
|
-
if entries_per_page not in self.ENTRIES_PER_PAGE_CHOICES:
|
|
67
|
-
entries_per_page = INDEX_PAGE_SIZE
|
|
68
|
-
|
|
69
|
-
self.entries_per_page = entries_per_page
|
|
70
|
-
|
|
71
|
-
return entries_per_page
|
|
73
|
+
return getattr(settings, "WAGTAILIMAGES_INDEX_PAGE_SIZE", 30)
|
|
72
74
|
|
|
73
75
|
def get_valid_orderings(self):
|
|
74
76
|
return self.ORDERING_OPTIONS
|
|
@@ -84,36 +86,23 @@ class IndexView(generic.IndexView):
|
|
|
84
86
|
)
|
|
85
87
|
return images
|
|
86
88
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
if collection_id:
|
|
92
|
-
try:
|
|
93
|
-
self.current_collection = Collection.objects.get(id=collection_id)
|
|
94
|
-
queryset = queryset.filter(collection=self.current_collection)
|
|
95
|
-
except (ValueError, Collection.DoesNotExist):
|
|
96
|
-
pass
|
|
97
|
-
|
|
98
|
-
# Filter by tag
|
|
99
|
-
self.current_tag = self.request.GET.get("tag")
|
|
100
|
-
# Combining search with tag filter is not yet supported, see
|
|
101
|
-
# https://github.com/wagtail/wagtail/issues/6616
|
|
102
|
-
if self.current_tag and not self.search_query:
|
|
103
|
-
try:
|
|
104
|
-
queryset = queryset.filter(tags__name=self.current_tag)
|
|
105
|
-
except AttributeError:
|
|
106
|
-
self.current_tag = None
|
|
107
|
-
|
|
108
|
-
return queryset
|
|
89
|
+
@cached_property
|
|
90
|
+
def current_collection(self):
|
|
91
|
+
# Upon validation, the cleaned data is a Collection instance
|
|
92
|
+
return self.filters and self.filters.form.cleaned_data.get("collection_id")
|
|
109
93
|
|
|
110
94
|
def get_add_url(self):
|
|
111
|
-
# Pass the
|
|
95
|
+
# Pass the collection filter to prefill the add form's collection field
|
|
112
96
|
return set_query_params(
|
|
113
97
|
super().get_add_url(),
|
|
114
|
-
self.
|
|
98
|
+
{"collection_id": self.current_collection and self.current_collection.pk},
|
|
115
99
|
)
|
|
116
100
|
|
|
101
|
+
def get_filterset_kwargs(self):
|
|
102
|
+
kwargs = super().get_filterset_kwargs()
|
|
103
|
+
kwargs["is_searching"] = self.is_searching
|
|
104
|
+
return kwargs
|
|
105
|
+
|
|
117
106
|
def get_next_url(self):
|
|
118
107
|
next_url = self.index_url
|
|
119
108
|
request_query_string = self.request.META.get("QUERY_STRING")
|
|
@@ -127,30 +116,12 @@ class IndexView(generic.IndexView):
|
|
|
127
116
|
context.update(
|
|
128
117
|
{
|
|
129
118
|
"next": self.get_next_url(),
|
|
130
|
-
"entries_per_page": self.entries_per_page,
|
|
131
|
-
"current_tag": self.current_tag,
|
|
132
119
|
"current_collection": self.current_collection,
|
|
133
|
-
"ENTRIES_PER_PAGE_CHOICES": self.ENTRIES_PER_PAGE_CHOICES,
|
|
134
120
|
"current_ordering": self.ordering,
|
|
135
121
|
"ORDERING_OPTIONS": self.ORDERING_OPTIONS,
|
|
136
122
|
}
|
|
137
123
|
)
|
|
138
124
|
|
|
139
|
-
if self.results_only:
|
|
140
|
-
return context
|
|
141
|
-
|
|
142
|
-
collections = self.permission_policy.collections_user_has_any_permission_for(
|
|
143
|
-
self.request.user, ["add", "change"]
|
|
144
|
-
)
|
|
145
|
-
if len(collections) < 2:
|
|
146
|
-
collections = None
|
|
147
|
-
|
|
148
|
-
context.update(
|
|
149
|
-
{
|
|
150
|
-
"popular_tags": popular_tags_for_model(get_image_model()),
|
|
151
|
-
"collections": collections,
|
|
152
|
-
}
|
|
153
|
-
)
|
|
154
125
|
return context
|
|
155
126
|
|
|
156
127
|
|
wagtail/images/views/multiple.py
CHANGED
|
@@ -15,7 +15,6 @@ from wagtail.admin.views.generic.multiple_upload import EditView as BaseEditView
|
|
|
15
15
|
from wagtail.images import get_image_model
|
|
16
16
|
from wagtail.images.fields import get_allowed_image_extensions
|
|
17
17
|
from wagtail.images.forms import get_image_form, get_image_multi_form
|
|
18
|
-
from wagtail.images.models import UploadedImage
|
|
19
18
|
from wagtail.images.permissions import ImagesPermissionPolicyGetter, permission_policy
|
|
20
19
|
from wagtail.images.utils import find_image_duplicates
|
|
21
20
|
|
|
@@ -23,7 +22,6 @@ from wagtail.images.utils import find_image_duplicates
|
|
|
23
22
|
class AddView(BaseAddView):
|
|
24
23
|
permission_policy = ImagesPermissionPolicyGetter()
|
|
25
24
|
template_name = "wagtailimages/multiple/add.html"
|
|
26
|
-
upload_model = UploadedImage
|
|
27
25
|
|
|
28
26
|
edit_object_url_name = "wagtailimages:edit_multiple"
|
|
29
27
|
delete_object_url_name = "wagtailimages:delete_multiple"
|
|
@@ -35,7 +33,7 @@ class AddView(BaseAddView):
|
|
|
35
33
|
delete_upload_url_name = "wagtailimages:delete_upload_multiple"
|
|
36
34
|
edit_upload_form_prefix = "uploaded-image"
|
|
37
35
|
context_upload_name = "uploaded_image"
|
|
38
|
-
context_upload_id_name = "
|
|
36
|
+
context_upload_id_name = "uploaded_file_id"
|
|
39
37
|
|
|
40
38
|
def get_model(self):
|
|
41
39
|
return get_image_model()
|
|
@@ -131,8 +129,7 @@ class DeleteView(BaseDeleteView):
|
|
|
131
129
|
class CreateFromUploadedImageView(BaseCreateFromUploadView):
|
|
132
130
|
edit_upload_url_name = "wagtailimages:create_multiple_from_uploaded_image"
|
|
133
131
|
delete_upload_url_name = "wagtailimages:delete_upload_multiple"
|
|
134
|
-
|
|
135
|
-
upload_pk_url_kwarg = "uploaded_image_id"
|
|
132
|
+
upload_pk_url_kwarg = "uploaded_file_id"
|
|
136
133
|
edit_upload_form_prefix = "uploaded-image"
|
|
137
134
|
context_object_id_name = "image_id"
|
|
138
135
|
context_upload_name = "uploaded_image"
|
|
@@ -160,5 +157,7 @@ class CreateFromUploadedImageView(BaseCreateFromUploadView):
|
|
|
160
157
|
|
|
161
158
|
|
|
162
159
|
class DeleteUploadView(BaseDeleteUploadView):
|
|
163
|
-
|
|
164
|
-
|
|
160
|
+
upload_pk_url_kwarg = "uploaded_file_id"
|
|
161
|
+
|
|
162
|
+
def get_model(self):
|
|
163
|
+
return get_image_model()
|
wagtail/images/wagtail_hooks.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
from django.urls import include, path, reverse
|
|
2
|
-
from django.utils.html import format_html
|
|
1
|
+
from django.urls import include, path, reverse, reverse_lazy
|
|
3
2
|
from django.utils.translation import gettext, ngettext
|
|
4
3
|
from django.utils.translation import gettext_lazy as _
|
|
5
4
|
|
|
@@ -58,18 +57,6 @@ def register_images_menu_item():
|
|
|
58
57
|
)
|
|
59
58
|
|
|
60
59
|
|
|
61
|
-
@hooks.register("insert_editor_js")
|
|
62
|
-
def editor_js():
|
|
63
|
-
return format_html(
|
|
64
|
-
"""
|
|
65
|
-
<script>
|
|
66
|
-
window.chooserUrls.imageChooser = '{0}';
|
|
67
|
-
</script>
|
|
68
|
-
""",
|
|
69
|
-
reverse("wagtailimages_chooser:choose"),
|
|
70
|
-
)
|
|
71
|
-
|
|
72
|
-
|
|
73
60
|
@hooks.register("register_rich_text_features")
|
|
74
61
|
def register_image_feature(features):
|
|
75
62
|
# define a handler for converting <embed embedtype="image"> tags into frontend HTML
|
|
@@ -97,6 +84,9 @@ def register_image_feature(features):
|
|
|
97
84
|
"allowlist": {
|
|
98
85
|
"id": True,
|
|
99
86
|
},
|
|
87
|
+
"chooserUrls": {
|
|
88
|
+
"imageChooser": reverse_lazy("wagtailimages_chooser:choose")
|
|
89
|
+
},
|
|
100
90
|
},
|
|
101
91
|
js=[
|
|
102
92
|
"wagtailimages/js/image-chooser-modal.js",
|