# HG changeset patch # User Mads Kiilerich # Date 1426033053 -3600 # Node ID 409eaadc00545084b589b44e80b6db67cca13d66 # Parent 9ecd1d4836cc547718dbcd6b128f82478eaf0fa0 pullrequests: on 'my pullrequests' show the user's own vote as second column next to 'latest vote' diff -r 9ecd1d4836cc -r 409eaadc0054 kallithea/model/db.py --- a/kallithea/model/db.py Wed Mar 11 00:24:25 2015 +0100 +++ b/kallithea/model/db.py Wed Mar 11 01:17:33 2015 +0100 @@ -2188,6 +2188,7 @@ Index('cs_version_idx', 'version'), Index('cs_pull_request_id_idx', 'pull_request_id'), Index('cs_changeset_comment_id_idx', 'changeset_comment_id'), + Index('cs_pull_request_id_user_id_version_idx', 'pull_request_id', 'user_id', 'version'), UniqueConstraint('repo_id', 'revision', 'version'), {'extend_existing': True, 'mysql_engine': 'InnoDB', 'mysql_charset': 'utf8', 'sqlite_autoincrement': True} @@ -2292,6 +2293,16 @@ def last_review_status(self): return str(self.statuses[-1].status) if self.statuses else '' + def user_review_status(self, user_id): + """Return the user's latest status votes on PR""" + # note: no filtering on repo - that would be redundant + status = ChangesetStatus.query()\ + .filter(ChangesetStatus.pull_request == self)\ + .filter(ChangesetStatus.user_id == user_id)\ + .order_by(ChangesetStatus.version)\ + .first() + return str(status.status) if status else '' + def __json__(self): return dict( revisions=self.revisions diff -r 9ecd1d4836cc -r 409eaadc0054 kallithea/templates/pullrequests/pullrequest_data.html --- a/kallithea/templates/pullrequests/pullrequest_data.html Wed Mar 11 00:24:25 2015 +0100 +++ b/kallithea/templates/pullrequests/pullrequest_data.html Wed Mar 11 01:17:33 2015 +0100 @@ -21,14 +21,21 @@ % for pr in pullrequests: - + ## review status %if pr.last_review_status: - + %else: %endif + <% status = pr.user_review_status(c.authuser.user_id) %> + %if status: + + %else: + + %endif + ## delete button %if pr.author.user_id == c.authuser.user_id: ${h.form(url('pullrequest_delete', repo_name=pr.other_repo.repo_name, pull_request_id=pr.pull_request_id),method='delete', style="display:inline-block")}