Skip to content

page_views

django_spire.knowledge.entry.views.page_views

delete_view

Source code in django_spire/knowledge/entry/views/page_views.py
@permission_required('django_spire_knowledge.delete_collection')
def delete_view(request: WSGIRequest, pk: int) -> TemplateResponse:
    entry = get_object_or_404(Entry, pk=pk)
    return_url = request.GET.get('return_url', reverse('django_spire:knowledge:page:home'))

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

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

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

    nav = EntryNavigation()
    nav.page_title = 'Delete Entry'

    add_collection_chain_breadcrumbs(nav.breadcrumbs, entry.collection)

    nav.breadcrumbs.add(str(entry))
    nav.breadcrumbs.add('Delete')

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