diff --git a/pxy_dashboard/apps/views.py b/pxy_dashboard/apps/views.py index 475106a..1e5209f 100644 --- a/pxy_dashboard/apps/views.py +++ b/pxy_dashboard/apps/views.py @@ -10,6 +10,8 @@ from django.utils import timezone from datetime import timedelta import json from pxy_whatsapp.models import Message, WhatsAppBot +from datetime import timedelta +from django.db.models import Count logger = logging.getLogger(__name__) @@ -407,3 +409,63 @@ def apps_telegram_bot(request): 'bots_info': bots_info, 'weekly_data_json': json.dumps(weekly_data), }) + + + + +from pxy_meta_pages.models import FacebookPageAssistant, FacebookEvent + +@login_required +def apps_facebook_pages_bot(request): + """ + Dashboard de Facebook Pages Bots: + - KPIs de páginas y eventos (comentarios/compartidos). + - Tabla de bots configurados. + - Scatter semanal de eventos por página. + """ + # — KPIs básicos — + total_pages = FacebookPageAssistant.objects.count() + total_events = FacebookEvent.objects.count() + total_comments = FacebookEvent.objects.filter(event_type__code="comment").count() + total_shares = FacebookEvent.objects.filter(event_type__code="share").count() + + stats = { + "total_pages": total_pages, + "total_events": total_events, + "comments": total_comments, + "shares": total_shares, + } + + # — Información de cada bot — + bots_info = [] + for bot in FacebookPageAssistant.objects.all(): + bots_info.append({ + "page_name": bot.page_name, + "page_id": bot.page_id, + "assistant": bot.assistant.name, + "is_subscribed": bot.is_subscribed, + "created_at": bot.created_at.strftime("%Y-%m-%d"), + }) + + # — Datos semanales: contar eventos por día y por página — + today = timezone.now().date() + start_date = today - timedelta(days=6) + weekly_data = {} + for bot in FacebookPageAssistant.objects.all(): + series = [] + for i in range(7): + day = start_date + timedelta(days=i) + cnt = FacebookEvent.objects.filter( + page=bot, + timestamp__date=day + ).count() + series.append({"x": day.strftime("%Y-%m-%d"), "y": cnt}) + weekly_data[bot.page_name] = series + + return render(request, + "pxy_dashboard/apps/apps-facebook-pages-bot.html", + { + "stats": stats, + "bots_info": bots_info, + "weekly_data_json": json.dumps(weekly_data), + }) diff --git a/pxy_dashboard/templates/pxy_dashboard/apps/apps-facebook-pages-bot.html b/pxy_dashboard/templates/pxy_dashboard/apps/apps-facebook-pages-bot.html index e599fda..24c16de 100644 --- a/pxy_dashboard/templates/pxy_dashboard/apps/apps-facebook-pages-bot.html +++ b/pxy_dashboard/templates/pxy_dashboard/apps/apps-facebook-pages-bot.html @@ -1,5 +1,113 @@ {% extends "pxy_dashboard/partials/base.html" %} +{% load static %} + {% block content %} -
This is a placeholder page for apps-facebook-pages-bot.html
Páginas registradas
+Eventos totales
+Comentarios
+Compartidos
+Página | +ID de Página | +Asistente AI | +Suscrito | +Creado | +
---|---|---|---|---|
{{ bot.page_name }} | +{{ bot.page_id }} | +{{ bot.assistant }} | ++ {% if bot.is_subscribed %} + Sí + {% else %} + No + {% endif %} + | +{{ bot.created_at }} | +
+ No hay bots configurados + | +