wagtail 7.2.1__py3-none-any.whl → 7.3rc1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- wagtail/__init__.py +1 -1
- wagtail/actions/copy_for_translation.py +4 -2
- wagtail/admin/action_menu.py +4 -1
- wagtail/admin/api/actions/convert_alias.py +2 -2
- wagtail/admin/api/actions/copy.py +2 -2
- wagtail/admin/api/actions/copy_for_translation.py +2 -2
- wagtail/admin/api/actions/create_alias.py +2 -2
- wagtail/admin/api/actions/delete.py +1 -1
- wagtail/admin/api/actions/move.py +1 -1
- wagtail/admin/api/actions/publish.py +2 -2
- wagtail/admin/api/actions/revert_to_page_revision.py +2 -2
- wagtail/admin/api/actions/unpublish.py +1 -1
- wagtail/admin/api/filters.py +2 -2
- wagtail/admin/compare.py +22 -0
- wagtail/admin/forms/account.py +52 -1
- wagtail/admin/forms/comments.py +53 -0
- wagtail/admin/forms/models.py +36 -0
- wagtail/admin/forms/pages.py +7 -0
- wagtail/admin/forms/workflows.py +5 -2
- wagtail/admin/icons.py +4 -3
- wagtail/admin/locale/ar/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/ar/LC_MESSAGES/django.po +35 -0
- wagtail/admin/locale/en/LC_MESSAGES/django.po +262 -234
- wagtail/admin/locale/en/LC_MESSAGES/djangojs.po +72 -43
- wagtail/admin/locale/it/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/it/LC_MESSAGES/django.po +566 -6
- wagtail/admin/locale/it/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/it/LC_MESSAGES/djangojs.po +40 -2
- wagtail/admin/locale/nl/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/nl/LC_MESSAGES/django.po +2 -2
- wagtail/admin/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/sv/LC_MESSAGES/django.po +330 -15
- wagtail/admin/locale/sv/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/sv/LC_MESSAGES/djangojs.po +3 -2
- wagtail/admin/panels/comment_panel.py +1 -51
- wagtail/admin/panels/title_field_panel.py +3 -1
- wagtail/admin/static/wagtailadmin/css/core.css +1 -1
- wagtail/admin/static/wagtailadmin/js/bulk-actions.js +1 -1
- wagtail/admin/static/wagtailadmin/js/comments.js +1 -1
- wagtail/admin/static/wagtailadmin/js/core.js +1 -1
- wagtail/admin/static/wagtailadmin/js/core.js.LICENSE.txt +1 -1
- wagtail/admin/static/wagtailadmin/js/draftail.js +1 -1
- wagtail/admin/static/wagtailadmin/js/privacy-switch.js +1 -1
- wagtail/admin/static/wagtailadmin/js/sidebar.js +1 -1
- wagtail/admin/static/wagtailadmin/js/telepath/blocks.js +1 -1
- wagtail/admin/static/wagtailadmin/js/userbar.js +1 -1
- wagtail/admin/static/wagtailadmin/js/userbar.js.LICENSE.txt +1 -1
- wagtail/admin/static/wagtailadmin/js/vendor.js +1 -1
- wagtail/admin/static/wagtailadmin/js/wagtailadmin.js +1 -1
- wagtail/admin/templates/wagtailadmin/base.html +1 -1
- wagtail/admin/templates/wagtailadmin/generic/edit_partials.html +100 -0
- wagtail/admin/templates/wagtailadmin/generic/form.html +26 -5
- wagtail/admin/templates/wagtailadmin/generic/includes/_loaded_revision_inputs.html +3 -0
- wagtail/admin/templates/wagtailadmin/generic/listing_results.html +1 -17
- wagtail/admin/templates/wagtailadmin/pages/create.html +14 -4
- wagtail/admin/templates/wagtailadmin/pages/edit.html +16 -3
- wagtail/admin/templates/wagtailadmin/pages/edit_partials.html +31 -0
- wagtail/admin/templates/wagtailadmin/pages/index_results.html +1 -9
- wagtail/admin/templates/wagtailadmin/shared/autosave/indicator.html +36 -0
- wagtail/admin/templates/wagtailadmin/shared/breadcrumbs.html +1 -1
- wagtail/admin/templates/wagtailadmin/shared/editing_sessions/list.html +2 -2
- wagtail/admin/templates/wagtailadmin/shared/editing_sessions/module.html +19 -3
- wagtail/admin/templates/wagtailadmin/shared/headers/_actions.html +5 -0
- wagtail/admin/templates/wagtailadmin/shared/headers/_history_icon_link.html +2 -2
- wagtail/admin/templates/wagtailadmin/shared/headers/slim_header.html +8 -9
- wagtail/admin/templates/wagtailadmin/shared/listing/filter_partials.html +19 -0
- wagtail/admin/templates/wagtailadmin/shared/side_panel_toggle.html +3 -3
- wagtail/admin/templates/wagtailadmin/shared/side_panels/includes/side_panel.html +3 -0
- wagtail/admin/templates/wagtailadmin/shared/side_panels/includes/status/privacy.html +18 -6
- wagtail/admin/templates/wagtailadmin/shared/side_panels/includes/status/usage.html +11 -4
- wagtail/admin/templates/wagtailadmin/shared/side_panels/includes/status/workflow.html +22 -1
- wagtail/admin/templates/wagtailadmin/shared/side_panels/preview.html +1 -0
- wagtail/admin/templates/wagtailadmin/shared/side_panels.html +1 -2
- wagtail/admin/templates/wagtailadmin/shared/unsaved_changes_warning.html +20 -20
- wagtail/admin/templates/wagtailadmin/userbar/base.html +2 -0
- wagtail/admin/templates/wagtailadmin/userbar/item_accessibility.html +1 -1
- wagtail/admin/templatetags/wagtailadmin_tags.py +6 -14
- wagtail/admin/tests/pages/test_create_page.py +298 -1
- wagtail/admin/tests/pages/test_custom_listing.py +48 -2
- wagtail/admin/tests/pages/test_edit_page.py +721 -7
- wagtail/admin/tests/pages/test_explorer_view.py +9 -5
- wagtail/admin/tests/pages/test_page_search.py +15 -0
- wagtail/admin/tests/pages/test_revisions.py +4 -0
- wagtail/admin/tests/test_account_management.py +88 -2
- wagtail/admin/tests/test_collections_views.py +15 -15
- wagtail/admin/tests/test_compare.py +34 -0
- wagtail/admin/tests/test_editing_sessions.py +230 -8
- wagtail/admin/tests/test_forms.py +192 -1
- wagtail/admin/tests/test_icon_sprite.py +22 -2
- wagtail/admin/tests/test_page_chooser.py +13 -13
- wagtail/admin/tests/test_reports_views.py +4 -1
- wagtail/admin/tests/test_userbar.py +69 -5
- wagtail/admin/tests/test_views_generic.py +5 -5
- wagtail/admin/tests/test_workflows.py +14 -12
- wagtail/admin/tests/viewsets/test_model_viewset.py +13 -0
- wagtail/admin/ui/autosave.py +5 -0
- wagtail/admin/ui/editing_sessions.py +3 -0
- wagtail/admin/ui/side_panels.py +19 -20
- wagtail/admin/userbar.py +48 -27
- wagtail/admin/views/bulk_action/dispatcher.py +2 -2
- wagtail/admin/views/chooser.py +6 -6
- wagtail/admin/views/editing_sessions.py +20 -7
- wagtail/admin/views/generic/__init__.py +1 -0
- wagtail/admin/views/generic/chooser.py +5 -5
- wagtail/admin/views/generic/mixins.py +143 -26
- wagtail/admin/views/generic/models.py +157 -27
- wagtail/admin/views/generic/ordering.py +1 -1
- wagtail/admin/views/generic/preview.py +4 -4
- wagtail/admin/views/home.py +3 -1
- wagtail/admin/views/pages/create.py +77 -29
- wagtail/admin/views/pages/edit.py +160 -34
- wagtail/admin/views/pages/preview.py +4 -4
- wagtail/admin/views/pages/revisions.py +3 -0
- wagtail/admin/views/pages/search.py +4 -4
- wagtail/admin/views/pages/usage.py +2 -2
- wagtail/admin/views/tags.py +2 -2
- wagtail/admin/views/workflows.py +73 -54
- wagtail/admin/viewsets/model.py +34 -8
- wagtail/admin/widgets/button.py +11 -4
- wagtail/admin/widgets/chooser.py +6 -4
- wagtail/admin/widgets/slug.py +1 -1
- wagtail/api/v2/filters.py +27 -21
- wagtail/api/v2/pagination.py +4 -4
- wagtail/api/v2/views.py +7 -7
- wagtail/blocks/list_block.py +0 -8
- wagtail/blocks/migrations/migrate_operation.py +8 -1
- wagtail/blocks/stream_block.py +2 -10
- wagtail/blocks/struct_block.py +192 -12
- wagtail/compat.py +2 -2
- wagtail/contrib/forms/locale/en/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/forms/locale/it/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/forms/locale/it/LC_MESSAGES/django.po +40 -2
- wagtail/contrib/frontend_cache/backends/azure.py +6 -6
- wagtail/contrib/frontend_cache/backends/cloudfront.py +2 -2
- wagtail/contrib/frontend_cache/utils.py +1 -1
- wagtail/contrib/redirects/forms.py +1 -1
- wagtail/contrib/redirects/locale/en/LC_MESSAGES/django.po +14 -14
- wagtail/contrib/redirects/locale/it/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/redirects/locale/it/LC_MESSAGES/django.po +15 -2
- wagtail/contrib/redirects/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/redirects/locale/sv/LC_MESSAGES/django.po +16 -3
- wagtail/contrib/redirects/middleware.py +11 -7
- wagtail/contrib/redirects/models.py +17 -1
- wagtail/contrib/redirects/tests/test_import_admin_views.py +3 -3
- wagtail/contrib/redirects/tests/test_redirects.py +56 -8
- wagtail/contrib/search_promotions/locale/en/LC_MESSAGES/django.po +6 -6
- wagtail/contrib/search_promotions/locale/it/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/it/LC_MESSAGES/django.po +43 -2
- wagtail/contrib/search_promotions/tests.py +1 -1
- wagtail/contrib/search_promotions/views/settings.py +24 -25
- wagtail/contrib/settings/jinja2tags.py +2 -2
- wagtail/contrib/settings/locale/en/LC_MESSAGES/django.po +2 -2
- wagtail/contrib/settings/locale/it/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/settings/locale/it/LC_MESSAGES/django.po +6 -2
- wagtail/contrib/settings/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/settings/locale/sv/LC_MESSAGES/django.po +3 -2
- wagtail/contrib/settings/tests/generic/test_admin.py +118 -2
- wagtail/contrib/settings/tests/site_specific/test_admin.py +78 -15
- wagtail/contrib/settings/tests/site_specific/test_model.py +2 -2
- wagtail/contrib/settings/views.py +7 -0
- wagtail/contrib/simple_translation/locale/en/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/simple_translation/locale/it/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/simple_translation/locale/it/LC_MESSAGES/django.po +5 -2
- wagtail/contrib/styleguide/locale/en/LC_MESSAGES/django.po +7 -7
- wagtail/contrib/styleguide/tests.py +2 -0
- wagtail/contrib/styleguide/views.py +4 -5
- wagtail/contrib/table_block/locale/ar/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/table_block/locale/ar/LC_MESSAGES/django.po +5 -1
- wagtail/contrib/table_block/locale/en/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/table_block/locale/it/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/table_block/locale/it/LC_MESSAGES/django.po +5 -2
- wagtail/contrib/typed_table_block/blocks.py +37 -0
- wagtail/contrib/typed_table_block/locale/en/LC_MESSAGES/django.po +10 -10
- wagtail/contrib/typed_table_block/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/typed_table_block/locale/sv/LC_MESSAGES/django.po +4 -3
- wagtail/contrib/typed_table_block/tests.py +108 -0
- wagtail/coreutils.py +4 -4
- wagtail/documents/__init__.py +4 -4
- wagtail/documents/locale/en/LC_MESSAGES/django.po +15 -15
- wagtail/documents/locale/it/LC_MESSAGES/django.mo +0 -0
- wagtail/documents/locale/it/LC_MESSAGES/django.po +32 -2
- wagtail/documents/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/documents/locale/sv/LC_MESSAGES/django.po +32 -4
- wagtail/documents/models.py +1 -1
- wagtail/documents/tests/test_admin_views.py +19 -4
- wagtail/documents/tests/test_search.py +0 -2
- wagtail/documents/tests/test_views.py +6 -4
- wagtail/documents/views/bulk_actions/add_tags.py +1 -1
- wagtail/embeds/finders/facebook.py +3 -3
- wagtail/embeds/finders/instagram.py +3 -3
- wagtail/embeds/finders/oembed.py +7 -2
- wagtail/embeds/locale/en/LC_MESSAGES/django.po +1 -1
- wagtail/embeds/oembed_providers.py +8 -0
- wagtail/embeds/tests/test_embeds.py +35 -0
- wagtail/images/__init__.py +4 -4
- wagtail/images/admin_urls.py +3 -3
- wagtail/images/blocks.py +1 -1
- wagtail/images/formats.py +2 -2
- wagtail/images/image_operations.py +2 -2
- wagtail/images/locale/en/LC_MESSAGES/django.po +44 -40
- wagtail/images/locale/it/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/it/LC_MESSAGES/django.po +50 -4
- wagtail/images/locale/nl/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/nl/LC_MESSAGES/django.po +3 -3
- wagtail/images/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/sv/LC_MESSAGES/django.po +49 -6
- wagtail/images/models.py +11 -10
- wagtail/images/templates/wagtailimages/images/index_results.html +1 -1
- wagtail/images/templates/wagtailimages/images/url_generator.html +17 -38
- wagtail/images/templates/wagtailimages/images/url_generator_output.html +28 -0
- wagtail/images/templatetags/wagtailimages_tags.py +4 -4
- wagtail/images/tests/test_admin_views.py +432 -59
- wagtail/images/tests/test_image_operations.py +2 -2
- wagtail/images/tests/test_models.py +0 -2
- wagtail/images/views/bulk_actions/add_tags.py +1 -1
- wagtail/images/views/images.py +72 -39
- wagtail/locale/en/LC_MESSAGES/django.po +103 -105
- wagtail/locale/it/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/it/LC_MESSAGES/django.po +105 -2
- wagtail/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/sv/LC_MESSAGES/django.po +95 -12
- wagtail/locales/locale/en/LC_MESSAGES/django.po +1 -1
- wagtail/locales/locale/it/LC_MESSAGES/django.mo +0 -0
- wagtail/locales/locale/it/LC_MESSAGES/django.po +13 -2
- wagtail/locales/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/locales/locale/sv/LC_MESSAGES/django.po +4 -3
- wagtail/locales/tests.py +5 -5
- wagtail/models/i18n.py +4 -6
- wagtail/models/media.py +18 -0
- wagtail/models/pages.py +65 -11
- wagtail/models/reference_index.py +15 -0
- wagtail/models/revisions.py +40 -12
- wagtail/models/workflows.py +0 -3
- wagtail/permission_policies/base.py +2 -2
- wagtail/permission_policies/collections.py +2 -2
- wagtail/project_template/requirements.txt +2 -2
- wagtail/search/locale/en/LC_MESSAGES/django.po +1 -1
- wagtail/signal_handlers.py +1 -0
- wagtail/sites/locale/en/LC_MESSAGES/django.po +1 -1
- wagtail/sites/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/sites/locale/sv/LC_MESSAGES/django.po +3 -2
- wagtail/sites/tests.py +7 -7
- wagtail/snippets/action_menu.py +2 -1
- wagtail/snippets/locale/en/LC_MESSAGES/django.po +23 -13
- wagtail/snippets/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/sv/LC_MESSAGES/django.po +12 -1
- wagtail/snippets/tests/test_chooser_block.py +197 -0
- wagtail/snippets/tests/test_chooser_panel.py +149 -0
- wagtail/snippets/tests/test_chooser_views.py +375 -0
- wagtail/snippets/tests/test_chooser_widget.py +22 -0
- wagtail/snippets/tests/test_compare_revisions_view.py +167 -0
- wagtail/snippets/tests/test_copy_view.py +38 -0
- wagtail/snippets/tests/test_create_view.py +1159 -0
- wagtail/snippets/tests/test_delete_view.py +225 -0
- wagtail/snippets/tests/test_edit_view.py +2882 -0
- wagtail/snippets/tests/test_history_view.py +182 -0
- wagtail/snippets/tests/test_index_view.py +105 -0
- wagtail/snippets/tests/test_list_view.py +786 -0
- wagtail/snippets/tests/test_locking.py +28 -0
- wagtail/snippets/tests/test_permissions.py +167 -0
- wagtail/snippets/tests/test_preview.py +3 -3
- wagtail/snippets/tests/test_revert_view.py +343 -0
- wagtail/snippets/tests/test_snippet_models.py +112 -0
- wagtail/snippets/tests/test_unpublish_view.py +228 -0
- wagtail/snippets/tests/test_unschedule_view.py +151 -0
- wagtail/snippets/tests/test_viewset.py +38 -5
- wagtail/snippets/views/snippets.py +78 -30
- wagtail/snippets/widgets.py +2 -2
- wagtail/templatetags/wagtailcore_tags.py +2 -2
- wagtail/test/dummy_external_storage.py +1 -1
- wagtail/test/testapp/fixtures/test.json +22 -0
- wagtail/test/testapp/fixtures/test_empty.json +2 -0
- wagtail/test/testapp/fixtures/test_explorable_pages.json +10 -0
- wagtail/test/testapp/fixtures/test_specific.json +9 -0
- wagtail/test/testapp/migrations/0059_nopromotepage.py +25 -0
- wagtail/test/testapp/models.py +7 -0
- wagtail/test/testapp/views.py +5 -0
- wagtail/test/utils/page_tests.py +7 -7
- wagtail/test/utils/wagtail_factories/builder.py +2 -2
- wagtail/tests/streamfield_migrations/test_migrations.py +35 -0
- wagtail/tests/test_blocks.py +321 -61
- wagtail/tests/test_collection_model.py +12 -0
- wagtail/tests/test_page_model.py +190 -1
- wagtail/tests/test_page_privacy.py +5 -0
- wagtail/tests/test_reference_index.py +42 -0
- wagtail/tests/test_revision_model.py +118 -1
- wagtail/tests/test_utils.py +2 -2
- wagtail/users/locale/en/LC_MESSAGES/django.po +14 -14
- wagtail/users/locale/id_ID/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/id_ID/LC_MESSAGES/django.po +6 -2
- wagtail/users/locale/it/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/it/LC_MESSAGES/django.po +14 -2
- wagtail/users/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/sv/LC_MESSAGES/django.po +48 -17
- wagtail/users/tests/test_admin_views.py +39 -25
- wagtail/users/utils.py +4 -1
- wagtail/users/views/groups.py +19 -5
- wagtail/users/wagtail_hooks.py +1 -1
- wagtail/utils/loading.py +2 -2
- wagtail-7.3rc1.data/data/AGENTS.md +21 -0
- wagtail-7.3rc1.data/data/CHANGELOG.txt +4941 -0
- wagtail-7.3rc1.data/data/CODE_OF_CONDUCT.md +71 -0
- wagtail-7.3rc1.data/data/CONTRIBUTORS.md +999 -0
- wagtail-7.3rc1.data/data/SPONSORS.md +55 -0
- {wagtail-7.2.1.dist-info → wagtail-7.3rc1.dist-info}/METADATA +6 -6
- {wagtail-7.2.1.dist-info → wagtail-7.3rc1.dist-info}/RECORD +310 -280
- {wagtail-7.2.1.dist-info → wagtail-7.3rc1.dist-info}/WHEEL +1 -1
- wagtail/images/static/wagtailimages/js/image-url-generator.js +0 -1
- wagtail/snippets/tests/test_snippets.py +0 -6377
- {wagtail-7.2.1.dist-info → wagtail-7.3rc1.dist-info}/entry_points.txt +0 -0
- {wagtail-7.2.1.dist-info → wagtail-7.3rc1.dist-info}/licenses/LICENSE +0 -0
- {wagtail-7.2.1.dist-info → wagtail-7.3rc1.dist-info}/top_level.txt +0 -0
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
#
|
|
5
5
|
# Translators:
|
|
6
6
|
# Jim Brouzoulis <jim.brouzoulis@chalmers.se>, 2017
|
|
7
|
+
# Jonathan Lindén, 2025
|
|
7
8
|
# Martin Sandström <martin@marteinn.se>, 2020-2021
|
|
8
9
|
# Philip Andersen <renegadevi@codeofmagi.net>, 2018-2019
|
|
9
10
|
# Thomas Kunambi <kunambi@gmail.com>, 2022
|
|
@@ -13,7 +14,7 @@ msgstr ""
|
|
|
13
14
|
"Report-Msgid-Bugs-To: \n"
|
|
14
15
|
"POT-Creation-Date: 2025-10-23 16:45+0100\n"
|
|
15
16
|
"PO-Revision-Date: 2014-02-20 21:06+0000\n"
|
|
16
|
-
"Last-Translator:
|
|
17
|
+
"Last-Translator: Jonathan Lindén, 2025\n"
|
|
17
18
|
"Language-Team: Swedish (http://app.transifex.com/torchbox/wagtail/language/"
|
|
18
19
|
"sv/)\n"
|
|
19
20
|
"MIME-Version: 1.0\n"
|
|
@@ -155,6 +156,15 @@ msgstr "Du har inte laddat upp några dokument i den här samlingen."
|
|
|
155
156
|
msgid "You haven't uploaded any documents."
|
|
156
157
|
msgstr "Du har inte laddat upp några dokument."
|
|
157
158
|
|
|
159
|
+
msgid ""
|
|
160
|
+
"Why not <a class=\"upload-one-now\" href=\"#tab-upload\" data-action=\"w-"
|
|
161
|
+
"tabs#select:prevent\" data-w-tabs-target=\"trigger\" data-w-tabs-focus-"
|
|
162
|
+
"param=\"true\">upload one now</a>?"
|
|
163
|
+
msgstr ""
|
|
164
|
+
"Varför inte <a class=\"upload-one-now\" href=\"#tab-upload\" data-action=\"w-"
|
|
165
|
+
"tabs#select:prevent\" data-w-tabs-target=\"trigger\" data-w-tabs-focus-"
|
|
166
|
+
"param=\"true\">ladda upp en nu</a>?"
|
|
167
|
+
|
|
158
168
|
msgid "Change document:"
|
|
159
169
|
msgstr "Ändra dokument:"
|
|
160
170
|
|
|
@@ -205,6 +215,16 @@ msgstr ""
|
|
|
205
215
|
"Du har inte laddat upp några dokument. Varför inte <a "
|
|
206
216
|
"href=\"%(wagtaildocs_add_document_url)s\">ladda upp ett nu</a>?"
|
|
207
217
|
|
|
218
|
+
#, python-format
|
|
219
|
+
msgid ""
|
|
220
|
+
"%(total)s Document <span class=\"w-sr-only\">created in %(site_name)s</span>"
|
|
221
|
+
msgid_plural ""
|
|
222
|
+
"%(total)s Documents <span class=\"w-sr-only\">created in %(site_name)s</span>"
|
|
223
|
+
msgstr[0] ""
|
|
224
|
+
"%(total)s Dokument <span class=\"w-sr-only\">skapat i %(site_name)s</span>"
|
|
225
|
+
msgstr[1] ""
|
|
226
|
+
"%(total)s Dokument <span class=\"w-sr-only\">skapade i %(site_name)s</span>"
|
|
227
|
+
|
|
208
228
|
msgid "Add multiple documents"
|
|
209
229
|
msgstr "Lägg till flera dokument"
|
|
210
230
|
|
|
@@ -302,23 +322,31 @@ msgstr "Dokument"
|
|
|
302
322
|
msgid "Title"
|
|
303
323
|
msgstr "Titel"
|
|
304
324
|
|
|
325
|
+
msgid "The document could not be created due to errors."
|
|
326
|
+
msgstr "Dokumentet kunde inte skapas på grund av fel."
|
|
327
|
+
|
|
305
328
|
#, python-format
|
|
306
329
|
msgid "Document '%(document_title)s' added."
|
|
307
330
|
msgstr "Dokument '%(document_title)s' lades till."
|
|
308
331
|
|
|
309
332
|
msgid "The document could not be saved due to errors."
|
|
310
|
-
msgstr "Dokumentet kunde inte sparas
|
|
333
|
+
msgstr "Dokumentet kunde inte sparas på grund av fel."
|
|
311
334
|
|
|
312
335
|
#, python-format
|
|
313
336
|
msgid "Document '%(document_title)s' updated"
|
|
314
337
|
msgstr "Dokument '%(document_title)s' laddades upp"
|
|
315
338
|
|
|
339
|
+
msgid ""
|
|
340
|
+
"The file could not be found. Please change the source or delete the document."
|
|
341
|
+
msgstr ""
|
|
342
|
+
"Filen kunde inte hittas. Vänligen ändra källan eller radera dokumentet."
|
|
343
|
+
|
|
316
344
|
msgid "Delete document"
|
|
317
|
-
msgstr "
|
|
345
|
+
msgstr "Radera dokument"
|
|
318
346
|
|
|
319
347
|
#, python-format
|
|
320
348
|
msgid "Document '%(document_title)s' deleted."
|
|
321
|
-
msgstr "Dokument '%(document_title)s'
|
|
349
|
+
msgstr "Dokument '%(document_title)s' raderat."
|
|
322
350
|
|
|
323
351
|
msgid "Add documents"
|
|
324
352
|
msgstr "Lägg till dokument"
|
wagtail/documents/models.py
CHANGED
|
@@ -76,7 +76,7 @@ class AbstractDocument(CollectionMember, index.Indexed, models.Model):
|
|
|
76
76
|
try:
|
|
77
77
|
validate(self.file)
|
|
78
78
|
except ValidationError as e:
|
|
79
|
-
raise ValidationError({"file": e.messages[0]})
|
|
79
|
+
raise ValidationError({"file": e.messages[0]}) from e
|
|
80
80
|
|
|
81
81
|
def is_stored_locally(self):
|
|
82
82
|
"""
|
|
@@ -12,6 +12,7 @@ from django.utils.http import urlencode
|
|
|
12
12
|
from django.utils.text import capfirst
|
|
13
13
|
|
|
14
14
|
from wagtail.admin.admin_url_finder import AdminURLFinder
|
|
15
|
+
from wagtail.admin.staticfiles import versioned_static
|
|
15
16
|
from wagtail.documents import get_document_model, models
|
|
16
17
|
from wagtail.documents.tests.utils import get_test_document_file
|
|
17
18
|
from wagtail.models import (
|
|
@@ -37,7 +38,7 @@ class TestDocumentIndexView(WagtailTestUtils, TestCase):
|
|
|
37
38
|
def setUp(self):
|
|
38
39
|
self.login()
|
|
39
40
|
|
|
40
|
-
def get(self, params=
|
|
41
|
+
def get(self, params=None):
|
|
41
42
|
return self.client.get(reverse("wagtaildocs:index"), params)
|
|
42
43
|
|
|
43
44
|
def test_simple(self):
|
|
@@ -398,13 +399,27 @@ class TestDocumentIndexView(WagtailTestUtils, TestCase):
|
|
|
398
399
|
[doc3],
|
|
399
400
|
)
|
|
400
401
|
|
|
402
|
+
def test_bulk_action_rendered(self):
|
|
403
|
+
response = self.get()
|
|
404
|
+
self.assertEqual(response.status_code, 200)
|
|
405
|
+
# Should render bulk actions markup
|
|
406
|
+
bulk_actions_js = versioned_static("wagtailadmin/js/bulk-actions.js")
|
|
407
|
+
soup = self.get_soup(response.content)
|
|
408
|
+
script = soup.select_one(f"script[src='{bulk_actions_js}']")
|
|
409
|
+
self.assertIsNotNone(script)
|
|
410
|
+
bulk_actions = soup.select("[data-bulk-action-button]")
|
|
411
|
+
self.assertTrue(bulk_actions)
|
|
412
|
+
# 'next' parameter is constructed client-side later based on filters state
|
|
413
|
+
for action in bulk_actions:
|
|
414
|
+
self.assertNotIn("next=", action["href"])
|
|
415
|
+
|
|
401
416
|
|
|
402
417
|
class TestDocumentIndexViewSearch(WagtailTestUtils, TransactionTestCase):
|
|
403
418
|
def setUp(self):
|
|
404
419
|
Collection.add_root(name="Root")
|
|
405
420
|
self.login()
|
|
406
421
|
|
|
407
|
-
def get(self, params=
|
|
422
|
+
def get(self, params=None):
|
|
408
423
|
return self.client.get(reverse("wagtaildocs:index"), params)
|
|
409
424
|
|
|
410
425
|
def make_docs(self):
|
|
@@ -533,7 +548,7 @@ class TestDocumentIndexResultsView(WagtailTestUtils, TransactionTestCase):
|
|
|
533
548
|
Collection.add_root(name="Root")
|
|
534
549
|
self.login()
|
|
535
550
|
|
|
536
|
-
def get(self, params=
|
|
551
|
+
def get(self, params=None):
|
|
537
552
|
return self.client.get(reverse("wagtaildocs:index_results"), params)
|
|
538
553
|
|
|
539
554
|
def test_search(self):
|
|
@@ -1071,7 +1086,7 @@ class TestDocumentEditViewWithCustomDocumentModel(WagtailTestUtils, TestCase):
|
|
|
1071
1086
|
|
|
1072
1087
|
self.storage = self.document.file.storage
|
|
1073
1088
|
|
|
1074
|
-
def get(self, params=
|
|
1089
|
+
def get(self, params=None):
|
|
1075
1090
|
return self.client.get(
|
|
1076
1091
|
reverse("wagtaildocs:edit", args=(self.document.id,)), params
|
|
1077
1092
|
)
|
|
@@ -96,7 +96,6 @@ class TestIssue613(WagtailTestUtils, TestCase):
|
|
|
96
96
|
# Add a document with some tags
|
|
97
97
|
document = self.add_document(tags="hello")
|
|
98
98
|
|
|
99
|
-
# TODO: remove this when https://github.com/kaedroho/django-modelsearch/pull/40 is merged and released
|
|
100
99
|
search_backend.refresh_indexes()
|
|
101
100
|
|
|
102
101
|
# Search for it by tag
|
|
@@ -125,7 +124,6 @@ class TestIssue613(WagtailTestUtils, TestCase):
|
|
|
125
124
|
# Add a document with some tags
|
|
126
125
|
document = self.edit_document(tags="hello")
|
|
127
126
|
|
|
128
|
-
# TODO: remove this when https://github.com/kaedroho/django-modelsearch/pull/40 is merged and released
|
|
129
127
|
search_backend.refresh_indexes()
|
|
130
128
|
|
|
131
129
|
# Search for it by tag
|
|
@@ -285,8 +285,8 @@ class TestServeViewWithSendfile(TestCase):
|
|
|
285
285
|
# django-sendfile module is not installed
|
|
286
286
|
try:
|
|
287
287
|
import sendfile # noqa: F401
|
|
288
|
-
except ImportError:
|
|
289
|
-
raise unittest.SkipTest("django-sendfile not installed")
|
|
288
|
+
except ImportError as e:
|
|
289
|
+
raise unittest.SkipTest("django-sendfile not installed") from e
|
|
290
290
|
|
|
291
291
|
self.document = models.Document(title="Test document")
|
|
292
292
|
self.document.file.save(
|
|
@@ -367,8 +367,10 @@ class TestServeWithUnicodeFilename(TestCase):
|
|
|
367
367
|
self.document.file.save(
|
|
368
368
|
self.filename, ContentFile("A boring example document")
|
|
369
369
|
)
|
|
370
|
-
except UnicodeEncodeError:
|
|
371
|
-
raise unittest.SkipTest(
|
|
370
|
+
except UnicodeEncodeError as e:
|
|
371
|
+
raise unittest.SkipTest(
|
|
372
|
+
"Filesystem doesn't support unicode filenames"
|
|
373
|
+
) from e
|
|
372
374
|
|
|
373
375
|
def tearDown(self):
|
|
374
376
|
# delete the FieldFile directly because the TestCase does not commit
|
|
@@ -27,7 +27,7 @@ class AddTagsBulkAction(DocumentBulkAction):
|
|
|
27
27
|
return {"tags": self.cleaned_form.cleaned_data["tags"].split(",")}
|
|
28
28
|
|
|
29
29
|
@classmethod
|
|
30
|
-
def execute_action(cls, objects, tags=
|
|
30
|
+
def execute_action(cls, objects, tags=None, **kwargs):
|
|
31
31
|
num_parent_objects = 0
|
|
32
32
|
if not tags:
|
|
33
33
|
return
|
|
@@ -78,11 +78,11 @@ class FacebookOEmbedFinder(OEmbedFinder):
|
|
|
78
78
|
r = urllib_request.urlopen(request)
|
|
79
79
|
except (HTTPError, URLError) as e:
|
|
80
80
|
if isinstance(e, HTTPError) and e.code == 404:
|
|
81
|
-
raise EmbedNotFoundException
|
|
81
|
+
raise EmbedNotFoundException from e
|
|
82
82
|
elif isinstance(e, HTTPError) and e.code in [400, 401, 403]:
|
|
83
|
-
raise AccessDeniedFacebookOEmbedException
|
|
83
|
+
raise AccessDeniedFacebookOEmbedException from e
|
|
84
84
|
else:
|
|
85
|
-
raise EmbedNotFoundException
|
|
85
|
+
raise EmbedNotFoundException from e
|
|
86
86
|
oembed = json.loads(r.read().decode("utf-8"))
|
|
87
87
|
|
|
88
88
|
# Return embed as a dict
|
|
@@ -60,11 +60,11 @@ class InstagramOEmbedFinder(OEmbedFinder):
|
|
|
60
60
|
r = urllib_request.urlopen(request)
|
|
61
61
|
except (HTTPError, URLError) as e:
|
|
62
62
|
if isinstance(e, HTTPError) and e.code == 404:
|
|
63
|
-
raise EmbedNotFoundException
|
|
63
|
+
raise EmbedNotFoundException from e
|
|
64
64
|
elif isinstance(e, HTTPError) and e.code in [400, 401, 403]:
|
|
65
|
-
raise AccessDeniedInstagramOEmbedException
|
|
65
|
+
raise AccessDeniedInstagramOEmbedException from e
|
|
66
66
|
else:
|
|
67
|
-
raise EmbedNotFoundException
|
|
67
|
+
raise EmbedNotFoundException from e
|
|
68
68
|
oembed = json.loads(r.read().decode("utf-8"))
|
|
69
69
|
|
|
70
70
|
# Convert photos into HTML
|
wagtail/embeds/finders/oembed.py
CHANGED
|
@@ -60,9 +60,14 @@ class OEmbedFinder(EmbedFinder):
|
|
|
60
60
|
r = requests.get(
|
|
61
61
|
endpoint, params=params, headers={"User-agent": "Mozilla/5.0"}
|
|
62
62
|
)
|
|
63
|
+
r.raise_for_status()
|
|
63
64
|
oembed = r.json()
|
|
64
|
-
except requests.RequestException:
|
|
65
|
-
raise EmbedNotFoundException
|
|
65
|
+
except requests.RequestException as e:
|
|
66
|
+
raise EmbedNotFoundException(f"Request failed: {e}") from e
|
|
67
|
+
|
|
68
|
+
# Check if 'type' is missing
|
|
69
|
+
if "type" not in oembed:
|
|
70
|
+
raise EmbedNotFoundException("Missing 'type' in response")
|
|
66
71
|
|
|
67
72
|
# Convert photos into HTML
|
|
68
73
|
if oembed["type"] == "photo":
|
|
@@ -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:
|
|
11
|
+
"POT-Creation-Date: 2026-01-21 18:00+0000\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"
|
|
@@ -291,6 +291,13 @@ kinomap = {
|
|
|
291
291
|
],
|
|
292
292
|
}
|
|
293
293
|
|
|
294
|
+
loom = {
|
|
295
|
+
"endpoint": "https://www.loom.com/v1/oembed",
|
|
296
|
+
"urls": [
|
|
297
|
+
r"^https?://(?:www\.)?loom\.com/share/.+$",
|
|
298
|
+
],
|
|
299
|
+
}
|
|
300
|
+
|
|
294
301
|
major_league_gaming = {
|
|
295
302
|
"endpoint": "http://tv.majorleaguegaming.com/oembed",
|
|
296
303
|
"urls": [
|
|
@@ -667,6 +674,7 @@ all_providers = [
|
|
|
667
674
|
justin_tv,
|
|
668
675
|
kickstarter,
|
|
669
676
|
kinomap,
|
|
677
|
+
loom,
|
|
670
678
|
major_league_gaming,
|
|
671
679
|
meetup,
|
|
672
680
|
minoto,
|
|
@@ -664,6 +664,41 @@ class TestOembed(TestCase):
|
|
|
664
664
|
result = OEmbedFinder().find_embed("https://vimeo.com/217403396")
|
|
665
665
|
self.assertEqual(result["type"], "video")
|
|
666
666
|
|
|
667
|
+
@responses.activate
|
|
668
|
+
def test_oembed_non_200_response(self):
|
|
669
|
+
responses.get(
|
|
670
|
+
url="https://www.youtube.com/oembed",
|
|
671
|
+
match=[
|
|
672
|
+
matchers.query_param_matcher(
|
|
673
|
+
{"url": "https://www.youtube.com/watch/", "format": "json"}
|
|
674
|
+
),
|
|
675
|
+
],
|
|
676
|
+
json={"error": "not found"},
|
|
677
|
+
status=403,
|
|
678
|
+
)
|
|
679
|
+
|
|
680
|
+
with self.assertRaises(EmbedNotFoundException):
|
|
681
|
+
OEmbedFinder().find_embed("https://www.youtube.com/watch/")
|
|
682
|
+
|
|
683
|
+
@responses.activate
|
|
684
|
+
def test_oembed_missing_type_field(self):
|
|
685
|
+
responses.get(
|
|
686
|
+
url="https://www.youtube.com/oembed",
|
|
687
|
+
match=[
|
|
688
|
+
matchers.query_param_matcher(
|
|
689
|
+
{"url": "https://www.youtube.com/watch/", "format": "json"}
|
|
690
|
+
),
|
|
691
|
+
],
|
|
692
|
+
json={ # valid JSON but missing 'type'
|
|
693
|
+
"title": "Video without type",
|
|
694
|
+
"url": "http://example.com/video",
|
|
695
|
+
},
|
|
696
|
+
status=200,
|
|
697
|
+
)
|
|
698
|
+
|
|
699
|
+
with self.assertRaises(EmbedNotFoundException):
|
|
700
|
+
OEmbedFinder().find_embed("https://www.youtube.com/watch/")
|
|
701
|
+
|
|
667
702
|
|
|
668
703
|
class TestInstagramOEmbed(TestCase):
|
|
669
704
|
def setUp(self):
|
wagtail/images/__init__.py
CHANGED
|
@@ -23,12 +23,12 @@ def get_image_model():
|
|
|
23
23
|
model_string = get_image_model_string()
|
|
24
24
|
try:
|
|
25
25
|
return apps.get_model(model_string, require_ready=False)
|
|
26
|
-
except ValueError:
|
|
26
|
+
except ValueError as e:
|
|
27
27
|
raise ImproperlyConfigured(
|
|
28
28
|
"WAGTAILIMAGES_IMAGE_MODEL must be of the form 'app_label.model_name'"
|
|
29
|
-
)
|
|
30
|
-
except LookupError:
|
|
29
|
+
) from e
|
|
30
|
+
except LookupError as e:
|
|
31
31
|
raise ImproperlyConfigured(
|
|
32
32
|
"WAGTAILIMAGES_IMAGE_MODEL refers to model '%s' that has not been installed"
|
|
33
33
|
% model_string
|
|
34
|
-
)
|
|
34
|
+
) from e
|
wagtail/images/admin_urls.py
CHANGED
|
@@ -14,9 +14,9 @@ urlpatterns = [
|
|
|
14
14
|
name="url_generator",
|
|
15
15
|
),
|
|
16
16
|
path(
|
|
17
|
-
"<int:image_id>/generate_url
|
|
18
|
-
images.
|
|
19
|
-
name="
|
|
17
|
+
"<int:image_id>/generate_url/output/",
|
|
18
|
+
images.URLGeneratorView.as_view(output_only=True),
|
|
19
|
+
name="url_generator_output",
|
|
20
20
|
),
|
|
21
21
|
path("<int:image_id>/preview/<str:filter_spec>/", images.preview, name="preview"),
|
|
22
22
|
path("add/", images.CreateView.as_view(), name="add"),
|
wagtail/images/blocks.py
CHANGED
|
@@ -186,7 +186,7 @@ class ImageBlock(StructBlock):
|
|
|
186
186
|
except ValidationError as e:
|
|
187
187
|
raise StructBlockValidationError(
|
|
188
188
|
block_errors={"image": e},
|
|
189
|
-
)
|
|
189
|
+
) from e
|
|
190
190
|
|
|
191
191
|
if value and not value.contextual_alt_text and not value.decorative:
|
|
192
192
|
raise StructBlockValidationError(
|
wagtail/images/formats.py
CHANGED
|
@@ -72,8 +72,8 @@ def unregister_image_format(format_name):
|
|
|
72
72
|
try:
|
|
73
73
|
del FORMATS_BY_NAME[format_name]
|
|
74
74
|
FORMATS = [fmt for fmt in FORMATS if fmt.name != format_name]
|
|
75
|
-
except KeyError:
|
|
76
|
-
raise KeyError("Image format '%s' is not registered" % format_name)
|
|
75
|
+
except KeyError as e:
|
|
76
|
+
raise KeyError("Image format '%s' is not registered" % format_name) from e
|
|
77
77
|
|
|
78
78
|
|
|
79
79
|
def get_image_formats():
|
|
@@ -14,13 +14,13 @@ class Operation:
|
|
|
14
14
|
try:
|
|
15
15
|
inspect.getcallargs(self.construct, *args)
|
|
16
16
|
except TypeError as e:
|
|
17
|
-
raise InvalidFilterSpecError(e)
|
|
17
|
+
raise InvalidFilterSpecError(e) from e
|
|
18
18
|
|
|
19
19
|
# Call construct
|
|
20
20
|
try:
|
|
21
21
|
self.construct(*args)
|
|
22
22
|
except ValueError as e:
|
|
23
|
-
raise InvalidFilterSpecError(e)
|
|
23
|
+
raise InvalidFilterSpecError(e) from e
|
|
24
24
|
|
|
25
25
|
def construct(self, *args):
|
|
26
26
|
raise NotImplementedError
|
|
@@ -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:
|
|
11
|
+
"POT-Creation-Date: 2026-01-21 18:00+0000\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"
|
|
@@ -88,8 +88,8 @@ msgstr ""
|
|
|
88
88
|
msgid "Right-aligned"
|
|
89
89
|
msgstr ""
|
|
90
90
|
|
|
91
|
-
#: forms.py:31 views/bulk_actions/add_to_collection.py:13 views/chooser.py:
|
|
92
|
-
#: views/images.py:
|
|
91
|
+
#: forms.py:31 views/bulk_actions/add_to_collection.py:13 views/chooser.py:180
|
|
92
|
+
#: views/images.py:200
|
|
93
93
|
msgid "Collection"
|
|
94
94
|
msgstr ""
|
|
95
95
|
|
|
@@ -271,7 +271,7 @@ msgid "Delete images"
|
|
|
271
271
|
msgstr ""
|
|
272
272
|
|
|
273
273
|
#: templates/wagtailimages/bulk_actions/confirm_bulk_delete.html:18
|
|
274
|
-
#: views/images.py:
|
|
274
|
+
#: views/images.py:469
|
|
275
275
|
msgid "Are you sure you want to delete this image?"
|
|
276
276
|
msgid_plural "Are you sure you want to delete these images?"
|
|
277
277
|
msgstr[0] ""
|
|
@@ -368,17 +368,17 @@ msgstr[1] ""
|
|
|
368
368
|
msgid "Change image file:"
|
|
369
369
|
msgstr ""
|
|
370
370
|
|
|
371
|
-
#: templates/wagtailimages/images/add.html:3 views/images.py:
|
|
371
|
+
#: templates/wagtailimages/images/add.html:3 views/images.py:77
|
|
372
372
|
msgid "Add an image"
|
|
373
373
|
msgstr ""
|
|
374
374
|
|
|
375
375
|
#: templates/wagtailimages/images/add.html:11 views/chooser.py:61
|
|
376
|
-
#: views/chooser.py:
|
|
376
|
+
#: views/chooser.py:389
|
|
377
377
|
msgid "Uploading…"
|
|
378
378
|
msgstr ""
|
|
379
379
|
|
|
380
380
|
#: templates/wagtailimages/images/add.html:14 views/chooser.py:60
|
|
381
|
-
#: views/chooser.py:
|
|
381
|
+
#: views/chooser.py:388
|
|
382
382
|
msgid "Upload"
|
|
383
383
|
msgstr ""
|
|
384
384
|
|
|
@@ -432,8 +432,8 @@ msgstr ""
|
|
|
432
432
|
msgid "File not found"
|
|
433
433
|
msgstr ""
|
|
434
434
|
|
|
435
|
-
#: templates/wagtailimages/images/edit.html:65 views/chooser.py:
|
|
436
|
-
#: views/images.py:
|
|
435
|
+
#: templates/wagtailimages/images/edit.html:65 views/chooser.py:187
|
|
436
|
+
#: views/images.py:208
|
|
437
437
|
msgid "Usage"
|
|
438
438
|
msgstr ""
|
|
439
439
|
|
|
@@ -479,29 +479,29 @@ msgstr ""
|
|
|
479
479
|
msgid "List layout"
|
|
480
480
|
msgstr ""
|
|
481
481
|
|
|
482
|
-
#: templates/wagtailimages/images/
|
|
483
|
-
#: templates/wagtailimages/images/
|
|
484
|
-
#: views/images.py:
|
|
482
|
+
#: templates/wagtailimages/images/url_generator_output.html:3
|
|
483
|
+
#: templates/wagtailimages/images/url_generator_output.html:7
|
|
484
|
+
#: views/chooser.py:169 views/images.py:188
|
|
485
485
|
msgid "Preview"
|
|
486
486
|
msgstr ""
|
|
487
487
|
|
|
488
|
-
#: templates/wagtailimages/images/
|
|
488
|
+
#: templates/wagtailimages/images/url_generator_output.html:12
|
|
489
489
|
msgid "URL"
|
|
490
490
|
msgstr ""
|
|
491
491
|
|
|
492
|
-
#: templates/wagtailimages/images/
|
|
492
|
+
#: templates/wagtailimages/images/url_generator_output.html:15
|
|
493
493
|
msgid "Image URL"
|
|
494
494
|
msgstr ""
|
|
495
495
|
|
|
496
|
-
#: templates/wagtailimages/images/
|
|
496
|
+
#: templates/wagtailimages/images/url_generator_output.html:18
|
|
497
497
|
msgid "Copy URL"
|
|
498
498
|
msgstr ""
|
|
499
499
|
|
|
500
|
-
#: templates/wagtailimages/images/
|
|
500
|
+
#: templates/wagtailimages/images/url_generator_output.html:22
|
|
501
501
|
msgid "Copied to clipboard"
|
|
502
502
|
msgstr ""
|
|
503
503
|
|
|
504
|
-
#: templates/wagtailimages/images/
|
|
504
|
+
#: templates/wagtailimages/images/url_generator_output.html:25
|
|
505
505
|
msgid "Copying to clipboard failed"
|
|
506
506
|
msgstr ""
|
|
507
507
|
|
|
@@ -600,7 +600,7 @@ msgid_plural "%(num_parent_objects)d images have been added to %(collection)s"
|
|
|
600
600
|
msgstr[0] ""
|
|
601
601
|
msgstr[1] ""
|
|
602
602
|
|
|
603
|
-
#: views/bulk_actions/delete.py:9 views/images.py:
|
|
603
|
+
#: views/bulk_actions/delete.py:9 views/images.py:293
|
|
604
604
|
msgid "Delete"
|
|
605
605
|
msgstr ""
|
|
606
606
|
|
|
@@ -615,95 +615,99 @@ msgid_plural "%(num_parent_objects)d images have been deleted"
|
|
|
615
615
|
msgstr[0] ""
|
|
616
616
|
msgstr[1] ""
|
|
617
617
|
|
|
618
|
-
#: views/chooser.py:
|
|
618
|
+
#: views/chooser.py:175 views/images.py:194
|
|
619
619
|
msgid "Title"
|
|
620
620
|
msgstr ""
|
|
621
621
|
|
|
622
|
-
#: views/chooser.py:
|
|
622
|
+
#: views/chooser.py:183 views/images.py:203
|
|
623
623
|
msgid "Created"
|
|
624
624
|
msgstr ""
|
|
625
625
|
|
|
626
|
-
#: views/chooser.py:
|
|
626
|
+
#: views/chooser.py:387 widgets.py:13
|
|
627
627
|
msgid "Choose an image"
|
|
628
628
|
msgstr ""
|
|
629
629
|
|
|
630
|
-
#: views/chooser.py:
|
|
630
|
+
#: views/chooser.py:390
|
|
631
631
|
msgid "Choose another image"
|
|
632
632
|
msgstr ""
|
|
633
633
|
|
|
634
|
-
#: views/chooser.py:
|
|
634
|
+
#: views/chooser.py:391 widgets.py:15
|
|
635
635
|
msgid "Edit this image"
|
|
636
636
|
msgstr ""
|
|
637
637
|
|
|
638
|
-
#: views/images.py:
|
|
638
|
+
#: views/images.py:59
|
|
639
639
|
msgid "Newest"
|
|
640
640
|
msgstr ""
|
|
641
641
|
|
|
642
|
-
#: views/images.py:
|
|
642
|
+
#: views/images.py:60
|
|
643
643
|
msgid "Oldest"
|
|
644
644
|
msgstr ""
|
|
645
645
|
|
|
646
|
-
#: views/images.py:
|
|
646
|
+
#: views/images.py:61
|
|
647
647
|
msgid "Title: (A -> Z)"
|
|
648
648
|
msgstr ""
|
|
649
649
|
|
|
650
|
-
#: views/images.py:
|
|
650
|
+
#: views/images.py:62
|
|
651
651
|
msgid "Title: (Z -> A)"
|
|
652
652
|
msgstr ""
|
|
653
653
|
|
|
654
|
-
#: views/images.py:
|
|
654
|
+
#: views/images.py:63
|
|
655
655
|
msgid "File size: (low to high)"
|
|
656
656
|
msgstr ""
|
|
657
657
|
|
|
658
|
-
#: views/images.py:
|
|
658
|
+
#: views/images.py:64
|
|
659
659
|
msgid "File size: (high to low)"
|
|
660
660
|
msgstr ""
|
|
661
661
|
|
|
662
|
-
#: views/images.py:
|
|
662
|
+
#: views/images.py:65
|
|
663
663
|
msgid "Usage count: (low to high)"
|
|
664
664
|
msgstr ""
|
|
665
665
|
|
|
666
|
-
#: views/images.py:
|
|
666
|
+
#: views/images.py:66
|
|
667
667
|
msgid "Usage count: (high to low)"
|
|
668
668
|
msgstr ""
|
|
669
669
|
|
|
670
|
-
#: views/images.py:
|
|
670
|
+
#: views/images.py:76 wagtail_hooks.py:52 wagtail_hooks.py:160
|
|
671
671
|
msgid "Images"
|
|
672
672
|
msgstr ""
|
|
673
673
|
|
|
674
|
-
#: views/images.py:
|
|
674
|
+
#: views/images.py:242
|
|
675
675
|
msgid "The image could not be saved due to errors."
|
|
676
676
|
msgstr ""
|
|
677
677
|
|
|
678
|
-
#: views/images.py:
|
|
678
|
+
#: views/images.py:272
|
|
679
679
|
#, python-format
|
|
680
680
|
msgid "Image '%(image_title)s' updated."
|
|
681
681
|
msgstr ""
|
|
682
682
|
|
|
683
|
-
#: views/images.py:
|
|
683
|
+
#: views/images.py:290
|
|
684
684
|
msgid ""
|
|
685
685
|
"The source image file could not be found. Please change the source or delete "
|
|
686
686
|
"the image."
|
|
687
687
|
msgstr ""
|
|
688
688
|
|
|
689
|
-
#: views/images.py:
|
|
689
|
+
#: views/images.py:325
|
|
690
690
|
msgid "Generate URL"
|
|
691
691
|
msgstr ""
|
|
692
692
|
|
|
693
|
-
#: views/images.py:
|
|
693
|
+
#: views/images.py:332
|
|
694
|
+
msgid "The filter options you have selected are not valid."
|
|
695
|
+
msgstr ""
|
|
696
|
+
|
|
697
|
+
#: views/images.py:457
|
|
694
698
|
msgid "Delete image"
|
|
695
699
|
msgstr ""
|
|
696
700
|
|
|
697
|
-
#: views/images.py:
|
|
701
|
+
#: views/images.py:475
|
|
698
702
|
#, python-format
|
|
699
703
|
msgid "Image '%(image_title)s' deleted."
|
|
700
704
|
msgstr ""
|
|
701
705
|
|
|
702
|
-
#: views/images.py:
|
|
706
|
+
#: views/images.py:485
|
|
703
707
|
msgid "The image could not be created due to errors."
|
|
704
708
|
msgstr ""
|
|
705
709
|
|
|
706
|
-
#: views/images.py:
|
|
710
|
+
#: views/images.py:505
|
|
707
711
|
#, python-format
|
|
708
712
|
msgid "Image '%(image_title)s' added."
|
|
709
713
|
msgstr ""
|
|
Binary file
|