#6389 Avoid 'ZZZZ' tree paths as placeholders on preview

Merged Matt Westcott gasman
Coverage Reach
wagtail/admin/views/pages/edit.py wagtail/admin/views/pages/create.py wagtail/admin/views/pages/revisions.py wagtail/admin/views/pages/workflow.py wagtail/admin/views/pages/preview.py wagtail/admin/views/pages/search.py wagtail/admin/views/pages/history.py wagtail/admin/views/pages/moderation.py wagtail/admin/views/pages/move.py wagtail/admin/views/pages/copy.py wagtail/admin/views/pages/listing.py wagtail/admin/views/pages/lock.py wagtail/admin/views/pages/unpublish.py wagtail/admin/views/pages/delete.py wagtail/admin/views/pages/ordering.py wagtail/admin/views/pages/usage.py wagtail/admin/views/pages/utils.py wagtail/admin/views/workflows.py wagtail/admin/views/generic.py wagtail/admin/views/account.py wagtail/admin/views/mixins.py wagtail/admin/views/chooser.py wagtail/admin/views/reports.py wagtail/admin/views/collections.py wagtail/admin/views/home.py wagtail/admin/views/page_privacy.py wagtail/admin/views/collection_privacy.py wagtail/admin/views/userbar.py wagtail/admin/views/tags.py wagtail/admin/rich_text/converters/html_to_contentstate.py wagtail/admin/rich_text/converters/editor_html.py wagtail/admin/rich_text/converters/html_ruleset.py wagtail/admin/rich_text/converters/contentstate_models.py wagtail/admin/rich_text/converters/contentstate.py wagtail/admin/rich_text/editors/hallo.py wagtail/admin/rich_text/editors/draftail/__init__.py wagtail/admin/rich_text/editors/draftail/features.py wagtail/admin/rich_text/__init__.py wagtail/admin/edit_handlers.py wagtail/admin/forms/collections.py wagtail/admin/forms/workflows.py wagtail/admin/forms/pages.py wagtail/admin/forms/models.py wagtail/admin/forms/choosers.py wagtail/admin/forms/view_restrictions.py wagtail/admin/forms/tags.py wagtail/admin/forms/auth.py wagtail/admin/forms/search.py wagtail/admin/forms/__init__.py wagtail/admin/compare.py wagtail/admin/widgets/chooser.py wagtail/admin/widgets/datetime.py wagtail/admin/widgets/button.py wagtail/admin/widgets/filtered_select.py wagtail/admin/widgets/tags.py wagtail/admin/widgets/workflows.py wagtail/admin/widgets/button_select.py wagtail/admin/widgets/auto_height_text.py wagtail/admin/widgets/__init__.py wagtail/admin/wagtail_hooks.py wagtail/admin/templatetags/wagtailadmin_tags.py wagtail/admin/templatetags/wagtailuserbar.py wagtail/admin/static_src/wagtailadmin/js/page-editor.js wagtail/admin/static_src/wagtailadmin/js/vendor/urlify.js wagtail/admin/static_src/wagtailadmin/js/vendor/jquery-3.5.1.min.js wagtail/admin/static_src/wagtailadmin/app/wagtailadmin.entry.js wagtail/admin/static_src/wagtailadmin/app/draftail.entry.js wagtail/admin/action_menu.py wagtail/admin/mail.py wagtail/admin/api/serializers.py wagtail/admin/api/views.py wagtail/admin/api/filters.py wagtail/admin/api/urls.py wagtail/admin/filters.py wagtail/admin/auth.py wagtail/admin/menu.py wagtail/admin/userbar.py wagtail/admin/viewsets/model.py wagtail/admin/viewsets/__init__.py wagtail/admin/viewsets/base.py wagtail/admin/checks.py wagtail/admin/search.py wagtail/admin/urls/__init__.py wagtail/admin/urls/pages.py wagtail/admin/urls/collections.py wagtail/admin/urls/workflows.py wagtail/admin/urls/reports.py wagtail/admin/urls/password_reset.py wagtail/admin/site_summary.py wagtail/admin/messages.py wagtail/admin/log_action_registry.py wagtail/admin/staticfiles.py wagtail/admin/navigation.py wagtail/admin/models.py wagtail/admin/signal_handlers.py wagtail/admin/modal_workflow.py wagtail/admin/localization.py wagtail/admin/apps.py wagtail/admin/jinja2tags.py wagtail/admin/datetimepicker.py wagtail/admin/blocks.py wagtail/admin/signals.py wagtail/admin/__init__.py wagtail/contrib/modeladmin/views.py wagtail/contrib/modeladmin/options.py wagtail/contrib/modeladmin/helpers/button.py wagtail/contrib/modeladmin/helpers/permission.py wagtail/contrib/modeladmin/helpers/url.py wagtail/contrib/modeladmin/helpers/search.py wagtail/contrib/modeladmin/helpers/__init__.py wagtail/contrib/modeladmin/templatetags/modeladmin_tags.py wagtail/contrib/modeladmin/mixins.py wagtail/contrib/modeladmin/menus.py wagtail/contrib/modeladmin/forms.py wagtail/contrib/modeladmin/apps.py wagtail/contrib/modeladmin/__init__.py wagtail/contrib/redirects/views.py wagtail/contrib/redirects/base_formats.py wagtail/contrib/redirects/management/commands/import_redirects.py wagtail/contrib/redirects/models.py wagtail/contrib/redirects/forms.py wagtail/contrib/redirects/tmp_storages.py wagtail/contrib/redirects/middleware.py wagtail/contrib/redirects/utils.py wagtail/contrib/redirects/wagtail_hooks.py wagtail/contrib/redirects/apps.py wagtail/contrib/redirects/urls.py wagtail/contrib/redirects/permissions.py wagtail/contrib/redirects/__init__.py wagtail/contrib/postgres_search/backend.py wagtail/contrib/postgres_search/query.py wagtail/contrib/postgres_search/utils.py wagtail/contrib/postgres_search/models.py wagtail/contrib/postgres_search/apps.py wagtail/contrib/postgres_search/__init__.py wagtail/contrib/forms/views.py wagtail/contrib/forms/models.py wagtail/contrib/forms/forms.py wagtail/contrib/forms/utils.py wagtail/contrib/forms/edit_handlers.py wagtail/contrib/forms/wagtail_hooks.py wagtail/contrib/forms/apps.py wagtail/contrib/forms/urls.py wagtail/contrib/forms/__init__.py wagtail/contrib/frontend_cache/tests.py wagtail/contrib/frontend_cache/backends.py wagtail/contrib/frontend_cache/utils.py wagtail/contrib/frontend_cache/signal_handlers.py wagtail/contrib/frontend_cache/apps.py wagtail/contrib/frontend_cache/__init__.py wagtail/contrib/search_promotions/tests.py wagtail/contrib/search_promotions/views.py wagtail/contrib/search_promotions/forms.py wagtail/contrib/search_promotions/wagtail_hooks.py wagtail/contrib/search_promotions/models.py wagtail/contrib/search_promotions/templatetags/wagtailsearchpromotions_tags.py wagtail/contrib/search_promotions/apps.py wagtail/contrib/search_promotions/admin_urls.py wagtail/contrib/search_promotions/__init__.py wagtail/contrib/routable_page/tests.py wagtail/contrib/routable_page/models.py wagtail/contrib/routable_page/templatetags/wagtailroutablepage_tags.py wagtail/contrib/routable_page/apps.py wagtail/contrib/routable_page/__init__.py wagtail/contrib/settings/views.py wagtail/contrib/settings/models.py wagtail/contrib/settings/jinja2tags.py wagtail/contrib/settings/registry.py wagtail/contrib/settings/context_processors.py wagtail/contrib/settings/forms.py wagtail/contrib/settings/templatetags/wagtailsettings_tags.py wagtail/contrib/settings/wagtail_hooks.py wagtail/contrib/settings/apps.py wagtail/contrib/settings/urls.py wagtail/contrib/settings/permissions.py wagtail/contrib/settings/__init__.py wagtail/contrib/table_block/tests.py wagtail/contrib/table_block/blocks.py wagtail/contrib/table_block/templatetags/table_block_tags.py wagtail/contrib/table_block/apps.py wagtail/contrib/table_block/__init__.py wagtail/contrib/sitemaps/tests.py wagtail/contrib/sitemaps/sitemap_generator.py wagtail/contrib/sitemaps/views.py wagtail/contrib/sitemaps/apps.py wagtail/contrib/sitemaps/__init__.py wagtail/contrib/styleguide/views.py wagtail/contrib/styleguide/wagtail_hooks.py wagtail/contrib/styleguide/tests.py wagtail/contrib/styleguide/apps.py wagtail/contrib/styleguide/__init__.py wagtail/core/models.py wagtail/core/blocks/field_block.py wagtail/core/blocks/stream_block.py wagtail/core/blocks/base.py wagtail/core/blocks/struct_block.py wagtail/core/blocks/list_block.py wagtail/core/blocks/static_block.py wagtail/core/blocks/__init__.py wagtail/core/blocks/utils.py wagtail/core/management/commands/fixtree.py wagtail/core/management/commands/publish_scheduled_pages.py wagtail/core/management/commands/create_log_entries_from_revisions.py wagtail/core/management/commands/replace_text.py wagtail/core/management/commands/purge_revisions.py wagtail/core/management/commands/move_pages.py wagtail/core/management/commands/set_url_paths.py wagtail/core/permission_policies/collections.py wagtail/core/permission_policies/base.py wagtail/core/permission_policies/__init__.py wagtail/core/query.py wagtail/core/rich_text/rewriters.py wagtail/core/rich_text/feature_registry.py wagtail/core/rich_text/__init__.py wagtail/core/rich_text/pages.py wagtail/core/utils.py wagtail/core/templatetags/wagtailcore_tags.py wagtail/core/fields.py wagtail/core/whitelist.py wagtail/core/treebeard.py wagtail/core/wagtail_hooks.py wagtail/core/hooks.py wagtail/core/jinja2tags.py wagtail/core/views.py wagtail/core/signal_handlers.py wagtail/core/forms.py wagtail/core/workflows.py wagtail/core/sites.py wagtail/core/signals.py wagtail/core/urls.py wagtail/core/apps.py wagtail/core/url_routing.py wagtail/core/compat.py wagtail/core/__init__.py wagtail/core/permissions.py wagtail/core/exceptions.py wagtail/images/views/images.py wagtail/images/views/multiple.py wagtail/images/views/chooser.py wagtail/images/views/serve.py wagtail/images/models.py wagtail/images/image_operations.py wagtail/images/rect.py wagtail/images/templatetags/wagtailimages_tags.py wagtail/images/wagtail_hooks.py wagtail/images/fields.py wagtail/images/rich_text/contentstate.py wagtail/images/rich_text/editor_html.py wagtail/images/rich_text/__init__.py wagtail/images/formats.py wagtail/images/api/v2/views.py wagtail/images/api/v2/serializers.py wagtail/images/api/fields.py wagtail/images/api/admin/views.py wagtail/images/api/admin/serializers.py wagtail/images/forms.py wagtail/images/checks.py wagtail/images/utils.py wagtail/images/blocks.py wagtail/images/widgets.py wagtail/images/jinja2tags.py wagtail/images/signal_handlers.py wagtail/images/edit_handlers.py wagtail/images/__init__.py wagtail/images/apps.py wagtail/images/shortcuts.py wagtail/images/admin.py wagtail/images/admin_urls.py wagtail/images/permissions.py wagtail/images/urls.py wagtail/images/exceptions.py wagtail/search/backends/elasticsearch2.py wagtail/search/backends/base.py wagtail/search/backends/db.py wagtail/search/backends/elasticsearch7.py wagtail/search/backends/__init__.py wagtail/search/backends/elasticsearch5.py wagtail/search/backends/elasticsearch6.py wagtail/search/index.py wagtail/search/management/commands/update_index.py wagtail/search/management/commands/search_garbage_collect.py wagtail/search/management/commands/wagtail_update_index.py wagtail/search/utils.py wagtail/search/models.py wagtail/search/query.py wagtail/search/views/queries.py wagtail/search/signal_handlers.py wagtail/search/apps.py wagtail/search/queryset.py wagtail/search/wagtail_hooks.py wagtail/search/urls/admin.py wagtail/search/forms.py wagtail/search/__init__.py wagtail/users/tests.py wagtail/users/forms.py wagtail/users/views/users.py wagtail/users/views/groups.py wagtail/users/wagtail_hooks.py wagtail/users/templatetags/wagtailusers_tags.py wagtail/users/models.py wagtail/users/utils.py wagtail/users/apps.py wagtail/users/widgets.py wagtail/users/urls/users.py wagtail/users/__init__.py wagtail/snippets/tests.py wagtail/snippets/views/snippets.py wagtail/snippets/views/chooser.py wagtail/snippets/wagtail_hooks.py wagtail/snippets/widgets.py wagtail/snippets/models.py wagtail/snippets/blocks.py wagtail/snippets/permissions.py wagtail/snippets/templatetags/wagtailsnippets_admin_tags.py wagtail/snippets/edit_handlers.py wagtail/snippets/apps.py wagtail/snippets/urls.py wagtail/snippets/__init__.py wagtail/api/v2/views.py wagtail/api/v2/serializers.py wagtail/api/v2/utils.py wagtail/api/v2/filters.py wagtail/api/v2/router.py wagtail/api/v2/signal_handlers.py wagtail/api/v2/pagination.py wagtail/api/v2/apps.py wagtail/api/v2/__init__.py wagtail/api/conf.py wagtail/api/__init__.py wagtail/documents/views/documents.py wagtail/documents/views/chooser.py wagtail/documents/views/serve.py wagtail/documents/views/multiple.py wagtail/documents/models.py wagtail/documents/wagtail_hooks.py wagtail/documents/rich_text/editor_html.py wagtail/documents/rich_text/contentstate.py wagtail/documents/rich_text/__init__.py wagtail/documents/api/v2/views.py wagtail/documents/api/v2/serializers.py wagtail/documents/api/admin/views.py wagtail/documents/forms.py wagtail/documents/widgets.py wagtail/documents/blocks.py wagtail/documents/__init__.py wagtail/documents/apps.py wagtail/documents/signal_handlers.py wagtail/documents/admin.py wagtail/documents/edit_handlers.py wagtail/documents/admin_urls.py wagtail/documents/permissions.py wagtail/documents/urls.py wagtail/embeds/finders/oembed.py wagtail/embeds/finders/embedly.py wagtail/embeds/finders/__init__.py wagtail/embeds/finders/base.py wagtail/embeds/oembed_providers.py wagtail/embeds/rich_text/contentstate.py wagtail/embeds/rich_text/__init__.py wagtail/embeds/rich_text/editor_html.py wagtail/embeds/blocks.py wagtail/embeds/models.py wagtail/embeds/views/chooser.py wagtail/embeds/embeds.py wagtail/embeds/wagtail_hooks.py wagtail/embeds/templatetags/wagtailembeds_tags.py wagtail/embeds/format.py wagtail/embeds/apps.py wagtail/embeds/exceptions.py wagtail/embeds/forms.py wagtail/embeds/urls.py wagtail/embeds/__init__.py wagtail/utils/setup.py wagtail/utils/sendfile.py wagtail/utils/sendfile_streaming_backend.py wagtail/utils/deprecation.py wagtail/utils/decorators.py wagtail/utils/version.py wagtail/utils/widgets.py wagtail/utils/apps.py wagtail/utils/loading.py wagtail/utils/urlpatterns.py wagtail/utils/utils.py wagtail/sites/tests.py wagtail/sites/views.py wagtail/sites/wagtail_hooks.py wagtail/sites/forms.py wagtail/sites/apps.py wagtail/sites/__init__.py wagtail/bin/wagtail.py wagtail/__init__.py client/src/components/Draftail/sources/ModalWorkflowSource.js client/src/components/Draftail/decorators/TooltipEntity.js client/src/components/Draftail/decorators/Link.js client/src/components/Draftail/decorators/Document.js client/src/components/Draftail/blocks/MediaBlock.js client/src/components/Draftail/blocks/ImageBlock.js client/src/components/Draftail/blocks/EmbedBlock.js client/src/components/Draftail/EditorFallback/EditorFallback.js client/src/components/Draftail/index.js client/src/components/Draftail/DraftUtils.js client/src/components/Draftail/Tooltip/Tooltip.js client/src/components/Explorer/ExplorerPanel.js client/src/components/Explorer/actions.js client/src/components/Explorer/reducers/nodes.js client/src/components/Explorer/reducers/explorer.js client/src/components/Explorer/Explorer.js client/src/components/Explorer/ExplorerItem.js client/src/components/Explorer/index.js client/src/components/Explorer/ExplorerHeader.js client/src/components/Explorer/ExplorerToggle.js client/src/components/Explorer/PageCount.js client/src/components/Portal/Portal.js client/src/components/Button/Button.js client/src/components/UpgradeNotification/index.js client/src/components/Transition/Transition.js client/src/components/Icon/Icon.js client/src/components/PublicationStatus/PublicationStatus.js client/src/components/LoadingSpinner/LoadingSpinner.js client/src/includes/initSubmenus.js client/src/includes/initSkipLink.js client/src/utils/focus.js client/src/utils/version.js client/src/utils/actions.js client/src/api/client.js client/src/api/admin.js client/src/config/wagtailConfig.js

