From 3b9716612784930dd180c4304275b519e5ef839f Mon Sep 17 00:00:00 2001 From: "James E. Blair" Date: Mon, 14 Aug 2017 09:38:38 -0700 Subject: [PATCH] Handle approvals with no name Gertty currently handles change owners or review comments from folks with missing account information (or even missing accounts). This adds similar logic for approvals. Change-Id: I368807eac131cdfddb9eaf97efdf217af10ea33b --- gertty/db.py | 12 ++++++++++++ gertty/view/change.py | 8 ++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/gertty/db.py b/gertty/db.py index 64fab8f..3bb7ddd 100644 --- a/gertty/db.py +++ b/gertty/db.py @@ -537,6 +537,18 @@ class Approval(object): self.value = value self.draft = draft + @property + def reviewer_name(self): + reviewer_name = 'Anonymous Coward' + if self.reviewer: + if self.reviewer.name: + reviewer_name = self.reviewer.name + elif self.reviewer.username: + reviewer_name = self.reviewer.username + elif self.reviewer.email: + reviewer_name = self.reviewer.email + return reviewer_name + class PendingCherryPick(object): def __init__(self, revision, branch, message): self.revision_key = revision.key diff --git a/gertty/view/change.py b/gertty/view/change.py index 1a83ff9..9a575f2 100644 --- a/gertty/view/change.py +++ b/gertty/view/change.py @@ -682,13 +682,13 @@ class ChangeView(urwid.WidgetWrap): approval_headers.append(urwid.Text(('table-header', label.category))) categories.append(label.category) votes = mywid.Table(approval_headers) - approvals_for_name = {} + approvals_for_account = {} pending_message = change.revisions[-1].getPendingMessage() for approval in change.approvals: # Don't display draft approvals unless they are pending-upload if approval.draft and not pending_message: continue - approvals = approvals_for_name.get(approval.reviewer.name) + approvals = approvals_for_account.get(approval.reviewer.id) if not approvals: approvals = {} row = [] @@ -696,12 +696,12 @@ class ChangeView(urwid.WidgetWrap): style = 'reviewer-own-name' else: style = 'reviewer-name' - row.append(urwid.Text((style, approval.reviewer.name))) + row.append(urwid.Text((style, approval.reviewer_name))) for i, category in enumerate(categories): w = urwid.Text(u'', align=urwid.CENTER) approvals[category] = w row.append(w) - approvals_for_name[approval.reviewer.name] = approvals + approvals_for_account[approval.reviewer.id] = approvals votes.addRow(row) if str(approval.value) != '0': cat_min, cat_max = change.getMinMaxPermittedForCategory(approval.category)