Skip to content

page_views

django_spire.knowledge.collection.views.page_views

top_level_collection_view

Source code in django_spire/knowledge/collection/views/page_views.py
@permission_required('django_spire_knowledge.view_collection')
def top_level_collection_view(request: WSGIRequest, pk: int) -> TemplateResponse:
    collection = get_object_or_404(Collection, pk=pk)

    nav = CollectionNavigation()
    nav.page_title = 'Knowledge Collection'
    nav.page_description = ''

    add_collection_chain_breadcrumbs(nav.breadcrumbs, collection)

    return TemplateResponse(
        request,
        context=nav.as_context() | {
            'collection': collection,
            'collection_tree_json': Collection.services.transformation.to_hierarchy_json(
                request=request, parent_id=collection.id
            ),
        },
        template='django_spire/knowledge/collection/page/display_page.html',
    )

delete_view

Source code in django_spire/knowledge/collection/views/page_views.py
@permission_required('django_spire_knowledge.delete_collection')
def delete_view(request: WSGIRequest, pk: int) -> TemplateResponse:
    collection = get_object_or_404(Collection, pk=pk)

    if collection.parent:
        return_url = request.GET.get(
            'return_url',
            reverse(
                'django_spire:knowledge:collection:page:top_level',
                kwargs={'pk': collection.parent_id},
            ),
        )
    else:
        return_url = request.GET.get('return_url', reverse('django_spire:knowledge:page:home'))

    if request.method == 'POST':
        form = DeleteConfirmationForm(data=request.POST, obj=collection)

        if form.is_valid():
            collection.set_deleted()

            return HttpResponseRedirect(return_url)
    else:
        form = DeleteConfirmationForm(obj=collection)

    nav = CollectionNavigation()
    nav.page_title = 'Delete Collection'

    add_collection_chain_breadcrumbs(nav.breadcrumbs, collection)

    nav.breadcrumbs.add('Delete')

    return TemplateResponse(
        request,
        context=nav.as_context() | {
            'form': form,
            'form_title': f'Delete {collection}',
            'form_description': (
                f'Are you sure you would like to delete collection "{collection}"?'
            ),
        },
        template='django_spire/knowledge/collection/form/delete_confirmation_form_page.html',
    )