Reviewing forty captures means forty page loads #179
Labels
No labels
accessibility
authentication
breaking change
bug
documentation
enhancement
interface
internationalisation
observability
security
tier
1
tier
2
tier
3
tier/4
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Postulo/postulo#179
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Observation
CaptureReviewViewreviews one capture: GET renders a form, POST makes a listing andredirects away. To triage what a board's search page produces, you do that forty times, from
a list, with a full page load between each.
What exists
jobs/capture_views.py:CaptureListView—paginate_by = 50,jobs/capture_list.htmldraws its own<ul>.Per row: Review, Discard. No sort, no filter, no search, no select-many, no
bulk discard. It is the same gap #160 describes for the listings page, on a different
page, and #160 explicitly does not cover this one.
CaptureReviewView— the full listing form, every field, for every capture. Correct for acapture worth keeping and far too much for the thirty-seven that are not.
The screen's own docstring has the reason it must stay correctable:
That argues for reviewing carefully. It does not argue for reviewing slowly, and it does
not argue that discarding should cost a page load.
What triage wants
Deciding is three answers — keep, discard, keep-and-apply — and most captures get the second
one in under a second. That wants:
times in a row.
One thing to decide while in here
CaptureReviewView._initialputs defaults in where nothing was read:On the form those are indistinguishable from values the page stated. #176 made the sources
stop reporting a currency with no amount behind it, precisely because "USD, per year, amount
unknown" is a thing boards write into every advert and Postulo should not repeat. This line
puts a currency back. It may be right — a form needs a default in a select — but it should be
visibly a default rather than look like a reading.
Not in this issue
Making the captures list a registered table, with the sorting, filtering, column choice and
bulk actions
core/tables.pygives for free. That is the same rewrite #160 is doing forlistings and should be done the same way, after it, so the second page copies a pattern that
has already been through review. Bulk discard is wanted before then and does not need the
whole table.