Skip to content

models

django_spire.metric.domain.models

__all__ = ['Domain', 'Statistic', 'StatisticGroup', 'StatisticValue', 'SubDomain'] module-attribute

Statistic

Bases: HistoryModelMixin, ActivityMixin

key = models.UUIDField(default=uuid4, editable=False, unique=True) class-attribute instance-attribute

group = models.ForeignKey(StatisticGroup, on_delete=models.CASCADE, related_name='statistics', related_query_name='statistic') class-attribute instance-attribute

name = models.CharField(max_length=255) class-attribute instance-attribute

interval = models.CharField(max_length=20, choices=StatisticIntervalChoices.choices, default=StatisticIntervalChoices.DAILY) class-attribute instance-attribute

objects = querysets.StatisticQuerySet().as_manager() class-attribute instance-attribute

services = StatisticService() class-attribute instance-attribute

Meta

verbose_name = 'Statistic' class-attribute instance-attribute
verbose_name_plural = 'Statistics' class-attribute instance-attribute
db_table = 'django_spire_metric_domain_statistic' class-attribute instance-attribute

__str__

Source code in django_spire/metric/domain/statistic/models.py
def __str__(self) -> str:
    return self.name

StatisticGroup

Bases: HistoryModelMixin, ActivityMixin

domain = models.ForeignKey('django_spire_metric_domain.Domain', on_delete=models.CASCADE, related_name='statistic_groups', related_query_name='statistic_group') class-attribute instance-attribute

name = models.CharField(max_length=255) class-attribute instance-attribute

description = models.TextField(default='') class-attribute instance-attribute

objects = querysets.StatisticGroupQuerySet().as_manager() class-attribute instance-attribute

services = StatisticGroupService() class-attribute instance-attribute

Meta

verbose_name = 'Statistic Group' class-attribute instance-attribute
verbose_name_plural = 'Statistics Group' class-attribute instance-attribute
db_table = 'django_spire_metric_domain_statistic_group' class-attribute instance-attribute

subdomains_qs

Source code in django_spire/metric/domain/statistic/models.py
def subdomains_qs(self) -> QuerySet[SubDomain]:
    return self.domain.subdomains.active()

set_deleted

Source code in django_spire/metric/domain/statistic/models.py
def set_deleted(self) -> None:
    super().set_deleted()

    for statistic in self.statistics.all():
        statistic.set_deleted()

__str__

Source code in django_spire/metric/domain/statistic/models.py
def __str__(self) -> str:
    return self.name

StatisticValue

Bases: Model

statistic = models.ForeignKey(Statistic, on_delete=models.CASCADE, related_name='values', related_query_name='value') class-attribute instance-attribute

sub_domain = models.ForeignKey('django_spire_metric_domain.subdomain', on_delete=models.CASCADE, related_name='values', related_query_name='value') class-attribute instance-attribute

reference = models.CharField(max_length=255) class-attribute instance-attribute

timestamp = models.DateTimeField(default=timezone.now) class-attribute instance-attribute

value = models.DecimalField(default=0, max_digits=16, decimal_places=4) class-attribute instance-attribute

objects = querysets.StatisticValueQuerySet().as_manager() class-attribute instance-attribute

services = StatisticValueService() class-attribute instance-attribute

Meta

verbose_name = 'Statistic Value' class-attribute instance-attribute
verbose_name_plural = 'Statistic Values' class-attribute instance-attribute
db_table = 'django_spire_metric_domain_statistic_value' class-attribute instance-attribute
indexes = [models.Index(fields=['statistic', 'timestamp'], name='ix_statistic_timestamp'), models.Index(fields=['statistic', 'sub_domain', 'timestamp'], name='ix_statistic_subdomain_ts')] class-attribute instance-attribute

__str__

Source code in django_spire/metric/domain/statistic/models.py
def __str__(self) -> str:
    return f'{self.reference} ({self.value})'

Domain

Bases: HistoryModelMixin, ActivityMixin

name = models.CharField(max_length=255) class-attribute instance-attribute

description = models.TextField(default='') class-attribute instance-attribute

sub_domain_description = models.TextField(default='') class-attribute instance-attribute

objects = querysets.DomainQuerySet().as_manager() class-attribute instance-attribute

services = DomainService() class-attribute instance-attribute

Meta

verbose_name = 'Domain' class-attribute instance-attribute
verbose_name_plural = 'Domains' class-attribute instance-attribute
db_table = 'django_spire_metric_domain' class-attribute instance-attribute

__str__

Source code in django_spire/metric/domain/models.py
def __str__(self) -> str:
    return self.name

set_deleted

Source code in django_spire/metric/domain/models.py
def set_deleted(self) -> None:
    super().set_deleted()

    for subdomain in self.subdomains.all():
        subdomain.set_deleted()

SubDomain

Bases: HistoryModelMixin, ActivityMixin

domain = models.ForeignKey(Domain, on_delete=models.CASCADE, related_name='subdomains', related_query_name='subdomain') class-attribute instance-attribute

key = models.UUIDField(default=uuid4, unique=True, editable=False) class-attribute instance-attribute

name = models.CharField(max_length=255) class-attribute instance-attribute

description = models.TextField(default='') class-attribute instance-attribute

objects = querysets.SubDomainQuerySet().as_manager() class-attribute instance-attribute

services = SubDomainService() class-attribute instance-attribute

Meta

verbose_name = 'Sub Domain' class-attribute instance-attribute
verbose_name_plural = 'Sub Domains' class-attribute instance-attribute
db_table = 'django_spire_metric_sub_domain' class-attribute instance-attribute

__str__

Source code in django_spire/metric/domain/models.py
def __str__(self) -> str:
    return self.name