Refine gameday bootstrap layout
This commit is contained in:
@@ -6,12 +6,12 @@ from pathlib import Path
|
||||
|
||||
from fastapi import APIRouter, Depends, File, Form, HTTPException, UploadFile
|
||||
from fastapi.responses import FileResponse
|
||||
from sqlalchemy import delete, func, select, update
|
||||
from sqlalchemy import delete, func, select
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from ..auth import require_session
|
||||
from ..database import get_db
|
||||
from ..models import AudioAsset, AudioClip, GameAssignment, PlaybackSession, UserSession
|
||||
from ..models import AudioAsset, AudioClip, GameAssignment, UserSession
|
||||
from ..schemas import (
|
||||
AudioAssetImportCreate,
|
||||
AudioAssetResponse,
|
||||
@@ -239,14 +239,7 @@ def delete_asset(
|
||||
clips = db.scalars(select(AudioClip).where(AudioClip.asset_id == asset.id)).all()
|
||||
clip_ids = [clip.id for clip in clips]
|
||||
if clip_ids:
|
||||
assignment_ids = db.scalars(select(GameAssignment.id).where(GameAssignment.clip_id.in_(clip_ids))).all()
|
||||
db.execute(delete(GameAssignment).where(GameAssignment.clip_id.in_(clip_ids)))
|
||||
if assignment_ids:
|
||||
db.execute(
|
||||
update(PlaybackSession)
|
||||
.where(PlaybackSession.current_assignment_id.in_(assignment_ids))
|
||||
.values(current_assignment_id=None)
|
||||
)
|
||||
for clip in clips:
|
||||
if clip.normalized_path:
|
||||
storage.delete_relative_path(clip.normalized_path)
|
||||
@@ -361,14 +354,7 @@ def delete_clip(
|
||||
if not can_manage_asset(session, clip.asset, owner_external_player_id):
|
||||
raise HTTPException(status_code=403, detail="You can only delete clips from your own uploads")
|
||||
|
||||
assignment_ids = db.scalars(select(GameAssignment.id).where(GameAssignment.clip_id == clip.id)).all()
|
||||
db.execute(delete(GameAssignment).where(GameAssignment.clip_id == clip.id))
|
||||
if assignment_ids:
|
||||
db.execute(
|
||||
update(PlaybackSession)
|
||||
.where(PlaybackSession.current_assignment_id.in_(assignment_ids))
|
||||
.values(current_assignment_id=None)
|
||||
)
|
||||
if clip.normalized_path:
|
||||
storage.delete_relative_path(clip.normalized_path)
|
||||
db.delete(clip)
|
||||
|
||||
Reference in New Issue
Block a user