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

1from __future__ import annotations 

2 

3from typing import TYPE_CHECKING 

4 

5from django.urls import reverse_lazy 

6from django.utils.translation import gettext_lazy as _ 

7from ptf.views.components.breadcrumb import Breadcrumb, BreadcrumbItem 

8 

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 

11 

12 

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 ) 

24 

25 

26def get_submission_breadcrumb(submission: Submission): 

27 """ 

28 Returns a breadcrumb with the default items for a page related to a submission. 

29 

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