Afegir partitures de llistes (cançoners)
This commit is contained in:
71
scripts/06_migrate_session_playlist_names.py
Executable file
71
scripts/06_migrate_session_playlist_names.py
Executable file
@@ -0,0 +1,71 @@
|
||||
import datetime
|
||||
import json
|
||||
from collections.abc import Iterable
|
||||
|
||||
from folkugat_web.dal.sql import get_connection
|
||||
from folkugat_web.dal.sql.sessions import playlists as session_playlists
|
||||
from folkugat_web.model.playlists import PlaylistType
|
||||
from folkugat_web.services import sessions as sessions_service
|
||||
from folkugat_web.dal.sql.playlists import write as playlists_write
|
||||
|
||||
def main():
|
||||
"""Main migration function."""
|
||||
with get_connection() as con:
|
||||
cur = con.cursor()
|
||||
query = """ SELECT
|
||||
sp.playlist_id,
|
||||
sp.session_id,
|
||||
s.date,
|
||||
sp.playlist_type,
|
||||
p.name as current_name
|
||||
FROM session_playlists sp
|
||||
JOIN sessions s ON sp.session_id = s.id
|
||||
JOIN playlists p ON sp.playlist_id = p.id
|
||||
WHERE p.name IS NULL OR p.name = ''
|
||||
ORDER BY sp.session_id, sp.playlist_type """
|
||||
_ = cur.execute(query)
|
||||
rows = cur.fetchall()
|
||||
|
||||
if not rows:
|
||||
print("No session playlists need renaming.")
|
||||
return
|
||||
|
||||
updated_count = 0
|
||||
for row in rows:
|
||||
playlist_id, session_id, session_date, playlist_type, current_name = row
|
||||
|
||||
# Parse session date properly
|
||||
session_date = sessions_service.get_date_names(
|
||||
datetime.date.fromisoformat(session_date)
|
||||
)
|
||||
|
||||
# Generate proper name based on playlist type
|
||||
if playlist_type == PlaylistType.SESSION_SETLIST.value:
|
||||
new_name = f"Sessió del {session_date.day} de {session_date.month_name} de {session_date.year}"
|
||||
elif playlist_type == PlaylistType.SESSION_SLOWJAM.value:
|
||||
new_name = f"Slow Jam del {session_date.day} de {session_date.month_name} de {session_date.year}"
|
||||
else:
|
||||
print(f"Unknown playlist type {playlist_type} for playlist {playlist_id}")
|
||||
continue
|
||||
|
||||
# Update the playlist name using existing function
|
||||
playlists_write.update_playlist_name(
|
||||
playlist_id=playlist_id,
|
||||
name=new_name,
|
||||
con=con
|
||||
)
|
||||
|
||||
current_name_display = current_name or "None"
|
||||
print(
|
||||
f"Updated playlist {playlist_id} (session {session_id}) "
|
||||
f"from '{current_name_display}' to '{new_name}'"
|
||||
)
|
||||
updated_count += 1
|
||||
|
||||
con.commit()
|
||||
print(f"Migration completed! Updated {updated_count} playlist names.")
|
||||
print("DONE!")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user