@permission_required('django_spire_metric_domain.delete_subdomain')
def delete_subdomain_form_view(request: WSGIRequest, domain_pk: int, pk: int) -> TemplateResponse:
subdomain = get_object_or_404(models.SubDomain, domain_id=domain_pk, pk=pk)
domain_detail_url = reverse('django_spire:metric:domain:page:detail', kwargs={'pk': domain_pk})
return_url = safe_redirect_url(request, fallback=domain_detail_url)
if request.method == 'POST':
form = DeleteConfirmationForm(data=request.POST, obj=subdomain)
if form.is_valid():
subdomain.set_deleted()
return HttpResponseRedirect(return_url)
else:
form = DeleteConfirmationForm(obj=subdomain)
nav = DomainNavigation()
nav.page_title = 'Delete Sub Domain'
nav.breadcrumbs.add(
name=str(subdomain.domain),
view_name='django_spire:metric:domain:page:detail',
view_kwargs={'pk': subdomain.domain.pk},
)
nav.breadcrumbs.add(
name='Sub Domains',
view_name='django_spire:metric:domain:page:detail',
view_kwargs={'pk': domain_pk},
)
nav.breadcrumbs.add(
name=str(subdomain),
view_name='django_spire:metric:domain:page:detail',
view_kwargs={'pk': domain_pk},
)
nav.breadcrumbs.add('Delete', None)
context = nav.as_context()
context['form'] = form
context['form_title'] = f'Delete Sub Domain "{subdomain}"'
context['form_description'] = f'Are you sure you would like to delete sub domain "{subdomain}"?'
context['domain_pk'] = domain_pk
return TemplateResponse(
request,
'django_spire/metric/domain/form/subdomain_delete_confirmation_form_page.html',
context,
)