@AppAuthController('knowledge').permission_required('can_view')
def detail_view(request: WSGIRequest, pk: int) -> TemplateResponse:
collection = get_object_or_404(Collection, pk=pk)
def breadcrumbs_func(breadcrumbs):
breadcrumbs.add_breadcrumb(name='Knowledge')
breadcrumbs.add_breadcrumb(
name='Collections',
href=reverse('django_spire:knowledge:collection:page:list')
)
if collection.parent_id is not None:
parent = collection.parent
breadcrumbs.add_breadcrumb(
name=parent.name,
href=reverse(
viewname='django_spire:knowledge:collection:page:detail',
kwargs={'pk': parent.pk}
)
)
breadcrumbs.add_breadcrumb(name=collection.name)
return portal_views.detail_view(
request,
obj=collection,
breadcrumbs_func=breadcrumbs_func,
context_data={
'collection': collection,
'current_entries': (
collection.entries
.active()
.has_current_version()
.user_has_access(user=request.user)
.select_related('current_version__author')
.order_by('order')
)
},
template='django_spire/knowledge/collection/page/detail_page.html'
)