From bf26ff6377015023c60d4afe4a769f52d7cd3705 Mon Sep 17 00:00:00 2001 From: Carsten Kvist Date: Sun, 19 Apr 2026 13:22:56 +0200 Subject: [PATCH] Playlist fejl --- linedance-app/local/local_db.py | 6 ++---- linedance-app/ui/main_window.py | 7 ++++++- linedance-app/ui/playlist_manager.py | 6 +++--- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/linedance-app/local/local_db.py b/linedance-app/local/local_db.py index 84edaf64..6f9de5d8 100644 --- a/linedance-app/local/local_db.py +++ b/linedance-app/local/local_db.py @@ -646,13 +646,11 @@ def get_playlist_with_songs(playlist_id: int) -> dict: songs = conn.execute(""" SELECT ps.id as ps_id, ps.position, ps.status, - s.*, GROUP_CONCAT(d.name ORDER BY sd.dance_order) as dances + ps.is_workshop, ps.dance_override, + s.* FROM playlist_songs ps JOIN songs s ON s.id = ps.song_id - LEFT JOIN song_dances sd ON sd.song_id = s.id - LEFT JOIN dances d ON d.id = sd.dance_id WHERE ps.playlist_id = ? - GROUP BY ps.id ORDER BY ps.position """, (playlist_id,)).fetchall() diff --git a/linedance-app/ui/main_window.py b/linedance-app/ui/main_window.py index de25b905..862aa180 100644 --- a/linedance-app/ui/main_window.py +++ b/linedance-app/ui/main_window.py @@ -967,10 +967,15 @@ class MainWindow(QMainWindow): dialog.playlist_loaded.connect(self._on_playlist_loaded) dialog.exec() - def _on_playlist_loaded(self, name: str, songs: list[dict]): + def _on_playlist_loaded(self, name: str, songs: list[dict], pl_id: int): self._stop() self._playlist_panel.load_songs(songs) self._playlist_panel.set_playlist_name(name) + if pl_id: + self._playlist_panel._named_playlist_id = pl_id + self._playlist_panel._save_named_playlist_id(pl_id) + self._playlist_panel._btn_save_current.setEnabled(True) + self._playlist_panel._btn_save_current.setToolTip(f"Gem ændringer til '{name}'") self._set_status(f"Indlæst: {name} ({len(songs)} sange)", 3000) def _open_tag_editor(self, song: dict): diff --git a/linedance-app/ui/playlist_manager.py b/linedance-app/ui/playlist_manager.py index 0f67f2a4..8e4a3b55 100644 --- a/linedance-app/ui/playlist_manager.py +++ b/linedance-app/ui/playlist_manager.py @@ -20,7 +20,7 @@ class PlaylistManagerDialog(QDialog): 2. Indlæs gemt liste 3. Importer fra fil (M3U / M3U8 / tekst) """ - playlist_loaded = pyqtSignal(str, list) # (navn, liste af dict) + playlist_loaded = pyqtSignal(str, list, int) # (navn, sange, pl_id) def __init__(self, current_songs: list[dict], parent=None): super().__init__(parent) @@ -161,7 +161,7 @@ class PlaylistManagerDialog(QDialog): "file_missing": bool(row.get("file_missing", False)), "dances": [d["name"] for d in dances], }) - self.playlist_loaded.emit(pl["name"], songs) + self.playlist_loaded.emit(pl["name"], songs, pl["id"]) self._load_status.setText(f"✓ Indlæst: {pl['name']} ({len(songs)} sange)") except Exception as e: self._load_status.setText(f"Fejl: {e}") @@ -316,7 +316,7 @@ class PlaylistManagerDialog(QDialog): missing.append(p) if found: - self.playlist_loaded.emit(name, found) + self.playlist_loaded.emit(name, found, 0) status = f"✓ Importeret {len(found)} sange som \"{name}\"" if missing: status += f"\n⚠ {len(missing)} filer ikke fundet"