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/tests/test_views.py
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
|
+
from unittest import mock
|
|
2
|
+
|
|
1
3
|
from django.test import TestCase
|
|
2
4
|
from django.urls import reverse
|
|
3
5
|
|
|
4
|
-
from wagtail.
|
|
6
|
+
from wagtail.coreutils import get_dummy_request
|
|
7
|
+
from wagtail.models import Page, Site
|
|
8
|
+
from wagtail.test.testapp.models import SimplePage
|
|
5
9
|
from wagtail.test.utils import WagtailTestUtils
|
|
10
|
+
from wagtail.views import serve
|
|
6
11
|
|
|
7
12
|
|
|
8
13
|
class TestLoginView(WagtailTestUtils, TestCase):
|
|
@@ -47,3 +52,49 @@ class TestLoginView(WagtailTestUtils, TestCase):
|
|
|
47
52
|
},
|
|
48
53
|
)
|
|
49
54
|
self.assertRedirects(response, self.events_index.url)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
@mock.patch("wagtail.hooks.get_hooks", mock.Mock(return_value=[]))
|
|
58
|
+
class TestServeView(TestCase):
|
|
59
|
+
fixtures = ["test.json"]
|
|
60
|
+
|
|
61
|
+
def test_serve_query_count(self):
|
|
62
|
+
request = get_dummy_request()
|
|
63
|
+
Site.find_for_request(request)
|
|
64
|
+
page, args, kwargs = Page.route_for_request(request, request.path)
|
|
65
|
+
with mock.patch.object(page, "serve", wraps=page.serve) as m:
|
|
66
|
+
with self.assertNumQueries(0):
|
|
67
|
+
serve(request, "/")
|
|
68
|
+
m.assert_called_once_with(request, *args, **kwargs)
|
|
69
|
+
|
|
70
|
+
def test_process_view_by_page_query_count(self):
|
|
71
|
+
expected_query_count = 3
|
|
72
|
+
site = Site.objects.get()
|
|
73
|
+
page = site.root_page.add_child(
|
|
74
|
+
instance=SimplePage(title="Simple page", slug="simple", content="Simple")
|
|
75
|
+
)
|
|
76
|
+
with mock.patch.object(
|
|
77
|
+
Page, "route_for_request", wraps=Page.route_for_request
|
|
78
|
+
) as m:
|
|
79
|
+
with self.modify_settings(
|
|
80
|
+
MIDDLEWARE={
|
|
81
|
+
"prepend": "wagtail.test.middleware.SimplePageViewInterceptorMiddleware"
|
|
82
|
+
}
|
|
83
|
+
):
|
|
84
|
+
with self.assertNumQueries(expected_query_count):
|
|
85
|
+
response_a = self.client.get("/simple/")
|
|
86
|
+
self.assertEqual(
|
|
87
|
+
response_a.content,
|
|
88
|
+
b'\n\n\n\n<!DOCTYPE HTML>\n<html lang="en" dir="ltr">\n <head>\n <title>Simple page</title>\n </head>\n <body>\n \n <h1>Simple page</h1>\n \n <h2>Simple page</h2>\n\n </body>\n</html>\n',
|
|
89
|
+
)
|
|
90
|
+
self.assertEqual(m.call_count, 2)
|
|
91
|
+
page.content = "Intercept me"
|
|
92
|
+
page.save_revision().publish()
|
|
93
|
+
m.reset_mock()
|
|
94
|
+
with self.assertNumQueries(expected_query_count):
|
|
95
|
+
# verify the same number of queries are used when the
|
|
96
|
+
# middleware activates to demonstrate Page.route_for_request()
|
|
97
|
+
# prevents extra database queries for serving pages
|
|
98
|
+
response_b = self.client.get("/simple/")
|
|
99
|
+
self.assertEqual(response_b.content, b"Intercepted")
|
|
100
|
+
self.assertEqual(m.call_count, 1)
|
wagtail/tests/test_whitelist.py
CHANGED
|
@@ -28,7 +28,7 @@ class TestCheckUrl(TestCase):
|
|
|
28
28
|
|
|
29
29
|
class TestAttributeRule(WagtailTestUtils, TestCase):
|
|
30
30
|
def setUp(self):
|
|
31
|
-
self.soup = self.get_soup('<b foo="bar">baz</b>'
|
|
31
|
+
self.soup = self.get_soup('<b foo="bar">baz</b>')
|
|
32
32
|
|
|
33
33
|
def test_no_rule_for_attr(self):
|
|
34
34
|
"""
|
|
@@ -88,7 +88,7 @@ class TestAttributeRule(WagtailTestUtils, TestCase):
|
|
|
88
88
|
attributes.
|
|
89
89
|
"""
|
|
90
90
|
soup = self.get_soup(
|
|
91
|
-
'<b foo="bar" baz="quux" snowman="barbecue"></b>',
|
|
91
|
+
'<b foo="bar" baz="quux" snowman="barbecue"></b>',
|
|
92
92
|
)
|
|
93
93
|
tag = soup.b
|
|
94
94
|
allow_without_attributes(tag)
|
|
@@ -103,7 +103,7 @@ class TestWhitelister(WagtailTestUtils, TestCase):
|
|
|
103
103
|
"""
|
|
104
104
|
Unknown node should remove a node from the parent document
|
|
105
105
|
"""
|
|
106
|
-
soup = self.get_soup("<foo><bar>baz</bar>quux</foo>"
|
|
106
|
+
soup = self.get_soup("<foo><bar>baz</bar>quux</foo>")
|
|
107
107
|
tag = soup.foo
|
|
108
108
|
self.whitelister.clean_unknown_node("", soup.bar)
|
|
109
109
|
self.assertEqual(str(tag), "<foo>quux</foo>")
|
|
@@ -113,7 +113,7 @@ class TestWhitelister(WagtailTestUtils, TestCase):
|
|
|
113
113
|
<b> tags are allowed without attributes. This remains true
|
|
114
114
|
when tags are nested.
|
|
115
115
|
"""
|
|
116
|
-
soup = self.get_soup('<b><b class="delete me">foo</b></b>'
|
|
116
|
+
soup = self.get_soup('<b><b class="delete me">foo</b></b>')
|
|
117
117
|
tag = soup.b
|
|
118
118
|
self.whitelister.clean_tag_node(tag, tag)
|
|
119
119
|
self.assertEqual(str(tag), "<b><b>foo</b></b>")
|
|
@@ -122,19 +122,19 @@ class TestWhitelister(WagtailTestUtils, TestCase):
|
|
|
122
122
|
"""
|
|
123
123
|
<foo> tags should be removed, even when nested.
|
|
124
124
|
"""
|
|
125
|
-
soup = self.get_soup("<b><foo>bar</foo></b>"
|
|
125
|
+
soup = self.get_soup("<b><foo>bar</foo></b>")
|
|
126
126
|
tag = soup.b
|
|
127
127
|
self.whitelister.clean_tag_node(tag, tag)
|
|
128
128
|
self.assertEqual(str(tag), "<b>bar</b>")
|
|
129
129
|
|
|
130
130
|
def test_clean_string_node_does_nothing(self):
|
|
131
|
-
soup = self.get_soup("<b>bar</b>"
|
|
131
|
+
soup = self.get_soup("<b>bar</b>")
|
|
132
132
|
string = soup.b.string
|
|
133
133
|
self.whitelister.clean_string_node(string, string)
|
|
134
134
|
self.assertEqual(str(string), "bar")
|
|
135
135
|
|
|
136
136
|
def test_clean_node_does_not_change_navigable_strings(self):
|
|
137
|
-
soup = self.get_soup("<b>bar</b>"
|
|
137
|
+
soup = self.get_soup("<b>bar</b>")
|
|
138
138
|
string = soup.b.string
|
|
139
139
|
self.whitelister.clean_node(string, string)
|
|
140
140
|
self.assertEqual(str(string), "bar")
|
wagtail/users/forms.py
CHANGED
|
@@ -297,7 +297,9 @@ class PagePermissionsForm(forms.Form):
|
|
|
297
297
|
content_type__app_label="wagtailcore",
|
|
298
298
|
content_type__model="page",
|
|
299
299
|
codename__in=PAGE_PERMISSION_CODENAMES,
|
|
300
|
-
)
|
|
300
|
+
)
|
|
301
|
+
.select_related("content_type")
|
|
302
|
+
.order_by("codename"),
|
|
301
303
|
# Use codename as the field to use for the option values rather than pk,
|
|
302
304
|
# to minimise the changes needed since we moved to the Permission model
|
|
303
305
|
# and to ease testing.
|
|
@@ -8,7 +8,7 @@ msgid ""
|
|
|
8
8
|
msgstr ""
|
|
9
9
|
"Project-Id-Version: PACKAGE VERSION\n"
|
|
10
10
|
"Report-Msgid-Bugs-To: \n"
|
|
11
|
-
"POT-Creation-Date: 2024-
|
|
11
|
+
"POT-Creation-Date: 2024-04-18 17:28+0100\n"
|
|
12
12
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
|
13
13
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
14
14
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
|
@@ -66,7 +66,7 @@ msgstr ""
|
|
|
66
66
|
msgid "Enter the same password as above, for verification."
|
|
67
67
|
msgstr ""
|
|
68
68
|
|
|
69
|
-
#: forms.py:103 forms.py:240
|
|
69
|
+
#: forms.py:103 forms.py:240 views/users.py:95
|
|
70
70
|
msgid "Administrator"
|
|
71
71
|
msgstr ""
|
|
72
72
|
|
|
@@ -78,7 +78,7 @@ msgstr ""
|
|
|
78
78
|
msgid "A group with that name already exists."
|
|
79
79
|
msgstr ""
|
|
80
80
|
|
|
81
|
-
#: forms.py:
|
|
81
|
+
#: forms.py:371
|
|
82
82
|
msgid "You cannot have multiple permission records for the same page."
|
|
83
83
|
msgstr ""
|
|
84
84
|
|
|
@@ -152,11 +152,23 @@ msgstr ""
|
|
|
152
152
|
msgid "admin theme"
|
|
153
153
|
msgstr ""
|
|
154
154
|
|
|
155
|
-
#: models.py:
|
|
155
|
+
#: models.py:88
|
|
156
|
+
msgid "Default"
|
|
157
|
+
msgstr ""
|
|
158
|
+
|
|
159
|
+
#: models.py:89
|
|
160
|
+
msgid "Snug"
|
|
161
|
+
msgstr ""
|
|
162
|
+
|
|
163
|
+
#: models.py:92
|
|
164
|
+
msgid "density"
|
|
165
|
+
msgstr ""
|
|
166
|
+
|
|
167
|
+
#: models.py:112
|
|
156
168
|
msgid "user profile"
|
|
157
169
|
msgstr ""
|
|
158
170
|
|
|
159
|
-
#: models.py:
|
|
171
|
+
#: models.py:113
|
|
160
172
|
msgid "user profiles"
|
|
161
173
|
msgstr ""
|
|
162
174
|
|
|
@@ -201,7 +213,7 @@ msgstr[1] ""
|
|
|
201
213
|
#: templates/wagtailusers/bulk_actions/confirm_bulk_delete.html:7
|
|
202
214
|
#: templates/wagtailusers/groups/includes/formatted_permissions.html:32
|
|
203
215
|
#: templates/wagtailusers/groups/includes/page_permissions_form.html:13
|
|
204
|
-
#: views/bulk_actions/delete.py:9
|
|
216
|
+
#: views/bulk_actions/delete.py:9
|
|
205
217
|
msgid "Delete"
|
|
206
218
|
msgstr ""
|
|
207
219
|
|
|
@@ -268,26 +280,22 @@ msgid ""
|
|
|
268
280
|
"users."
|
|
269
281
|
msgstr ""
|
|
270
282
|
|
|
271
|
-
#: templates/wagtailusers/groups/confirm_delete.html:18 views/groups.py:
|
|
283
|
+
#: templates/wagtailusers/groups/confirm_delete.html:18 views/groups.py:144
|
|
272
284
|
msgid "Are you sure you want to delete this group?"
|
|
273
285
|
msgstr ""
|
|
274
286
|
|
|
275
|
-
#: templates/wagtailusers/groups/create.html:
|
|
287
|
+
#: templates/wagtailusers/groups/create.html:21 views/groups.py:100
|
|
276
288
|
msgid "Add group"
|
|
277
289
|
msgstr ""
|
|
278
290
|
|
|
279
|
-
#: templates/wagtailusers/groups/edit.html:
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
#: templates/wagtailusers/groups/edit.html:38
|
|
284
|
-
#: templates/wagtailusers/users/edit.html:56
|
|
285
|
-
#: templates/wagtailusers/users/edit.html:77
|
|
291
|
+
#: templates/wagtailusers/groups/edit.html:26
|
|
292
|
+
#: templates/wagtailusers/users/edit.html:48
|
|
293
|
+
#: templates/wagtailusers/users/edit.html:69
|
|
286
294
|
msgid "Save"
|
|
287
295
|
msgstr ""
|
|
288
296
|
|
|
289
|
-
#: templates/wagtailusers/groups/edit.html:
|
|
290
|
-
#: views/groups.py:
|
|
297
|
+
#: templates/wagtailusers/groups/edit.html:29 views/groups.py:116
|
|
298
|
+
#: views/groups.py:143
|
|
291
299
|
msgid "Delete group"
|
|
292
300
|
msgstr ""
|
|
293
301
|
|
|
@@ -297,9 +305,8 @@ msgid "Object permissions"
|
|
|
297
305
|
msgstr ""
|
|
298
306
|
|
|
299
307
|
#: templates/wagtailusers/groups/includes/formatted_permissions.html:29
|
|
300
|
-
#: templates/wagtailusers/groups/includes/formatted_permissions.html:
|
|
301
|
-
#:
|
|
302
|
-
#: templates/wagtailusers/users/list.html:13 views/groups.py:66
|
|
308
|
+
#: templates/wagtailusers/groups/includes/formatted_permissions.html:166
|
|
309
|
+
#: views/groups.py:92 views/users.py:149
|
|
303
310
|
msgid "Name"
|
|
304
311
|
msgstr ""
|
|
305
312
|
|
|
@@ -329,7 +336,39 @@ msgid "Custom permissions"
|
|
|
329
336
|
msgstr ""
|
|
330
337
|
|
|
331
338
|
#: templates/wagtailusers/groups/includes/formatted_permissions.html:112
|
|
339
|
+
msgid "Toggle all"
|
|
340
|
+
msgstr ""
|
|
341
|
+
|
|
332
342
|
#: templates/wagtailusers/groups/includes/formatted_permissions.html:115
|
|
343
|
+
msgid "Toggle all add permissions"
|
|
344
|
+
msgstr ""
|
|
345
|
+
|
|
346
|
+
#: templates/wagtailusers/groups/includes/formatted_permissions.html:119
|
|
347
|
+
msgid "Toggle all change permissions"
|
|
348
|
+
msgstr ""
|
|
349
|
+
|
|
350
|
+
#: templates/wagtailusers/groups/includes/formatted_permissions.html:123
|
|
351
|
+
msgid "Toggle all delete permissions"
|
|
352
|
+
msgstr ""
|
|
353
|
+
|
|
354
|
+
#: templates/wagtailusers/groups/includes/formatted_permissions.html:128
|
|
355
|
+
msgid "Toggle all publish permissions"
|
|
356
|
+
msgstr ""
|
|
357
|
+
|
|
358
|
+
#: templates/wagtailusers/groups/includes/formatted_permissions.html:134
|
|
359
|
+
msgid "Toggle all lock permissions"
|
|
360
|
+
msgstr ""
|
|
361
|
+
|
|
362
|
+
#: templates/wagtailusers/groups/includes/formatted_permissions.html:140
|
|
363
|
+
msgid "Toggle all unlock permissions"
|
|
364
|
+
msgstr ""
|
|
365
|
+
|
|
366
|
+
#: templates/wagtailusers/groups/includes/formatted_permissions.html:146
|
|
367
|
+
msgid "Toggle all custom permissions"
|
|
368
|
+
msgstr ""
|
|
369
|
+
|
|
370
|
+
#: templates/wagtailusers/groups/includes/formatted_permissions.html:156
|
|
371
|
+
#: templates/wagtailusers/groups/includes/formatted_permissions.html:159
|
|
333
372
|
msgid "Other permissions"
|
|
334
373
|
msgstr ""
|
|
335
374
|
|
|
@@ -361,80 +400,41 @@ msgstr ""
|
|
|
361
400
|
msgid "Are you sure you want to delete this user?"
|
|
362
401
|
msgstr ""
|
|
363
402
|
|
|
364
|
-
#: templates/wagtailusers/users/create.html:
|
|
365
|
-
#: templates/wagtailusers/users/edit.html:
|
|
403
|
+
#: templates/wagtailusers/users/create.html:9
|
|
404
|
+
#: templates/wagtailusers/users/edit.html:9
|
|
366
405
|
msgid "Account"
|
|
367
406
|
msgstr ""
|
|
368
407
|
|
|
369
|
-
#: templates/wagtailusers/users/create.html:
|
|
370
|
-
#: templates/wagtailusers/users/create.html:
|
|
371
|
-
#: templates/wagtailusers/users/edit.html:
|
|
408
|
+
#: templates/wagtailusers/users/create.html:11
|
|
409
|
+
#: templates/wagtailusers/users/create.html:45
|
|
410
|
+
#: templates/wagtailusers/users/edit.html:11
|
|
372
411
|
msgid "Roles"
|
|
373
412
|
msgstr ""
|
|
374
413
|
|
|
375
|
-
#: templates/wagtailusers/users/create.html:
|
|
414
|
+
#: templates/wagtailusers/users/create.html:61 views/users.py:266
|
|
376
415
|
msgid "Add user"
|
|
377
416
|
msgstr ""
|
|
378
417
|
|
|
379
|
-
#: templates/wagtailusers/users/edit.html:
|
|
380
|
-
#: templates/wagtailusers/users/edit.html:
|
|
418
|
+
#: templates/wagtailusers/users/edit.html:50
|
|
419
|
+
#: templates/wagtailusers/users/edit.html:71 views/users.py:340
|
|
381
420
|
msgid "Delete user"
|
|
382
421
|
msgstr ""
|
|
383
422
|
|
|
384
|
-
#: templates/wagtailusers/users/index.html:
|
|
423
|
+
#: templates/wagtailusers/users/index.html:12
|
|
385
424
|
msgid "Select all users in listing"
|
|
386
425
|
msgstr ""
|
|
387
426
|
|
|
388
|
-
#: templates/wagtailusers/users/index_results.html:
|
|
389
|
-
|
|
390
|
-
msgid "Sorry, no users match \"<em>%(query_string)s</em>\""
|
|
427
|
+
#: templates/wagtailusers/users/index_results.html:6
|
|
428
|
+
msgid "Sorry, no users match your query"
|
|
391
429
|
msgstr ""
|
|
392
430
|
|
|
393
|
-
#: templates/wagtailusers/users/index_results.html:
|
|
394
|
-
#, python-format
|
|
395
|
-
msgid ""
|
|
396
|
-
"The %(group_name)s group has no users configured. Why not <a "
|
|
397
|
-
"href=\"%(wagtailusers_add_url)s\">add some</a>?"
|
|
398
|
-
msgstr ""
|
|
399
|
-
|
|
400
|
-
#: templates/wagtailusers/users/index_results.html:17
|
|
431
|
+
#: templates/wagtailusers/users/index_results.html:8
|
|
401
432
|
#, python-format
|
|
402
433
|
msgid ""
|
|
403
434
|
"There are no users configured. Why not <a "
|
|
404
435
|
"href=\"%(wagtailusers_add_url)s\">add some</a>?"
|
|
405
436
|
msgstr ""
|
|
406
437
|
|
|
407
|
-
#: templates/wagtailusers/users/list.html:20
|
|
408
|
-
#: templates/wagtailusers/users/list.html:24
|
|
409
|
-
msgid "Username"
|
|
410
|
-
msgstr ""
|
|
411
|
-
|
|
412
|
-
#: templates/wagtailusers/users/list.html:28
|
|
413
|
-
msgid "Access level"
|
|
414
|
-
msgstr ""
|
|
415
|
-
|
|
416
|
-
#: templates/wagtailusers/users/list.html:29
|
|
417
|
-
msgid "Status"
|
|
418
|
-
msgstr ""
|
|
419
|
-
|
|
420
|
-
#: templates/wagtailusers/users/list.html:30
|
|
421
|
-
msgid "Last Login"
|
|
422
|
-
msgstr ""
|
|
423
|
-
|
|
424
|
-
#: templates/wagtailusers/users/list.html:48
|
|
425
|
-
msgid "Admin"
|
|
426
|
-
msgstr ""
|
|
427
|
-
|
|
428
|
-
#: templates/wagtailusers/users/list.html:51
|
|
429
|
-
#: views/bulk_actions/set_active_state.py:11
|
|
430
|
-
msgid "Active"
|
|
431
|
-
msgstr ""
|
|
432
|
-
|
|
433
|
-
#: templates/wagtailusers/users/list.html:54
|
|
434
|
-
#: views/bulk_actions/set_active_state.py:11
|
|
435
|
-
msgid "Inactive"
|
|
436
|
-
msgstr ""
|
|
437
|
-
|
|
438
438
|
#: utils.py:53
|
|
439
439
|
#, python-format
|
|
440
440
|
msgid "user %(id)s (deleted)"
|
|
@@ -462,6 +462,15 @@ msgid_plural "%(num_parent_objects)d users have been deleted"
|
|
|
462
462
|
msgstr[0] ""
|
|
463
463
|
msgstr[1] ""
|
|
464
464
|
|
|
465
|
+
#: views/bulk_actions/set_active_state.py:11 views/users.py:118
|
|
466
|
+
#: views/users.py:174
|
|
467
|
+
msgid "Active"
|
|
468
|
+
msgstr ""
|
|
469
|
+
|
|
470
|
+
#: views/bulk_actions/set_active_state.py:11 views/users.py:176
|
|
471
|
+
msgid "Inactive"
|
|
472
|
+
msgstr ""
|
|
473
|
+
|
|
465
474
|
#: views/bulk_actions/set_active_state.py:12
|
|
466
475
|
msgid "Mark as active"
|
|
467
476
|
msgstr ""
|
|
@@ -484,74 +493,93 @@ msgid_plural "%(num_parent_objects)d users have been marked as inactive"
|
|
|
484
493
|
msgstr[0] ""
|
|
485
494
|
msgstr[1] ""
|
|
486
495
|
|
|
487
|
-
#: views/groups.py:
|
|
496
|
+
#: views/groups.py:82 wagtail_hooks.py:93
|
|
488
497
|
msgid "Groups"
|
|
489
498
|
msgstr ""
|
|
490
499
|
|
|
491
|
-
#: views/groups.py:
|
|
500
|
+
#: views/groups.py:83
|
|
492
501
|
msgid "Add a group"
|
|
493
502
|
msgstr ""
|
|
494
503
|
|
|
495
|
-
#: views/groups.py:
|
|
504
|
+
#: views/groups.py:84
|
|
496
505
|
msgid "Search groups"
|
|
497
506
|
msgstr ""
|
|
498
507
|
|
|
499
|
-
#: views/groups.py:
|
|
508
|
+
#: views/groups.py:101
|
|
500
509
|
#, python-format
|
|
501
510
|
msgid "Group '%(object)s' created."
|
|
502
511
|
msgstr ""
|
|
503
512
|
|
|
504
|
-
#: views/groups.py:
|
|
513
|
+
#: views/groups.py:114
|
|
505
514
|
#, python-format
|
|
506
515
|
msgid "Group '%(object)s' updated."
|
|
507
516
|
msgstr ""
|
|
508
517
|
|
|
509
|
-
#: views/groups.py:
|
|
518
|
+
#: views/groups.py:115
|
|
510
519
|
msgid "The group could not be saved due to errors."
|
|
511
520
|
msgstr ""
|
|
512
521
|
|
|
513
|
-
#: views/groups.py:
|
|
522
|
+
#: views/groups.py:123
|
|
523
|
+
msgid "View users in this group"
|
|
524
|
+
msgstr ""
|
|
525
|
+
|
|
526
|
+
#: views/groups.py:142
|
|
514
527
|
#, python-format
|
|
515
528
|
msgid "Group '%(object)s' deleted."
|
|
516
529
|
msgstr ""
|
|
517
530
|
|
|
518
|
-
#: views/users.py:
|
|
531
|
+
#: views/users.py:99 views/users.py:185
|
|
532
|
+
msgid "Last login"
|
|
533
|
+
msgstr ""
|
|
534
|
+
|
|
535
|
+
#: views/users.py:105
|
|
536
|
+
msgid "Group"
|
|
537
|
+
msgstr ""
|
|
538
|
+
|
|
539
|
+
#: views/users.py:135
|
|
519
540
|
msgid "Add a user"
|
|
520
541
|
msgstr ""
|
|
521
542
|
|
|
522
|
-
#: views/users.py:
|
|
543
|
+
#: views/users.py:138 wagtail_hooks.py:73 wagtail_hooks.py:131
|
|
523
544
|
msgid "Users"
|
|
524
545
|
msgstr ""
|
|
525
546
|
|
|
526
|
-
#: views/users.py:
|
|
527
|
-
|
|
528
|
-
msgid "User '%(object)s' created."
|
|
547
|
+
#: views/users.py:159
|
|
548
|
+
msgid "Username"
|
|
529
549
|
msgstr ""
|
|
530
550
|
|
|
531
|
-
#: views/users.py:
|
|
532
|
-
|
|
533
|
-
msgid "User '%(object)s' updated."
|
|
551
|
+
#: views/users.py:166
|
|
552
|
+
msgid "Admin"
|
|
534
553
|
msgstr ""
|
|
535
554
|
|
|
536
|
-
#: views/users.py:
|
|
537
|
-
msgid "
|
|
555
|
+
#: views/users.py:167
|
|
556
|
+
msgid "Access level"
|
|
538
557
|
msgstr ""
|
|
539
558
|
|
|
540
|
-
#: views/users.py:
|
|
559
|
+
#: views/users.py:178
|
|
560
|
+
msgid "Status"
|
|
561
|
+
msgstr ""
|
|
562
|
+
|
|
563
|
+
#: views/users.py:230
|
|
541
564
|
#, python-format
|
|
542
|
-
msgid "
|
|
565
|
+
msgid "More options for '%(title)s'"
|
|
543
566
|
msgstr ""
|
|
544
567
|
|
|
545
|
-
#:
|
|
546
|
-
|
|
568
|
+
#: views/users.py:265
|
|
569
|
+
#, python-format
|
|
570
|
+
msgid "User '%(object)s' created."
|
|
547
571
|
msgstr ""
|
|
548
572
|
|
|
549
|
-
#:
|
|
573
|
+
#: views/users.py:287
|
|
550
574
|
#, python-format
|
|
551
|
-
msgid "
|
|
575
|
+
msgid "User '%(object)s' updated."
|
|
552
576
|
msgstr ""
|
|
553
577
|
|
|
554
|
-
#:
|
|
578
|
+
#: views/users.py:288
|
|
579
|
+
msgid "The user could not be saved due to errors."
|
|
580
|
+
msgstr ""
|
|
581
|
+
|
|
582
|
+
#: views/users.py:341
|
|
555
583
|
#, python-format
|
|
556
|
-
msgid "
|
|
584
|
+
msgid "User '%(object)s' deleted."
|
|
557
585
|
msgstr ""
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Generated by Django 4.2.9 on 2024-04-11 08:38
|
|
2
|
+
|
|
3
|
+
from django.db import migrations, models
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class Migration(migrations.Migration):
|
|
7
|
+
|
|
8
|
+
dependencies = [
|
|
9
|
+
("wagtailusers", "0012_userprofile_theme"),
|
|
10
|
+
]
|
|
11
|
+
|
|
12
|
+
operations = [
|
|
13
|
+
migrations.AddField(
|
|
14
|
+
model_name="userprofile",
|
|
15
|
+
name="density",
|
|
16
|
+
field=models.CharField(
|
|
17
|
+
choices=[("default", "Default"), ("snug", "Snug")],
|
|
18
|
+
default="default",
|
|
19
|
+
max_length=40,
|
|
20
|
+
verbose_name="density",
|
|
21
|
+
),
|
|
22
|
+
),
|
|
23
|
+
]
|
wagtail/users/models.py
CHANGED
|
@@ -72,15 +72,26 @@ class UserProfile(models.Model):
|
|
|
72
72
|
|
|
73
73
|
dismissibles = models.JSONField(default=dict, blank=True)
|
|
74
74
|
|
|
75
|
-
class
|
|
75
|
+
class AdminColorThemes(models.TextChoices):
|
|
76
76
|
SYSTEM = "system", _("System default")
|
|
77
77
|
LIGHT = "light", _("Light")
|
|
78
78
|
DARK = "dark", _("Dark")
|
|
79
79
|
|
|
80
80
|
theme = models.CharField(
|
|
81
81
|
verbose_name=_("admin theme"),
|
|
82
|
-
choices=
|
|
83
|
-
default=
|
|
82
|
+
choices=AdminColorThemes.choices,
|
|
83
|
+
default=AdminColorThemes.SYSTEM,
|
|
84
|
+
max_length=40,
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
class AdminDensityThemes(models.TextChoices):
|
|
88
|
+
DEFAULT = "default", _("Default")
|
|
89
|
+
SNUG = "snug", _("Snug")
|
|
90
|
+
|
|
91
|
+
density = models.CharField(
|
|
92
|
+
verbose_name=_("density"),
|
|
93
|
+
choices=AdminDensityThemes.choices,
|
|
94
|
+
default=AdminDensityThemes.DEFAULT,
|
|
84
95
|
max_length=40,
|
|
85
96
|
)
|
|
86
97
|
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
{% extends "wagtailadmin/generic/
|
|
1
|
+
{% extends "wagtailadmin/generic/create.html" %}
|
|
2
2
|
{% load wagtailusers_tags i18n wagtailadmin_tags %}
|
|
3
3
|
|
|
4
|
-
{% block extra_css %}
|
|
5
|
-
{{ block.super }}
|
|
6
|
-
|
|
7
|
-
{{ form_media.css }}
|
|
8
|
-
{% endblock %}
|
|
9
|
-
|
|
10
4
|
{% block main_content %}
|
|
11
5
|
<form action="{% url 'wagtailusers_groups:add' %}" method="POST" novalidate>
|
|
12
6
|
{% csrf_token %}
|
|
@@ -1,18 +1,6 @@
|
|
|
1
|
-
{% extends "wagtailadmin/generic/
|
|
1
|
+
{% extends "wagtailadmin/generic/edit.html" %}
|
|
2
2
|
{% load wagtailusers_tags wagtailadmin_tags i18n %}
|
|
3
3
|
|
|
4
|
-
{% block extra_css %}
|
|
5
|
-
{{ block.super }}
|
|
6
|
-
|
|
7
|
-
{{ form_media.css }}
|
|
8
|
-
{% endblock %}
|
|
9
|
-
|
|
10
|
-
{% block main_header %}
|
|
11
|
-
{% trans "View users in this group" as users_str %}
|
|
12
|
-
{% url 'wagtailusers_groups:users' group.id as group_users_url %}
|
|
13
|
-
{% include "wagtailadmin/shared/header.html" with title=page_title action_icon="user" action_url=group_users_url action_text=users_str subtitle=page_subtitle icon="group" %}
|
|
14
|
-
{% endblock %}
|
|
15
|
-
|
|
16
4
|
{% block main_content %}
|
|
17
5
|
<form action="{% url 'wagtailusers_groups:edit' group.id %}" method="POST" novalidate>
|
|
18
6
|
{% csrf_token %}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<fieldset>
|
|
6
6
|
<legend class="w-sr-only">{% trans "Object permissions" %}</legend>
|
|
7
7
|
|
|
8
|
-
<table class="listing">
|
|
8
|
+
<table class="listing" data-controller="w-bulk">
|
|
9
9
|
<colgroup>
|
|
10
10
|
<col />
|
|
11
11
|
<col width="10%" />
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
<fieldset class="w-p-0">
|
|
97
97
|
<legend class="w-sr-only">{% trans "Custom permissions" %}</legend>
|
|
98
98
|
{% for custom_perm in content_perms_dict.custom %}
|
|
99
|
-
{% include "wagtailadmin/shared/forms/single_checkbox.html" with name="permissions" value=custom_perm.perm.id checked=custom_perm.selected text=custom_perm.name %}
|
|
99
|
+
{% include "wagtailadmin/shared/forms/single_checkbox.html" with name="permissions" value=custom_perm.perm.id checked=custom_perm.selected text=custom_perm.name attrs=custom_perm.attrs %}
|
|
100
100
|
{% endfor %}
|
|
101
101
|
</fieldset>
|
|
102
102
|
{% endif %}
|
|
@@ -105,6 +105,50 @@
|
|
|
105
105
|
</tr>
|
|
106
106
|
{% endfor %}
|
|
107
107
|
</tbody>
|
|
108
|
+
<tfoot>
|
|
109
|
+
<tr>
|
|
110
|
+
<th scope="row">
|
|
111
|
+
<input id="toggle-all" type="checkbox" data-action="w-bulk#toggleAll" data-w-bulk-target="all">
|
|
112
|
+
<label for="toggle-all" >{% trans "Toggle all" %}</label>
|
|
113
|
+
</th>
|
|
114
|
+
<td>
|
|
115
|
+
<label for="toggle-all-add" class="visuallyhidden">{% trans "Toggle all add permissions" %}</label>
|
|
116
|
+
<input id="toggle-all-add" type="checkbox" data-action="w-bulk#toggleAll" data-w-bulk-target="all" data-w-bulk-group-param="add">
|
|
117
|
+
</td>
|
|
118
|
+
<td>
|
|
119
|
+
<label for="toggle-all-change" class="visuallyhidden">{% trans "Toggle all change permissions" %}</label>
|
|
120
|
+
<input id="toggle-all-change" type="checkbox" data-action="w-bulk#toggleAll" data-w-bulk-target="all" data-w-bulk-group-param="change">
|
|
121
|
+
</td>
|
|
122
|
+
<td>
|
|
123
|
+
<label for="toggle-all-delete" class="visuallyhidden">{% trans "Toggle all delete permissions" %}</label>
|
|
124
|
+
<input id="toggle-all-delete" type="checkbox" data-action="w-bulk#toggleAll" data-w-bulk-target="all" data-w-bulk-group-param="delete">
|
|
125
|
+
</td>
|
|
126
|
+
{% if extra_perms_exist.publish %}
|
|
127
|
+
<td>
|
|
128
|
+
<label for="toggle-all-publish" class="visuallyhidden">{% trans "Toggle all publish permissions" %}</label>
|
|
129
|
+
<input id="toggle-all-publish" type="checkbox" data-action="w-bulk#toggleAll" data-w-bulk-target="all" data-w-bulk-group-param="publish">
|
|
130
|
+
</td>
|
|
131
|
+
{% endif %}
|
|
132
|
+
{% if extra_perms_exist.lock %}
|
|
133
|
+
<td>
|
|
134
|
+
<label for="toggle-all-lock" class="visuallyhidden">{% trans "Toggle all lock permissions" %}</label>
|
|
135
|
+
<input id="toggle-all-lock" type="checkbox" data-action="w-bulk#toggleAll" data-w-bulk-target="all" data-w-bulk-group-param="lock">
|
|
136
|
+
</td>
|
|
137
|
+
{% endif %}
|
|
138
|
+
{% if extra_perms_exist.unlock %}
|
|
139
|
+
<td>
|
|
140
|
+
<label for="toggle-all-unlock" class="visuallyhidden">{% trans "Toggle all unlock permissions" %}</label>
|
|
141
|
+
<input id="toggle-all-unlock" type="checkbox" data-action="w-bulk#toggleAll" data-w-bulk-target="all" data-w-bulk-group-param="unlock">
|
|
142
|
+
</td>
|
|
143
|
+
{% endif %}
|
|
144
|
+
{% if extra_perms_exist.custom %}
|
|
145
|
+
<td>
|
|
146
|
+
<label for="toggle-all-custom" class="visuallyhidden">{% trans "Toggle all custom permissions" %}</label>
|
|
147
|
+
<input id="toggle-all-custom" type="checkbox" data-action="w-bulk#toggleAll" data-w-bulk-target="all" data-w-bulk-group-param="custom">
|
|
148
|
+
</td>
|
|
149
|
+
{% endif %}
|
|
150
|
+
</tr>
|
|
151
|
+
</tfoot>
|
|
108
152
|
</table>
|
|
109
153
|
</fieldset>
|
|
110
154
|
{% endpanel %}
|