# PlayerEdit > God node · 99 connections · [/home/scheianu/digiserver-v2/app/models/player_edit.py](file:///home/scheianu/digiserver-v2/app/models/player_edit.py#L8) ## Call Trace Diagram ```mermaid sequenceDiagram participant P0 as PlayerEdit participant P1 as Models package for digiserver-v2. participant P2 as PlayerUser participant P3 as receive_edited_media() participant P4 as Admin blueprint for user management and system settings. participant P5 as Decorator to require admin role for route access. participant P6 as Display admin panel with system overview. participant P7 as Create a new user account. participant P8 as Change user role between user and admin. participant P9 as Delete a user account. participant P10 as Change application theme. participant P11 as Upload custom logo for application. participant P12 as Clear all server logs. participant P13 as Display user management page. participant P14 as Get system information as JSON. participant P15 as Display leftover media files not assigned to any playlist. participant P16 as Delete all leftover images that are not part of any playlist participant P17 as Delete all leftover videos that are not part of any playlist participant P18 as Delete a single leftover content file participant P19 as Show system dependencies status. participant P20 as Install LibreOffice for PPTX conversion. participant P21 as Install Emoji Fonts for better UI display. participant P22 as Logo customization page. participant P23 as Upload login page logo. participant P24 as Display and manage users that edit images on players. participant P25 as Update editing user name. participant P26 as Display HTTPS configuration management page. participant P27 as Update HTTPS configuration. participant P28 as Get current HTTPS configuration status as JSON. participant P29 as Path to the persisted player-build settings (in the instance folder). participant P30 as Display the 'Build player files for deployment' admin page. participant P31 as Build/refresh the staged player code and/or write its base config. participant P32 as API blueprint for REST endpoints and player communication. participant P33 as Rate limiting decorator. Args: max_requests: Maximum number of participant P34 as Decorator to verify player authentication via auth code. participant P35 as API health check endpoint. participant P36 as Get server SSL certificate. participant P37 as Authenticate a player and return auth code and configuration. Request J participant P38 as Verify an auth code and return player information. Request JSON: participant P39 as Get playlist using hostname and quickconnect code (Kivy player compatible). participant P40 as Get playlist for a specific player. Requires player authentication via participant P41 as Get current playlist version for a player. Lightweight endpoint for pla participant P42 as Get cached playlist for a player based on assigned playlist. participant P43 as Receive feedback/status updates from players (Kivy player compatible). participant P44 as Get current status of a player (public endpoint for monitoring). participant P45 as Get progress of a file upload. participant P46 as Get system information and statistics. participant P47 as List all content with basic information. participant P48 as Get recent server logs. Query parameters: limit: Number of logs participant P49 as Receive edited media from player. Expected multipart/form-data: - i participant P50 as Test SSH connection to a remote host. Request JSON: hostname: T participant P51 as Deploy player code to a remote host via SSH. Request JSON: host participant P52 as Handle 404 errors in API. participant P53 as Handle 405 errors in API. participant P54 as Handle 500 errors in API. participant P55 as Players blueprint for player management and display. participant P56 as Display list of all players. participant P57 as Add a new player with optional SSH deployment. participant P58 as Regenerate authentication code for a player. participant P59 as Redirect to manage player page (combined view). participant P60 as Manage player - edit credentials, assign playlist, view logs. participant P61 as Display all edited media files from this player. participant P62 as Display a tabular report of all edited media from this player. participant P63 as Display player fullscreen view (no authentication required for players). participant P64 as Get playlist for a player based on their assigned playlist. Args: participant P65 as Legacy endpoint - Content reordering now handled in playlist management. participant P66 as Delete multiple players at once. participant P67 as Assign multiple players to a playlist. participant P68 as Return deployment status for all players (used by polling JS). participant P69 as Reorder items in player's playlist. participant P70 as Remove content from player's playlist. participant P71 as Add player_user table for user code mappings. participant P72 as Playlist participant P73 as HTTPSConfig participant P74 as Content participant P75 as User participant P76 as Player participant P77 as ServerLog participant P78 as Group participant P79 as PlayerFeedback participant P80 as Content model for media files. participant P81 as Main playlist management page. participant P82 as View all media files in the library. participant P83 as Delete a media file and remove it from all playlists. participant P84 as Create a new playlist. participant P85 as Manage content in a specific playlist. participant P86 as Add content to playlist. participant P87 as Create a web link content item from the Upload Media page. Optionally adds participant P88 as Create a web link content item and add it to the playlist. participant P89 as Remove content from playlist. participant P90 as Remove multiple content items from playlist. participant P91 as Reorder content in playlist. participant P92 as Update content muted setting in playlist. participant P93 as Update content edit_on_player_enabled setting in playlist. participant P94 as Update content duration in playlist. participant P95 as Display upload media page. participant P96 as Process and optimize image files. participant P97 as Process and optimize video files for Raspberry Pi playback. participant P98 as Process PDF files by converting each page to PNG images. participant P99 as Process large files (PDF, PPTX, Video) in background thread. participant P100 as Process PowerPoint presentation files by converting slides to images. participant P101 as Create a Full HD (1920x1080) image from PIL Image object, centered on white back participant P102 as Resize image to exactly Full HD (1920x1080) maintaining aspect ratio with center participant P103 as Optimize and resize image file to Full HD (1920x1080) maintaining aspect ratio. participant P104 as Upload media files to library with type-specific processing. participant P105 as Assign a player to a playlist. P0->>+ P1: uses P1-->>- P0: return P1->>+ P0: uses P0-->>- P1: return P1->>+ P2: uses P2-->>- P1: return P2->>+ P1: uses P1-->>- P2: return P2->>+ P3: calls P3-->>- P2: return P2->>+ P4: uses P4-->>- P2: return P2->>+ P5: uses P5-->>- P2: return P2->>+ P6: uses P6-->>- P2: return P2->>+ P7: uses P7-->>- P2: return P2->>+ P8: uses P8-->>- P2: return P2->>+ P9: uses P9-->>- P2: return P2->>+ P10: uses P10-->>- P2: return P2->>+ P11: uses P11-->>- P2: return P2->>+ P12: uses P12-->>- P2: return P2->>+ P13: uses P13-->>- P2: return P2->>+ P14: uses P14-->>- P2: return P2->>+ P15: uses P15-->>- P2: return P2->>+ P16: uses P16-->>- P2: return P2->>+ P17: uses P17-->>- P2: return P2->>+ P18: uses P18-->>- P2: return P2->>+ P19: uses P19-->>- P2: return P2->>+ P20: uses P20-->>- P2: return P2->>+ P21: uses P21-->>- P2: return P2->>+ P22: uses P22-->>- P2: return P2->>+ P23: uses P23-->>- P2: return P2->>+ P24: uses P24-->>- P2: return P2->>+ P25: uses P25-->>- P2: return P2->>+ P26: uses P26-->>- P2: return P2->>+ P27: uses P27-->>- P2: return P2->>+ P28: uses P28-->>- P2: return P2->>+ P29: uses P29-->>- P2: return P2->>+ P30: uses P30-->>- P2: return P2->>+ P31: uses P31-->>- P2: return P2->>+ P32: uses P32-->>- P2: return P2->>+ P33: uses P33-->>- P2: return P2->>+ P34: uses P34-->>- P2: return P2->>+ P35: uses P35-->>- P2: return P2->>+ P36: uses P36-->>- P2: return P2->>+ P37: uses P37-->>- P2: return P2->>+ P38: uses P38-->>- P2: return P2->>+ P39: uses P39-->>- P2: return P2->>+ P40: uses P40-->>- P2: return P2->>+ P41: uses P41-->>- P2: return P2->>+ P42: uses P42-->>- P2: return P2->>+ P43: uses P43-->>- P2: return P2->>+ P44: uses P44-->>- P2: return P2->>+ P45: uses P45-->>- P2: return P2->>+ P46: uses P46-->>- P2: return P2->>+ P47: uses P47-->>- P2: return P2->>+ P48: uses P48-->>- P2: return P2->>+ P49: uses P49-->>- P2: return P2->>+ P50: uses P50-->>- P2: return P2->>+ P51: uses P51-->>- P2: return P2->>+ P52: uses P52-->>- P2: return P2->>+ P53: uses P53-->>- P2: return P2->>+ P54: uses P54-->>- P2: return P2->>+ P55: uses P55-->>- P2: return P2->>+ P56: uses P56-->>- P2: return P2->>+ P57: uses P57-->>- P2: return P2->>+ P58: uses P58-->>- P2: return P2->>+ P59: uses P59-->>- P2: return P2->>+ P60: uses P60-->>- P2: return P2->>+ P61: uses P61-->>- P2: return P2->>+ P62: uses P62-->>- P2: return P2->>+ P63: uses P63-->>- P2: return P2->>+ P64: uses P64-->>- P2: return P2->>+ P65: uses P65-->>- P2: return P2->>+ P66: uses P66-->>- P2: return P2->>+ P67: uses P67-->>- P2: return P2->>+ P68: uses P68-->>- P2: return P2->>+ P69: uses P69-->>- P2: return P2->>+ P70: uses P70-->>- P2: return P2->>+ P71: uses P71-->>- P2: return P1->>+ P72: uses P72-->>- P1: return P1->>+ P73: uses P73-->>- P1: return P1->>+ P74: uses P74-->>- P1: return P1->>+ P75: uses P75-->>- P1: return P1->>+ P76: uses P76-->>- P1: return P1->>+ P77: uses P77-->>- P1: return P1->>+ P78: uses P78-->>- P1: return P1->>+ P79: uses P79-->>- P1: return P0->>+ P3: calls P3-->>- P0: return P0->>+ P4: uses P4-->>- P0: return P0->>+ P5: uses P5-->>- P0: return P0->>+ P6: uses P6-->>- P0: return P0->>+ P7: uses P7-->>- P0: return P0->>+ P8: uses P8-->>- P0: return P0->>+ P9: uses P9-->>- P0: return P0->>+ P10: uses P10-->>- P0: return P0->>+ P11: uses P11-->>- P0: return P0->>+ P12: uses P12-->>- P0: return P0->>+ P13: uses P13-->>- P0: return P0->>+ P14: uses P14-->>- P0: return P0->>+ P15: uses P15-->>- P0: return P0->>+ P16: uses P16-->>- P0: return P0->>+ P17: uses P17-->>- P0: return P0->>+ P18: uses P18-->>- P0: return P0->>+ P19: uses P19-->>- P0: return P0->>+ P20: uses P20-->>- P0: return P0->>+ P21: uses P21-->>- P0: return P0->>+ P22: uses P22-->>- P0: return P0->>+ P23: uses P23-->>- P0: return P0->>+ P24: uses P24-->>- P0: return P0->>+ P25: uses P25-->>- P0: return P0->>+ P26: uses P26-->>- P0: return P0->>+ P27: uses P27-->>- P0: return P0->>+ P28: uses P28-->>- P0: return P0->>+ P29: uses P29-->>- P0: return P0->>+ P30: uses P30-->>- P0: return P0->>+ P31: uses P31-->>- P0: return P0->>+ P32: uses P32-->>- P0: return P0->>+ P33: uses P33-->>- P0: return P0->>+ P34: uses P34-->>- P0: return P0->>+ P35: uses P35-->>- P0: return P0->>+ P36: uses P36-->>- P0: return P0->>+ P37: uses P37-->>- P0: return P0->>+ P38: uses P38-->>- P0: return P0->>+ P39: uses P39-->>- P0: return P0->>+ P40: uses P40-->>- P0: return P0->>+ P41: uses P41-->>- P0: return P0->>+ P42: uses P42-->>- P0: return P0->>+ P43: uses P43-->>- P0: return P0->>+ P44: uses P44-->>- P0: return P0->>+ P45: uses P45-->>- P0: return P0->>+ P46: uses P46-->>- P0: return P0->>+ P47: uses P47-->>- P0: return P0->>+ P48: uses P48-->>- P0: return P0->>+ P49: uses P49-->>- P0: return P0->>+ P50: uses P50-->>- P0: return P0->>+ P51: uses P51-->>- P0: return P0->>+ P52: uses P52-->>- P0: return P0->>+ P53: uses P53-->>- P0: return P0->>+ P54: uses P54-->>- P0: return P0->>+ P55: uses P55-->>- P0: return P0->>+ P56: uses P56-->>- P0: return P0->>+ P57: uses P57-->>- P0: return P0->>+ P58: uses P58-->>- P0: return P0->>+ P59: uses P59-->>- P0: return P0->>+ P60: uses P60-->>- P0: return P0->>+ P61: uses P61-->>- P0: return P0->>+ P62: uses P62-->>- P0: return P0->>+ P63: uses P63-->>- P0: return P0->>+ P64: uses P64-->>- P0: return P0->>+ P65: uses P65-->>- P0: return P0->>+ P66: uses P66-->>- P0: return P0->>+ P67: uses P67-->>- P0: return P0->>+ P68: uses P68-->>- P0: return P0->>+ P69: uses P69-->>- P0: return P0->>+ P70: uses P70-->>- P0: return P0->>+ P80: uses P80-->>- P0: return P0->>+ P81: uses P81-->>- P0: return P0->>+ P82: uses P82-->>- P0: return P0->>+ P83: uses P83-->>- P0: return P0->>+ P84: uses P84-->>- P0: return P0->>+ P85: uses P85-->>- P0: return P0->>+ P86: uses P86-->>- P0: return P0->>+ P87: uses P87-->>- P0: return P0->>+ P88: uses P88-->>- P0: return P0->>+ P89: uses P89-->>- P0: return P0->>+ P90: uses P90-->>- P0: return P0->>+ P91: uses P91-->>- P0: return P0->>+ P92: uses P92-->>- P0: return P0->>+ P93: uses P93-->>- P0: return P0->>+ P94: uses P94-->>- P0: return P0->>+ P95: uses P95-->>- P0: return P0->>+ P96: uses P96-->>- P0: return P0->>+ P97: uses P97-->>- P0: return P0->>+ P98: uses P98-->>- P0: return P0->>+ P99: uses P99-->>- P0: return P0->>+ P100: uses P100-->>- P0: return P0->>+ P101: uses P101-->>- P0: return P0->>+ P102: uses P102-->>- P0: return P0->>+ P103: uses P103-->>- P0: return P0->>+ P104: uses P104-->>- P0: return P0->>+ P105: uses P105-->>- P0: return ``` ## Connections by Relation ### calls - [[receive_edited_media()]] `INFERRED` ### contains - [[player_edit.py]] `EXTRACTED` ### method - [[.to_dict()]] `EXTRACTED` - [[.__repr__()]] `EXTRACTED` ### rationale_for - [[Player edit model for tracking media files edited on player devices. At]] `EXTRACTED` ### uses - [[Models package for digiserver-v2.]] `INFERRED` - [[Admin blueprint for user management and system settings.]] `INFERRED` - [[Decorator to require admin role for route access.]] `INFERRED` - [[Display admin panel with system overview.]] `INFERRED` - [[Create a new user account.]] `INFERRED` - [[Change user role between user and admin.]] `INFERRED` - [[Delete a user account.]] `INFERRED` - [[Change application theme.]] `INFERRED` - [[Upload custom logo for application.]] `INFERRED` - [[Clear all server logs.]] `INFERRED` - [[Display user management page.]] `INFERRED` - [[Get system information as JSON.]] `INFERRED` - [[Display leftover media files not assigned to any playlist.]] `INFERRED` - [[Delete all leftover images that are not part of any playlist]] `INFERRED` - [[Delete all leftover videos that are not part of any playlist]] `INFERRED` - [[Delete a single leftover content file]] `INFERRED` - [[Show system dependencies status.]] `INFERRED` - [[Install LibreOffice for PPTX conversion.]] `INFERRED` - [[Install Emoji Fonts for better UI display.]] `INFERRED` - [[Logo customization page.]] `INFERRED` --- *Part of the graphify knowledge wiki. See [[index]] to navigate.*