Make sure the last_updated review request draft field is properly set after updating the draft.

Review Request #13260 — Created Sept. 6, 2023 and submitted — Latest diff uploaded


Review Board


We've had a longstanding bug where a review request draft would be updated, but
we would still display old cached data for the draft upon page reloads. While
we rely on the ReviewRequestDraft.last_updated field when generating ETags
for a review request page, this field wasn't being properly updated when a
draft gets updated, so we wouldn't catch that the ETag was stale.

In conjuction with /r/13261, this fixes the caching issue by making sure that
the last_updated field gets updated whenever a field is modified in a draft,
or when an associated file attachment is created/deleted/updated.

This change also updates some file attachment unit tests to take into account
the one extra query that is being performed when saving the last_updated
field on review reuqest drafts.

Tested with the /r/13261 change.

  • Ran unit tests.
  • Tested updating a review request draft by updating each of the fields,
    information (bugs, depends on, etc) and updating file attachments, saw
    that last_updated was updated correctly.
  • Tested updating the change description, saw that it didn't update
  • Tested manually setting last_updated to a value during saving, saw that
    value being used instead of to make sure that we don't
    overwrite any manually set values.