Initial commit: RIPS Manager web system
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
from fastapi import APIRouter, Request, Depends
|
||||
from app.database import get_connection
|
||||
from app.auth import get_current_user
|
||||
|
||||
router = APIRouter(prefix="/logs", tags=["logs"])
|
||||
|
||||
|
||||
@router.get("")
|
||||
async def logs_page(
|
||||
request: Request,
|
||||
user: dict = Depends(get_current_user),
|
||||
tipo: str = "",
|
||||
status: str = "",
|
||||
factura: str = "",
|
||||
):
|
||||
conn = get_connection()
|
||||
|
||||
where = ["1=1"]
|
||||
params = []
|
||||
|
||||
if tipo:
|
||||
where.append("e.tipo = ?")
|
||||
params.append(tipo)
|
||||
if status:
|
||||
where.append("e.status = ?")
|
||||
params.append(status)
|
||||
if factura:
|
||||
where.append("e.factura LIKE ?")
|
||||
params.append(f"%{factura}%")
|
||||
|
||||
envios = conn.execute(f"""
|
||||
SELECT e.*, u.username FROM envios e
|
||||
LEFT JOIN users u ON e.user_id = u.id
|
||||
WHERE {' AND '.join(where)}
|
||||
ORDER BY e.created_at DESC LIMIT 100
|
||||
""", params).fetchall()
|
||||
|
||||
stats = conn.execute("""
|
||||
SELECT
|
||||
tipo,
|
||||
status,
|
||||
COUNT(*) as total,
|
||||
SUM(CASE WHEN status = 'success' THEN 1 ELSE 0 END) as exitosos,
|
||||
SUM(CASE WHEN status = 'error' THEN 1 ELSE 0 END) as fallidos
|
||||
FROM envios
|
||||
GROUP BY tipo, status
|
||||
""").fetchall()
|
||||
|
||||
conn.close()
|
||||
|
||||
return request.app.state.templates.TemplateResponse("logs.html", {
|
||||
"request": request, "user": user,
|
||||
"envios": envios, "stats": stats,
|
||||
"filtro_tipo": tipo, "filtro_status": status, "filtro_factura": factura,
|
||||
})
|
||||
Reference in New Issue
Block a user