Skip to content

querysets

django_spire.metric.domain.statistic.querysets

StatisticGroupQuerySet

Bases: HistoryQuerySet, SearchQuerySetMixin

bulk_filter

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

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

    return queryset

StatisticQuerySet

Bases: HistoryQuerySet, SearchQuerySetMixin

for_key

Source code in django_spire/metric/domain/statistic/querysets.py
def for_key(self, key: str | UUID) -> QuerySet[Statistic]:
    return self.filter(key=key)

bulk_filter

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

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

    return queryset

StatisticValueQuerySet

Bases: QuerySet

for_date

Source code in django_spire/metric/domain/statistic/querysets.py
def for_date(self, value_date: date) -> QuerySet[StatisticValue]:
    return self.filter(
        timestamp__gte=local_day_start(value_date),
        timestamp__lt=local_day_start(value_date + timedelta(days=1)),
    )

date_range

Source code in django_spire/metric/domain/statistic/querysets.py
def date_range(self, start_date: date, end_date: date) -> QuerySet[StatisticValue]:
    return self.filter(
        timestamp__gte=local_day_start(start_date),
        timestamp__lt=local_day_start(end_date + timedelta(days=1)),
    )

for_reference

Source code in django_spire/metric/domain/statistic/querysets.py
def for_reference(self, reference: str) -> QuerySet[StatisticValue]:
    return self.filter(reference=reference)

for_sub_domain

Source code in django_spire/metric/domain/statistic/querysets.py
def for_sub_domain(self, sub_domain: SubDomain) -> QuerySet[StatisticValue]:
    return self.filter(sub_domain=sub_domain)

total

Source code in django_spire/metric/domain/statistic/querysets.py
def total(self) -> Decimal:
    return self.aggregate(total=Sum('value'))['total'] or Decimal(0)