@permission_required('django_spire_metric_visual.change_visualregion')
def update_view(request: WSGIRequest, pk: int) -> TemplateResponse:
region = get_object_or_404(models.VisualRegion, pk=pk)
visual = region.visual
form = forms.VisualRegionModelForm(request.POST or None, instance=region)
Glue.form(request, 'visual_region_form', form, Glue.Access.DELETE)
nav = VisualNavigation()
nav.page_title = 'Edit Region'
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(str(region))
nav.breadcrumbs.add('Edit')
context = nav.as_context()
context['form'] = form
context['form_title'] = f'Edit {region}'
context['form_description'] = f'Region "{region.key}" for visual "{visual}".'
context['visual'] = visual
context['region'] = region
return TemplateResponse(
request, 'django_spire/metric/visual/page/region_form_page.html', context
)