Add a "Last Updated By" column to the dashboard.

Review Request #12018 — Created Jan. 28, 2022 and updated — Latest diff uploaded

Information

Review Board
master

Reviewers

These changes add a new column to the review request dashboard called "Last Updated By" which displays the user that made the last update to each review request. Similar to the existing "Last Updated" column, which shows the time that the last update was made, this column is updated whenever a review request is created, edited, receives a review, is closed, or reopened.

Changes

"Last Updated By" column

  • Added a "Last Updated By" column
  • Added information about the new column to manual
  • Added tests for the new column

ReviewRequest last activity info functions

  • ReviewRequest.get_last_activity_info() also returns the user that last updated the review request
  • Review requests cache their last activity info (last updated object, changedesc, and user) in ReviewRequest.extra_data
  • Added ReviewRequest.set_last_activity_info(timestamp, updated_object, changedesc, user)
  • Modified existing uses of ReviewRequest.get_last_activity_info() to take advantage of the user field
  • Added and modified existing tests of ReviewRequest.get_last_activity_info()

Other

  • Made the WebAPI ReviewRequestLastUpdateResource return the correct user now that ReviewRequest.get_last_activity_info() includes it
  • Added tests for the column itself as well as the new last activity-related functions.
  • Ran all backend tests and observed that all passed.
  • Performed manual testing of the functionality of the column by creating, editing, reviewing, closing, and reopening review requests and observing how the column changes.

Diff Revision 12 (Latest)

orig
1
2
3
4
5
6
7
8
9
10
11
12

Commits

First Last Summary ID Author
Add a "Last Updated By" column to the dashboard
2886dc701a7582abb5ab763c2d9c1fe7ba1d542b Kyle McLean
First try at optimization of get_last_activity_info
347e5aa8a529bc8b6aaea55d331475446f4d3b63 Kyle McLean
Continue work on last_activity_info caching
* Update the cache when last activity changes * Add tests for get_last_activity_info * New: update last activity info when closing a review request
bba4df2b0cd2f382bb4eb2d88dd5a20cb92f9b22 Kyle McLean
Fix import error in review_request.py
9eead2a3139e9cec4e82a13c376d33fc558582f7 Kyle McLean
Fix incorrect argument order
19d8bb48e3e7a2ae0536196102556e00918acf96 Kyle McLean
None handling for changedesc
f568b695db1d1f7372b8dc53e5eee94aca606785 Kyle McLean
Fetch users in Last Updated By column in one query
3a44a50bec97041c994a6b7b342998c9c6f942f2 Kyle McLean
Add LastUpdatedByColumnTests based on UsernameColumnTests
410e1b643422b85781aa59d6a59f005b1c898c71 Kyle McLean
Fix ReviewRequest.set_last_activity_info() failing when user is None
b076ce9a7ead039ffb03c6e1f27b6775a31c712d Kyle McLean
Add info on Last Updated By column to dashboard documentation
9dfd7179ef9462d8463a230e0769f7fa3b4e7dcb Kyle McLean
Fix issues with review request closing updating last activity info
- Make closing a review request use the same timestamp for last_updated and the ChangeDescription - Fix test_get_last_activity_info_close
caf3389617783d8d0d40393f750381fba7424f8f Kyle McLean
Handle user being None in ReviewRequest.get_last_activity_user_id()
d1b2f75efb0be1df4e8ba081ed3b5616be574067 Kyle McLean
Make ReviewRequest.publish() set updated_object to diffset if it exists
c3bd1a09f5a1ac7359cf7f89628067d86cd74a70 Kyle McLean
Update last activity info when review request is reopened
bb22a4b741f7ff917b1c4b1dce19afca681c5e95 Kyle McLean
Fix last_updated being set incorrectly after publishing ReviewRequest
2d5599330ffb81e6e5c02fc28c17c91ff6e88487 Kyle McLean
Send the correct user in ReviewRequestLastUpdateResource
cdb0cfc28c3f678a77d1f779daa05da483a6915c Kyle McLean
Fix ReviewRequest.reopen() setting last activity info after no status change
3120d9fe3af41f0467404c49716457599d42ac3b Kyle McLean
Make changes to address feedback
e606ba6247e22f74d4d40b1e28cc8d34de4549e8 Kyle McLean
docs/manual/users/dashboard/index.rst
reviewboard/datagrids/columns.py
reviewboard/datagrids/grids.py
reviewboard/datagrids/tests.py
reviewboard/reviews/models/review.py
reviewboard/reviews/models/review_request.py
reviewboard/reviews/tests/test_review_request.py
reviewboard/webapi/resources/review_request_last_update.py
reviewboard/webapi/tests/test_review_request_last_update.py
Loading...