Jul 30 - Update backend for iPad follow-up request function
This commit is contained in:
@@ -13,6 +13,7 @@ PATCH /api/v1/inspections/<inspection_id>
|
|||||||
GET /api/v1/inspections
|
GET /api/v1/inspections
|
||||||
Returns the authenticated inspector's own inspection history.
|
Returns the authenticated inspector's own inspection history.
|
||||||
Supports ?limit=N&offset=N&facility_id=N&status=completed
|
Supports ?limit=N&offset=N&facility_id=N&status=completed
|
||||||
|
&follow_up_required=true
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
@@ -235,6 +236,13 @@ def list_inspections():
|
|||||||
status str filter by status (completed, in_progress, flagged)
|
status str filter by status (completed, in_progress, flagged)
|
||||||
from_date str ISO date (YYYY-MM-DD) — include inspections on/after this date
|
from_date str ISO date (YYYY-MM-DD) — include inspections on/after this date
|
||||||
to_date str ISO date (YYYY-MM-DD) — include inspections on/before this date
|
to_date str ISO date (YYYY-MM-DD) — include inspections on/before this date
|
||||||
|
follow_up_required
|
||||||
|
str "true"/"1" — only inspections a director has flagged as
|
||||||
|
needing a follow-up and that no re-inspection has answered
|
||||||
|
yet (flagged + completed + no child), matching what
|
||||||
|
"Follow-up" means on the web. Drives the iPad's FOLLOW-UP
|
||||||
|
REQUESTED card, so it must return the complete outstanding
|
||||||
|
set, not just the recent page the history list shows.
|
||||||
|
|
||||||
Response 200
|
Response 200
|
||||||
------------
|
------------
|
||||||
@@ -271,6 +279,24 @@ def list_inspections():
|
|||||||
if status:
|
if status:
|
||||||
query = query.filter(Inspection.status == status)
|
query = query.filter(Inspection.status == status)
|
||||||
|
|
||||||
|
if request.args.get('follow_up_required', '').lower() in ('true', '1'):
|
||||||
|
# Must mean exactly what "Follow-up" means everywhere on the web
|
||||||
|
# (inspections.list / reports status_filter == 'follow_up'): flagged,
|
||||||
|
# completed, and not yet answered by a linked re-inspection.
|
||||||
|
#
|
||||||
|
# The ~follow_ups.any() clause is the one that matters. The web execute
|
||||||
|
# route never clears follow_up_required on the parent — it only stops
|
||||||
|
# listing it once a child exists — so filtering on the flag alone would
|
||||||
|
# return follow-ups that were already satisfied on the web, forever.
|
||||||
|
# On the iPad those rows are undismissable: pull_follow_up_requests()
|
||||||
|
# keeps receiving them and update(from:) resets fulfilledLocally, so the
|
||||||
|
# FOLLOW-UP REQUESTED card would never clear. (The mobile POST path does
|
||||||
|
# clear the parent flag, so only web-completed re-inspections stick.)
|
||||||
|
query = query.filter(
|
||||||
|
Inspection.follow_up_required.is_(True),
|
||||||
|
Inspection.status == 'completed',
|
||||||
|
).filter(~Inspection.follow_ups.any())
|
||||||
|
|
||||||
from_date_str = request.args.get('from_date')
|
from_date_str = request.args.get('from_date')
|
||||||
if from_date_str:
|
if from_date_str:
|
||||||
try:
|
try:
|
||||||
|
|||||||
Reference in New Issue
Block a user