updated features to upload pptx files
This commit is contained in:
@@ -213,31 +213,8 @@ def regenerate_auth_code(player_id: int):
|
||||
@players_bp.route('/<int:player_id>')
|
||||
@login_required
|
||||
def player_page(player_id: int):
|
||||
"""Display player page with content and controls."""
|
||||
try:
|
||||
player = Player.query.get_or_404(player_id)
|
||||
|
||||
# Get player's playlist
|
||||
playlist = get_player_playlist(player_id)
|
||||
|
||||
# Get player status
|
||||
status_info = get_player_status_info(player_id)
|
||||
|
||||
# Get recent feedback
|
||||
recent_feedback = PlayerFeedback.query.filter_by(player_id=player_id)\
|
||||
.order_by(PlayerFeedback.timestamp.desc())\
|
||||
.limit(10)\
|
||||
.all()
|
||||
|
||||
return render_template('players/player_page.html',
|
||||
player=player,
|
||||
playlist=playlist,
|
||||
status_info=status_info,
|
||||
recent_feedback=recent_feedback)
|
||||
except Exception as e:
|
||||
log_action('error', f'Error loading player page: {str(e)}')
|
||||
flash('Error loading player page.', 'danger')
|
||||
return redirect(url_for('players.list'))
|
||||
"""Redirect to manage player page (combined view)."""
|
||||
return redirect(url_for('players.manage_player', player_id=player_id))
|
||||
|
||||
|
||||
@players_bp.route('/<int:player_id>/manage', methods=['GET', 'POST'])
|
||||
@@ -347,7 +324,7 @@ def player_fullscreen(player_id: int):
|
||||
|
||||
@cache.memoize(timeout=300) # Cache for 5 minutes
|
||||
def get_player_playlist(player_id: int) -> List[dict]:
|
||||
"""Get playlist for a player based on their direct content assignment.
|
||||
"""Get playlist for a player based on their assigned playlist.
|
||||
|
||||
Args:
|
||||
player_id: The player's database ID
|
||||
@@ -356,23 +333,26 @@ def get_player_playlist(player_id: int) -> List[dict]:
|
||||
List of content dictionaries with url, type, duration, and position
|
||||
"""
|
||||
player = Player.query.get(player_id)
|
||||
if not player:
|
||||
if not player or not player.playlist_id:
|
||||
return []
|
||||
|
||||
# Get content directly assigned to this player
|
||||
contents = Content.query.filter_by(player_id=player_id)\
|
||||
.order_by(Content.position, Content.uploaded_at)\
|
||||
.all()
|
||||
# Get the player's assigned playlist
|
||||
playlist_obj = Playlist.query.get(player.playlist_id)
|
||||
if not playlist_obj:
|
||||
return []
|
||||
|
||||
# Get ordered content from the playlist
|
||||
ordered_content = playlist_obj.get_content_ordered()
|
||||
|
||||
# Build playlist
|
||||
playlist = []
|
||||
for content in contents:
|
||||
for content in ordered_content:
|
||||
playlist.append({
|
||||
'id': content.id,
|
||||
'url': url_for('static', filename=f'uploads/{content.filename}'),
|
||||
'type': content.content_type,
|
||||
'duration': content.duration or 10, # Default 10 seconds if not set
|
||||
'position': content.position,
|
||||
'duration': getattr(content, '_playlist_duration', content.duration or 10),
|
||||
'position': getattr(content, '_playlist_position', 0),
|
||||
'filename': content.filename
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user