kopia lustrzana https://github.com/wagtail/wagtail
Make the last item in the breadcrumbs a link to itself
rodzic
3b7aa245a8
commit
84a483589d
|
@ -48,7 +48,7 @@
|
|||
data-w-breadcrumbs-target="content"
|
||||
{% endif %}
|
||||
>
|
||||
{% if item.url %}
|
||||
{% if item.url is not None %}
|
||||
<a class="{{ breadcrumb_link_classes }}" href="{{ item.url }}">
|
||||
{{ item.label }}
|
||||
</a>
|
||||
|
|
|
@ -71,7 +71,7 @@ class TestCollectionsIndexViewAsSuperuser(
|
|||
self.assertNotContains(response, "No collections have been created.")
|
||||
self.assertContains(response, "Holiday snaps")
|
||||
self.assertBreadcrumbsItemsRendered(
|
||||
[{"label": "Collections"}], response.content
|
||||
[{"url": "", "label": "Collections"}], response.content
|
||||
)
|
||||
|
||||
def test_ordering(self):
|
||||
|
@ -210,7 +210,7 @@ class TestAddCollectionAsSuperuser(AdminTemplateTestUtils, WagtailTestUtils, Tes
|
|||
self.assertBreadcrumbsItemsRendered(
|
||||
[
|
||||
{"label": "Collections", "url": "/admin/collections/"},
|
||||
{"label": "New: Collection"},
|
||||
{"label": "New: Collection", "url": ""},
|
||||
],
|
||||
response.content,
|
||||
)
|
||||
|
@ -335,7 +335,7 @@ class TestEditCollectionAsSuperuser(AdminTemplateTestUtils, WagtailTestUtils, Te
|
|||
self.assertBreadcrumbsItemsRendered(
|
||||
[
|
||||
{"url": "/admin/collections/", "label": "Collections"},
|
||||
{"label": str(self.collection)},
|
||||
{"url": "", "label": str(self.collection)},
|
||||
],
|
||||
response.content,
|
||||
)
|
||||
|
|
|
@ -116,7 +116,10 @@ class TestWorkflowsIndexView(AdminTemplateTestUtils, WagtailTestUtils, TestCase)
|
|||
response = self.get()
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertTemplateUsed(response, "wagtailadmin/workflows/index.html")
|
||||
self.assertBreadcrumbsItemsRendered([{"label": "Workflows"}], response.content)
|
||||
self.assertBreadcrumbsItemsRendered(
|
||||
[{"url": "", "label": "Workflows"}],
|
||||
response.content,
|
||||
)
|
||||
|
||||
# Initially there should be no workflows listed
|
||||
self.assertContains(response, "There are no enabled workflows.")
|
||||
|
@ -207,7 +210,7 @@ class TestWorkflowsCreateView(AdminTemplateTestUtils, WagtailTestUtils, TestCase
|
|||
self.assertBreadcrumbsItemsRendered(
|
||||
[
|
||||
{"label": "Workflows", "url": "/admin/workflows/list/"},
|
||||
{"label": "New: Workflow"},
|
||||
{"label": "New: Workflow", "url": ""},
|
||||
],
|
||||
response.content,
|
||||
)
|
||||
|
@ -437,7 +440,7 @@ class TestWorkflowsEditView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
|||
self.assertBreadcrumbsItemsRendered(
|
||||
[
|
||||
{"url": "/admin/workflows/list/", "label": "Workflows"},
|
||||
{"label": str(self.workflow)},
|
||||
{"url": "", "label": str(self.workflow)},
|
||||
],
|
||||
response.content,
|
||||
)
|
||||
|
@ -753,7 +756,10 @@ class TestTaskIndexView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
|||
response = self.get()
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertTemplateUsed(response, "wagtailadmin/workflows/task_index.html")
|
||||
self.assertBreadcrumbsItemsRendered([{"label": "Tasks"}], response.content)
|
||||
self.assertBreadcrumbsItemsRendered(
|
||||
[{"url": "", "label": "Tasks"}],
|
||||
response.content,
|
||||
)
|
||||
|
||||
# Initially there should be no tasks listed
|
||||
self.assertContains(response, "There are no enabled tasks")
|
||||
|
@ -851,7 +857,7 @@ class TestCreateTaskView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
|||
self.assertBreadcrumbsItemsRendered(
|
||||
[
|
||||
{"label": "Tasks", "url": "/admin/workflows/tasks/index/"},
|
||||
{"label": "New: Simple task"},
|
||||
{"label": "New: Simple task", "url": ""},
|
||||
],
|
||||
response.content,
|
||||
)
|
||||
|
@ -975,7 +981,7 @@ class TestEditTaskView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
|||
self.assertBreadcrumbsItemsRendered(
|
||||
[
|
||||
{"url": "/admin/workflows/tasks/index/", "label": "Tasks"},
|
||||
{"label": str(self.task)},
|
||||
{"url": "", "label": str(self.task)},
|
||||
],
|
||||
response.content,
|
||||
)
|
||||
|
|
|
@ -659,6 +659,7 @@ class TestBreadcrumbs(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
|||
response = self.client.get(reverse("feature_complete_toy:index"))
|
||||
items = [
|
||||
{
|
||||
"url": "",
|
||||
"label": "Feature complete toys",
|
||||
}
|
||||
]
|
||||
|
@ -672,6 +673,7 @@ class TestBreadcrumbs(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
|||
"label": "Feature complete toys",
|
||||
},
|
||||
{
|
||||
"url": "",
|
||||
"label": "New: Feature complete toy",
|
||||
},
|
||||
]
|
||||
|
@ -686,6 +688,7 @@ class TestBreadcrumbs(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
|||
"label": "Feature complete toys",
|
||||
},
|
||||
{
|
||||
"url": "",
|
||||
"label": str(self.object),
|
||||
},
|
||||
]
|
||||
|
|
|
@ -359,7 +359,7 @@ class IndexView(
|
|||
if not self.model:
|
||||
return self.breadcrumbs_items
|
||||
return self.breadcrumbs_items + [
|
||||
{"label": capfirst(self.model._meta.verbose_name_plural)},
|
||||
{"url": "", "label": capfirst(self.model._meta.verbose_name_plural)},
|
||||
]
|
||||
|
||||
def get_translations(self):
|
||||
|
@ -464,6 +464,7 @@ class CreateView(
|
|||
)
|
||||
items.append(
|
||||
{
|
||||
"url": "",
|
||||
"label": _("New: %(model_name)s")
|
||||
% {"model_name": capfirst(self.model._meta.verbose_name)},
|
||||
}
|
||||
|
@ -619,7 +620,7 @@ class EditView(
|
|||
"label": capfirst(self.model._meta.verbose_name_plural),
|
||||
}
|
||||
)
|
||||
items.append({"label": get_latest_str(self.object)})
|
||||
items.append({"url": "", "label": get_latest_str(self.object)})
|
||||
return self.breadcrumbs_items + items
|
||||
|
||||
def get_edit_url(self):
|
||||
|
@ -879,7 +880,7 @@ class InspectView(PermissionCheckedMixin, WagtailAdminTemplateMixin, TemplateVie
|
|||
edit_url = self.get_edit_url()
|
||||
if edit_url:
|
||||
items.append({"url": edit_url, "label": get_latest_str(self.object)})
|
||||
items.append({"label": _("Inspect")})
|
||||
items.append({"url": "", "label": _("Inspect")})
|
||||
return self.breadcrumbs_items + items
|
||||
|
||||
def get_fields(self):
|
||||
|
|
|
@ -58,7 +58,7 @@ class UsageView(PermissionCheckedMixin, BaseObjectMixin, BaseListingView):
|
|||
"label": get_latest_str(self.object),
|
||||
}
|
||||
)
|
||||
items.append({"label": _("Usage")})
|
||||
items.append({"url": "", "label": _("Usage")})
|
||||
return self.breadcrumbs_items + items
|
||||
|
||||
def get_queryset(self):
|
||||
|
|
|
@ -509,8 +509,9 @@ class CreateTask(CreateView):
|
|||
"label": capfirst(Task._meta.verbose_name_plural),
|
||||
},
|
||||
{
|
||||
"url": "",
|
||||
"label": _("New: %(model_name)s")
|
||||
% {"model_name": capfirst(self.model._meta.verbose_name)}
|
||||
% {"model_name": capfirst(self.model._meta.verbose_name)},
|
||||
},
|
||||
]
|
||||
return self.breadcrumbs_items + items
|
||||
|
@ -558,7 +559,7 @@ class EditTask(EditView):
|
|||
"url": reverse(self.index_url_name),
|
||||
"label": capfirst(Task._meta.verbose_name_plural),
|
||||
},
|
||||
{"label": str(self.object)},
|
||||
{"url": "", "label": str(self.object)},
|
||||
]
|
||||
return self.breadcrumbs_items + items
|
||||
|
||||
|
|
|
@ -20,7 +20,10 @@ class TestLocaleIndexView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
|||
response = self.get()
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertTemplateUsed(response, "wagtailadmin/generic/index.html")
|
||||
self.assertBreadcrumbsItemsRendered([{"label": "Locales"}], response.content)
|
||||
self.assertBreadcrumbsItemsRendered(
|
||||
[{"url": "", "label": "Locales"}],
|
||||
response.content,
|
||||
)
|
||||
|
||||
|
||||
class TestLocaleCreateView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
||||
|
@ -46,7 +49,7 @@ class TestLocaleCreateView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
|||
self.assertBreadcrumbsItemsRendered(
|
||||
[
|
||||
{"label": "Locales", "url": "/admin/locales/"},
|
||||
{"label": "New: Locale"},
|
||||
{"label": "New: Locale", "url": ""},
|
||||
],
|
||||
response.content,
|
||||
)
|
||||
|
@ -127,7 +130,7 @@ class TestLocaleEditView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
|||
self.assertBreadcrumbsItemsRendered(
|
||||
[
|
||||
{"url": "/admin/locales/", "label": "Locales"},
|
||||
{"label": str(self.english)},
|
||||
{"url": "", "label": str(self.english)},
|
||||
],
|
||||
response.content,
|
||||
)
|
||||
|
|
|
@ -20,7 +20,10 @@ class TestSiteIndexView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
|||
response = self.get()
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertTemplateUsed(response, "wagtailadmin/generic/index.html")
|
||||
self.assertBreadcrumbsItemsRendered([{"label": "Sites"}], response.content)
|
||||
self.assertBreadcrumbsItemsRendered(
|
||||
[{"url": "", "label": "Sites"}],
|
||||
response.content,
|
||||
)
|
||||
|
||||
|
||||
class TestSiteCreateView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
||||
|
@ -60,7 +63,7 @@ class TestSiteCreateView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
|||
self.assertBreadcrumbsItemsRendered(
|
||||
[
|
||||
{"label": "Sites", "url": "/admin/sites/"},
|
||||
{"label": "New: Site"},
|
||||
{"label": "New: Site", "url": ""},
|
||||
],
|
||||
response.content,
|
||||
)
|
||||
|
@ -206,7 +209,7 @@ class TestSiteEditView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
|||
self.assertBreadcrumbsItemsRendered(
|
||||
[
|
||||
{"url": "/admin/sites/", "label": "Sites"},
|
||||
{"label": str(self.localhost)},
|
||||
{"url": "", "label": str(self.localhost)},
|
||||
],
|
||||
response.content,
|
||||
)
|
||||
|
|
|
@ -97,7 +97,10 @@ class TestSnippetIndexView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
|||
response = self.get()
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertTemplateUsed(response, "wagtailadmin/generic/index.html")
|
||||
self.assertBreadcrumbsItemsRendered([{"label": "Snippets"}], response.content)
|
||||
self.assertBreadcrumbsItemsRendered(
|
||||
[{"url": "", "label": "Snippets"}],
|
||||
response.content,
|
||||
)
|
||||
|
||||
def test_displays_snippet(self):
|
||||
self.assertContains(self.get(), "Adverts")
|
||||
|
|
|
@ -1369,7 +1369,7 @@ class TestBreadcrumbs(AdminTemplateTestUtils, BaseSnippetViewSetTests):
|
|||
|
||||
def test_index_view(self):
|
||||
response = self.client.get(self.get_url("list"))
|
||||
items = [{"label": "Full-featured snippets"}]
|
||||
items = [{"url": "", "label": "Full-featured snippets"}]
|
||||
self.assertBreadcrumbsItemsRendered(items, response.content)
|
||||
|
||||
def test_add_view(self):
|
||||
|
@ -1379,7 +1379,7 @@ class TestBreadcrumbs(AdminTemplateTestUtils, BaseSnippetViewSetTests):
|
|||
"url": self.get_url("list"),
|
||||
"label": "Full-featured snippets",
|
||||
},
|
||||
{"label": "New: Full-featured snippet"},
|
||||
{"url": "", "label": "New: Full-featured snippet"},
|
||||
]
|
||||
self.assertBreadcrumbsItemsRendered(items, response.content)
|
||||
|
||||
|
@ -1390,7 +1390,7 @@ class TestBreadcrumbs(AdminTemplateTestUtils, BaseSnippetViewSetTests):
|
|||
"url": self.get_url("list"),
|
||||
"label": "Full-featured snippets",
|
||||
},
|
||||
{"label": str(self.object)},
|
||||
{"url": "", "label": str(self.object)},
|
||||
]
|
||||
self.assertBreadcrumbsItemsRendered(items, response.content)
|
||||
|
||||
|
@ -1409,7 +1409,7 @@ class TestBreadcrumbs(AdminTemplateTestUtils, BaseSnippetViewSetTests):
|
|||
"url": self.get_url("edit", args=(self.object.pk,)),
|
||||
"label": str(self.object),
|
||||
},
|
||||
{"label": "History"},
|
||||
{"url": "", "label": "History"},
|
||||
]
|
||||
self.assertBreadcrumbsItemsRendered(items, response.content)
|
||||
|
||||
|
@ -1424,7 +1424,7 @@ class TestBreadcrumbs(AdminTemplateTestUtils, BaseSnippetViewSetTests):
|
|||
"url": self.get_url("edit", args=(self.object.pk,)),
|
||||
"label": str(self.object),
|
||||
},
|
||||
{"label": "Usage"},
|
||||
{"url": "", "label": "Usage"},
|
||||
]
|
||||
self.assertBreadcrumbsItemsRendered(items, response.content)
|
||||
|
||||
|
@ -1439,6 +1439,6 @@ class TestBreadcrumbs(AdminTemplateTestUtils, BaseSnippetViewSetTests):
|
|||
"url": self.get_url("edit", args=(self.object.pk,)),
|
||||
"label": str(self.object),
|
||||
},
|
||||
{"label": "Inspect"},
|
||||
{"url": "", "label": "Inspect"},
|
||||
]
|
||||
self.assertBreadcrumbsItemsRendered(items, response.content)
|
||||
|
|
|
@ -106,7 +106,7 @@ class ModelIndexView(generic.IndexView):
|
|||
return super().dispatch(request, *args, **kwargs)
|
||||
|
||||
def get_breadcrumbs_items(self):
|
||||
return self.breadcrumbs_items + [{"label": _("Snippets")}]
|
||||
return self.breadcrumbs_items + [{"url": "", "label": _("Snippets")}]
|
||||
|
||||
def get_list_url(self, type):
|
||||
return reverse(type["model"].snippet_viewset.get_url_name("list"))
|
||||
|
@ -489,7 +489,7 @@ class HistoryView(ReportView):
|
|||
"url": self.get_edit_url(self.object),
|
||||
"label": get_latest_str(self.object),
|
||||
},
|
||||
{"label": _("History")},
|
||||
{"url": "", "label": _("History")},
|
||||
]
|
||||
|
||||
def get_context_data(self, *args, object_list=None, **kwargs):
|
||||
|
|
|
@ -41,7 +41,7 @@ class AdminTemplateTestUtils:
|
|||
)
|
||||
|
||||
for item, rendered_item in zip(items, rendered_items):
|
||||
if item.get("url"):
|
||||
if item.get("url") is not None:
|
||||
element = rendered_item.select_one("a")
|
||||
self.assertIsNotNone(
|
||||
element,
|
||||
|
@ -50,7 +50,7 @@ class AdminTemplateTestUtils:
|
|||
self.assertEqual(
|
||||
element["href"],
|
||||
item["url"],
|
||||
f"Expected '{item['label']}' breadcrumbs item to link to {item['url']}",
|
||||
f"Expected '{item['label']}' breadcrumbs item to link to '{item['url']}'",
|
||||
)
|
||||
else:
|
||||
element = rendered_item.select_one("div")
|
||||
|
|
|
@ -119,7 +119,7 @@ class TestGroupUsersView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
|||
# response should contain page furniture, including the "Add a user" button
|
||||
self.assertContains(response, "Add a user")
|
||||
self.assertBreadcrumbsItemsRendered(
|
||||
[{"label": capfirst(User._meta.verbose_name_plural)}],
|
||||
[{"url": "", "label": capfirst(User._meta.verbose_name_plural)}],
|
||||
response.content,
|
||||
)
|
||||
|
||||
|
@ -208,7 +208,7 @@ class TestUserIndexView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
|||
# response should contain page furniture, including the "Add a user" button
|
||||
self.assertContains(response, "Add a user")
|
||||
self.assertBreadcrumbsItemsRendered(
|
||||
[{"label": capfirst(User._meta.verbose_name_plural)}],
|
||||
[{"url": "", "label": capfirst(User._meta.verbose_name_plural)}],
|
||||
response.content,
|
||||
)
|
||||
|
||||
|
@ -320,7 +320,7 @@ class TestUserCreateView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
|||
"url": "/admin/users/",
|
||||
"label": capfirst(User._meta.verbose_name_plural),
|
||||
},
|
||||
{"label": f"New: {capfirst(User._meta.verbose_name)}"},
|
||||
{"url": "", "label": f"New: {capfirst(User._meta.verbose_name)}"},
|
||||
],
|
||||
response.content,
|
||||
)
|
||||
|
@ -848,7 +848,7 @@ class TestUserEditView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
|||
"url": "/admin/users/",
|
||||
"label": capfirst(User._meta.verbose_name_plural),
|
||||
},
|
||||
{"label": str(self.test_user)},
|
||||
{"url": "", "label": str(self.test_user)},
|
||||
],
|
||||
response.content,
|
||||
)
|
||||
|
@ -1346,7 +1346,9 @@ class TestGroupIndexView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
|||
# response should contain page furniture, including the "Add a group" button
|
||||
self.assertContains(response, "Add a group")
|
||||
|
||||
self.assertBreadcrumbsItemsRendered([{"label": "Groups"}], response.content)
|
||||
self.assertBreadcrumbsItemsRendered(
|
||||
[{"url": "", "label": "Groups"}], response.content
|
||||
)
|
||||
|
||||
def test_search(self):
|
||||
response = self.get({"q": "Hello"})
|
||||
|
@ -1413,7 +1415,7 @@ class TestGroupCreateView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
|||
self.assertBreadcrumbsItemsRendered(
|
||||
[
|
||||
{"url": "/admin/groups/", "label": "Groups"},
|
||||
{"label": "New: Group"},
|
||||
{"url": "", "label": "New: Group"},
|
||||
],
|
||||
response.content,
|
||||
)
|
||||
|
@ -1664,7 +1666,7 @@ class TestGroupEditView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
|
|||
"url": "/admin/groups/",
|
||||
"label": "Groups",
|
||||
},
|
||||
{"label": str(self.test_group)},
|
||||
{"url": "", "label": str(self.test_group)},
|
||||
],
|
||||
response.content,
|
||||
)
|
||||
|
|
Ładowanie…
Reference in New Issue