Flags

Flags have been temporarily removed from this view while the flagging feature is refactored for better performance and user experience.

You can still use flags when viewing individual files. Flag-level thresholds will also remain on pull and merge requests in your repository provider.

More information can be found in our documentation.

Showing 1 of 1 files from the diff.

@@ -113,9 +113,15 @@
Loading
113 113
        # hopefully enable tree traversal operations
114 114
        # to at least partially work.
115 115
        page.depth = parent_page.depth + 1
116 -
        # Puts the page at the maximum possible path
116 +
        # Puts the page at the next available path
117 117
        # for a child of `parent_page`.
118 -
        page.path = Page._get_children_path_interval(parent_page.path)[1]
118 +
        if parent_page.is_leaf():
119 +
            # set the path as the first child of parent_page
120 +
            page.path = page._get_path(parent_page.path, page.depth, 1)
121 +
        else:
122 +
            # add the new page after the last child of parent_page
123 +
            page.path = parent_page.get_last_child()._inc_path()
124 +
119 125
        return page
120 126
121 127
    def get_form(self, page, query_dict):

Everything is accounted for!

No changes detected that need to be reviewed.
What changes does Codecov check for?
Lines, not adjusted in diff, that have changed coverage data.
Files that introduced coverage data that had none before.
Files that have missing coverage data that once were tracked.
Files Coverage
client/src/api/admin.js 100.00%
client/src/api/client.js 100.00%
client/src/components/Button/Button.js 100.00%
client/src/components/Draftail/DraftUtils.js 100.00%
client/src/components/Draftail/EditorFallback/EditorFallback.js 100.00%
client/src/components/Draftail/Tooltip/Tooltip.js 100.00%
client/src/components/Draftail/blocks/EmbedBlock.js 100.00%
client/src/components/Draftail/blocks/ImageBlock.js 100.00%
client/src/components/Draftail/blocks/MediaBlock.js 100.00%
client/src/components/Draftail/decorators/Document.js 100.00%
client/src/components/Draftail/decorators/Link.js 100.00%
client/src/components/Draftail/decorators/TooltipEntity.js 100.00%
client/src/components/Draftail/index.js 100.00%
client/src/components/Draftail/sources/ModalWorkflowSource.js 96.40%
client/src/components/Explorer/Explorer.js 100.00%
client/src/components/Explorer/ExplorerHeader.js 100.00%
client/src/components/Explorer/ExplorerItem.js 100.00%
client/src/components/Explorer/ExplorerPanel.js 100.00%
client/src/components/Explorer/ExplorerToggle.js 100.00%
client/src/components/Explorer/PageCount.js 100.00%
client/src/components/Explorer/actions.js 87.23%
client/src/components/Explorer/index.js 100.00%
client/src/components/Explorer/reducers/explorer.js 100.00%
client/src/components/Explorer/reducers/nodes.js 93.94%
client/src/components/Icon/Icon.js 100.00%
client/src/components/LoadingSpinner/LoadingSpinner.js 100.00%
client/src/components/Portal/Portal.js 100.00%
client/src/components/PublicationStatus/PublicationStatus.js 100.00%
client/src/components/Transition/Transition.js 100.00%
client/src/components/UpgradeNotification/index.js 22.22%
client/src/config/wagtailConfig.js 100.00%
client/src/includes/initSkipLink.js 42.86%
client/src/includes/initSubmenus.js 16.67%
client/src/utils/actions.js 80.00%
client/src/utils/focus.js 100.00%
client/src/utils/version.js 100.00%
wagtail/__init__.py 100.00%
wagtail/admin/__init__.py 100.00%
wagtail/admin/action_menu.py 97.17%
wagtail/admin/api/filters.py 100.00%
wagtail/admin/api/serializers.py 97.30%
wagtail/admin/api/urls.py 100.00%
wagtail/admin/api/views.py 100.00%
wagtail/admin/apps.py 100.00%
wagtail/admin/auth.py 90.82%
wagtail/admin/blocks.py 0.00%
wagtail/admin/checks.py 97.01%
wagtail/admin/compare.py 85.29%
wagtail/admin/datetimepicker.py 100.00%
wagtail/admin/edit_handlers.py 94.12%
wagtail/admin/filters.py 89.42%
wagtail/admin/forms/__init__.py 100.00%
wagtail/admin/forms/auth.py 100.00%
wagtail/admin/forms/choosers.py 100.00%
wagtail/admin/forms/collections.py 88.55%
wagtail/admin/forms/models.py 100.00%
wagtail/admin/forms/pages.py 92.96%
wagtail/admin/forms/search.py 100.00%
wagtail/admin/forms/tags.py 90.00%
wagtail/admin/forms/view_restrictions.py 100.00%
wagtail/admin/forms/workflows.py 93.98%
wagtail/admin/jinja2tags.py 100.00%
wagtail/admin/localization.py 100.00%
wagtail/admin/log_action_registry.py 100.00%
wagtail/admin/mail.py 90.36%
wagtail/admin/menu.py 96.05%
wagtail/admin/messages.py 83.78%
wagtail/admin/modal_workflow.py 81.82%
wagtail/admin/models.py 100.00%
wagtail/admin/navigation.py 100.00%
wagtail/admin/rich_text/__init__.py 100.00%
wagtail/admin/rich_text/converters/contentstate.py 66.67%
wagtail/admin/rich_text/converters/contentstate_models.py 100.00%
wagtail/admin/rich_text/converters/editor_html.py 98.04%
wagtail/admin/rich_text/converters/html_ruleset.py 96.30%
wagtail/admin/rich_text/converters/html_to_contentstate.py 99.50%
wagtail/admin/rich_text/editors/draftail/__init__.py 96.15%
wagtail/admin/rich_text/editors/draftail/features.py 100.00%
wagtail/admin/rich_text/editors/hallo.py 95.88%
wagtail/admin/search.py 80.95%
wagtail/admin/signal_handlers.py 100.00%
wagtail/admin/signals.py 100.00%
wagtail/admin/site_summary.py 91.49%
wagtail/admin/static_src/wagtailadmin/app/draftail.entry.js 100.00%
wagtail/admin/static_src/wagtailadmin/app/wagtailadmin.entry.js 84.62%
wagtail/admin/static_src/wagtailadmin/js/page-editor.js 6.21%
wagtail/admin/static_src/wagtailadmin/js/vendor/jquery-3.5.1.min.js 100.00%
wagtail/admin/static_src/wagtailadmin/js/vendor/urlify.js 96.23%
wagtail/admin/staticfiles.py 82.61%
wagtail/admin/templatetags/wagtailadmin_tags.py 87.86%
wagtail/admin/templatetags/wagtailuserbar.py 88.64%
wagtail/admin/urls/__init__.py 97.06%
wagtail/admin/urls/collections.py 100.00%
wagtail/admin/urls/pages.py 100.00%
wagtail/admin/urls/password_reset.py 100.00%
wagtail/admin/urls/reports.py 100.00%
wagtail/admin/urls/workflows.py 100.00%
wagtail/admin/userbar.py 68.12%
wagtail/admin/views/account.py 94.16%
wagtail/admin/views/chooser.py 95.16%
wagtail/admin/views/collection_privacy.py 21.21%
wagtail/admin/views/collections.py 100.00%
wagtail/admin/views/generic.py 88.75%
wagtail/admin/views/home.py 96.30%
wagtail/admin/views/mixins.py 94.53%
wagtail/admin/views/page_privacy.py 91.18%
wagtail/admin/views/pages/copy.py 83.33%
wagtail/admin/views/pages/create.py 92.25%
wagtail/admin/views/pages/delete.py 87.10%
wagtail/admin/views/pages/edit.py 83.97%
wagtail/admin/views/pages/history.py 90.00%
wagtail/admin/views/pages/listing.py 100.00%
wagtail/admin/views/pages/lock.py 100.00%
wagtail/admin/views/pages/moderation.py 67.92%
wagtail/admin/views/pages/move.py 87.23%
wagtail/admin/views/pages/ordering.py 32.00%
wagtail/admin/views/pages/preview.py 0.21% 91.46%
wagtail/admin/views/pages/revisions.py 81.55%
wagtail/admin/views/pages/search.py 74.63%
wagtail/admin/views/pages/unpublish.py 86.11%
wagtail/admin/views/pages/usage.py 76.47%
wagtail/admin/views/pages/utils.py 100.00%
wagtail/admin/views/pages/workflow.py 67.65%
wagtail/admin/views/reports.py 92.16%
wagtail/admin/views/tags.py 77.78%
wagtail/admin/views/userbar.py 80.95%
wagtail/admin/views/workflows.py 90.77%
wagtail/admin/viewsets/__init__.py 95.00%
wagtail/admin/viewsets/base.py 80.00%
wagtail/admin/viewsets/model.py 83.78%
wagtail/admin/wagtail_hooks.py 82.98%
wagtail/admin/widgets/__init__.py 100.00%
wagtail/admin/widgets/auto_height_text.py 100.00%
wagtail/admin/widgets/button.py 92.42%
wagtail/admin/widgets/button_select.py 100.00%
wagtail/admin/widgets/chooser.py 90.48%
wagtail/admin/widgets/datetime.py 92.96%
wagtail/admin/widgets/filtered_select.py 100.00%
wagtail/admin/widgets/tags.py 100.00%
wagtail/admin/widgets/workflows.py 100.00%
wagtail/api/__init__.py 100.00%
wagtail/api/conf.py 83.33%
wagtail/api/v2/__init__.py 100.00%
wagtail/api/v2/apps.py 64.29%
wagtail/api/v2/filters.py 94.12%
wagtail/api/v2/pagination.py 87.10%
wagtail/api/v2/router.py 97.56%
wagtail/api/v2/serializers.py 96.18%
wagtail/api/v2/signal_handlers.py 94.87%
wagtail/api/v2/utils.py 99.14%
wagtail/api/v2/views.py 94.55%
wagtail/bin/wagtail.py 0.00%
wagtail/contrib/forms/__init__.py 100.00%
wagtail/contrib/forms/apps.py 100.00%
wagtail/contrib/forms/edit_handlers.py 94.12%
wagtail/contrib/forms/forms.py 93.48%
wagtail/contrib/forms/models.py 91.46%
wagtail/contrib/forms/urls.py 100.00%
wagtail/contrib/forms/utils.py 100.00%
wagtail/contrib/forms/views.py 90.27%
wagtail/contrib/forms/wagtail_hooks.py 100.00%
wagtail/contrib/frontend_cache/__init__.py 100.00%
wagtail/contrib/frontend_cache/apps.py 100.00%
wagtail/contrib/frontend_cache/backends.py 74.07%
wagtail/contrib/frontend_cache/signal_handlers.py 100.00%
wagtail/contrib/frontend_cache/tests.py 99.01%
wagtail/contrib/frontend_cache/utils.py 92.59%
wagtail/contrib/modeladmin/__init__.py 100.00%
wagtail/contrib/modeladmin/apps.py 100.00%
wagtail/contrib/modeladmin/forms.py 100.00%
wagtail/contrib/modeladmin/helpers/__init__.py 100.00%
wagtail/contrib/modeladmin/helpers/button.py 67.52%
wagtail/contrib/modeladmin/helpers/permission.py 95.31%
wagtail/contrib/modeladmin/helpers/search.py 94.29%
wagtail/contrib/modeladmin/helpers/url.py 100.00%
wagtail/contrib/modeladmin/menus.py 86.36%
wagtail/contrib/modeladmin/mixins.py 81.25%
wagtail/contrib/modeladmin/options.py 94.81%
wagtail/contrib/modeladmin/templatetags/modeladmin_tags.py 84.07%
wagtail/contrib/modeladmin/views.py 86.35%
wagtail/contrib/postgres_search/__init__.py 100.00%
wagtail/contrib/postgres_search/apps.py 85.71%
wagtail/contrib/postgres_search/backend.py 85.07%
wagtail/contrib/postgres_search/models.py 95.92%
wagtail/contrib/postgres_search/query.py 84.71%
wagtail/contrib/postgres_search/utils.py 91.18%
wagtail/contrib/redirects/__init__.py 100.00%
wagtail/contrib/redirects/apps.py 100.00%
wagtail/contrib/redirects/base_formats.py 88.89%
wagtail/contrib/redirects/forms.py 100.00%
wagtail/contrib/redirects/management/commands/import_redirects.py 97.92%
wagtail/contrib/redirects/middleware.py 94.87%
wagtail/contrib/redirects/models.py 89.23%
wagtail/contrib/redirects/permissions.py 100.00%
wagtail/contrib/redirects/tmp_storages.py 84.91%
wagtail/contrib/redirects/urls.py 100.00%
wagtail/contrib/redirects/utils.py 100.00%
wagtail/contrib/redirects/views.py 94.23%
wagtail/contrib/redirects/wagtail_hooks.py 100.00%
wagtail/contrib/routable_page/__init__.py 100.00%
wagtail/contrib/routable_page/apps.py 100.00%
wagtail/contrib/routable_page/models.py 83.12%
wagtail/contrib/routable_page/templatetags/wagtailroutablepage_tags.py 100.00%
wagtail/contrib/routable_page/tests.py 97.86%
wagtail/contrib/search_promotions/__init__.py 100.00%
wagtail/contrib/search_promotions/admin_urls.py 100.00%
wagtail/contrib/search_promotions/apps.py 100.00%
wagtail/contrib/search_promotions/forms.py 97.14%
wagtail/contrib/search_promotions/models.py 100.00%
...tail/contrib/search_promotions/templatetags/wagtailsearchpromotions_tags.py 100.00%
wagtail/contrib/search_promotions/tests.py 100.00%
wagtail/contrib/search_promotions/views.py 87.21%
wagtail/contrib/search_promotions/wagtail_hooks.py 100.00%
wagtail/contrib/settings/__init__.py 100.00%
wagtail/contrib/settings/apps.py 100.00%
wagtail/contrib/settings/context_processors.py 83.33%
wagtail/contrib/settings/forms.py 100.00%
wagtail/contrib/settings/jinja2tags.py 86.96%
wagtail/contrib/settings/models.py 100.00%
wagtail/contrib/settings/permissions.py 100.00%
wagtail/contrib/settings/registry.py 90.70%
wagtail/contrib/settings/templatetags/wagtailsettings_tags.py 100.00%
wagtail/contrib/settings/urls.py 100.00%
wagtail/contrib/settings/views.py 96.36%
wagtail/contrib/settings/wagtail_hooks.py 100.00%
wagtail/contrib/sitemaps/__init__.py 100.00%
wagtail/contrib/sitemaps/apps.py 0.00%
wagtail/contrib/sitemaps/sitemap_generator.py 92.59%
wagtail/contrib/sitemaps/tests.py 100.00%
wagtail/contrib/sitemaps/views.py 88.89%
wagtail/contrib/styleguide/__init__.py 100.00%
wagtail/contrib/styleguide/apps.py 100.00%
wagtail/contrib/styleguide/tests.py 100.00%
wagtail/contrib/styleguide/views.py 100.00%
wagtail/contrib/styleguide/wagtail_hooks.py 100.00%
wagtail/contrib/table_block/__init__.py 100.00%
wagtail/contrib/table_block/apps.py 100.00%
wagtail/contrib/table_block/blocks.py 98.65%
wagtail/contrib/table_block/templatetags/table_block_tags.py 100.00%
wagtail/contrib/table_block/tests.py 100.00%
wagtail/core/__init__.py 100.00%
wagtail/core/apps.py 100.00%
wagtail/core/blocks/__init__.py 100.00%
wagtail/core/blocks/base.py 92.23%
wagtail/core/blocks/field_block.py 90.59%
wagtail/core/blocks/list_block.py 75.28%
wagtail/core/blocks/static_block.py 93.33%
wagtail/core/blocks/stream_block.py 94.44%
wagtail/core/blocks/struct_block.py 94.39%
wagtail/core/blocks/utils.py 100.00%
wagtail/core/compat.py 71.43%
wagtail/core/exceptions.py 100.00%
wagtail/core/fields.py 85.39%
wagtail/core/forms.py 100.00%
wagtail/core/hooks.py 100.00%
wagtail/core/jinja2tags.py 78.79%
wagtail/core/management/commands/create_log_entries_from_revisions.py 88.10%
wagtail/core/management/commands/fixtree.py 77.03%
wagtail/core/management/commands/move_pages.py 100.00%
wagtail/core/management/commands/publish_scheduled_pages.py 39.66%
wagtail/core/management/commands/purge_revisions.py 90.63%
wagtail/core/management/commands/replace_text.py 90.63%
wagtail/core/management/commands/set_url_paths.py 100.00%
wagtail/core/models.py 92.15%
wagtail/core/permission_policies/__init__.py 100.00%
wagtail/core/permission_policies/base.py 95.83%
wagtail/core/permission_policies/collections.py 90.24%
wagtail/core/permissions.py 100.00%
wagtail/core/query.py 100.00%
wagtail/core/rich_text/__init__.py 100.00%
wagtail/core/rich_text/feature_registry.py 86.54%
wagtail/core/rich_text/pages.py 100.00%
wagtail/core/rich_text/rewriters.py 96.49%
wagtail/core/signal_handlers.py 100.00%
wagtail/core/signals.py 100.00%
wagtail/core/sites.py 93.33%
wagtail/core/templatetags/wagtailcore_tags.py 84.91%
wagtail/core/treebeard.py 94.00%
wagtail/core/url_routing.py 100.00%
wagtail/core/urls.py 80.00%
wagtail/core/utils.py 96.26%
wagtail/core/views.py 85.71%
wagtail/core/wagtail_hooks.py 97.87%
wagtail/core/whitelist.py 98.31%
wagtail/core/workflows.py 100.00%
wagtail/documents/__init__.py 100.00%
wagtail/documents/admin.py 66.67%
wagtail/documents/admin_urls.py 100.00%
wagtail/documents/api/admin/views.py 100.00%
wagtail/documents/api/v2/serializers.py 100.00%
wagtail/documents/api/v2/views.py 100.00%
wagtail/documents/apps.py 100.00%
wagtail/documents/blocks.py 0.00%
wagtail/documents/edit_handlers.py 100.00%
wagtail/documents/forms.py 100.00%
wagtail/documents/models.py 73.12%
wagtail/documents/permissions.py 100.00%
wagtail/documents/rich_text/__init__.py 100.00%
wagtail/documents/rich_text/contentstate.py 94.44%
wagtail/documents/rich_text/editor_html.py 100.00%
wagtail/documents/signal_handlers.py 100.00%
wagtail/documents/urls.py 100.00%
wagtail/documents/views/chooser.py 100.00%
wagtail/documents/views/documents.py 86.55%
wagtail/documents/views/multiple.py 91.04%
wagtail/documents/views/serve.py 92.65%
wagtail/documents/wagtail_hooks.py 98.81%
wagtail/documents/widgets.py 100.00%
wagtail/embeds/__init__.py 100.00%
wagtail/embeds/apps.py 100.00%
wagtail/embeds/blocks.py 100.00%
wagtail/embeds/embeds.py 83.33%
wagtail/embeds/exceptions.py 100.00%
wagtail/embeds/finders/__init__.py 78.26%
wagtail/embeds/finders/base.py 75.00%
wagtail/embeds/finders/embedly.py 91.18%
wagtail/embeds/finders/oembed.py 96.08%
wagtail/embeds/format.py 100.00%
wagtail/embeds/forms.py 100.00%
wagtail/embeds/models.py 91.67%
wagtail/embeds/oembed_providers.py 100.00%
wagtail/embeds/rich_text/__init__.py 86.67%
wagtail/embeds/rich_text/contentstate.py 81.25%
wagtail/embeds/rich_text/editor_html.py 100.00%
wagtail/embeds/templatetags/wagtailembeds_tags.py 100.00%
wagtail/embeds/urls.py 100.00%
wagtail/embeds/views/chooser.py 69.70%
wagtail/embeds/wagtail_hooks.py 100.00%
wagtail/images/__init__.py 100.00%
wagtail/images/admin.py 66.67%
wagtail/images/admin_urls.py 100.00%
wagtail/images/api/admin/serializers.py 100.00%
wagtail/images/api/admin/views.py 100.00%
wagtail/images/api/fields.py 100.00%
wagtail/images/api/v2/serializers.py 100.00%
wagtail/images/api/v2/views.py 100.00%
wagtail/images/apps.py 100.00%
wagtail/images/blocks.py 88.89%
wagtail/images/checks.py 75.00%
wagtail/images/edit_handlers.py 85.71%
wagtail/images/exceptions.py 100.00%
wagtail/images/fields.py 78.57%
wagtail/images/formats.py 79.25%
wagtail/images/forms.py 93.94%
wagtail/images/image_operations.py 93.25%
wagtail/images/jinja2tags.py 90.00%
wagtail/images/models.py 89.27%
wagtail/images/permissions.py 100.00%
wagtail/images/rect.py 88.57%
wagtail/images/rich_text/__init__.py 100.00%
wagtail/images/rich_text/contentstate.py 85.00%
wagtail/images/rich_text/editor_html.py 100.00%
wagtail/images/shortcuts.py 100.00%
wagtail/images/signal_handlers.py 84.21%
wagtail/images/templatetags/wagtailimages_tags.py 92.41%
wagtail/images/urls.py 100.00%
wagtail/images/utils.py 48.39%
wagtail/images/views/chooser.py 90.29%
wagtail/images/views/images.py 88.55%
wagtail/images/views/multiple.py 89.57%
wagtail/images/views/serve.py 98.41%
wagtail/images/wagtail_hooks.py 95.71%
wagtail/images/widgets.py 100.00%
wagtail/search/__init__.py 100.00%
wagtail/search/apps.py 100.00%
wagtail/search/backends/__init__.py 96.15%
wagtail/search/backends/base.py 89.62%
wagtail/search/backends/db.py 90.08%
wagtail/search/backends/elasticsearch2.py 85.42%
wagtail/search/backends/elasticsearch5.py 93.62%
wagtail/search/backends/elasticsearch6.py 100.00%
wagtail/search/backends/elasticsearch7.py 85.71%
wagtail/search/forms.py 100.00%
wagtail/search/index.py 92.27%
wagtail/search/management/commands/search_garbage_collect.py 100.00%
wagtail/search/management/commands/update_index.py 84.42%
wagtail/search/management/commands/wagtail_update_index.py 0.00%
wagtail/search/models.py 100.00%
wagtail/search/query.py 100.00%
wagtail/search/queryset.py 75.00%
wagtail/search/signal_handlers.py 85.71%
wagtail/search/urls/admin.py 100.00%
wagtail/search/utils.py 96.43%
wagtail/search/views/queries.py 81.82%
wagtail/search/wagtail_hooks.py 100.00%
wagtail/sites/__init__.py 100.00%
wagtail/sites/apps.py 100.00%
wagtail/sites/forms.py 100.00%
wagtail/sites/tests.py 98.19%
wagtail/sites/views.py 100.00%
wagtail/sites/wagtail_hooks.py 100.00%
wagtail/snippets/__init__.py 100.00%
wagtail/snippets/apps.py 100.00%
wagtail/snippets/blocks.py 100.00%
wagtail/snippets/edit_handlers.py 100.00%
wagtail/snippets/models.py 95.24%
wagtail/snippets/permissions.py 100.00%
wagtail/snippets/templatetags/wagtailsnippets_admin_tags.py 100.00%
wagtail/snippets/tests.py 100.00%
wagtail/snippets/urls.py 100.00%
wagtail/snippets/views/chooser.py 91.89%
wagtail/snippets/views/snippets.py 88.16%
wagtail/snippets/wagtail_hooks.py 97.14%
wagtail/snippets/widgets.py 100.00%
wagtail/users/__init__.py 100.00%
wagtail/users/apps.py 100.00%
wagtail/users/forms.py 96.02%
wagtail/users/models.py 96.55%
wagtail/users/templatetags/wagtailusers_tags.py 100.00%
wagtail/users/tests.py 99.55%
wagtail/users/urls/users.py 100.00%
wagtail/users/utils.py 100.00%
wagtail/users/views/groups.py 96.19%
wagtail/users/views/users.py 87.41%
wagtail/users/wagtail_hooks.py 100.00%
wagtail/users/widgets.py 100.00%
wagtail/utils/apps.py 100.00%
wagtail/utils/decorators.py 100.00%
wagtail/utils/deprecation.py 33.33%
wagtail/utils/loading.py 100.00%
wagtail/utils/sendfile.py 83.64%
wagtail/utils/sendfile_streaming_backend.py 54.84%
wagtail/utils/setup.py 0.00%
wagtail/utils/urlpatterns.py 100.00%
wagtail/utils/utils.py 100.00%
wagtail/utils/version.py 83.33%
wagtail/utils/widgets.py 81.25%
Project Totals (427 files) 90.05%
Loading