diff --git a/src/api/views/metrics.py b/src/api/views/metrics.py index ada667a4677536c2c05bd223b098fda5252084c7..f8c3ef2b12d939800f3f494423ad39d945b288e3 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