Skip to content

form_views

django_spire.metric.visual.presentation.views.form_views

PRESENTATION_DETAIL_URL = 'django_spire:metric:visual:presentation:page:detail' module-attribute

delete_view

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

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

        if form.is_valid():
            if form.cleaned_data['should_delete']:
                form.save(user=request.user, delete_func=presentation.set_deleted)

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

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

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

create_view

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

update_view

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

create_slide_view

Source code in django_spire/metric/visual/presentation/views/form_views.py
@permission_required('django_spire_metric_visual_presentation.add_slide')
def create_slide_view(request: WSGIRequest, presentation_pk: int) -> TemplateResponse:
    return _slide_form_view(request, presentation_pk=presentation_pk)

update_slide_view

Source code in django_spire/metric/visual/presentation/views/form_views.py
@permission_required('django_spire_metric_visual_presentation.change_slide')
def update_slide_view(request: WSGIRequest, pk: int) -> TemplateResponse:
    return _slide_form_view(request, pk)

delete_slide_view

Source code in django_spire/metric/visual/presentation/views/form_views.py
@permission_required('django_spire_metric_visual_presentation.delete_slide')
def delete_slide_view(request: WSGIRequest, pk: int) -> TemplateResponse | HttpResponseRedirect:
    slide = get_object_or_404(models.Slide.objects.select_related('presentation'), pk=pk)
    presentation = slide.presentation
    return_url = request.GET.get('return_url', _presentation_detail_url(presentation.pk))

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

        if form.is_valid():
            if form.cleaned_data['should_delete']:
                form.save(user=request.user, delete_func=slide.set_deleted)

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

    nav = PresentationNavigation()
    nav.page_title = 'Delete Slide'
    nav.breadcrumbs.add('Presentations', 'django_spire:metric:visual:presentation:page:list')
    nav.breadcrumbs.add(str(presentation), PRESENTATION_DETAIL_URL, {'pk': presentation.pk})
    nav.breadcrumbs.add(str(slide))
    nav.breadcrumbs.add('Delete')
    context = nav.as_context()
    context['form'] = form
    context['form_title'] = f'Delete {slide}'
    context['form_description'] = f'Are you sure you would like to delete slide "{slide}"?'

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

create_section_view

Source code in django_spire/metric/visual/presentation/views/form_views.py
@permission_required('django_spire_metric_visual_presentation.add_slidesection')
def create_section_view(request: WSGIRequest, slide_pk: int) -> TemplateResponse:
    return _section_form_view(request, slide_pk=slide_pk)

update_section_view

Source code in django_spire/metric/visual/presentation/views/form_views.py
@permission_required('django_spire_metric_visual_presentation.change_slidesection')
def update_section_view(request: WSGIRequest, pk: int) -> TemplateResponse:
    return _section_form_view(request, pk)

delete_section_view

Source code in django_spire/metric/visual/presentation/views/form_views.py
@permission_required('django_spire_metric_visual_presentation.delete_slidesection')
def delete_section_view(request: WSGIRequest, pk: int) -> TemplateResponse | HttpResponseRedirect:
    section = get_object_or_404(
        models.SlideSection.objects.select_related('slide__presentation'), pk=pk
    )
    slide = section.slide
    presentation = slide.presentation
    return_url = request.GET.get('return_url', _presentation_detail_url(presentation.pk))

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

        if form.is_valid():
            if form.cleaned_data['should_delete']:
                form.save(user=request.user, delete_func=section.set_deleted)

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

    nav = PresentationNavigation()
    nav.page_title = 'Delete Section'
    nav.breadcrumbs.add('Presentations', 'django_spire:metric:visual:presentation:page:list')
    nav.breadcrumbs.add(str(presentation), PRESENTATION_DETAIL_URL, {'pk': presentation.pk})
    nav.breadcrumbs.add(str(slide))
    nav.breadcrumbs.add('Delete')
    context = nav.as_context()
    context['form'] = form
    context['form_title'] = f'Delete {section}'
    context['form_description'] = f'Are you sure you would like to delete section "{section}"?'

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