71 lines
2.6 KiB
Python
Executable File
71 lines
2.6 KiB
Python
Executable File
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() |