Skip to content

form_views

django_spire.metric.visual.views.form_views

delete_view

Source code in django_spire/metric/visual/views/form_views.py
@permission_required('django_spire_metric_visual.delete_visual')
def delete_view(request: WSGIRequest, pk: int) -> TemplateResponse | HttpResponseRedirect:
    visual = get_object_or_404(models.Visual, pk=pk)
    return_url = request.GET.get('return_url', reverse('django_spire:metric:visual:page:list'))

    if request.method == 'POST':
        form = DeleteConfirmationForm(data=request.POST, obj=visual)

        if form.is_valid():
            if form.cleaned_data['should_delete']:
                visual.set_deleted()
                visual.add_activity(
                    user=request.user,
                    verb='deleted',
                    information=f'{request.user.get_full_name()} deleted visual "{visual}".',
                )

            return HttpResponseRedirect(return_url)
    else:
        form = DeleteConfirmationForm(obj=visual)

    nav = VisualNavigation()
    nav.page_title = 'Delete Visual'
    nav.breadcrumbs.add('Visuals', 'django_spire:metric:visual:page:list')
    nav.breadcrumbs.add(str(visual))
    nav.breadcrumbs.add('Delete')
    context = nav.as_context()
    context['form'] = form
    context['form_title'] = f'Delete {visual}'
    context['form_description'] = f'Are you sure you would like to delete visual "{visual}"?'

    return TemplateResponse(
        request, 'django_spire/page/delete_confirmation_form_page.html', context
    )

create_view

Source code in django_spire/metric/visual/views/form_views.py
@permission_required('django_spire_metric_visual.add_visual')
def create_view(request: WSGIRequest) -> TemplateResponse:
    return _form_view(request)

update_view

Source code in django_spire/metric/visual/views/form_views.py
@permission_required('django_spire_metric_visual.change_visual')
def update_view(request: WSGIRequest, pk: int) -> TemplateResponse:
    return _form_view(request, pk)

set_default_conditions_view

Source code in django_spire/metric/visual/views/form_views.py
@permission_required('django_spire_metric_visual.change_visual')
def set_default_conditions_view(request: WSGIRequest, pk: int) -> HttpResponseRedirect:
    visual = get_object_or_404(models.Visual, pk=pk)

    if request.method == 'POST':
        current_value = visual.services.transformation.current_value()
        target = current_value or 100
        visual.services.factory.create_default_conditions(target=target)

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

create_condition_view

Source code in django_spire/metric/visual/views/form_views.py
@permission_required('django_spire_metric_visual.add_visual')
def create_condition_view(request: WSGIRequest) -> TemplateResponse:
    return _condition_form_view(request)

update_condition_view

Source code in django_spire/metric/visual/views/form_views.py
@permission_required('django_spire_metric_visual.change_visual')
def update_condition_view(request: WSGIRequest, pk: int) -> TemplateResponse:
    return _condition_form_view(request, pk)

delete_condition_view

Source code in django_spire/metric/visual/views/form_views.py
@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']:
                condition.delete()

            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
    )