Mercurial > kallithea
changeset 4901:409eaadc0054
pullrequests: on 'my pullrequests' show the user's own vote as second column next to 'latest vote'
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Wed, 11 Mar 2015 01:17:33 +0100 |
parents | 9ecd1d4836cc |
children | 03bbd33bc084 |
files | kallithea/model/db.py kallithea/templates/pullrequests/pullrequest_data.html |
diffstat | 2 files changed, 20 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- 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
--- 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 @@ </thead> % for pr in pullrequests: <tr class="${'pr-closed' if pr.is_closed() else ''}"> - <td width="60px"> + <td width="80px"> ## review status %if pr.last_review_status: - <i class="icon-circle changeset-status-${pr.last_review_status}" title="${_("Someone voted: %s") % pr.last_review_status}"></i> + <i class="icon-circle changeset-status-${pr.last_review_status}" title="${_("Latest vote: %s") % pr.last_review_status}"></i> %else: <i class="icon-circle changeset-status-not_reviewed" title="${_("Nobody voted")}"></i> %endif + <% status = pr.user_review_status(c.authuser.user_id) %> + %if status: + <i class="icon-circle changeset-status-${status}" title="${_("You voted: %s") % status}"></i> + %else: + <i class="icon-circle changeset-status-not_reviewed" title="${_("You didn't vote")}"></i> + %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")}