This commit is contained in:
2026-04-19 01:11:51 +02:00
parent 24bb71cdd7
commit f0a4b4dfa7

View File

@@ -155,19 +155,10 @@ def push(
# ── Sang-dans tags (brugerens egne) ─────────────────────────────────────── # ── Sang-dans tags (brugerens egne) ───────────────────────────────────────
from app.models import SongDance, SongAltDance from app.models import SongDance, SongAltDance
# Slet eksisterende song_dances for disse sange og genindsæt # ── Sang-dans tags ────────────────────────────────────────────────────────
affected_song_ids = set( from app.models import SongDance, SongAltDance
song_id_map[sd.song_local_id] import sqlalchemy as _sa
for sd in payload.song_dances
if sd.song_local_id in song_id_map
)
if affected_song_ids:
db.query(SongDance).filter(
SongDance.song_id.in_(affected_song_ids)
).delete(synchronize_session=False)
db.flush()
with db.no_autoflush:
for sd in payload.song_dances: for sd in payload.song_dances:
song_id = song_id_map.get(sd.song_local_id) song_id = song_id_map.get(sd.song_local_id)
if not song_id: if not song_id:
@@ -177,23 +168,16 @@ def push(
dance_id = dance_id_map.get(key) dance_id = dance_id_map.get(key)
if not dance_id: if not dance_id:
continue continue
db.add(SongDance( db.execute(_sa.text(
song_id=song_id, dance_id=dance_id, "INSERT IGNORE INTO song_dances (id, song_id, dance_id, dance_order) "
dance_order=sd.dance_order, "VALUES (:id, :song_id, :dance_id, :dance_order)"
)) ), {
"id": str(__import__("uuid").uuid4()),
"song_id": song_id,
"dance_id": dance_id,
"dance_order": sd.dance_order,
})
affected_alt_ids = set(
song_id_map[sa.song_local_id]
for sa in payload.song_alts
if sa.song_local_id in song_id_map
)
if affected_alt_ids:
db.query(SongAltDance).filter(
SongAltDance.song_id.in_(affected_alt_ids)
).delete(synchronize_session=False)
db.flush()
with db.no_autoflush:
for sa in payload.song_alts: for sa in payload.song_alts:
song_id = song_id_map.get(sa.song_local_id) song_id = song_id_map.get(sa.song_local_id)
if not song_id: if not song_id:
@@ -203,10 +187,15 @@ def push(
dance_id = dance_id_map.get(key) dance_id = dance_id_map.get(key)
if not dance_id: if not dance_id:
continue continue
db.add(SongAltDance( db.execute(_sa.text(
song_id=song_id, dance_id=dance_id, "INSERT IGNORE INTO song_alt_dances (id, song_id, dance_id, note) "
note=sa.note, "VALUES (:id, :song_id, :dance_id, :note)"
)) ), {
"id": str(__import__("uuid").uuid4()),
"song_id": song_id,
"dance_id": dance_id,
"note": sa.note or "",
})
# ── Playlister ──────────────────────────────────────────────────────────── # ── Playlister ────────────────────────────────────────────────────────────
playlist_id_map = {} playlist_id_map = {}