Coverage for src/mesh/views/components/breadcrumb.py: 56%
14 statements
« prev ^ index » next coverage.py v7.7.0, created at 2025-04-28 07:45 +0000
« prev ^ index » next coverage.py v7.7.0, created at 2025-04-28 07:45 +0000
1from __future__ import annotations
3from typing import TYPE_CHECKING
5from django.urls import reverse_lazy
6from django.utils.translation import gettext_lazy as _
7from ptf.views.components.breadcrumb import Breadcrumb, BreadcrumbItem
9if TYPE_CHECKING: 9 ↛ 10line 9 didn't jump to line 10 because the condition on line 9 was never true
10 from ...models.submission_models import Submission
13def get_base_breadcrumb() -> Breadcrumb:
14 """
15 Returns a breadcrumb with the default "Home" breadcrumb item.
16 """
17 return Breadcrumb(
18 items=[
19 BreadcrumbItem(
20 title=_("Home"), url=reverse_lazy("mesh:home"), icon_class="fa-house-chimney"
21 )
22 ]
23 )
26def get_submission_breadcrumb(submission: Submission):
27 """
28 Returns a breadcrumb with the default items for a page related to a submission.
30 Base items -> Submission list -> Submission details
31 """
32 breadcrumb = get_base_breadcrumb()
33 breadcrumb.add_item(title=_("My submissions"), url=reverse_lazy("mesh:submission_list"))
34 breadcrumb.add_item(
35 title=submission.name,
36 url=reverse_lazy("mesh:submission_details", kwargs={"pk": submission.pk}),
37 html=True,
38 )
39 return breadcrumb