Bedre tag sync

This commit is contained in:
2026-04-21 19:18:19 +02:00
parent ec3989e6a4
commit 545cdc6866
7 changed files with 94 additions and 37 deletions

View File

@@ -774,34 +774,31 @@ class PlaylistPanel(QWidget):
)
if dlg.exec():
chosen = dlg.get_dance()
choreo = "" # Koreograf redigeres i tag-editoren, ikke her
if chosen:
song["active_dance"] = chosen
song["active_choreo"] = choreo
self._refresh()
# Gem permanent hvis sangen ikke allerede har denne dans tagget
already_tagged = chosen in dances
if not already_tagged:
self._save_dance_permanently(idx, song, chosen, choreo)
else:
# Midlertidigt — kun dance_override på listen
self._sync_dance_to_db(idx, song)
# Dans-valg i playlisten er altid midlertidigt — kun dance_override
song["active_dance"] = chosen # tom streng = ingen dans
self._refresh()
self._sync_dance_to_db(idx, song)
def _sync_dance_to_db(self, idx: int, song: dict):
"""Gem dance_override til playlist_songs (midlertidigt valg)."""
import logging
_log = logging.getLogger(__name__)
if not self._named_playlist_id:
_log.warning("_sync_dance_to_db: ingen named_playlist_id")
return
try:
from local.local_db import get_db
dance_val = song.get("active_dance") or ""
with get_db() as conn:
conn.execute(
rows_affected = conn.execute(
"UPDATE playlist_songs SET dance_override=? "
"WHERE playlist_id=? AND position=?",
(song.get("active_dance", ""), self._named_playlist_id, idx + 1)
)
except Exception:
pass
(dance_val, self._named_playlist_id, idx + 1)
).rowcount
_log.info(f"dance_override='{dance_val}' gemt på position {idx+1}, {rows_affected} rækker")
except Exception as e:
import logging
logging.getLogger(__name__).warning(f"_sync_dance_to_db fejl: {e}")
def _save_dance_permanently(self, idx: int, song: dict, dance_name: str, choreo: str = ""):
"""