Avoid fetching a StatusUpdate per Review on the review request page.

Review Request #14313 — Created Jan. 29, 2025 and submitted — Latest diff uploaded

Information

Review Board
release-7.1.x

Reviewers

We had code in the review request page that checked for the presence of
the Review.status_update attribute. This in turn triggered a query for
the object on the other end of that relation, regardless of whether it
existed. That led to a useless query per review, especially since we had
already fetched all status updates on the page.

This change adds some pre-processing, creating a map of reviews to
status updates, and utilizes that map instead of performing the
attribute check.

This offers a pretty large savings on most review requests.

Unit tests passed.

Verified in Django Debug Toolbar that the repeated SQL queries for
status updates were no longer present.

Commits

Files