Skip to content

page_views

django_spire.metric.visual.signage.views.page_views

detail_view

Source code in django_spire/metric/visual/signage/views/page_views.py
@permission_required('django_spire_metric_visual_signage.view_signage')
def detail_view(request: WSGIRequest, pk: int) -> TemplateResponse:
    signage = get_object_or_404(models.Signage, pk=pk)

    nav = SignageNavigation()
    nav.page_title = str(signage)
    nav.breadcrumbs.add('Signages', 'django_spire:metric:visual:signage:page:list')
    nav.breadcrumbs.add(str(signage))
    context = nav.as_context()
    context['signage'] = signage
    context['presentation_links'] = signage.services.transformation.presentation_links()

    return TemplateResponse(
        request,
        context=context,
        template='django_spire/metric/visual/signage/page/detail_page.html',
    )

list_view

Source code in django_spire/metric/visual/signage/views/page_views.py
@permission_required('django_spire_metric_visual_signage.view_signage')
def list_view(request: WSGIRequest) -> TemplateResponse:
    signages = models.Signage.objects.all()

    Glue.queryset(request, 'signages', signages, Glue.Access.CHANGE, fields='__all__')

    nav = SignageNavigation()
    nav.page_title = 'Signages'
    nav.breadcrumbs.add('Signages')
    context = nav.as_context()
    context['signages'] = signages
    context['signage_count'] = signages.count()

    return TemplateResponse(
        request, context=context, template='django_spire/metric/visual/signage/page/list_page.html'
    )

display_view

Source code in django_spire/metric/visual/signage/views/page_views.py
def display_view(request: WSGIRequest, key: str) -> TemplateResponse:
    signage = get_object_or_404(models.Signage.objects.for_key(key), key=key)

    slides = signage.services.transformation.display_slides()

    for slide in slides:
        for section in slide['sections']:
            chart = section.get('chart')
            if chart is not None:
                chart.glue(request)

    context = {
        'signage': signage,
        'slides': slides,
        'slide_count': len(slides),
        'chart_update_interval': 15,
    }

    return TemplateResponse(
        request,
        context=context,
        template='django_spire/metric/visual/signage/page/display_page.html',
    )