@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',
)