Centralize the username column and use it in the Users page.

Review Request #8878 — Created April 5, 2017 and submitted — Latest diff uploaded

Information

Review Board
release-3.0.x
b7e2fba...

Reviewers

We had a Submitter column used for review requests and reviews, which
rendered the username and avatars. We didn't have an equivalent for the
Users page, which would have had to duplicate a lot of the logic.

Now there's a single UsernameColumn, which displays a consistent
representation of the username and avatar. It takes the label and a
relation between the object and the user, and uses that relation to look
up the user and to augment the queryset.

The datagrids no longer use subclasses. Instead, they simply pass the
desired label and relation to UsernameColumn.

If new datagrids involving users are introduced in the future, they
should be able to use this column directly without needing to construct
another class.

Tested each datagrid, checking that the labels, usernames, and avatars
are all correct. Also checked that there wasn't a regression in query
counts from this change.