[PATCH 3 of 4] pullrequests: add pull_request_nice_id
Thomas De Schampheleire
patrickdepinguin at gmail.com
Sat Apr 25 14:33:31 EDT 2015
# HG changeset patch
# User Thomas De Schampheleire <thomas.de.schampheleire at gmail.com>
# Date 1429265659 -7200
# Fri Apr 17 12:14:19 2015 +0200
# Node ID 3d17f0d2a96eac41e6bf4312df1f6af476cce4ad
# Parent dc58eab8ff5070ab035f53fc241c924dd9aae3fb
pullrequests: add pull_request_nice_id
Currently, a pull request id is referenced as #5, and the '#' symbol is
fixed and repeated in several places. This commit adds a new property
pull_request_nice_id, that returns a string reference to the pull request,
currently in the form '#5'.
This property could be overridden by an organization if they need references
in another form, for example PR-5.
diff --git a/kallithea/lib/helpers.py b/kallithea/lib/helpers.py
--- a/kallithea/lib/helpers.py
+++ b/kallithea/lib/helpers.py
@@ -423,7 +423,7 @@
#==============================================================================
from kallithea.lib.vcs.utils import author_name, author_email
from kallithea.lib.utils2 import credentials_filter, age as _age
-from kallithea.model.db import User, ChangesetStatus
+from kallithea.model.db import User, ChangesetStatus, PullRequest
age = lambda x, y=False: _age(x, y)
capitalize = lambda x: x.capitalize()
@@ -736,12 +736,18 @@
def get_pull_request():
pull_request_id = action_params
+ pr = PullRequest.get(pull_request_id)
+ # Fallback when pull request does not exist. This should normally only
+ # occur in tests with prepopulated fixtures.
+ nice_id = pr.pull_request_nice_id if pr else '#%s' % pull_request_id
+
deleted = user_log.repository is None
if deleted:
repo_name = user_log.repository_name
else:
repo_name = user_log.repository.repo_name
- return link_to(_('Pull request #%s') % pull_request_id,
+
+ return link_to(_('Pull request %s') % nice_id,
url('pullrequest_show', repo_name=repo_name,
pull_request_id=pull_request_id))
@@ -1414,7 +1420,6 @@
def changeset_status_lbl(changeset_status):
return dict(ChangesetStatus.STATUSES).get(changeset_status)
-
def get_permission_name(key):
return dict(Permission.PERMS).get(key)
diff --git a/kallithea/model/comment.py b/kallithea/model/comment.py
--- a/kallithea/model/comment.py
+++ b/kallithea/model/comment.py
@@ -130,9 +130,9 @@
comment_url = pull_request.url(canonical=True,
anchor='comment-%s' % comment.comment_id)
subj = safe_unicode(
- h.link_to('Re pull request #%(pr_id)s: %(desc)s %(line)s' % \
+ h.link_to('Re pull request %(pr_id)s: %(desc)s %(line)s' % \
{'desc': desc,
- 'pr_id': comment.pull_request.pull_request_id,
+ 'pr_id': comment.pull_request.pull_request_nice_id,
'line': line},
comment_url)
)
@@ -148,7 +148,7 @@
#set some variables for email notification
email_kwargs = {
'pr_title': pull_request.title,
- 'pr_id': pull_request.pull_request_id,
+ 'pr_id': pull_request.pull_request_nice_id,
'status_change': status_change,
'closing_pr': closing_pr,
'pr_comment_url': comment_url,
diff --git a/kallithea/model/db.py b/kallithea/model/db.py
--- a/kallithea/model/db.py
+++ b/kallithea/model/db.py
@@ -1387,9 +1387,10 @@
pr_id = pr_repo = None
if stat.pull_request:
pr_id = stat.pull_request.pull_request_id
+ pr_nice_id = stat.pull_request.pull_request_nice_id
pr_repo = stat.pull_request.other_repo.repo_name
grouped[stat.revision] = [str(stat.status), stat.status_lbl,
- pr_id, pr_repo]
+ pr_id, pr_repo, pr_nice_id]
return grouped
def _repo_size(self):
@@ -2305,6 +2306,11 @@
.first()
return str(status.status) if status else ''
+ @property
+ def pull_request_nice_id(self):
+ '''Return a string reference to this pull request'''
+ return '#%d' % self.pull_request_id
+
def __json__(self):
return dict(
revisions=self.revisions
diff --git a/kallithea/model/notification.py b/kallithea/model/notification.py
--- a/kallithea/model/notification.py
+++ b/kallithea/model/notification.py
@@ -298,8 +298,8 @@
# self.TYPE_PASSWORD_RESET
self.TYPE_REGISTRATION: _('New user %(new_username)s registered'),
# self.TYPE_DEFAULT
- self.TYPE_PULL_REQUEST: _('Review request on %(repo_name)s pull request #%(pr_id)s from %(ref)s by %(pr_username)s'),
- self.TYPE_PULL_REQUEST_COMMENT: _('Comment on %(repo_name)s pull request #%(pr_id)s from %(ref)s by %(comment_username)s'),
+ self.TYPE_PULL_REQUEST: _('Review request on %(repo_name)s pull request %(pr_id)s from %(ref)s by %(pr_username)s'),
+ self.TYPE_PULL_REQUEST_COMMENT: _('Comment on %(repo_name)s pull request %(pr_id)s from %(ref)s by %(comment_username)s'),
}
def get_email_description(self, type_, **kwargs):
diff --git a/kallithea/model/pull_request.py b/kallithea/model/pull_request.py
--- a/kallithea/model/pull_request.py
+++ b/kallithea/model/pull_request.py
@@ -129,10 +129,10 @@
pull_request_id=pr.pull_request_id)]
subject = safe_unicode(
h.link_to(
- _('%(user)s wants you to review pull request #%(pr_id)s: %(pr_title)s') % \
+ _('%(user)s wants you to review pull request %(pr_id)s: %(pr_title)s') % \
{'user': pr.author.username,
'pr_title': pr.title,
- 'pr_id': pr.pull_request_id},
+ 'pr_id': pr.pull_request_nice_id},
pr_url)
)
body = pr.description
@@ -144,7 +144,7 @@
'pr_url': pr_url,
'pr_revisions': revision_data,
'repo_name': pr.other_repo.repo_name,
- 'pr_id': pr.pull_request_id,
+ 'pr_id': pr.pull_request_nice_id,
'ref': org_ref_name,
'pr_username': pr.author.username,
'threading': threading,
diff --git a/kallithea/templates/changelog/changelog.html b/kallithea/templates/changelog/changelog.html
--- a/kallithea/templates/changelog/changelog.html
+++ b/kallithea/templates/changelog/changelog.html
@@ -89,7 +89,7 @@
%if c.statuses.get(cs.raw_id):
<div class="changeset-status-ico">
%if c.statuses.get(cs.raw_id)[2]:
- <a class="tooltip" title="${_('Changeset status: %s\nClick to open associated pull request #%s') % (c.statuses.get(cs.raw_id)[1], c.statuses.get(cs.raw_id)[2])}" href="${h.url('pullrequest_show',repo_name=c.statuses.get(cs.raw_id)[3],pull_request_id=c.statuses.get(cs.raw_id)[2])}">
+ <a class="tooltip" title="${_('Changeset status: %s\nClick to open associated pull request %s') % (c.statuses.get(cs.raw_id)[1], c.statuses.get(cs.raw_id)[4])}" href="${h.url('pullrequest_show',repo_name=c.statuses.get(cs.raw_id)[3],pull_request_id=c.statuses.get(cs.raw_id)[2])}">
<i class="icon-circle changeset-status-${c.statuses.get(cs.raw_id)[0]}"></i>
</a>
%else:
diff --git a/kallithea/templates/changelog/changelog_summary_data.html b/kallithea/templates/changelog/changelog_summary_data.html
--- a/kallithea/templates/changelog/changelog_summary_data.html
+++ b/kallithea/templates/changelog/changelog_summary_data.html
@@ -17,7 +17,7 @@
%if c.statuses.get(cs.raw_id):
<div class="changeset-status-ico shortlog">
%if c.statuses.get(cs.raw_id)[2]:
- <a class="tooltip" title="${_('Changeset status: %s\nClick to open associated pull request #%s') % (c.statuses.get(cs.raw_id)[1], c.statuses.get(cs.raw_id)[2])}" href="${h.url('pullrequest_show',repo_name=c.statuses.get(cs.raw_id)[3],pull_request_id=c.statuses.get(cs.raw_id)[2])}">
+ <a class="tooltip" title="${_('Changeset status: %s\nClick to open associated pull request %s') % (c.statuses.get(cs.raw_id)[1], c.statuses.get(cs.raw_id)[4])}" href="${h.url('pullrequest_show',repo_name=c.statuses.get(cs.raw_id)[3],pull_request_id=c.statuses.get(cs.raw_id)[2])}">
<i class="icon-circle changeset-status-${c.statuses.get(cs.raw_id)[0]}"></i>
</a>
%else:
diff --git a/kallithea/templates/pullrequests/pullrequest_show.html b/kallithea/templates/pullrequests/pullrequest_show.html
--- a/kallithea/templates/pullrequests/pullrequest_show.html
+++ b/kallithea/templates/pullrequests/pullrequest_show.html
@@ -3,11 +3,11 @@
<%namespace name="comment" file="/changeset/changeset_file_comment.html"/>
<%block name="title">
- ${_('%s Pull Request #%s') % (c.repo_name, c.pull_request.pull_request_id)}
+ ${_('%s Pull Request %s') % (c.repo_name, c.pull_request.pull_request_nice_id)}
</%block>
<%def name="breadcrumbs_links()">
- ${_('Pull request #%s from %s#%s') % (c.pull_request.pull_request_id, c.pull_request.org_repo.repo_name, c.cs_branch_name)}
+ ${_('Pull request %s from %s#%s') % (c.pull_request.pull_request_nice_id, c.pull_request.org_repo.repo_name, c.cs_branch_name)}
</%def>
<%block name="header_menu">
More information about the kallithea-general
mailing list