{% extends "base.html" %} {% block title %}File Details{% endblock %} {% block head_extra %} {% if file %} {% endif %} {% endblock %} {% block content %}
Back to File List {% if error %}

Error: {{ error }}

{% else %}

File Information

File ID {{ file.id }}
Original Filename {{ file.original_filename }}
File Hash {{ file.filehash }}
File Size {{ (file.file_size / 1024) | round(2) }} KB ({{ file.file_size }} bytes)
MIME Type {{ file.mime_type or 'N/A' }}
Created At {{ file.created_at.strftime('%Y-%m-%d %H:%M:%S') if file.created_at else 'N/A' }}
Local Path {{ file.local_filename }}
File on Disk {% if file_exists %} File exists {% else %} File not found {% endif %}
{% if step_summary %}

Processing Status Summary

Main Processing Steps
{% if step_summary.main.success > 0 %}
{{ step_summary.main.success }} Success
{% endif %} {% if step_summary.main.failure > 0 %}
{{ step_summary.main.failure }} Failed
{% endif %} {% if step_summary.main.in_progress > 0 %}
{{ step_summary.main.in_progress }} In Progress
{% endif %} {% if step_summary.main.queued > 0 %}
{{ step_summary.main.queued }} Queued
{% endif %}
{% if step_summary.total_upload_tasks > 0 %}
Upload Destinations
{% if step_summary.uploads.success > 0 %}
{{ step_summary.uploads.success }} Success
{% endif %} {% if step_summary.uploads.failure > 0 %}
{{ step_summary.uploads.failure }} Failed
{% endif %} {% if step_summary.uploads.in_progress > 0 %}
{{ step_summary.uploads.in_progress }} In Progress
{% endif %} {% if step_summary.uploads.queued > 0 %}
{{ step_summary.uploads.queued }} Queued
{% endif %}
{% endif %}
{% endif %}

Processing History

{% if file_exists %} {% endif %}
{% if logs %}
View Full Processing Logs ({{ logs|length }} entries)
{% for log in logs %}
{{ log.step_name }} - {{ log.status }}
{% if log.message %}
{{ log.message }}
{% endif %}
{{ log.timestamp.strftime('%Y-%m-%d %H:%M:%S') if log.timestamp else 'N/A' }} {% if log.task_id %} Task: {{ log.task_id[:16] }}... {% endif %}
{% if log.detail %}
Show worker log detail
{{ log.detail }}
{% endif %}
{% endfor %}
{% else %}

No processing logs found for this file.

The file may not have been processed yet.

{% endif %}
{% if flow_data %}

Process Flow Visualization

{% for stage in flow_data %}
{% if stage.status == 'success' %} {% elif stage.status == 'failure' %} {% elif stage.status == 'in_progress' %} {% elif stage.status in ['pending', 'queued'] %} {% else %}{% endif %}
{{ stage.label }}
{% if stage.message %}
{{ stage.message }}
{% endif %} {% if stage.status == 'not_run' %}
Not executed
{% endif %} {% if stage.can_retry and stage.status == 'failure' %} {% endif %} {% if stage.timestamp %}
{{ stage.timestamp.strftime('%Y-%m-%d %H:%M:%S') }}
{% endif %}
{% if stage.is_branch_parent and stage.branches %}
{% for branch in stage.branches %}
{% if branch.status == 'success' %} {% elif branch.status == 'failure' %} {% elif branch.status == 'in_progress' %} {% else %}{% endif %}
{{ branch.label }} {% if branch.can_retry and branch.status == 'failure' %} {% endif %}
{% if branch.message %}
{{ branch.message }}
{% endif %} {% if branch.timestamp %}
{{ branch.timestamp.strftime('%Y-%m-%d %H:%M:%S') }}
{% endif %}
{% endfor %}
{% endif %} {% if not loop.last %}
{% endif %} {% endfor %}
{% endif %} {% if file_exists or processed_exists %}

File Previews

{% if file_exists %}

Original File

{% if file.mime_type and file.mime_type.startswith('image/') %} {{ file.original_filename }} {% elif file.mime_type and file.mime_type.startswith('text/') %} {% else %} {% endif %}
Open in new tab Download
{% endif %} {% if processed_exists %}

Processed File

Open in new tab Download
{% endif %}
{% endif %} {% endif %}
{% endblock %}