feat(digiserver-v2): port edited media report and deploy badge features from standalone

- Added edited_media_report route to players blueprint with tabular report view
- Created edited_media_report.html template with summary stats, dark mode, print/PDF support
- Created _deploy_badge.html partial template for deployment status display
- Added deployment status column and badge CSS to players_list.html
- Added 'View Report' button to manage_player.html next to 'View All Edited Media'
- Fixed api.py receive_edited_media with robust content lookup:
  - Fallback content lookup by regex path matching (edited_media/<id>/)
  - Fallback via PlayerEdit record if direct lookup fails
  - First-edit original file preservation (moves original to versionized folder)

Enterprise-specific features (portal SSO, internal sync, playlist permissions, WAL mode) are preserved unchanged.
This commit is contained in:
ske087
2026-07-21 10:42:31 +03:00
parent 83a8f79c36
commit cdaa17803a
6 changed files with 509 additions and 2 deletions
@@ -0,0 +1,25 @@
{% if player.deployment_status == 'deploying' %}
<span class="deploy-badge deploying" id="deploying-badge-{{ player.id }}">
<span class="spinner"></span>Deploying...
</span>
{% elif player.deployment_status == 'deployed' %}
<span class="deploy-badge deployed" title="{{ player.last_deployment_message or 'Deployed successfully' }}">
✅ Deployed
{% if player.last_deployment_at %}
<span class="deploy-timestamp">{{ player.last_deployment_at | localtime }}</span>
{% endif %}
</span>
{% elif player.deployment_status == 'failed' %}
<span class="deploy-badge failed deploy-tooltip" title="{{ player.last_deployment_message or 'Deployment failed' }}">
❌ Failed
{% if player.last_deployment_at %}
<span class="deploy-timestamp">{{ player.last_deployment_at | localtime }}</span>
{% endif %}
</span>
{% elif player.deployment_status == 'pending' %}
<span class="deploy-badge pending" title="Awaiting deployment">
⏳ Pending
</span>
{% else %}
<span class="text-muted"></span>
{% endif %}