correct application of playlists rules
This commit is contained in:
@@ -21,14 +21,31 @@ def main():
|
||||
# Appliquer les filtres
|
||||
filtered = []
|
||||
for p in playlists:
|
||||
# filtrage texte
|
||||
if search_term.lower() not in p.name.lower() and search_term.lower() not in (p.description or "").lower():
|
||||
continue
|
||||
if date_filter and datetime.fromisoformat(p.created_at) < datetime.combine(date_filter, datetime.min.time()):
|
||||
continue
|
||||
# filtrage date de création
|
||||
if date_filter:
|
||||
created = p.created_at
|
||||
if isinstance(created, datetime):
|
||||
created_dt = created
|
||||
elif isinstance(created, (str, bytes)):
|
||||
try:
|
||||
created_dt = datetime.fromisoformat(created)
|
||||
except ValueError:
|
||||
continue # ignore invalid date
|
||||
else:
|
||||
continue
|
||||
|
||||
if created_dt < datetime.combine(date_filter, datetime.min.time()):
|
||||
continue
|
||||
|
||||
filtered.append(p)
|
||||
|
||||
# --- Sélection ou création ---
|
||||
names = ["(➕ Nouvelle playlist)"] + [p.name for p in filtered]
|
||||
if "new_playlist_name" in st.session_state:
|
||||
st.session_state["playlist_select"] = st.session_state.pop("new_playlist_name")
|
||||
selected_name = st.selectbox("Sélectionnez une playlist", names, key="playlist_select")
|
||||
|
||||
# --- Création ---
|
||||
@@ -43,11 +60,8 @@ def main():
|
||||
else:
|
||||
pl = Playlist(name=name.strip(), description=desc, type=type_choice, rules=RuleSet())
|
||||
pl.save()
|
||||
st.session_state["playlist_select"] = pl.name # ✅ sélectionne automatiquement
|
||||
if hasattr(st, "rerun"):
|
||||
st.rerun()
|
||||
else:
|
||||
st.experimental_rerun()
|
||||
st.session_state["new_playlist_name"] = pl.name # on stocke temporairement
|
||||
st.rerun()
|
||||
return
|
||||
|
||||
# --- Mode édition ---
|
||||
|
||||
Reference in New Issue
Block a user