@permission_required('django_spire_metric_visual_presentation.view_presentation')
def detail_view(request: WSGIRequest, pk: int) -> TemplateResponse:
presentation = get_object_or_404(
models.Presentation.objects.with_slides().with_slide_count(), pk=pk
)
nav = PresentationNavigation()
nav.page_title = str(presentation)
nav.breadcrumbs.add('Presentations', 'django_spire:metric:visual:presentation:page:list')
nav.breadcrumbs.add(str(presentation))
context = nav.as_context()
context['presentation'] = presentation
context['slides'] = [_slide_data(request, slide) for slide in presentation.slides.all()]
return TemplateResponse(
request,
context=context,
template='django_spire/metric/visual/presentation/page/detail_page.html',
)