|
3 | 3 | Ops views (server-rendered). |
4 | 4 |
|
5 | 5 | Week 5: |
6 | | -- Queue view reuses domain queue builder. |
7 | | -- Claim detail page lands Wednesday. |
| 6 | +- Queue view uses domain queue logic. |
| 7 | +- Claim detail view renders full workflow timeline. |
8 | 8 | """ |
9 | 9 |
|
10 | 10 | from __future__ import annotations |
11 | 11 |
|
12 | 12 | from django.contrib.auth.decorators import login_required |
| 13 | +from django.db.models import Prefetch |
13 | 14 | from django.http import HttpRequest, HttpResponse |
14 | 15 | from django.shortcuts import get_object_or_404, redirect, render |
15 | 16 |
|
16 | | -from policylens.apps.claims.models import Claim |
| 17 | +from policylens.apps.claims.models import ( |
| 18 | + AuditEvent, |
| 19 | + Claim, |
| 20 | + ClaimDocument, |
| 21 | + InternalNote, |
| 22 | + ReviewDecision, |
| 23 | +) |
17 | 24 | from policylens.apps.claims.queue import build_queue_queryset |
18 | 25 |
|
19 | 26 |
|
@@ -51,6 +58,21 @@ def queue_view(request: HttpRequest) -> HttpResponse: |
51 | 58 |
|
52 | 59 | @login_required |
53 | 60 | def claim_detail_view(request: HttpRequest, claim_id: int) -> HttpResponse: |
54 | | - """Render claim detail shape with basic claim fetch only.""" |
55 | | - claim = get_object_or_404(Claim, pk=claim_id) |
56 | | - return render(request, "ops/claim_detail.html", context={"claim": claim}) |
| 61 | + """Render claim detail page with timeline sections.""" |
| 62 | + claim = get_object_or_404( |
| 63 | + Claim.objects.select_related( |
| 64 | + "policy", "policy__holder", "sla_clock", "ml_score" |
| 65 | + ).prefetch_related( |
| 66 | + Prefetch("documents", queryset=ClaimDocument.objects.order_by("uploaded_at")), |
| 67 | + Prefetch("notes", queryset=InternalNote.objects.order_by("created_at")), |
| 68 | + Prefetch("decisions", queryset=ReviewDecision.objects.order_by("decided_at")), |
| 69 | + Prefetch("audit_events", queryset=AuditEvent.objects.order_by("created_at")), |
| 70 | + ), |
| 71 | + pk=claim_id, |
| 72 | + ) |
| 73 | + |
| 74 | + return render( |
| 75 | + request, |
| 76 | + "ops/claim_detail.html", |
| 77 | + context={"page_title": f"Claim #{claim.id}", "claim": claim}, |
| 78 | + ) |
0 commit comments