En del opdateringer
This commit is contained in:
@@ -46,11 +46,16 @@ def seed_dance_levels():
|
||||
with Session(engine) as db:
|
||||
if db.query(DanceLevel).count() == 0:
|
||||
defaults = [
|
||||
DanceLevel(sort_order=1, name="Begynder", description="Passer til alle"),
|
||||
DanceLevel(sort_order=2, name="Let øvet", description="Lidt erfaring kræves"),
|
||||
DanceLevel(sort_order=3, name="Øvet", description="Kræver regelmæssig træning"),
|
||||
DanceLevel(sort_order=4, name="Erfaren", description="For dedikerede dansere"),
|
||||
DanceLevel(sort_order=5, name="Ekspert", description="Konkurrenceniveau"),
|
||||
DanceLevel(sort_order=10, name="Absolute Beginner", description="Ingen tidligere danse-erfaring kræves"),
|
||||
DanceLevel(sort_order=20, name="Beginner", description="Lidt tidligere erfaring"),
|
||||
DanceLevel(sort_order=30, name="High Beginner", description="God begynder, klar til mere"),
|
||||
DanceLevel(sort_order=40, name="Low Improver", description="Begyndende øvet"),
|
||||
DanceLevel(sort_order=50, name="Improver", description="Grundlæggende færdigheder på plads"),
|
||||
DanceLevel(sort_order=60, name="High Improver", description="Stærk øvet, næsten intermediate"),
|
||||
DanceLevel(sort_order=70, name="Low Intermediate", description="Begyndende intermediate"),
|
||||
DanceLevel(sort_order=80, name="Intermediate", description="Erfaren danser"),
|
||||
DanceLevel(sort_order=90, name="High Intermediate", description="Stærk intermediate"),
|
||||
DanceLevel(sort_order=99, name="Advanced", description="Fuld beherskelse af trin og teknik"),
|
||||
]
|
||||
db.add_all(defaults)
|
||||
db.commit()
|
||||
|
||||
@@ -155,6 +155,18 @@ def push(
|
||||
|
||||
# ── Sang-dans tags (brugerens egne) ───────────────────────────────────────
|
||||
from app.models import SongDance, SongAltDance
|
||||
# Slet eksisterende song_dances for disse sange og genindsæt
|
||||
# — sikrer at rækkefølge og ændringer altid er korrekte
|
||||
affected_song_ids = set(
|
||||
song_id_map[sd.song_local_id]
|
||||
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)
|
||||
|
||||
for sd in payload.song_dances:
|
||||
song_id = song_id_map.get(sd.song_local_id)
|
||||
if not song_id:
|
||||
@@ -164,14 +176,20 @@ def push(
|
||||
dance_id = dance_id_map.get(key)
|
||||
if not dance_id:
|
||||
continue
|
||||
existing = db.query(SongDance).filter_by(
|
||||
song_id=song_id, dance_id=dance_id
|
||||
).first()
|
||||
if not existing:
|
||||
db.add(SongDance(
|
||||
song_id=song_id, dance_id=dance_id,
|
||||
dance_order=sd.dance_order,
|
||||
))
|
||||
db.add(SongDance(
|
||||
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)
|
||||
|
||||
for sa in payload.song_alts:
|
||||
song_id = song_id_map.get(sa.song_local_id)
|
||||
@@ -182,14 +200,10 @@ def push(
|
||||
dance_id = dance_id_map.get(key)
|
||||
if not dance_id:
|
||||
continue
|
||||
existing = db.query(SongAltDance).filter_by(
|
||||
song_id=song_id, dance_id=dance_id
|
||||
).first()
|
||||
if not existing:
|
||||
db.add(SongAltDance(
|
||||
song_id=song_id, dance_id=dance_id,
|
||||
note=sa.note,
|
||||
))
|
||||
db.add(SongAltDance(
|
||||
song_id=song_id, dance_id=dance_id,
|
||||
note=sa.note,
|
||||
))
|
||||
|
||||
# ── Playlister ────────────────────────────────────────────────────────────
|
||||
playlist_id_map = {}
|
||||
|
||||
Reference in New Issue
Block a user