Fix AI Coach typo, fix bulk register UI, and update exam tiers

This commit is contained in:
2026-09-24 21:59:04 +05:30
parent 6ba69a05ea
commit ec4849ccce
13 changed files with 87 additions and 34 deletions

View File

@@ -1,7 +1,7 @@
from fastapi import FastAPI, Depends, HTTPException, status, Request, UploadFile, File, Form, BackgroundTasks
from fastapi.responses import StreamingResponse
from fastapi.middleware.cors import CORSMiddleware
from sqlmodel import Session, select
from sqlmodel import Session, select, delete
from contextlib import asynccontextmanager
from typing import List, Dict, Any, Optional
from uuid import UUID
@@ -286,6 +286,21 @@ async def bulk_register_students(file: UploadFile = File(...), session: Session
session.commit()
return results
class DeleteUsersRequest(BaseModel):
user_ids: List[UUID]
@app.delete("/api/admin/students/bulk", tags=["Admin"])
def bulk_delete_students(payload: DeleteUsersRequest, session: Session = Depends(get_session)):
for uid in payload.user_ids:
user = session.get(models.User, uid)
if user:
# Delete associated records manually since foreign key cascade might not be configured in sqlmodel by default
session.exec(delete(models.Attempt).where(models.Attempt.user_id == uid))
session.exec(delete(models.Mistake).where(models.Mistake.user_id == uid))
session.delete(user)
session.commit()
return {"success": True}
@app.post("/api/auth/register", tags=["Authentication"])
def register(payload: RegisterPayload, session: Session = Depends(get_session)):
import bcrypt