{% extends "base.html" %} {% block title %}Job {{ job.job_uuid[:8] if job.job_uuid else job.id }} — POPS{% endblock %} {% block content %}
{{ job.file_name or job.name }}
{% set s = job.status.value %} {% if job.priority %}Priority{% endif %} {% if s == 'printing' %}printing {% elif s == 'done' %}done {% elif s == 'failed' %}failed {% elif s == 'cancelled' %}cancelled {% else %}queued {% endif %}
{{ job.job_uuid or '—' }}
{# ── Job info ── #}
Job
{% if job.started_at %} {% endif %} {% if job.finished_at %} {% endif %} {% if job.duration_minutes %} {% endif %} {% if job.cost_eur %} {% endif %} {% if job.notes %} {% endif %}
Customer {{ job.customer or '—' }}
Material {{ job.job_material or '—' }}{% if job.job_color %} · {{ job.job_color }}{% endif %}
Printer {{ job.printer.name if job.printer else '—' }}
Bracket {% if job.bracket %}{{ job.bracket.name }}{% else %}—{% endif %}
Created {{ job.created_at.strftime('%d.%m.%Y %H:%M') }}
Started {{ job.started_at.strftime('%d.%m.%Y %H:%M') }}
Finished {{ job.finished_at.strftime('%d.%m.%Y %H:%M') }}
Duration {{ job.duration_minutes }} min
Cost € {{ "%.2f"|format(job.cost_eur) }}
Notes {{ job.notes }}
{# ── STL geometry ── #}
File & Geometry {% if job.file_name and not job.file_name.endswith('.gcode') %}
{% endif %}
{% if job.file_name %}
{{ job.file_name }}
{% endif %} {% if stl %}
Bounding box {{ stl.cube_x|round(1) }} × {{ stl.cube_y|round(1) }} × {{ stl.cube_z|round(1) }} mm
Volume {{ stl.volume_ccm }} cm³
{% elif job.file_name and job.file_name.endswith('.gcode') %}

Geometry not available for gcode files.

{% elif job.file_name %}

Not yet analysed.

{% else %}

No file attached.

{% endif %}
{# ── Estimate ── #} {% if estimation %}
Estimate 20 % infill · {{ estimation.price_per_kg }} €/kg · {{ estimation.vat_rate }}% VAT
Material & Time
Volume used {{ estimation.material_ccm }} cm³
Weight {{ estimation.weight_g }} g
Print time {% set h = (estimation.print_minutes // 60) %} {% set m = (estimation.print_minutes % 60) %} {% if h %}{{ h }}h {% endif %}{{ m }}min (est.)
Production cost
Filament {{ "%.2f"|format(estimation.filament_cost) }} €
+ 20 % misprint {{ "%.2f"|format(estimation.filament_cost * 1.2) }} €
Suggested price
Net (ex. VAT) {{ "%.2f"|format(estimation.net_price) }} €
Gross ({{ estimation.vat_rate }}% VAT) {{ "%.2f"|format(estimation.gross_price) }} €
{% endif %} {# ── Log ── #}
Log
{% if job.logs %} {% for entry in job.logs %} {% endfor %}
{{ entry.created_at.strftime('%d.%m.%Y %H:%M') }} {{ entry.message }}
{% else %}
No log entries.
{% endif %}
{# ── Edit Job Modal ── #} {# ── Add log entry modal ── #} {% endblock %}