fix(schoolhouse): handle Paperless upload failures gracefully

- catch Paperless handoff exceptions during assignment intake
- preserve local submission records when archive handoff fails
- redirect HTML uploads back to the form with readable status details
- show archive-pending messaging instead of a raw 500 page
This commit is contained in:
Fizzlepoof
2026-06-06 02:37:20 +00:00
parent db8dce8c8b
commit 7a67a2febc
2 changed files with 59 additions and 30 deletions

View File

@@ -1,12 +1,19 @@
{% extends 'base.html' %}
{% block content %}
{% if request.query_params.get('submitted') %}
<section class="card form-card notice-card success-card evidence-board">
<div class="case-legend"><span class="section-label">Submission packet</span><span class="pill">Filed</span></div>
<h2>Submission Created</h2>
{% set paperless_status = request.query_params.get('paperless_status', 'uploaded-local') %}
<section class="card form-card notice-card {{ 'success-card' if paperless_status == 'paperless-queued' else '' }} evidence-board">
<div class="case-legend"><span class="section-label">Submission packet</span><span class="pill">{{ 'Filed' if paperless_status == 'paperless-queued' else 'Saved locally' }}</span></div>
<h2>{{ 'Submission Created' if paperless_status == 'paperless-queued' else 'Submission Saved, Archive Pending' }}</h2>
<p>Submission {{ request.query_params.get('submitted') }} was created successfully.</p>
<p class="muted">Artifact: {{ request.query_params.get('artifact_kind', 'document') }} · Files: {{ request.query_params.get('file_count', '1') }}</p>
<p class="muted">Paperless status: {{ request.query_params.get('paperless_status', 'uploaded-local') }}</p>
<p class="muted">Paperless status: {{ paperless_status }}</p>
{% if paperless_status != 'paperless-queued' %}
<p class="muted">Schoolhouse kept the submission locally, but the archive handoff failed this time.</p>
{% if request.query_params.get('paperless_error') %}
<p class="muted">Error: {{ request.query_params.get('paperless_error') }}</p>
{% endif %}
{% endif %}
</section>
{% endif %}
<section class="card form-card evidence-board">