From c357bdda9e8d64292c8b4ca3599909671b5316c1 Mon Sep 17 00:00:00 2001 From: Grollicus <cccvgitlab.db5c7b60@grollmann.eu> Date: Wed, 27 Dec 2023 22:32:02 +0100 Subject: [PATCH] query all room counts at once --- src/api/views/metrics.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/api/views/metrics.py b/src/api/views/metrics.py index ada667a46..f8c3ef2b1 100644 --- a/src/api/views/metrics.py +++ b/src/api/views/metrics.py @@ -70,8 +70,13 @@ class MetricsView(TemplateView): self.report_assembly_metrics(metrics, conference, 'channel', 'channels') # hub_conference_rooms - for room_type in Room.RoomType.values: - room_count = Room.objects.filter(conference=conference, room_type=Room.RoomType(room_type)).count() + room_counts = {room_type: 0 for room_type in Room.RoomType.values} + for room_type, cnt in ( + Room.objects.filter(conference=conference).values('room_type').annotate(cnt=Count('room_type')).values_list('room_type', 'cnt') + ): + room_counts[room_type] = cnt + + for room_type, room_count in room_counts.items(): metrics['hub_conference_rooms']['values'][f'{{conference="{slug}",room_type="{room_type}"}}'] = room_count # hub_conference_projects -- GitLab