feat: Add number of animals per sex to metrics

This commit is contained in:
2025-07-20 15:43:59 +02:00
parent cd1cdd2e0b
commit 5898fbf86d
2 changed files with 20 additions and 4 deletions

View File

@@ -360,7 +360,7 @@ class AdoptionNotice(models.Model):
def num_per_sex(self):
num_per_sex = dict()
for sex in SexChoices:
num_per_sex[sex] = self.animals.filter(sex=sex).count
num_per_sex[sex] = self.animals.filter(sex=sex).count()
return num_per_sex
@property

View File

@@ -8,8 +8,9 @@ def gather_metrics_data():
"""Adoption notices"""
num_adoption_notices = AdoptionNotice.objects.count()
num_adoption_notices_active = AdoptionNotice.objects.filter(
adoptionnoticestatus__major_status=AdoptionNoticeStatus.ACTIVE).count()
adoption_notices_active = AdoptionNotice.objects.filter(
adoptionnoticestatus__major_status=AdoptionNoticeStatus.ACTIVE)
num_adoption_notices_active = adoption_notices_active.count()
num_adoption_notices_closed = AdoptionNotice.objects.filter(
adoptionnoticestatus__major_status=AdoptionNoticeStatus.CLOSED).count()
num_adoption_notices_disabled = AdoptionNotice.objects.filter(
@@ -18,6 +19,19 @@ def gather_metrics_data():
adoptionnoticestatus__major_status=AdoptionNoticeStatus.AWAITING_ACTION).count()
adoption_notices_without_location = AdoptionNotice.objects.filter(location__isnull=True).count()
active_animals = 0
active_animals_per_sex = {}
for adoption_notice in adoption_notices_active:
nps = adoption_notice.num_per_sex
for sex in nps:
number_of_animals = nps[sex]
try:
active_animals_per_sex[sex] += number_of_animals
except KeyError:
active_animals_per_sex[sex] = number_of_animals
active_animals += number_of_animals
data = {
'users': num_user,
'staff': num_staff,
@@ -29,6 +43,8 @@ def gather_metrics_data():
'disabled': num_adoption_notices_disabled,
'awaiting_action': num_adoption_notices_awaiting_action,
},
'adoption_notices_without_location': adoption_notices_without_location
'adoption_notices_without_location': adoption_notices_without_location,
'active_animals': active_animals,
'active_animals_per_sex': active_animals_per_sex
}
return data