@permission_required('django_spire_metric_visual.delete_visual')
def delete_condition_view(request: WSGIRequest, pk: int) -> TemplateResponse | HttpResponseRedirect:
condition = get_object_or_404(models.VisualCondition.objects.select_related('visual'), pk=pk)
visual = condition.visual
return_url = request.GET.get(
'return_url', reverse('django_spire:metric:visual:page:detail', kwargs={'pk': visual.pk})
)
if request.method == 'POST':
form = DeleteConfirmationForm(data=request.POST, obj=condition)
if form.is_valid():
if form.cleaned_data['should_delete']:
form.save(user=request.user, delete_func=condition.set_deleted)
return HttpResponseRedirect(return_url)
else:
form = DeleteConfirmationForm(obj=condition)
nav = VisualNavigation()
nav.page_title = 'Delete Condition'
nav.breadcrumbs.add('Visuals', 'django_spire:metric:visual:page:list')
nav.breadcrumbs.add(str(visual), 'django_spire:metric:visual:page:detail', {'pk': visual.pk})
nav.breadcrumbs.add('Delete Condition')
context = nav.as_context()
context['form'] = form
context['form_title'] = f'Delete {condition}'
context['form_description'] = f'Are you sure you would like to delete condition "{condition}"?'
return TemplateResponse(
request, 'django_spire/page/delete_confirmation_form_page.html', context
)