v1.7.0 - Fix: Corregido error 500 en SLA Dashboard
- Fix error de sintaxis SQL en cálculo de tickets 'at risk' - Fix error de timezone (offset-naive vs offset-aware datetimes) - Implementado sistema completo de SLA Management - Agregados endpoints: /sla/dashboard, /sla/violations, /sla/at-risk - Creadas vistas frontend para dashboard, violaciones y tickets en riesgo - Actualizado sistema de Celery para monitoreo automático de SLAs - Mejorada configuración de categorías con tiempos SLA personalizables - Corregidos problemas de proxy en configuración de Vite - Agregado troubleshooting guide en README Archivos principales modificados: - backend/app/api/v1/endpoints/sla.py (nuevo) - backend/app/api/schemas/sla.py (nuevo) - frontend-internal/src/routes/sla/ (nuevo módulo completo) - workers/app/tasks/sla_tasks.py (queries async mejoradas) Documentación: docs/changelog-2026-02-17.md
This commit is contained in:
35
backend/check_tenants.py
Normal file
35
backend/check_tenants.py
Normal file
@@ -0,0 +1,35 @@
|
||||
"""
|
||||
Utility script to list all tenants in the database
|
||||
"""
|
||||
import asyncio
|
||||
from sqlalchemy import select
|
||||
from app.core.database import AsyncSessionLocal
|
||||
from app.models.tenant import Tenant
|
||||
|
||||
async def list_tenants():
|
||||
"""List all tenants with their details."""
|
||||
async with AsyncSessionLocal() as db:
|
||||
result = await db.execute(select(Tenant))
|
||||
tenants = result.scalars().all()
|
||||
|
||||
print("\n" + "="*60)
|
||||
print("📋 TENANTS EN LA BASE DE DATOS")
|
||||
print("="*60 + "\n")
|
||||
|
||||
if not tenants:
|
||||
print("⚠️ No hay tenants en la base de datos\n")
|
||||
print("💡 Ejecuta las migraciones o crea un tenant manualmente")
|
||||
return
|
||||
|
||||
for tenant in tenants:
|
||||
print(f"Slug: {tenant.slug}")
|
||||
print(f"Nombre: {tenant.name}")
|
||||
print(f"Status: {tenant.status}")
|
||||
print(f"Email: {tenant.contact_email or 'N/A'}")
|
||||
print(f"ID: {tenant.id}")
|
||||
print("-" * 60)
|
||||
|
||||
print(f"\nTotal: {len(tenants)} tenant(s)\n")
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(list_tenants())
|
||||
Reference in New Issue
Block a user