FIX: Исправление вызовов TemplateResponse под требования Starlette 0.38+
This commit is contained in:
parent
02d793d178
commit
f9116f14e9
1 changed files with 18 additions and 18 deletions
36
web/app.py
36
web/app.py
|
|
@ -165,8 +165,8 @@ async def dashboard(request: Request, username: str = Depends(get_current_admin)
|
||||||
upcoming_events = (await session.execute(select(func.count(Event.id)).where(Event.is_active == True))).scalar()
|
upcoming_events = (await session.execute(select(func.count(Event.id)).where(Event.is_active == True))).scalar()
|
||||||
pending_count = (await session.execute(select(func.count(VerificationRequest.id)).where(VerificationRequest.status == 'pending'))).scalar()
|
pending_count = (await session.execute(select(func.count(VerificationRequest.id)).where(VerificationRequest.status == 'pending'))).scalar()
|
||||||
|
|
||||||
return templates.TemplateResponse("dashboard.html", {
|
return templates.TemplateResponse(request=request, name="dashboard.html", context={
|
||||||
"request": request, "username": username,
|
"username": username,
|
||||||
"stats": {
|
"stats": {
|
||||||
"users": users_count, "verified": verified_count,
|
"users": users_count, "verified": verified_count,
|
||||||
"messages": messages_count, "ads": active_ads,
|
"messages": messages_count, "ads": active_ads,
|
||||||
|
|
@ -208,8 +208,8 @@ async def users_page(request: Request, search: str = "", filter: str = "", usern
|
||||||
total_count = (await session.execute(select(func.count(User.user_id)))).scalar()
|
total_count = (await session.execute(select(func.count(User.user_id)))).scalar()
|
||||||
verified_count = (await session.execute(select(func.count(User.user_id)).where(User.verified == True))).scalar()
|
verified_count = (await session.execute(select(func.count(User.user_id)).where(User.verified == True))).scalar()
|
||||||
|
|
||||||
return templates.TemplateResponse("users.html", {
|
return templates.TemplateResponse(request=request, name="users.html", context={
|
||||||
"request": request, "username": username, "users": users, "search": search, "current_filter": filter,
|
"username": username, "users": users, "search": search, "current_filter": filter,
|
||||||
"stats": {"total": total_count, "verified": verified_count, "unverified": total_count - verified_count, "ig": len(ig_user_ids)},
|
"stats": {"total": total_count, "verified": verified_count, "unverified": total_count - verified_count, "ig": len(ig_user_ids)},
|
||||||
"ig_user_ids": ig_user_ids
|
"ig_user_ids": ig_user_ids
|
||||||
})
|
})
|
||||||
|
|
@ -238,7 +238,7 @@ async def verification_page(request: Request, username: str = Depends(get_curren
|
||||||
async with AsyncSessionLocal() as session:
|
async with AsyncSessionLocal() as session:
|
||||||
pending = (await session.execute(select(VerificationRequest).where(VerificationRequest.status == 'pending').order_by(VerificationRequest.created_at.desc()))).scalars().all()
|
pending = (await session.execute(select(VerificationRequest).where(VerificationRequest.status == 'pending').order_by(VerificationRequest.created_at.desc()))).scalars().all()
|
||||||
unverified = (await session.execute(select(User).where(User.verified == False).order_by(User.join_date.desc()).limit(50))).scalars().all()
|
unverified = (await session.execute(select(User).where(User.verified == False).order_by(User.join_date.desc()).limit(50))).scalars().all()
|
||||||
return templates.TemplateResponse("verification.html", {"request": request, "username": username, "pending_requests": pending, "unverified_users": unverified})
|
return templates.TemplateResponse(request=request, name="verification.html", context={"username": username, "pending_requests": pending, "unverified_users": unverified})
|
||||||
|
|
||||||
@app.post("/api/verification/{req_id}/approve")
|
@app.post("/api/verification/{req_id}/approve")
|
||||||
async def api_approve_verification(req_id: int, username: str = Depends(get_current_admin)):
|
async def api_approve_verification(req_id: int, username: str = Depends(get_current_admin)):
|
||||||
|
|
@ -342,31 +342,31 @@ async def api_toggle_ai(user_id: int, username: str = Depends(get_current_admin)
|
||||||
async def phones_page(request: Request, username: str = Depends(get_current_admin)):
|
async def phones_page(request: Request, username: str = Depends(get_current_admin)):
|
||||||
async with AsyncSessionLocal() as session:
|
async with AsyncSessionLocal() as session:
|
||||||
services = (await session.execute(select(Service).order_by(Service.category, Service.name))).scalars().all()
|
services = (await session.execute(select(Service).order_by(Service.category, Service.name))).scalars().all()
|
||||||
return templates.TemplateResponse("phones.html", {"request": request, "username": username, "services": services})
|
return templates.TemplateResponse(request=request, name="phones.html", context={"username": username, "services": services})
|
||||||
|
|
||||||
@app.get("/ads", response_class=HTMLResponse)
|
@app.get("/ads", response_class=HTMLResponse)
|
||||||
async def ads_page(request: Request, username: str = Depends(get_current_admin)):
|
async def ads_page(request: Request, username: str = Depends(get_current_admin)):
|
||||||
async with AsyncSessionLocal() as session:
|
async with AsyncSessionLocal() as session:
|
||||||
ads = (await session.execute(select(Ad).order_by(Ad.created_at.desc()).limit(100))).scalars().all()
|
ads = (await session.execute(select(Ad).order_by(Ad.created_at.desc()).limit(100))).scalars().all()
|
||||||
return templates.TemplateResponse("ads.html", {"request": request, "username": username, "ads": ads})
|
return templates.TemplateResponse(request=request, name="ads.html", context={"username": username, "ads": ads})
|
||||||
|
|
||||||
@app.get("/polls", response_class=HTMLResponse)
|
@app.get("/polls", response_class=HTMLResponse)
|
||||||
async def polls_page(request: Request, username: str = Depends(get_current_admin)):
|
async def polls_page(request: Request, username: str = Depends(get_current_admin)):
|
||||||
async with AsyncSessionLocal() as session:
|
async with AsyncSessionLocal() as session:
|
||||||
polls = (await session.execute(select(Poll).order_by(Poll.created_at.desc()).limit(50))).scalars().all()
|
polls = (await session.execute(select(Poll).order_by(Poll.created_at.desc()).limit(50))).scalars().all()
|
||||||
return templates.TemplateResponse("polls.html", {"request": request, "username": username, "polls": polls})
|
return templates.TemplateResponse(request=request, name="polls.html", context={"username": username, "polls": polls})
|
||||||
|
|
||||||
@app.get("/events", response_class=HTMLResponse)
|
@app.get("/events", response_class=HTMLResponse)
|
||||||
async def events_page(request: Request, username: str = Depends(get_current_admin)):
|
async def events_page(request: Request, username: str = Depends(get_current_admin)):
|
||||||
async with AsyncSessionLocal() as session:
|
async with AsyncSessionLocal() as session:
|
||||||
events = (await session.execute(select(Event).order_by(Event.event_date.desc()).limit(50))).scalars().all()
|
events = (await session.execute(select(Event).order_by(Event.event_date.desc()).limit(50))).scalars().all()
|
||||||
return templates.TemplateResponse("events.html", {"request": request, "username": username, "events": events})
|
return templates.TemplateResponse(request=request, name="events.html", context={"username": username, "events": events})
|
||||||
|
|
||||||
@app.get("/schedules", response_class=HTMLResponse)
|
@app.get("/schedules", response_class=HTMLResponse)
|
||||||
async def schedules_page(request: Request, username: str = Depends(get_current_admin)):
|
async def schedules_page(request: Request, username: str = Depends(get_current_admin)):
|
||||||
async with AsyncSessionLocal() as session:
|
async with AsyncSessionLocal() as session:
|
||||||
schedules = (await session.execute(select(Schedule).order_by(Schedule.start_time.desc()))).scalars().all()
|
schedules = (await session.execute(select(Schedule).order_by(Schedule.start_time.desc()))).scalars().all()
|
||||||
return templates.TemplateResponse("schedules.html", {"request": request, "username": username, "schedules": schedules})
|
return templates.TemplateResponse(request=request, name="schedules.html", context={"username": username, "schedules": schedules})
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
# РАССЫЛКИ (SMART BROADCAST)
|
# РАССЫЛКИ (SMART BROADCAST)
|
||||||
|
|
@ -390,7 +390,7 @@ async def broadcast_page(request: Request, username: str = Depends(get_current_a
|
||||||
'broadcast_type': b.broadcast_type or 'regular',
|
'broadcast_type': b.broadcast_type or 'regular',
|
||||||
'is_reminder_sent': b.is_reminder_sent
|
'is_reminder_sent': b.is_reminder_sent
|
||||||
})
|
})
|
||||||
return templates.TemplateResponse("broadcast.html", {"request": request, "username": username, "broadcasts": broadcasts_data, "artifacts": artifacts})
|
return templates.TemplateResponse(request=request, name="broadcast.html", context={"username": username, "broadcasts": broadcasts_data, "artifacts": artifacts})
|
||||||
|
|
||||||
@app.post("/api/broadcast/create")
|
@app.post("/api/broadcast/create")
|
||||||
async def api_create_broadcast(
|
async def api_create_broadcast(
|
||||||
|
|
@ -495,7 +495,7 @@ async def api_broadcast_non_readers(broadcast_id: int, username: str = Depends(g
|
||||||
async def scheduled_posts_page(request: Request, username: str = Depends(get_current_admin)):
|
async def scheduled_posts_page(request: Request, username: str = Depends(get_current_admin)):
|
||||||
async with AsyncSessionLocal() as session:
|
async with AsyncSessionLocal() as session:
|
||||||
artifacts = (await session.execute(select(Artifact).order_by(Artifact.filename))).scalars().all()
|
artifacts = (await session.execute(select(Artifact).order_by(Artifact.filename))).scalars().all()
|
||||||
return templates.TemplateResponse("scheduled_posts.html", {"request": request, "username": username, "artifacts": artifacts})
|
return templates.TemplateResponse(request=request, name="scheduled_posts.html", context={"username": username, "artifacts": artifacts})
|
||||||
|
|
||||||
@app.get("/api/scheduled_posts/list")
|
@app.get("/api/scheduled_posts/list")
|
||||||
async def api_list_scheduled_posts(username: str = Depends(get_current_admin)):
|
async def api_list_scheduled_posts(username: str = Depends(get_current_admin)):
|
||||||
|
|
@ -565,7 +565,7 @@ async def digests_page(request: Request, username: str = Depends(get_current_adm
|
||||||
pending = (await session.execute(stmt_pending)).scalars().all()
|
pending = (await session.execute(stmt_pending)).scalars().all()
|
||||||
stmt_archive = select(Digest).where(Digest.status.in_(['approved', 'sent', 'rejected'])).order_by(Digest.created_at.desc()).limit(20)
|
stmt_archive = select(Digest).where(Digest.status.in_(['approved', 'sent', 'rejected'])).order_by(Digest.created_at.desc()).limit(20)
|
||||||
archive = (await session.execute(stmt_archive)).scalars().all()
|
archive = (await session.execute(stmt_archive)).scalars().all()
|
||||||
return templates.TemplateResponse("digests.html", {"request": request, "username": username, "pending_digests": pending, "archive_digests": archive})
|
return templates.TemplateResponse(request=request, name="digests.html", context={"username": username, "pending_digests": pending, "archive_digests": archive})
|
||||||
|
|
||||||
@app.post("/api/digest/generate")
|
@app.post("/api/digest/generate")
|
||||||
async def api_generate_digest(username: str = Depends(get_current_admin)):
|
async def api_generate_digest(username: str = Depends(get_current_admin)):
|
||||||
|
|
@ -589,7 +589,7 @@ async def api_generate_digest(username: str = Depends(get_current_admin)):
|
||||||
|
|
||||||
@app.get("/files", response_class=HTMLResponse)
|
@app.get("/files", response_class=HTMLResponse)
|
||||||
async def files_page(request: Request, username: str = Depends(get_current_admin)):
|
async def files_page(request: Request, username: str = Depends(get_current_admin)):
|
||||||
return templates.TemplateResponse("files.html", {"request": request, "username": username})
|
return templates.TemplateResponse(request=request, name="files.html", context={"username": username})
|
||||||
|
|
||||||
@app.get("/api/files/list")
|
@app.get("/api/files/list")
|
||||||
async def api_list_files(username: str = Depends(get_current_admin)):
|
async def api_list_files(username: str = Depends(get_current_admin)):
|
||||||
|
|
@ -637,7 +637,7 @@ async def export_page(request: Request, username: str = Depends(get_current_admi
|
||||||
async with AsyncSessionLocal() as session:
|
async with AsyncSessionLocal() as session:
|
||||||
exporter = ChatExporter(session)
|
exporter = ChatExporter(session)
|
||||||
stats = await exporter.get_stats()
|
stats = await exporter.get_stats()
|
||||||
return templates.TemplateResponse("export.html", {"request": request, "username": username, "export_stats": stats, "fmt_local": fmt_local})
|
return templates.TemplateResponse(request=request, name="export.html", context={"username": username, "export_stats": stats, "fmt_local": fmt_local})
|
||||||
|
|
||||||
@app.get("/api/export/json")
|
@app.get("/api/export/json")
|
||||||
async def api_export_json(username: str = Depends(get_current_admin)):
|
async def api_export_json(username: str = Depends(get_current_admin)):
|
||||||
|
|
@ -690,8 +690,8 @@ async def emails_page(request: Request, username: str = Depends(get_current_admi
|
||||||
except:
|
except:
|
||||||
last_sync_time = datetime.fromtimestamp(sync_time_file.stat().st_mtime, tz=timezone.utc)
|
last_sync_time = datetime.fromtimestamp(sync_time_file.stat().st_mtime, tz=timezone.utc)
|
||||||
|
|
||||||
return templates.TemplateResponse("emails.html", {
|
return templates.TemplateResponse(request=request, name="emails.html", context={
|
||||||
"request": request, "username": username, "audit_data": audit_data,
|
"username": username, "audit_data": audit_data,
|
||||||
"last_log": last_log, "latest_emails": latest_emails,
|
"last_log": last_log, "latest_emails": latest_emails,
|
||||||
"has_master_pdf": master_pdf_path.exists(), "last_update": last_update,
|
"has_master_pdf": master_pdf_path.exists(), "last_update": last_update,
|
||||||
"last_sync_time": last_sync_time, "fmt_local": fmt_local
|
"last_sync_time": last_sync_time, "fmt_local": fmt_local
|
||||||
|
|
@ -744,7 +744,7 @@ async def get_infra_page(request: Request, username: str = Depends(get_current_a
|
||||||
"server_name": r.server_name
|
"server_name": r.server_name
|
||||||
})
|
})
|
||||||
|
|
||||||
return templates.TemplateResponse("infra.html", {"request": request, "username": username, "speedtests": speedtests})
|
return templates.TemplateResponse(request=request, name="infra.html", context={"username": username, "speedtests": speedtests})
|
||||||
|
|
||||||
@app.post("/api/infra/run_speedtest")
|
@app.post("/api/infra/run_speedtest")
|
||||||
async def api_run_speedtest(username: str = Depends(get_current_admin)):
|
async def api_run_speedtest(username: str = Depends(get_current_admin)):
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue