1
0
mirror of https://gitlab.com/MoonTestUse1/AdministrationItDepartmens.git synced 2025-08-14 00:25:46 +02:00

починка статистики

This commit is contained in:
MoonTestUse1
2025-01-04 00:42:48 +06:00
parent 9b7418e835
commit 804d68cde8

View File

@@ -1,7 +1,7 @@
"""Request CRUD operations"""
from sqlalchemy.orm import Session
from sqlalchemy import func
from ..models.request import Request
from ..models.request import Request, RequestStatus
from ..schemas.request import RequestCreate, RequestUpdate
from ..utils.loggers import request_logger
from typing import List, Optional
@@ -95,20 +95,19 @@ def delete_request(db: Session, request_id: int):
def get_statistics(db: Session):
"""Get requests statistics"""
total_requests = db.query(func.count(Request.id)).scalar()
total = db.query(func.count(Request.id)).scalar()
status_stats = db.query(
Request.status,
func.count(Request.id)
).group_by(Request.status).all()
priority_stats = db.query(
Request.priority,
func.count(Request.id)
).group_by(Request.priority).all()
status_stats = dict(
db.query(
Request.status,
func.count(Request.id)
).group_by(Request.status).all()
)
return {
"total_requests": total_requests,
"by_status": {status: count for status, count in status_stats},
"by_priority": {priority: count for priority, count in priority_stats}
"total": total,
"new": status_stats.get("new", 0),
"in_progress": status_stats.get("in_progress", 0),
"completed": status_stats.get("completed", 0),
"rejected": status_stats.get("rejected", 0)
}