Ops templates: show '-' when the acting user is null

Six ops list and detail pages dereferenced a nullable user to print their name,
which renders an empty cell when the field is unset. Guard each one so the cell
reads "-" instead.

Screens: batch detail, CoA review detail, document list, EUDR detail, and the two
QC verification pages.
This commit is contained in:
ixgadmin 2026-09-16 16:39:07 +00:00
parent ee4f7b5232
commit c568a34dc0
6 changed files with 6 additions and 6 deletions

View file

@ -16,7 +16,7 @@
<tr><td class=text-secondary>Weight</td><td>{{ batch.weight_kg|default:'-' }} kg</td></tr>
<tr><td class=text-secondary>Origin Facility</td><td>{{ batch.origin_facility }}</td></tr>
<tr><td class=text-secondary>Harvest Date</td><td>{{ batch.harvest_date|date:'d/m/Y'|default:'-' }}</td></tr>
<tr><td class=text-secondary>Created By</td><td>{{ batch.created_by.full_name|default:batch.created_by.email|default:'-' }}</td></tr>
<tr><td class=text-secondary>Created By</td><td>{% if batch.created_by %}{{ batch.created_by.full_name|default:batch.created_by.email }}{% else %}-{% endif %}</td></tr>
<tr><td class=text-secondary>Created At</td><td>{{ batch.created_at|date:'d/m/Y H:i' }}</td></tr>
</table>
</div>

View file

@ -22,7 +22,7 @@
<tr><td class=text-secondary>Specification</td><td>{{ coa.spec_version|default:'-' }}</td></tr>
<tr><td class=text-secondary>Issuer</td><td>{{ coa.issuer|default:'-' }}</td></tr>
<tr><td class=text-secondary>Issue Date</td><td>{{ coa.issue_date|date:'d/m/Y'|default:'-' }}</td></tr>
<tr><td class=text-secondary>Quality Approved By</td><td>{{ coa.quality_approved_by.full_name|default:coa.quality_approved_by.email|default:'-' }}</td></tr>
<tr><td class=text-secondary>Quality Approved By</td><td>{% if coa.quality_approved_by %}{{ coa.quality_approved_by.full_name|default:coa.quality_approved_by.email }}{% else %}-{% endif %}</td></tr>
<tr><td class=text-secondary>Quality Approved At</td><td>{{ coa.quality_approved_at|date:'d/m/Y H:i'|default:'-' }}</td></tr>
<tr><td class=text-secondary>Released At</td><td>{{ coa.released_at|date:'d/m/Y H:i'|default:'-' }}</td></tr>
<tr><td class=text-secondary>Published At</td><td>{{ coa.published_at|date:'d/m/Y H:i'|default:'-' }}</td></tr>

View file

@ -36,7 +36,7 @@
<td><span class=badge bg-light text-dark>{{ d.get_doc_type_display }}</span></td>
<td>{{ d.batch.batch_reference|default:'-' }}</td>
<td><span class=badge bg-info text-dark>{{ d.get_visibility_display }}</span></td>
<td>{{ d.uploaded_by.full_name|default:d.uploaded_by.email|default:'-' }}</td>
<td>{% if d.uploaded_by %}{{ d.uploaded_by.full_name|default:d.uploaded_by.email }}{% else %}-{% endif %}</td>
<td>{{ d.uploaded_at|date:'d/m/Y' }}</td>
</tr>
{% empty %}

View file

@ -43,7 +43,7 @@
<tr>
<td>{{ link.harvest_intake.intake_reference }}</td>
<td>{{ link.harvest_intake.intake_date|date:'d/m/Y'|default:'-' }}</td>
<td>{{ link.weight_allocated_kg|default:link.harvest_intake.weight_kg }}</td>
<td>{% if link.weight_allocated_kg %}{{ link.weight_allocated_kg }}{% elif link.harvest_intake %}{{ link.harvest_intake.weight_kg }}{% else %}-{% endif %}</td>
<td>{{ link.harvest_intake.origin_zone.zone_code|default:'-' }}</td>
<td>{% if link.harvest_intake.origin_zone %}<span class=badge {% if link.harvest_intake.origin_zone.verification_status == 'verified' %}bg-success{% elif link.harvest_intake.origin_zone.verification_status == 'rejected' %}bg-danger{% else %}bg-warning text-dark{% endif %}>{{ link.harvest_intake.origin_zone.get_verification_status_display }}</span>{% else %}-{% endif %}</td>
<td>{{ link.harvest_intake.collector_group.name|default:'-' }}</td>

View file

@ -26,7 +26,7 @@
<tr><td class=text-secondary>Result Status</td><td>{{ result.get_result_status_display }}</td></tr>
<tr><td class=text-secondary>Lab Reference</td><td>{{ result.lab_reference|default:'-' }}</td></tr>
<tr><td class=text-secondary>Tested By</td><td>{{ result.tested_by|default:'-' }}</td></tr>
<tr><td class=text-secondary>Entered By</td><td>{{ result.entered_by.full_name|default:result.entered_by.email|default:'-' }}</td></tr>
<tr><td class=text-secondary>Entered By</td><td>{% if result.entered_by %}{{ result.entered_by.full_name|default:result.entered_by.email }}{% else %}-{% endif %}</td></tr>
<tr><td class=text-secondary>Tested At</td><td>{{ result.tested_at|date:'d/m/Y H:i' }}</td></tr>
</table>
</div>

View file

@ -37,7 +37,7 @@
<td>{{ r.moisture_percentage }}</td>
<td>{{ r.peroxide_value }}</td>
<td>{{ r.visual_grade }}</td>
<td>{{ r.entered_by.full_name|default:r.entered_by.email|default:'-' }}</td>
<td>{% if r.entered_by %}{{ r.entered_by.full_name|default:r.entered_by.email }}{% else %}-{% endif %}</td>
<td>{{ r.spec_version|default:'-' }}</td>
<td><a href={% url 'ops:qc_verify_detail' r.pk %} class=btn btn-sm btn-primary>Verify</a></td>
</tr>