33 lines
1.3 KiB
Python
33 lines
1.3 KiB
Python
import streamlit as st
|
|
from controllers.label_controller import label_widget
|
|
import db
|
|
|
|
def show_video_row(video, preselected_labels, editable_labels=True, editable_difficulty=True):
|
|
col1, col2, col3 = st.columns([1, 3, 2])
|
|
with col1:
|
|
if video.thumbnail_file:
|
|
st.image(video.thumbnail_file)
|
|
st.caption(video.mp4_file_name)
|
|
|
|
with col2:
|
|
st.markdown(f"**📅 {video.record_datetime or ''}** — {video.day_of_week or ''}")
|
|
st.text(f"🏷️ Labels: {', '.join(preselected_labels) or 'Aucun'}")
|
|
playlists = db.get_video_playlists(video.file_name)
|
|
if playlists:
|
|
st.text(f"🎵 Playlists: {', '.join(playlists)}")
|
|
|
|
with col3:
|
|
if editable_labels:
|
|
label_widget(video, preselected=preselected_labels)
|
|
if editable_difficulty:
|
|
levels = ["Tout niveau", "Débutant", "Intermédiaire", "Avancé", "Star"]
|
|
new_level = st.selectbox(
|
|
"🎚 Niveau",
|
|
levels,
|
|
index=levels.index(video.difficulty_display),
|
|
key=f"diff_{video.file_name}"
|
|
)
|
|
if new_level != video.difficulty_display:
|
|
db.update_video_difficulty(video.file_name, new_level)
|
|
st.success(f"Niveau mis à jour pour {video.file_name}")
|