diff --git a/web/app.py b/web/app.py index 56895b0..c63526b 100644 --- a/web/app.py +++ b/web/app.py @@ -59,6 +59,12 @@ async def dashboard(request: Request, username: str = Depends(get_current_admin) select(func.count(Poll.poll_id)).where(Poll.is_active == True))).scalar() upcoming_events = (await session.execute( select(func.count(Event.id)).where(Event.is_active == True))).scalar() + + # Получаем количество ожидающих верификации + from database.models import VerificationRequest + pending_count = (await session.execute( + select(func.count(VerificationRequest.id)).where(VerificationRequest.status == 'pending') + )).scalar() return templates.TemplateResponse("dashboard.html", { "request": request, "username": username, @@ -66,7 +72,8 @@ async def dashboard(request: Request, username: str = Depends(get_current_admin) "users": users_count, "verified": verified_count, "messages": messages_count, "ads": active_ads, "polls": active_polls, "events": upcoming_events - } + }, + "pending_count": pending_count }) @@ -113,6 +120,24 @@ async def users_page(request: Request, search: str = "", filter: str = "", usern ig_stmt = select(InitiativeGroup.user_id).where(InitiativeGroup.is_active == True) ig_result = await session.execute(ig_stmt) ig_user_ids = set(row[0] for row in ig_result.all()) + + # Получаем заявки на верификацию + from database.models import VerificationRequest + pending_stmt = select(VerificationRequest).where( + VerificationRequest.status == 'pending' + ).order_by(VerificationRequest.created_at.desc()) + pending_result = await session.execute(pending_stmt) + pending_requests = [ + { + 'id': req.id, + 'user_id': req.user_id, + 'user_name': req.user.full_name if req.user else None, + 'username': req.user.username if req.user else None, + 'apartment': req.apartment, + 'created_at': req.created_at + } + for req in pending_result.scalars().all() + ] # Статистика total_count = (await session.execute(select(func.count(User.user_id)))).scalar() @@ -126,7 +151,9 @@ async def users_page(request: Request, search: str = "", filter: str = "", usern return templates.TemplateResponse("users.html", {"request": request, "username": username, "users": users, "search": search, "current_filter": filter, "stats": {"total": total_count, "verified": verified_count, "unverified": unverified_count, "active_unverified": active_unverified, "ig": ig_count}, - "ig_user_ids": ig_user_ids}) + "ig_user_ids": ig_user_ids, + "pending_requests": pending_requests, + "pending_count": len(pending_requests)}) @app.post("/api/users/auto_verify") diff --git a/web/templates/dashboard.html b/web/templates/dashboard.html index 5c9b895..d6a8abc 100644 --- a/web/templates/dashboard.html +++ b/web/templates/dashboard.html @@ -96,7 +96,12 @@