1cb3c7fad5
系统设置可关闭成绩复盘 AI;学生详情增加作文区(OCR/手动题目、方案与范文、历史与 MD 下载);导出改用 UTF-8 文件名响应。 Co-authored-by: Cursor <cursoragent@cursor.com>
35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
from fastapi import APIRouter, Depends
|
|
from sqlalchemy.orm import Session
|
|
|
|
from app.core.database import get_db
|
|
from app.core.deps import get_current_user
|
|
from app.models.user import SystemSettings, User
|
|
from app.schemas import AppFeaturesOut, PublicSettingsOut
|
|
|
|
router = APIRouter(prefix="/settings", tags=["settings"])
|
|
|
|
|
|
def get_or_create_settings(db: Session) -> SystemSettings:
|
|
row = db.get(SystemSettings, 1)
|
|
if row is None:
|
|
row = SystemSettings(id=1, registration_enabled=True)
|
|
db.add(row)
|
|
db.commit()
|
|
db.refresh(row)
|
|
return row
|
|
|
|
|
|
@router.get("/public", response_model=PublicSettingsOut)
|
|
def public_settings(db: Session = Depends(get_db)):
|
|
row = get_or_create_settings(db)
|
|
return PublicSettingsOut(registration_enabled=row.registration_enabled)
|
|
|
|
|
|
@router.get("/app-features", response_model=AppFeaturesOut)
|
|
def app_features(
|
|
db: Session = Depends(get_db),
|
|
_: User = Depends(get_current_user),
|
|
):
|
|
row = get_or_create_settings(db)
|
|
return AppFeaturesOut(ai_review_enabled=getattr(row, "ai_review_enabled", True))
|