Files
digiserver-v2/graphify-out/wiki/Models_package_for_digiserver-v2..md
T

369 lines
13 KiB
Markdown

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