feat: aggiunti: loggica random, tema scuro, correzioni mail, miglioramenti generali, cache;

This commit is contained in:
StefanoSalemi
2026-04-17 18:27:37 +02:00
parent a7ef46640d
commit 104ad53a9a
26 changed files with 861 additions and 216 deletions

View File

@@ -268,9 +268,20 @@ def get_team_presences(start_date: date, end_date: date, office_id: str = None,
office_lookup = {o.id: o.name for o in offices}
# Build response
from services.parking import get_user_parking_ratio
result = []
for user in users:
user_presences = [p for p in presences if p.user_id == user.id]
office_mode = "fairness"
if user.office_id:
office = next((o for o in offices if o.id == user.office_id), None)
if office:
office_mode = office.assignment_mode or "fairness"
user_ratio = None
if office_mode == "fairness" and user.office_id:
user_ratio = get_user_parking_ratio(user.id, user.office_id, db)
result.append({
"id": user.id,
@@ -279,7 +290,8 @@ def get_team_presences(start_date: date, end_date: date, office_id: str = None,
"office_name": office_lookup.get(user.office_id),
"presences": [{"date": p.date, "status": p.status} for p in user_presences],
"parking_dates": parking_lookup.get(user.id, []),
"parking_info": parking_info_lookup.get(user.id, [])
"parking_info": parking_info_lookup.get(user.id, []),
"ratio": user_ratio
})
return result