{% extends "base.html" %} {% block title %}Diary — {{ job_no }}{% endblock %} {% block crumb %} / {{ job_no }} / Diary{% endblock %} {% block body %} {# The Daily Site Report, writing itself while the day happens. Same fourteen sections as the rendered docx, in the same order, so what he watches fill in on his phone at 10am is the shape of what lands in the job folder at 5pm. He confirms; he does not compose. Nothing on this page changes a register. The only thing it accepts is his voice on the four boxes no register could ever know, and those land in their own file beside the others. #}

{{ job_name }}

Job screen · Board {{ when.strftime('%a %d/%m/%Y') }} {% if not is_today %}{% endif %}

{% if msg %}

{{ msg }}

{% endif %} {% if not voice_on %}

Voice unavailable — no transcription key set. Type it instead.

{% endif %} {% macro sayable(key, label) %}

{{ label }}

{% for n in notes.get(key, []) %}

{{ n.text }} {{ n.timestamp[11:16] }} · {{ n.by }}

{% else %}

TBC — say it

{% endfor %}
type it
{% endmacro %} {{ sayable('summary', '1. Summary') }} {{ sayable('weather', '2. Weather') }} {# ---------------------------------------------------------------- 3. labour #}

3. Labour on site

{{ day_rows|length }}
{% for n, d in day_rows %}
{{ n }} {{ d.start_text or '—' }}{% if d.finish_text %} – {{ d.finish_text }}{% elif d.on_now %} – on now{% endif %}
{% else %}

Nothing yet.

{% endfor %} {% if not_seen %}

Not signed on: {{ not_seen|join(', ') }}

{% endif %}
{# ---------------------------------------------------------------- 4. plant #}

4. Plant on site

{% for p in plant %}

{{ p.rego }} {{ p.vehicle }} — checked {{ p.timestamp[11:16] }} by {{ p.name }} {% if p.result == 'defect' %}· defect: {{ p.fails }}{% endif %}

{% else %}

Nothing yet.

{% endfor %} {% for d in defects %}

Open defect — {{ d.rego }} {{ d.fails }} ({{ d.note }})

{% endfor %}
{# ---------------------------------------------------------------- 5. works — off the board #}

5. Work performed

the board
{% for l in works %}

{{ l }}

{% else %}

Nothing yet. Anything dragged on the board lands here.

{% endfor %}
{# ---------------------------------------------------------------- 6. progress #}

6. Progress

{% for z in zones %}

{{ z.title }} {% if z.stage %}{{ z.stage }}{% endif %} {% if z.estimate %}{{ z.estimate }}{% endif %} {% if z.done %}done{% endif %} {% if z.people %}· {{ z.people|join(', ') }}{% endif %}

{% else %}

Nothing yet.

{% endfor %}
{# ---------------------------------------------------------------- 7. safety #}

7. Safety

Prestart signed: {{ prestart|length }}{% if prestart %} {{ prestart|map(attribute='name')|unique|join(', ') }}{% endif %}

Take 5s: {{ take5s|length }}

{% for t in take5s %}

{{ t.name }} — {{ t.task }} {{ t.start[11:16] }}{% if t.finish %} · done {{ t.finish[11:16] }}{% endif %}

{% endfor %} {% for i in incidents %}

{{ i.kind }} — {{ i.what }} {{ i.name }} · {{ i.timestamp[11:16] }}{% if i.where %} · {{ i.where }}{% endif %}

{% if i.photo_file %}{% endif %}
{% endfor %} {% if not prestart and not take5s and not incidents %}

Nothing yet.

{% endif %}
{# ---------------------------------------------------------------- 8. materials #}

8. Materials

{% for m in materials %}

{{ m.item }} — {{ labels.get(m.status, 'waiting') }} {{ m.name }} · {{ m.timestamp[11:16] }}{% if m.by %} · {{ m.by }}{% endif %}

{% else %}

Nothing yet.

{% endfor %}
{# ---------------------------------------------------------------- 9. dayworks #}

9. Dayworks

{% for r in dockets %}

{{ r.description }} {{ r.men }} · {{ r.hours_total }} hrs · {% if r.status == 'signed' %}signed by {{ r.signed_by }}{% else %}NOT SIGNED{% endif %}

{% else %}

Nothing yet.

{% endfor %}
{# ---------------------------------------------------------------- 10. photos #}

10. Photos taken

{{ photos|length }}
{% if photos %}
{% for f in photos %} {{ f }} {% endfor %}
{% else %}

Nothing yet.

{% endif %}
{{ sayable('issues', '11. Issues') }} {# ---------------------------------------------------------------- 12. man hours #}

12. Man hours

{% for n, d in day_rows %}
{{ n }} {{ d.start_text or '—' }} – {{ d.finish_text or 'on now' }} {%- if d.lunch_text %} · lunch {{ d.lunch_text }}{% endif %}{% if d.hours_text %} · {{ d.hours_text }} hrs{% endif %}
{% else %}

Nothing yet.

{% endfor %}
{{ sayable('notes', '13. Notes') }} {{ sayable('next_day', '14. Next day plan') }}

Nothing on this page has been written up by anyone. It is today's registers, read back.

{% endblock %}