Skip to content

region_form_views

django_spire.metric.visual.views.region_form_views

connect_region_view

Source code in django_spire/metric/visual/views/region_form_views.py
@permission_required('django_spire_metric_visual.add_visualregion')
def connect_region_view(request: WSGIRequest) -> TemplateResponse | HttpResponseRedirect:
    visual_pk = request.GET.get('visual', 0)
    visual = get_object_or_404(models.Visual, pk=visual_pk)

    nav = VisualNavigation()
    nav.page_title = 'Connect to 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('Connect to Region')
    context = nav.as_context()
    context['visual'] = visual
    context['region_rows'] = _region_status_rows(visual)

    return TemplateResponse(
        request, 'django_spire/metric/visual/page/connect_region_page.html', context
    )

connect_view

Source code in django_spire/metric/visual/views/region_form_views.py
@require_POST
@permission_required('django_spire_metric_visual.add_visualregion')
def connect_view(request: WSGIRequest) -> HttpResponseRedirect:
    visual = get_object_or_404(models.Visual, pk=request.POST.get('visual'))
    key = request.POST.get('key', '')

    if key not in settings.DJANGO_SPIRE_METRIC_VISUAL_REGIONS:
        return redirect(reverse('django_spire:metric:visual:page:detail', kwargs={'pk': visual.pk}))

    models.VisualRegion.objects.assign(key, visual)

    return redirect(reverse('django_spire:metric:visual:page:detail', kwargs={'pk': visual.pk}))

update_view

Source code in django_spire/metric/visual/views/region_form_views.py
@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
    )

disconnect_view

Source code in django_spire/metric/visual/views/region_form_views.py
@require_POST
@permission_required('django_spire_metric_visual.change_visualregion')
def disconnect_view(request: WSGIRequest, pk: int) -> HttpResponseRedirect:
    region = get_object_or_404(models.VisualRegion.objects.select_related('visual'), pk=pk)
    visual_pk = region.visual_id

    region.services.factory.disconnect()

    return redirect(
        request.GET.get(
            'return_url',
            reverse('django_spire:metric:visual:page:detail', kwargs={'pk': visual_pk}),
        )
    )