Coverage for src / mesh / views / components / breadcrumb.py: 58%
12 statements
« prev ^ index » next coverage.py v7.13.1, created at 2026-03-10 09:11 +0000
« prev ^ index » next coverage.py v7.13.1, created at 2026-03-10 09:11 +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:
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