Bedre sync
This commit is contained in:
@@ -31,54 +31,51 @@ class DanceInfoDialog(QDialog):
|
||||
|
||||
def _load_dances(self):
|
||||
try:
|
||||
from local.local_db import get_dances_for_song, get_alt_dances_for_song, new_conn
|
||||
conn = new_conn()
|
||||
from local.local_db import get_db
|
||||
with get_db() as conn:
|
||||
rows = conn.execute("""
|
||||
SELECT d.id, d.name, d.choreographer,
|
||||
d.video_url, d.stepsheet_url, d.notes,
|
||||
dl.name as level_name
|
||||
FROM song_dances sd
|
||||
JOIN dances d ON d.id = sd.dance_id
|
||||
LEFT JOIN dance_levels dl ON dl.id = d.level_id
|
||||
WHERE sd.song_id=? ORDER BY sd.dance_order
|
||||
""", (self._song.get("id"),)).fetchall()
|
||||
|
||||
rows = conn.execute("""
|
||||
SELECT d.id, d.name, d.level_id, d.choreographer,
|
||||
d.video_url, d.stepsheet_url, d.notes,
|
||||
dl.name as level_name
|
||||
FROM song_dances sd
|
||||
JOIN dances d ON d.id = sd.dance_id
|
||||
LEFT JOIN dance_levels dl ON dl.id = d.level_id
|
||||
WHERE sd.song_id=? ORDER BY sd.dance_order
|
||||
""", (self._song.get("id"),)).fetchall()
|
||||
for row in rows:
|
||||
self._dances.append({
|
||||
"dance_id": row["id"],
|
||||
"name": row["name"],
|
||||
"level_name": row["level_name"] or "",
|
||||
"choreographer": row["choreographer"] or "",
|
||||
"video_url": row["video_url"] or "",
|
||||
"stepsheet_url": row["stepsheet_url"] or "",
|
||||
"notes": row["notes"] or "",
|
||||
"is_alt": False,
|
||||
})
|
||||
|
||||
for row in rows:
|
||||
self._dances.append({
|
||||
"dance_id": row["id"],
|
||||
"name": row["name"],
|
||||
"level_name": row["level_name"] or "",
|
||||
"choreographer": row["choreographer"] or "",
|
||||
"video_url": row["video_url"] or "",
|
||||
"stepsheet_url": row["stepsheet_url"] or "",
|
||||
"notes": row["notes"] or "",
|
||||
"is_alt": False,
|
||||
})
|
||||
alt_rows = conn.execute("""
|
||||
SELECT d.id, d.name, d.choreographer,
|
||||
d.video_url, d.stepsheet_url, d.notes,
|
||||
dl.name as level_name
|
||||
FROM song_alt_dances sad
|
||||
JOIN dances d ON d.id = sad.dance_id
|
||||
LEFT JOIN dance_levels dl ON dl.id = d.level_id
|
||||
WHERE sad.song_id=? ORDER BY d.name
|
||||
""", (self._song.get("id"),)).fetchall()
|
||||
|
||||
# Alternativ-danse
|
||||
alt_rows = conn.execute("""
|
||||
SELECT d.id, d.name, d.level_id, d.choreographer,
|
||||
d.video_url, d.stepsheet_url, d.notes,
|
||||
dl.name as level_name
|
||||
FROM song_alt_dances sad
|
||||
JOIN dances d ON d.id = sad.dance_id
|
||||
LEFT JOIN dance_levels dl ON dl.id = d.level_id
|
||||
WHERE sad.song_id=? ORDER BY d.name
|
||||
""", (self._song.get("id"),)).fetchall()
|
||||
|
||||
for row in alt_rows:
|
||||
self._dances.append({
|
||||
"dance_id": row["id"],
|
||||
"name": row["name"],
|
||||
"level_name": row["level_name"] or "",
|
||||
"choreographer": row["choreographer"] or "",
|
||||
"video_url": row["video_url"] or "",
|
||||
"stepsheet_url": row["stepsheet_url"] or "",
|
||||
"notes": row["notes"] or "",
|
||||
"is_alt": True,
|
||||
})
|
||||
conn.close()
|
||||
for row in alt_rows:
|
||||
self._dances.append({
|
||||
"dance_id": row["id"],
|
||||
"name": row["name"],
|
||||
"level_name": row["level_name"] or "",
|
||||
"choreographer": row["choreographer"] or "",
|
||||
"video_url": row["video_url"] or "",
|
||||
"stepsheet_url": row["stepsheet_url"] or "",
|
||||
"notes": row["notes"] or "",
|
||||
"is_alt": True,
|
||||
})
|
||||
except Exception as e:
|
||||
print(f"DanceInfoDialog load fejl: {e}")
|
||||
|
||||
@@ -204,15 +201,14 @@ class DanceInfoDialog(QDialog):
|
||||
def _save(self):
|
||||
self._save_to_cache(self._current_idx)
|
||||
try:
|
||||
from local.local_db import update_dance_info
|
||||
for d in self._dances:
|
||||
update_dance_info(
|
||||
d["dance_id"],
|
||||
choreographer = d["choreographer"],
|
||||
video_url = d["video_url"],
|
||||
stepsheet_url = d["stepsheet_url"],
|
||||
notes = d["notes"],
|
||||
)
|
||||
from local.local_db import get_db
|
||||
with get_db() as conn:
|
||||
for d in self._dances:
|
||||
conn.execute("""
|
||||
UPDATE dances SET choreographer=?, video_url=?,
|
||||
stepsheet_url=?, notes=? WHERE id=?
|
||||
""", (d["choreographer"], d["video_url"],
|
||||
d["stepsheet_url"], d["notes"], d["dance_id"]))
|
||||
self.accept()
|
||||
except Exception as e:
|
||||
QMessageBox.warning(self, "Fejl", f"Kunne ikke gemme: {e}")
|
||||
@@ -223,4 +219,4 @@ class DanceInfoDialog(QDialog):
|
||||
return
|
||||
if not url.startswith("http"):
|
||||
url = "https://" + url
|
||||
QDesktopServices.openUrl(QUrl(url))
|
||||
QDesktopServices.openUrl(QUrl(url))
|
||||
Reference in New Issue
Block a user