wagtail 6.1.3__py3-none-any.whl → 6.2rc1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- wagtail/__init__.py +1 -1
- wagtail/actions/copy_for_translation.py +15 -1
- wagtail/admin/checks.py +20 -30
- wagtail/admin/forms/pages.py +10 -0
- wagtail/admin/icons.py +43 -0
- wagtail/admin/locale/en/LC_MESSAGES/django.po +405 -295
- wagtail/admin/locale/en/LC_MESSAGES/djangojs.po +21 -3
- wagtail/admin/locale/sl/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/sl/LC_MESSAGES/django.po +30 -0
- wagtail/admin/menu.py +2 -2
- wagtail/admin/migrations/0004_editingsession.py +57 -0
- wagtail/admin/migrations/0005_editingsession_is_editing.py +18 -0
- wagtail/admin/models.py +36 -3
- wagtail/admin/rich_text/editors/draftail/__init__.py +2 -20
- wagtail/admin/static/wagtailadmin/css/core.css +1 -1
- 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/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 +2 -1
- wagtail/admin/static/wagtailadmin/js/preview-panel.js.LICENSE.txt +11 -0
- 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/widgets.js +1 -1
- wagtail/admin/static/wagtailadmin/js/userbar.js +2 -1
- wagtail/admin/static/wagtailadmin/js/userbar.js.LICENSE.txt +11 -0
- wagtail/admin/static/wagtailadmin/js/vendor.js +1 -1
- wagtail/admin/static/wagtailadmin/js/vendor.js.LICENSE.txt +0 -12
- wagtail/admin/static/wagtailadmin/js/wagtailadmin.js +1 -1
- wagtail/admin/static/wagtailadmin/js/workflow-action.js +1 -1
- wagtail/admin/templates/wagtailadmin/collection_privacy/ancestor_privacy.html +2 -6
- wagtail/admin/templates/wagtailadmin/generic/index_results.html +1 -17
- wagtail/admin/templates/wagtailadmin/generic/listing_results.html +20 -1
- wagtail/admin/templates/wagtailadmin/home/workflow_objects_to_moderate.html +2 -11
- wagtail/admin/templates/wagtailadmin/page_privacy/ancestor_privacy.html +2 -6
- wagtail/admin/templates/wagtailadmin/page_privacy/no_privacy.html +2 -0
- wagtail/admin/templates/wagtailadmin/pages/_editor_js.html +0 -1
- wagtail/admin/templates/wagtailadmin/pages/action_menu/menu.html +1 -1
- wagtail/admin/templates/wagtailadmin/reports/aging_pages_results.html +54 -0
- wagtail/admin/templates/wagtailadmin/reports/base_page_report.html +1 -17
- wagtail/admin/templates/wagtailadmin/reports/base_page_report_results.html +10 -0
- wagtail/admin/templates/wagtailadmin/reports/base_report.html +1 -40
- wagtail/admin/templates/wagtailadmin/reports/base_report_results.html +1 -0
- wagtail/admin/templates/wagtailadmin/reports/listing/_list_page_report.html +21 -27
- wagtail/admin/templates/wagtailadmin/reports/listing/_list_page_types_usage.html +48 -54
- wagtail/admin/templates/wagtailadmin/reports/{locked_pages.html → locked_pages_results.html} +3 -3
- wagtail/admin/templates/wagtailadmin/reports/page_types_usage_results.html +10 -0
- wagtail/admin/templates/wagtailadmin/reports/site_history_results.html +53 -0
- wagtail/admin/templates/wagtailadmin/reports/workflow_results.html +74 -0
- wagtail/admin/templates/wagtailadmin/reports/workflow_tasks_results.html +56 -0
- wagtail/admin/templates/wagtailadmin/shared/_workflow_init.html +8 -44
- wagtail/admin/templates/wagtailadmin/shared/avatar.html +11 -1
- wagtail/admin/templates/wagtailadmin/shared/dialog/dialog.html +5 -4
- wagtail/admin/templates/wagtailadmin/shared/dropdown/dropdown_button.html +2 -1
- wagtail/admin/templates/wagtailadmin/shared/editing_sessions/list.html +132 -0
- wagtail/admin/templates/wagtailadmin/shared/editing_sessions/module.html +44 -0
- wagtail/admin/templates/wagtailadmin/shared/headers/slim_header.html +7 -1
- wagtail/admin/templates/wagtailadmin/shared/page_status_tag_new.html +1 -1
- wagtail/admin/templates/wagtailadmin/shared/side_panels/checks.html +32 -16
- wagtail/admin/templates/wagtailadmin/skeleton.html +1 -1
- wagtail/admin/templates/wagtailadmin/userbar/item_accessibility.html +9 -11
- wagtail/admin/templatetags/wagtailadmin_tags.py +13 -2
- wagtail/admin/tests/formats/en/__init__.py +0 -0
- wagtail/admin/tests/formats/en/formats.py +1 -0
- wagtail/admin/tests/pages/test_create_page.py +47 -0
- wagtail/admin/tests/pages/test_edit_page.py +10 -8
- wagtail/admin/tests/pages/test_parent_page_chooser_view.py +45 -1
- wagtail/admin/tests/test_checks.py +53 -3
- wagtail/admin/tests/test_collections_views.py +62 -1
- wagtail/admin/tests/test_edit_handlers.py +37 -0
- wagtail/admin/tests/test_editing_sessions.py +1336 -0
- wagtail/admin/tests/test_icon_sprite.py +12 -21
- wagtail/admin/tests/test_page_chooser.py +309 -7
- wagtail/admin/tests/test_privacy.py +82 -0
- wagtail/admin/tests/test_reports_views.py +464 -70
- wagtail/admin/tests/test_userbar.py +93 -6
- wagtail/admin/tests/test_workflows.py +223 -33
- wagtail/admin/tests/viewsets/test_model_viewset.py +151 -2
- wagtail/admin/ui/editing_sessions.py +57 -0
- wagtail/admin/urls/__init__.py +9 -15
- wagtail/admin/urls/editing_sessions.py +17 -0
- wagtail/admin/urls/reports.py +33 -1
- wagtail/admin/userbar.py +77 -20
- wagtail/admin/views/chooser.py +49 -22
- wagtail/admin/views/collections.py +0 -11
- wagtail/admin/views/editing_sessions.py +193 -0
- wagtail/admin/views/generic/__init__.py +1 -0
- wagtail/admin/views/generic/history.py +9 -3
- wagtail/admin/views/generic/mixins.py +44 -3
- wagtail/admin/views/generic/models.py +46 -72
- wagtail/admin/views/generic/permissions.py +20 -10
- wagtail/admin/views/home.py +2 -31
- wagtail/admin/views/page_privacy.py +20 -5
- wagtail/admin/views/pages/choose_parent.py +62 -0
- wagtail/admin/views/pages/edit.py +28 -0
- wagtail/admin/views/reports/aging_pages.py +6 -10
- wagtail/admin/views/reports/audit_logging.py +13 -42
- wagtail/admin/views/reports/base.py +31 -4
- wagtail/admin/views/reports/locked_pages.py +5 -8
- wagtail/admin/views/reports/page_types_usage.py +6 -10
- wagtail/admin/views/reports/workflows.py +36 -12
- wagtail/admin/viewsets/base.py +8 -3
- wagtail/admin/viewsets/chooser.py +1 -1
- wagtail/admin/viewsets/model.py +26 -1
- wagtail/admin/wagtail_hooks.py +2 -1
- wagtail/api/v2/filters.py +6 -0
- wagtail/api/v2/tests/test_documents.py +1 -1
- wagtail/api/v2/tests/test_images.py +1 -1
- wagtail/api/v2/tests/test_pages.py +11 -1
- wagtail/api/v2/utils.py +2 -2
- wagtail/blocks/base.py +35 -12
- wagtail/blocks/definition_lookup.py +85 -0
- wagtail/blocks/list_block.py +12 -0
- wagtail/blocks/migrations/migrate_operation.py +2 -0
- wagtail/blocks/stream_block.py +19 -0
- wagtail/blocks/struct_block.py +19 -0
- wagtail/contrib/forms/locale/en/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/frontend_cache/backends/__init__.py +5 -0
- wagtail/contrib/frontend_cache/backends/azure.py +179 -0
- wagtail/contrib/frontend_cache/backends/base.py +28 -0
- wagtail/contrib/frontend_cache/backends/cloudflare.py +114 -0
- wagtail/contrib/frontend_cache/backends/cloudfront.py +99 -0
- wagtail/contrib/frontend_cache/backends/http.py +64 -0
- wagtail/contrib/frontend_cache/tests.py +59 -17
- wagtail/contrib/frontend_cache/utils.py +26 -8
- wagtail/contrib/redirects/filters.py +15 -1
- wagtail/contrib/redirects/locale/en/LC_MESSAGES/django.po +37 -72
- wagtail/contrib/redirects/models.py +6 -5
- wagtail/contrib/redirects/templates/wagtailredirects/edit.html +1 -38
- wagtail/contrib/redirects/tests/test_redirects.py +141 -1
- wagtail/contrib/redirects/urls.py +1 -2
- wagtail/contrib/redirects/views.py +39 -80
- wagtail/contrib/routable_page/models.py +6 -4
- wagtail/contrib/routable_page/tests.py +11 -0
- wagtail/contrib/search_promotions/locale/en/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/en/LC_MESSAGES/django.po +4 -4
- wagtail/contrib/simple_translation/locale/en/LC_MESSAGES/django.po +5 -1
- wagtail/contrib/simple_translation/models.py +2 -1
- wagtail/contrib/styleguide/locale/en/LC_MESSAGES/django.po +7 -7
- 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/blocks.py +19 -0
- wagtail/contrib/typed_table_block/locale/en/LC_MESSAGES/django.po +10 -10
- wagtail/contrib/typed_table_block/static/typed_table_block/js/typed_table_block.js +1 -1
- wagtail/contrib/typed_table_block/tests.py +38 -0
- wagtail/coreutils.py +1 -1
- wagtail/documents/__init__.py +1 -1
- wagtail/documents/locale/en/LC_MESSAGES/django.po +8 -8
- wagtail/documents/locale/sl/LC_MESSAGES/django.mo +0 -0
- wagtail/documents/locale/sl/LC_MESSAGES/django.po +20 -0
- wagtail/documents/models.py +5 -1
- 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/tests/test_models.py +5 -1
- wagtail/embeds/apps.py +2 -0
- wagtail/embeds/embeds.py +12 -14
- wagtail/embeds/finders/__init__.py +2 -0
- wagtail/embeds/finders/facebook.py +17 -33
- wagtail/embeds/finders/instagram.py +19 -16
- wagtail/embeds/locale/en/LC_MESSAGES/django.po +1 -1
- wagtail/embeds/signal_handlers.py +13 -0
- wagtail/embeds/tests/test_embeds.py +7 -7
- wagtail/fields.py +58 -14
- wagtail/images/__init__.py +1 -1
- wagtail/images/locale/en/LC_MESSAGES/django.po +34 -34
- wagtail/images/locale/sl/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/sl/LC_MESSAGES/django.po +20 -0
- wagtail/images/models.py +2 -0
- 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/edit.html +4 -4
- wagtail/images/tests/test_admin_views.py +26 -2
- wagtail/images/views/chooser.py +6 -1
- wagtail/locale/en/LC_MESSAGES/django.po +84 -80
- wagtail/locales/locale/en/LC_MESSAGES/django.po +2 -2
- wagtail/locales/tests.py +16 -0
- wagtail/locales/wagtail_hooks.py +0 -9
- wagtail/migrations/0094_alter_page_locale.py +19 -0
- wagtail/models/__init__.py +11 -5
- wagtail/models/i18n.py +6 -1
- wagtail/project_template/requirements.txt +1 -1
- wagtail/search/locale/en/LC_MESSAGES/django.po +1 -1
- wagtail/signals.py +4 -0
- wagtail/sites/locale/en/LC_MESSAGES/django.po +2 -2
- wagtail/sites/tests.py +15 -0
- wagtail/sites/wagtail_hooks.py +0 -9
- wagtail/snippets/locale/en/LC_MESSAGES/django.po +9 -9
- wagtail/snippets/permissions.py +5 -3
- 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/menu.html +1 -1
- wagtail/snippets/tests/test_snippets.py +78 -12
- wagtail/snippets/tests/test_viewset.py +22 -0
- wagtail/snippets/views/snippets.py +19 -14
- wagtail/snippets/wagtail_hooks.py +2 -10
- wagtail/templatetags/wagtailcore_tags.py +3 -0
- wagtail/test/dummy_external_storage.py +1 -1
- wagtail/test/i18n/migrations/0003_alter_clusterabletestmodel_locale_and_more.py +40 -0
- wagtail/test/routablepage/models.py +4 -0
- wagtail/test/snippets/migrations/0012_alter_translatablesnippet_locale.py +20 -0
- wagtail/test/testapp/migrations/0038_sociallink.py +52 -0
- wagtail/test/testapp/migrations/0039_alter_eventcategory_locale_and_more.py +45 -0
- wagtail/test/testapp/models.py +24 -0
- wagtail/test/testapp/views.py +1 -0
- wagtail/test/testapp/wagtail_hooks.py +9 -0
- wagtail/test/urls_multilang.py +6 -1
- wagtail/test/urls_multilang_non_root.py +11 -0
- wagtail/tests/streamfield_migrations/test_migrations.py +53 -12
- wagtail/tests/test_audit_log.py +72 -2
- wagtail/tests/test_blocks.py +103 -0
- wagtail/tests/test_signals.py +49 -2
- wagtail/tests/test_streamfield.py +153 -0
- wagtail/tests/test_utils.py +14 -0
- wagtail/tests/tests.py +5 -0
- wagtail/users/apps.py +1 -0
- wagtail/users/forms.py +7 -0
- wagtail/users/locale/en/LC_MESSAGES/django.po +55 -50
- wagtail/users/models.py +1 -0
- wagtail/users/templates/wagtailusers/groups/includes/formatted_permissions.html +3 -2
- wagtail/users/templatetags/wagtailusers_tags.py +9 -0
- wagtail/users/tests/__init__.py +7 -1
- wagtail/users/tests/test_admin_views.py +117 -32
- wagtail/users/views/groups.py +4 -0
- wagtail/users/views/users.py +58 -14
- wagtail/users/wagtail_hooks.py +7 -123
- wagtail/utils/utils.py +1 -0
- wagtail/utils/version.py +5 -2
- {wagtail-6.1.3.dist-info → wagtail-6.2rc1.dist-info}/METADATA +3 -3
- {wagtail-6.1.3.dist-info → wagtail-6.2rc1.dist-info}/RECORD +248 -222
- wagtail/admin/templates/wagtailadmin/reports/aging_pages.html +0 -58
- wagtail/admin/templates/wagtailadmin/reports/page_types_usage.html +0 -18
- wagtail/admin/templates/wagtailadmin/reports/site_history.html +0 -57
- wagtail/admin/templates/wagtailadmin/reports/workflow.html +0 -81
- wagtail/admin/templates/wagtailadmin/reports/workflow_tasks.html +0 -63
- wagtail/contrib/frontend_cache/backends.py +0 -400
- wagtail/contrib/redirects/templates/wagtailredirects/list.html +0 -43
- wagtail/contrib/redirects/templates/wagtailredirects/reports/redirects_report.html +0 -14
- wagtail/contrib/redirects/tests/test_reports_view.py +0 -82
- {wagtail-6.1.3.dist-info → wagtail-6.2rc1.dist-info}/LICENSE +0 -0
- {wagtail-6.1.3.dist-info → wagtail-6.2rc1.dist-info}/WHEEL +0 -0
- {wagtail-6.1.3.dist-info → wagtail-6.2rc1.dist-info}/entry_points.txt +0 -0
- {wagtail-6.1.3.dist-info → wagtail-6.2rc1.dist-info}/top_level.txt +0 -0
|
@@ -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-07-19 16:26+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"
|
|
@@ -30,35 +30,35 @@ msgstr ""
|
|
|
30
30
|
msgid "Add Comment"
|
|
31
31
|
msgstr ""
|
|
32
32
|
|
|
33
|
-
#: blocks/list_block.py:
|
|
34
|
-
#: blocks/stream_block.py:
|
|
33
|
+
#: blocks/list_block.py:208 blocks/stream_block.py:178
|
|
34
|
+
#: blocks/stream_block.py:208
|
|
35
35
|
#, python-format
|
|
36
36
|
msgid "The minimum number of items is %(min_num)d"
|
|
37
37
|
msgstr ""
|
|
38
38
|
|
|
39
|
-
#: blocks/list_block.py:
|
|
40
|
-
#: blocks/stream_block.py:
|
|
39
|
+
#: blocks/list_block.py:216 blocks/stream_block.py:188
|
|
40
|
+
#: blocks/stream_block.py:218
|
|
41
41
|
#, python-format
|
|
42
42
|
msgid "The maximum number of items is %(max_num)d"
|
|
43
43
|
msgstr ""
|
|
44
44
|
|
|
45
|
-
#: blocks/list_block.py:
|
|
45
|
+
#: blocks/list_block.py:434 blocks/stream_block.py:837
|
|
46
46
|
msgid "Move up"
|
|
47
47
|
msgstr ""
|
|
48
48
|
|
|
49
|
-
#: blocks/list_block.py:
|
|
49
|
+
#: blocks/list_block.py:435 blocks/stream_block.py:838
|
|
50
50
|
msgid "Move down"
|
|
51
51
|
msgstr ""
|
|
52
52
|
|
|
53
|
-
#: blocks/list_block.py:
|
|
53
|
+
#: blocks/list_block.py:436 blocks/stream_block.py:839
|
|
54
54
|
msgid "Duplicate"
|
|
55
55
|
msgstr ""
|
|
56
56
|
|
|
57
|
-
#: blocks/list_block.py:
|
|
57
|
+
#: blocks/list_block.py:437 blocks/stream_block.py:840 wagtail_hooks.py:115
|
|
58
58
|
msgid "Delete"
|
|
59
59
|
msgstr ""
|
|
60
60
|
|
|
61
|
-
#: blocks/list_block.py:
|
|
61
|
+
#: blocks/list_block.py:438 blocks/stream_block.py:841 models/__init__.py:1123
|
|
62
62
|
msgid "Add"
|
|
63
63
|
msgstr ""
|
|
64
64
|
|
|
@@ -71,7 +71,7 @@ msgstr ""
|
|
|
71
71
|
msgid "This block has no options."
|
|
72
72
|
msgstr ""
|
|
73
73
|
|
|
74
|
-
#: blocks/stream_block.py:
|
|
74
|
+
#: blocks/stream_block.py:183
|
|
75
75
|
msgid "This field is required."
|
|
76
76
|
msgstr ""
|
|
77
77
|
|
|
@@ -340,8 +340,8 @@ msgid ""
|
|
|
340
340
|
"[my-slug]/"
|
|
341
341
|
msgstr ""
|
|
342
342
|
|
|
343
|
-
#: models/__init__.py:1156 models/__init__.py:
|
|
344
|
-
#: models/__init__.py:
|
|
343
|
+
#: models/__init__.py:1156 models/__init__.py:3428 models/__init__.py:3478
|
|
344
|
+
#: models/__init__.py:4325 models/audit_log.py:193
|
|
345
345
|
msgid "content type"
|
|
346
346
|
msgstr ""
|
|
347
347
|
|
|
@@ -386,279 +386,279 @@ msgstr ""
|
|
|
386
386
|
msgid "latest revision created at"
|
|
387
387
|
msgstr ""
|
|
388
388
|
|
|
389
|
-
#: models/__init__.py:
|
|
389
|
+
#: models/__init__.py:1465
|
|
390
390
|
#, python-format
|
|
391
391
|
msgid ""
|
|
392
392
|
"The slug '%(page_slug)s' is already in use within the parent page at "
|
|
393
393
|
"'%(parent_url_path)s'"
|
|
394
394
|
msgstr ""
|
|
395
395
|
|
|
396
|
-
#: models/__init__.py:
|
|
397
|
-
#: models/__init__.py:
|
|
396
|
+
#: models/__init__.py:2763 models/__init__.py:3020 models/__init__.py:3320
|
|
397
|
+
#: models/__init__.py:3387
|
|
398
398
|
msgid "page"
|
|
399
399
|
msgstr ""
|
|
400
400
|
|
|
401
|
-
#: models/__init__.py:
|
|
401
|
+
#: models/__init__.py:2764
|
|
402
402
|
msgid "pages"
|
|
403
403
|
msgstr ""
|
|
404
404
|
|
|
405
|
-
#: models/__init__.py:
|
|
405
|
+
#: models/__init__.py:2844 models/__init__.py:3860
|
|
406
406
|
#: models/reference_index.py:110 models/reference_index.py:120
|
|
407
407
|
msgid "object id"
|
|
408
408
|
msgstr ""
|
|
409
409
|
|
|
410
|
-
#: models/__init__.py:
|
|
410
|
+
#: models/__init__.py:2846 models/__init__.py:3879
|
|
411
411
|
msgid "created at"
|
|
412
412
|
msgstr ""
|
|
413
413
|
|
|
414
|
-
#: models/__init__.py:
|
|
414
|
+
#: models/__init__.py:2849
|
|
415
415
|
msgid "user"
|
|
416
416
|
msgstr ""
|
|
417
417
|
|
|
418
|
-
#: models/__init__.py:
|
|
418
|
+
#: models/__init__.py:2857
|
|
419
419
|
msgid "content JSON"
|
|
420
420
|
msgstr ""
|
|
421
421
|
|
|
422
|
-
#: models/__init__.py:
|
|
422
|
+
#: models/__init__.py:2860
|
|
423
423
|
msgid "approved go live at"
|
|
424
424
|
msgstr ""
|
|
425
425
|
|
|
426
|
-
#: models/__init__.py:
|
|
426
|
+
#: models/__init__.py:2983 models/__init__.py:4295
|
|
427
427
|
msgid "revision"
|
|
428
428
|
msgstr ""
|
|
429
429
|
|
|
430
|
-
#: models/__init__.py:
|
|
430
|
+
#: models/__init__.py:2984
|
|
431
431
|
msgid "revisions"
|
|
432
432
|
msgstr ""
|
|
433
433
|
|
|
434
|
-
#: models/__init__.py:
|
|
434
|
+
#: models/__init__.py:3014 models/media.py:164
|
|
435
435
|
msgid "group"
|
|
436
436
|
msgstr ""
|
|
437
437
|
|
|
438
|
-
#: models/__init__.py:
|
|
438
|
+
#: models/__init__.py:3026 models/media.py:175
|
|
439
439
|
msgid "permission"
|
|
440
440
|
msgstr ""
|
|
441
441
|
|
|
442
|
-
#: models/__init__.py:
|
|
442
|
+
#: models/__init__.py:3039
|
|
443
443
|
msgid "group page permission"
|
|
444
444
|
msgstr ""
|
|
445
445
|
|
|
446
|
-
#: models/__init__.py:
|
|
446
|
+
#: models/__init__.py:3040
|
|
447
447
|
msgid "group page permissions"
|
|
448
448
|
msgstr ""
|
|
449
449
|
|
|
450
|
-
#: models/__init__.py:
|
|
450
|
+
#: models/__init__.py:3328
|
|
451
451
|
msgid "page view restriction"
|
|
452
452
|
msgstr ""
|
|
453
453
|
|
|
454
|
-
#: models/__init__.py:
|
|
454
|
+
#: models/__init__.py:3329
|
|
455
455
|
msgid "page view restrictions"
|
|
456
456
|
msgstr ""
|
|
457
457
|
|
|
458
|
-
#: models/__init__.py:
|
|
459
|
-
#: models/__init__.py:
|
|
458
|
+
#: models/__init__.py:3395 models/__init__.py:3436 models/__init__.py:3707
|
|
459
|
+
#: models/__init__.py:3870
|
|
460
460
|
msgid "workflow"
|
|
461
461
|
msgstr ""
|
|
462
462
|
|
|
463
|
-
#: models/__init__.py:
|
|
463
|
+
#: models/__init__.py:3420
|
|
464
464
|
msgid "workflow page"
|
|
465
465
|
msgstr ""
|
|
466
466
|
|
|
467
|
-
#: models/__init__.py:
|
|
467
|
+
#: models/__init__.py:3421
|
|
468
468
|
msgid "workflow pages"
|
|
469
469
|
msgstr ""
|
|
470
470
|
|
|
471
|
-
#: models/__init__.py:
|
|
471
|
+
#: models/__init__.py:3449
|
|
472
472
|
msgid "workflow_tasks"
|
|
473
473
|
msgstr ""
|
|
474
474
|
|
|
475
|
-
#: models/__init__.py:
|
|
475
|
+
#: models/__init__.py:3455 models/__init__.py:3611 models/__init__.py:4301
|
|
476
476
|
msgid "task"
|
|
477
477
|
msgstr ""
|
|
478
478
|
|
|
479
|
-
#: models/__init__.py:
|
|
479
|
+
#: models/__init__.py:3462
|
|
480
480
|
msgid "workflow task order"
|
|
481
481
|
msgstr ""
|
|
482
482
|
|
|
483
|
-
#: models/__init__.py:
|
|
483
|
+
#: models/__init__.py:3463
|
|
484
484
|
msgid "workflow task orders"
|
|
485
485
|
msgstr ""
|
|
486
486
|
|
|
487
|
-
#: models/__init__.py:
|
|
487
|
+
#: models/__init__.py:3475 models/__init__.py:3621 models/media.py:61
|
|
488
488
|
msgid "name"
|
|
489
489
|
msgstr ""
|
|
490
490
|
|
|
491
|
-
#: models/__init__.py:
|
|
491
|
+
#: models/__init__.py:3483 models/__init__.py:3623
|
|
492
492
|
msgid "active"
|
|
493
493
|
msgstr ""
|
|
494
494
|
|
|
495
|
-
#: models/__init__.py:
|
|
495
|
+
#: models/__init__.py:3486
|
|
496
496
|
msgid ""
|
|
497
497
|
"Active tasks can be added to workflows. Deactivating a task does not remove "
|
|
498
498
|
"it from existing workflows."
|
|
499
499
|
msgstr ""
|
|
500
500
|
|
|
501
|
-
#: models/__init__.py:
|
|
501
|
+
#: models/__init__.py:3612
|
|
502
502
|
msgid "tasks"
|
|
503
503
|
msgstr ""
|
|
504
504
|
|
|
505
|
-
#: models/__init__.py:
|
|
505
|
+
#: models/__init__.py:3626
|
|
506
506
|
msgid ""
|
|
507
507
|
"Active workflows can be added to pages/snippets. Deactivating a workflow "
|
|
508
508
|
"does not remove it from existing pages/snippets."
|
|
509
509
|
msgstr ""
|
|
510
510
|
|
|
511
|
-
#: models/__init__.py:
|
|
511
|
+
#: models/__init__.py:3708
|
|
512
512
|
msgid "workflows"
|
|
513
513
|
msgstr ""
|
|
514
514
|
|
|
515
|
-
#: models/__init__.py:
|
|
515
|
+
#: models/__init__.py:3719 models/view_restrictions.py:36
|
|
516
516
|
msgid "groups"
|
|
517
517
|
msgstr ""
|
|
518
518
|
|
|
519
|
-
#: models/__init__.py:
|
|
519
|
+
#: models/__init__.py:3721
|
|
520
520
|
msgid ""
|
|
521
521
|
"Pages/snippets at this step in a workflow will be moderated or approved by "
|
|
522
522
|
"these groups of users"
|
|
523
523
|
msgstr ""
|
|
524
524
|
|
|
525
|
-
#: models/__init__.py:
|
|
525
|
+
#: models/__init__.py:3780
|
|
526
526
|
msgid "Request changes"
|
|
527
527
|
msgstr ""
|
|
528
528
|
|
|
529
|
-
#: models/__init__.py:
|
|
529
|
+
#: models/__init__.py:3781 wagtail_hooks.py:132
|
|
530
530
|
msgid "Approve"
|
|
531
531
|
msgstr ""
|
|
532
532
|
|
|
533
|
-
#: models/__init__.py:
|
|
533
|
+
#: models/__init__.py:3782
|
|
534
534
|
msgid "Approve with comment"
|
|
535
535
|
msgstr ""
|
|
536
536
|
|
|
537
|
-
#: models/__init__.py:
|
|
537
|
+
#: models/__init__.py:3795
|
|
538
538
|
msgid "Members of the chosen Wagtail Groups can approve this task"
|
|
539
539
|
msgstr ""
|
|
540
540
|
|
|
541
|
-
#: models/__init__.py:
|
|
541
|
+
#: models/__init__.py:3799
|
|
542
542
|
msgid "Group approval task"
|
|
543
543
|
msgstr ""
|
|
544
544
|
|
|
545
|
-
#: models/__init__.py:
|
|
545
|
+
#: models/__init__.py:3800
|
|
546
546
|
msgid "Group approval tasks"
|
|
547
547
|
msgstr ""
|
|
548
548
|
|
|
549
|
-
#: models/__init__.py:
|
|
549
|
+
#: models/__init__.py:3848 models/__init__.py:4279
|
|
550
550
|
msgid "In progress"
|
|
551
551
|
msgstr ""
|
|
552
552
|
|
|
553
|
-
#: models/__init__.py:
|
|
553
|
+
#: models/__init__.py:3849 models/__init__.py:4280 wagtail_hooks.py:132
|
|
554
554
|
msgid "Approved"
|
|
555
555
|
msgstr ""
|
|
556
556
|
|
|
557
|
-
#: models/__init__.py:
|
|
557
|
+
#: models/__init__.py:3850
|
|
558
558
|
msgid "Needs changes"
|
|
559
559
|
msgstr ""
|
|
560
560
|
|
|
561
|
-
#: models/__init__.py:
|
|
561
|
+
#: models/__init__.py:3851 models/__init__.py:4283
|
|
562
562
|
msgid "Cancelled"
|
|
563
563
|
msgstr ""
|
|
564
564
|
|
|
565
|
-
#: models/__init__.py:
|
|
565
|
+
#: models/__init__.py:3875 models/__init__.py:4306
|
|
566
566
|
msgid "status"
|
|
567
567
|
msgstr ""
|
|
568
568
|
|
|
569
|
-
#: models/__init__.py:
|
|
569
|
+
#: models/__init__.py:3882
|
|
570
570
|
msgid "requested by"
|
|
571
571
|
msgstr ""
|
|
572
572
|
|
|
573
|
-
#: models/__init__.py:
|
|
573
|
+
#: models/__init__.py:3894
|
|
574
574
|
msgid "current task state"
|
|
575
575
|
msgstr ""
|
|
576
576
|
|
|
577
|
-
#: models/__init__.py:
|
|
577
|
+
#: models/__init__.py:3924
|
|
578
578
|
msgid ""
|
|
579
579
|
"There may only be one in progress or needs changes workflow state per page/"
|
|
580
580
|
"snippet."
|
|
581
581
|
msgstr ""
|
|
582
582
|
|
|
583
|
-
#: models/__init__.py:
|
|
583
|
+
#: models/__init__.py:3934
|
|
584
584
|
#, python-format
|
|
585
585
|
msgid "Workflow '%(workflow_name)s' on %(model_name)s '%(title)s': %(status)s"
|
|
586
586
|
msgstr ""
|
|
587
587
|
|
|
588
|
-
#: models/__init__.py:
|
|
588
|
+
#: models/__init__.py:4164
|
|
589
589
|
msgid "Not started"
|
|
590
590
|
msgstr ""
|
|
591
591
|
|
|
592
|
-
#: models/__init__.py:
|
|
592
|
+
#: models/__init__.py:4215
|
|
593
593
|
msgid "Workflow state"
|
|
594
594
|
msgstr ""
|
|
595
595
|
|
|
596
|
-
#: models/__init__.py:
|
|
596
|
+
#: models/__init__.py:4216
|
|
597
597
|
msgid "Workflow states"
|
|
598
598
|
msgstr ""
|
|
599
599
|
|
|
600
|
-
#: models/__init__.py:
|
|
600
|
+
#: models/__init__.py:4281 wagtail_hooks.py:133
|
|
601
601
|
msgid "Rejected"
|
|
602
602
|
msgstr ""
|
|
603
603
|
|
|
604
|
-
#: models/__init__.py:
|
|
604
|
+
#: models/__init__.py:4282
|
|
605
605
|
msgid "Skipped"
|
|
606
606
|
msgstr ""
|
|
607
607
|
|
|
608
|
-
#: models/__init__.py:
|
|
608
|
+
#: models/__init__.py:4289
|
|
609
609
|
msgid "workflow state"
|
|
610
610
|
msgstr ""
|
|
611
611
|
|
|
612
|
-
#: models/__init__.py:
|
|
612
|
+
#: models/__init__.py:4310
|
|
613
613
|
msgid "started at"
|
|
614
614
|
msgstr ""
|
|
615
615
|
|
|
616
|
-
#: models/__init__.py:
|
|
616
|
+
#: models/__init__.py:4312
|
|
617
617
|
msgid "finished at"
|
|
618
618
|
msgstr ""
|
|
619
619
|
|
|
620
|
-
#: models/__init__.py:
|
|
620
|
+
#: models/__init__.py:4316
|
|
621
621
|
msgid "finished by"
|
|
622
622
|
msgstr ""
|
|
623
623
|
|
|
624
|
-
#: models/__init__.py:
|
|
624
|
+
#: models/__init__.py:4345
|
|
625
625
|
#, python-format
|
|
626
626
|
msgid "Task '%(task_name)s' on Revision '%(revision_info)s': %(status)s"
|
|
627
627
|
msgstr ""
|
|
628
628
|
|
|
629
|
-
#: models/__init__.py:
|
|
629
|
+
#: models/__init__.py:4475
|
|
630
630
|
msgid "Task state"
|
|
631
631
|
msgstr ""
|
|
632
632
|
|
|
633
|
-
#: models/__init__.py:
|
|
633
|
+
#: models/__init__.py:4476
|
|
634
634
|
msgid "Task states"
|
|
635
635
|
msgstr ""
|
|
636
636
|
|
|
637
|
-
#: models/__init__.py:
|
|
637
|
+
#: models/__init__.py:4543
|
|
638
638
|
msgid "page log entry"
|
|
639
639
|
msgstr ""
|
|
640
640
|
|
|
641
|
-
#: models/__init__.py:
|
|
641
|
+
#: models/__init__.py:4544
|
|
642
642
|
msgid "page log entries"
|
|
643
643
|
msgstr ""
|
|
644
644
|
|
|
645
|
-
#: models/__init__.py:
|
|
645
|
+
#: models/__init__.py:4562
|
|
646
646
|
msgid "Draft saved"
|
|
647
647
|
msgstr ""
|
|
648
648
|
|
|
649
|
-
#: models/__init__.py:
|
|
649
|
+
#: models/__init__.py:4610
|
|
650
650
|
msgid "comment"
|
|
651
651
|
msgstr ""
|
|
652
652
|
|
|
653
|
-
#: models/__init__.py:
|
|
653
|
+
#: models/__init__.py:4611
|
|
654
654
|
msgid "comments"
|
|
655
655
|
msgstr ""
|
|
656
656
|
|
|
657
|
-
#: models/__init__.py:
|
|
657
|
+
#: models/__init__.py:4706
|
|
658
658
|
msgid "comment reply"
|
|
659
659
|
msgstr ""
|
|
660
660
|
|
|
661
|
-
#: models/__init__.py:
|
|
661
|
+
#: models/__init__.py:4707
|
|
662
662
|
msgid "comment replies"
|
|
663
663
|
msgstr ""
|
|
664
664
|
|
|
@@ -696,6 +696,10 @@ msgstr ""
|
|
|
696
696
|
msgid "model log entries"
|
|
697
697
|
msgstr ""
|
|
698
698
|
|
|
699
|
+
#: models/i18n.py:185
|
|
700
|
+
msgid "locale"
|
|
701
|
+
msgstr ""
|
|
702
|
+
|
|
699
703
|
#: models/media.py:44 models/media.py:122 models/media.py:138
|
|
700
704
|
#: models/media.py:170
|
|
701
705
|
msgid "collection"
|
|
@@ -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-07-19 16:26+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"
|
|
@@ -49,7 +49,7 @@ msgid ""
|
|
|
49
49
|
"language or delete this locale."
|
|
50
50
|
msgstr ""
|
|
51
51
|
|
|
52
|
-
#: views.py:32 wagtail_hooks.py:
|
|
52
|
+
#: views.py:32 wagtail_hooks.py:26
|
|
53
53
|
msgid "Locales"
|
|
54
54
|
msgstr ""
|
|
55
55
|
|
wagtail/locales/tests.py
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
from django.contrib.auth.models import Permission
|
|
2
|
+
from django.contrib.contenttypes.models import ContentType
|
|
1
3
|
from django.contrib.messages import get_messages
|
|
2
4
|
from django.contrib.messages.constants import ERROR
|
|
3
5
|
from django.test import TestCase, override_settings
|
|
4
6
|
from django.urls import reverse
|
|
5
7
|
|
|
8
|
+
from wagtail import hooks
|
|
6
9
|
from wagtail.admin.admin_url_finder import AdminURLFinder
|
|
7
10
|
from wagtail.models import Locale, Page
|
|
8
11
|
from wagtail.test.utils import WagtailTestUtils
|
|
@@ -344,3 +347,16 @@ class TestLocaleDeleteView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
|
|
344
347
|
|
|
345
348
|
# Check that the locale was not deleted
|
|
346
349
|
self.assertTrue(Locale.objects.filter(language_code="en").exists())
|
|
350
|
+
|
|
351
|
+
|
|
352
|
+
class TestAdminPermissions(WagtailTestUtils, TestCase):
|
|
353
|
+
def test_registered_permissions(self):
|
|
354
|
+
locale_ct = ContentType.objects.get_for_model(Locale)
|
|
355
|
+
qs = Permission.objects.none()
|
|
356
|
+
for fn in hooks.get_hooks("register_permissions"):
|
|
357
|
+
qs |= fn()
|
|
358
|
+
registered_permissions = qs.filter(content_type=locale_ct)
|
|
359
|
+
self.assertEqual(
|
|
360
|
+
set(registered_permissions.values_list("codename", flat=True)),
|
|
361
|
+
{"add_locale", "change_locale", "delete_locale"},
|
|
362
|
+
)
|
wagtail/locales/wagtail_hooks.py
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
from django.contrib.auth.models import Permission
|
|
2
1
|
from django.urls import reverse
|
|
3
2
|
from django.utils.translation import gettext_lazy as _
|
|
4
3
|
|
|
@@ -30,11 +29,3 @@ def register_locales_menu_item():
|
|
|
30
29
|
icon_name="site",
|
|
31
30
|
order=603,
|
|
32
31
|
)
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
@hooks.register("register_permissions")
|
|
36
|
-
def register_permissions():
|
|
37
|
-
return Permission.objects.filter(
|
|
38
|
-
content_type__app_label="wagtailcore",
|
|
39
|
-
codename__in=["add_locale", "change_locale", "delete_locale"],
|
|
40
|
-
)
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Generated by Django 5.0.6 on 2024-06-21 06:47
|
|
2
|
+
|
|
3
|
+
import django.db.models.deletion
|
|
4
|
+
from django.db import migrations, models
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class Migration(migrations.Migration):
|
|
8
|
+
|
|
9
|
+
dependencies = [
|
|
10
|
+
('wagtailcore', '0093_uploadedfile'),
|
|
11
|
+
]
|
|
12
|
+
|
|
13
|
+
operations = [
|
|
14
|
+
migrations.AlterField(
|
|
15
|
+
model_name='page',
|
|
16
|
+
name='locale',
|
|
17
|
+
field=models.ForeignKey(editable=False, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='wagtailcore.locale', verbose_name='locale'),
|
|
18
|
+
),
|
|
19
|
+
]
|
wagtail/models/__init__.py
CHANGED
|
@@ -17,7 +17,7 @@ import posixpath
|
|
|
17
17
|
import uuid
|
|
18
18
|
from io import StringIO
|
|
19
19
|
from typing import TYPE_CHECKING
|
|
20
|
-
from urllib.parse import
|
|
20
|
+
from urllib.parse import urlsplit
|
|
21
21
|
from warnings import warn
|
|
22
22
|
|
|
23
23
|
from django import forms
|
|
@@ -702,7 +702,7 @@ class PreviewableMixin:
|
|
|
702
702
|
"""
|
|
703
703
|
url = self._get_dummy_header_url(original_request)
|
|
704
704
|
if url:
|
|
705
|
-
url_info =
|
|
705
|
+
url_info = urlsplit(url)
|
|
706
706
|
hostname = url_info.hostname
|
|
707
707
|
path = url_info.path
|
|
708
708
|
port = url_info.port or (443 if url_info.scheme == "https" else 80)
|
|
@@ -1291,6 +1291,9 @@ class Page(AbstractPage, index.Indexed, ClusterableModel, metaclass=PageBase):
|
|
|
1291
1291
|
promote_panels = []
|
|
1292
1292
|
settings_panels = []
|
|
1293
1293
|
|
|
1294
|
+
# Privacy options for page
|
|
1295
|
+
private_page_options = ["password", "groups", "login"]
|
|
1296
|
+
|
|
1294
1297
|
@staticmethod
|
|
1295
1298
|
def route_for_request(request: "HttpRequest", path: str) -> RouteResult | None:
|
|
1296
1299
|
"""
|
|
@@ -1817,7 +1820,7 @@ class Page(AbstractPage, index.Indexed, ClusterableModel, metaclass=PageBase):
|
|
|
1817
1820
|
This is called by Wagtail whenever a page with aliases is published.
|
|
1818
1821
|
|
|
1819
1822
|
:param revision: The revision of the original page that we are updating to (used for logging purposes)
|
|
1820
|
-
:type revision:
|
|
1823
|
+
:type revision: Revision, Optional
|
|
1821
1824
|
"""
|
|
1822
1825
|
specific_self = self.specific
|
|
1823
1826
|
|
|
@@ -2387,8 +2390,8 @@ class Page(AbstractPage, index.Indexed, ClusterableModel, metaclass=PageBase):
|
|
|
2387
2390
|
):
|
|
2388
2391
|
"""
|
|
2389
2392
|
Copies a given page
|
|
2390
|
-
|
|
2391
|
-
|
|
2393
|
+
|
|
2394
|
+
:param log_action: flag for logging the action. Pass None to skip logging. Can be passed an action string. Defaults to 'wagtail.copy'
|
|
2392
2395
|
"""
|
|
2393
2396
|
return CopyPageAction(
|
|
2394
2397
|
self,
|
|
@@ -4521,6 +4524,9 @@ class PageLogEntryManager(BaseLogEntryManager):
|
|
|
4521
4524
|
|
|
4522
4525
|
return PageLogEntry.objects.filter(q)
|
|
4523
4526
|
|
|
4527
|
+
def for_instance(self, instance):
|
|
4528
|
+
return self.filter(page=instance)
|
|
4529
|
+
|
|
4524
4530
|
|
|
4525
4531
|
class PageLogEntry(BaseLogEntry):
|
|
4526
4532
|
page = models.ForeignKey(
|
wagtail/models/i18n.py
CHANGED
|
@@ -9,6 +9,7 @@ from django.db.models.signals import pre_save
|
|
|
9
9
|
from django.dispatch import receiver
|
|
10
10
|
from django.utils import translation
|
|
11
11
|
from django.utils.encoding import force_str
|
|
12
|
+
from django.utils.translation import gettext_lazy as _
|
|
12
13
|
from modelcluster.fields import ParentalKey
|
|
13
14
|
|
|
14
15
|
from wagtail.actions.copy_for_translation import CopyForTranslationAction
|
|
@@ -177,7 +178,11 @@ class Locale(models.Model):
|
|
|
177
178
|
class TranslatableMixin(models.Model):
|
|
178
179
|
translation_key = models.UUIDField(default=uuid.uuid4, editable=False)
|
|
179
180
|
locale = models.ForeignKey(
|
|
180
|
-
Locale,
|
|
181
|
+
Locale,
|
|
182
|
+
on_delete=models.PROTECT,
|
|
183
|
+
related_name="+",
|
|
184
|
+
editable=False,
|
|
185
|
+
verbose_name=_("locale"),
|
|
181
186
|
)
|
|
182
187
|
locale.wagtail_reference_index_ignore = True
|
|
183
188
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
Django>=4.2,<5.1
|
|
2
|
-
wagtail
|
|
2
|
+
wagtail==6.2rc1
|
|
@@ -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-07-19 16:26+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"
|
wagtail/signals.py
CHANGED
|
@@ -64,3 +64,7 @@ task_cancelled = Signal()
|
|
|
64
64
|
# Required as a workaround for https://code.djangoproject.com/ticket/6870
|
|
65
65
|
# provides args: sender, instance
|
|
66
66
|
pre_validate_delete = Signal()
|
|
67
|
+
|
|
68
|
+
# Translation signals
|
|
69
|
+
# provides args: sender, source_obj, target_obj
|
|
70
|
+
copy_for_translation_done = Signal()
|
|
@@ -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-07-19 16:26+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"
|
|
@@ -30,7 +30,7 @@ msgstr ""
|
|
|
30
30
|
msgid "Choose a different root page"
|
|
31
31
|
msgstr ""
|
|
32
32
|
|
|
33
|
-
#: views.py:12 wagtail_hooks.py:
|
|
33
|
+
#: views.py:12 wagtail_hooks.py:26
|
|
34
34
|
msgid "Sites"
|
|
35
35
|
msgstr ""
|
|
36
36
|
|
wagtail/sites/tests.py
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
from django.contrib.auth.models import Permission
|
|
2
|
+
from django.contrib.contenttypes.models import ContentType
|
|
2
3
|
from django.test import TestCase
|
|
3
4
|
from django.urls import reverse
|
|
4
5
|
|
|
6
|
+
from wagtail import hooks
|
|
5
7
|
from wagtail.admin.admin_url_finder import AdminURLFinder
|
|
6
8
|
from wagtail.models import Page, Site
|
|
7
9
|
from wagtail.test.utils import WagtailTestUtils
|
|
@@ -482,3 +484,16 @@ class TestLimitedPermissions(WagtailTestUtils, TestCase):
|
|
|
482
484
|
# Check that the site was edited
|
|
483
485
|
with self.assertRaises(Site.DoesNotExist):
|
|
484
486
|
Site.objects.get(id=self.localhost.id)
|
|
487
|
+
|
|
488
|
+
|
|
489
|
+
class TestAdminPermissions(WagtailTestUtils, TestCase):
|
|
490
|
+
def test_registered_permissions(self):
|
|
491
|
+
site_ct = ContentType.objects.get_for_model(Site)
|
|
492
|
+
qs = Permission.objects.none()
|
|
493
|
+
for fn in hooks.get_hooks("register_permissions"):
|
|
494
|
+
qs |= fn()
|
|
495
|
+
registered_permissions = qs.filter(content_type=site_ct)
|
|
496
|
+
self.assertEqual(
|
|
497
|
+
set(registered_permissions.values_list("codename", flat=True)),
|
|
498
|
+
{"add_site", "change_site", "delete_site"},
|
|
499
|
+
)
|