From 9f1a5ce51dd780e8d16c2a1f61f4f7866817ba87 Mon Sep 17 00:00:00 2001 From: Ekaropolus Date: Tue, 20 May 2025 01:05:02 -0600 Subject: [PATCH] Change statistics --- pxy_whatsapp/views.py | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/pxy_whatsapp/views.py b/pxy_whatsapp/views.py index 3121cf2..8b65bea 100644 --- a/pxy_whatsapp/views.py +++ b/pxy_whatsapp/views.py @@ -167,20 +167,27 @@ def root(request): return HttpResponse("
Nothing to see here.\nCheckout README.md to start.
", content_type="text/html") from django.contrib.auth.decorators import login_required +from django.http import JsonResponse from django.db.models import Avg from .models import Conversation, Message @login_required def whatsapp_stats(request): - from django.utils import timezone - since = timezone.now() - timezone.timedelta(days=1) - total_convos = Conversation.objects.count() - msgs_in = Message.objects.filter(direction="in", timestamp__gte=since).count() - msgs_out = Message.objects.filter(direction="out", timestamp__gte=since).count() - avg_rt = Message.objects.filter(direction="out", response_time_ms__isnull=False).aggregate(Avg("response_time_ms")) + # Total de conversaciones registradas + total_conversations = Conversation.objects.count() + + # Total de mensajes entrantes y salientes de todo el tiempo + messages_in = Message.objects.filter(direction="in").count() + messages_out = Message.objects.filter(direction="out").count() + + # Tiempo de respuesta promedio (solo salientes con tiempo registrado) + avg_rt_qs = Message.objects.filter(direction="out", response_time_ms__isnull=False) + avg_rt = avg_rt_qs.aggregate(Avg("response_time_ms"))["response_time_ms__avg"] or 0 + return JsonResponse({ - "total_conversations": total_convos, - "messages_in": msgs_in, - "messages_out": msgs_out, - "avg_response_time": avg_rt["response_time_ms__avg"] or 0, + "total_conversations": total_conversations, + "messages_in": messages_in, + "messages_out": messages_out, + "avg_response_time": int(avg_rt), }) +