Skip to content

querysets

django_spire.metric.visual.presentation.querysets

PresentationQuerySet

Bases: HistoryQuerySet, SearchQuerySetMixin

bulk_filter

Source code in django_spire/metric/visual/presentation/querysets.py
def bulk_filter(self, filter_data: dict) -> QuerySet[Presentation]:
    queryset = self

    search = filter_data.get('search', '')
    if search:
        queryset = queryset.search(search)

    return queryset

with_slides

Source code in django_spire/metric/visual/presentation/querysets.py
def with_slides(self) -> QuerySet[Presentation]:
    sections = (
        models.SlideSection.objects.filter(is_deleted=False)
        .select_related('visual__statistic')
        .prefetch_related('visual__conditions')
    )
    slides = models.Slide.objects.filter(is_deleted=False).prefetch_related(
        Prefetch('sections', queryset=sections)
    )
    return self.prefetch_related(Prefetch('slides', queryset=slides))

with_slide_count

Source code in django_spire/metric/visual/presentation/querysets.py
def with_slide_count(self) -> QuerySet[Presentation]:
    return self.annotate(
        slide_count=Count('slide', filter=Q(slide__is_deleted=False), distinct=True)
    )

SlideQuerySet

Bases: HistoryQuerySet

for_presentation

Source code in django_spire/metric/visual/presentation/querysets.py
def for_presentation(self, presentation: Presentation) -> QuerySet:
    return self.filter(presentation=presentation)

with_sections

Source code in django_spire/metric/visual/presentation/querysets.py
def with_sections(self) -> QuerySet:
    sections = (
        models.SlideSection.objects.filter(is_deleted=False)
        .select_related('visual__statistic')
        .prefetch_related('visual__conditions')
    )
    return self.prefetch_related(Prefetch('sections', queryset=sections))

SlideSectionQuerySet

Bases: HistoryQuerySet

for_slide

Source code in django_spire/metric/visual/presentation/querysets.py
def for_slide(self, slide: Slide) -> QuerySet:
    return self.filter(slide=slide)

with_visual

Source code in django_spire/metric/visual/presentation/querysets.py
def with_visual(self) -> QuerySet:
    return self.select_related('visual', 'visual__statistic')