[PATCH] pullrequests: add support for custom pull request id prefix
Thomas De Schampheleire
patrickdepinguin at gmail.com
Sat Apr 18 16:11:34 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 6e760af6050e567239155a7a43b5ab02eddf877d
# Parent 32de32f6946110ecd0b8d2c79f0270025f3afaca
pullrequests: add support for custom pull request id prefix
Currently, a pull request id is referenced as #5, and the '#' symbol is fixed.
This commit adds a configuration parameter 'pull_request_prefix', defaulting
to '#', that can be used to customize the prefix.
For example, one could use 'PR-' to create references of the form 'PR-5'.
diff --git a/development.ini b/development.ini
--- a/development.ini
+++ b/development.ini
@@ -248,6 +248,10 @@
#issue_server_link_wiki = https://mywiki.com/{id}
#issue_prefix_wiki = WIKI-
+## pullrequest id prefix
+## a prefix key to use when referring to pull request IDs. For example, using
+## '#' will give '#5' while using 'PR-' will give 'PR-5'.
+pull_request_prefix = #
## instance-id prefix
## a prefix key for this instance used for cache invalidation when running
diff --git a/kallithea/bin/template.ini.mako b/kallithea/bin/template.ini.mako
--- a/kallithea/bin/template.ini.mako
+++ b/kallithea/bin/template.ini.mako
@@ -245,6 +245,10 @@
#issue_server_link_wiki = https://mywiki.com/{id}
#issue_prefix_wiki = WIKI-
+<%text>## pullrequest id prefix</%text>
+<%text>## a prefix key to use when referring to pull request IDs. For example, using</%text>
+<%text>## '#' will give '#5' while using 'PR-' will give 'PR-5'.</%text>
+pull_request_prefix = #
<%text>## instance-id prefix</%text>
<%text>## a prefix key for this instance used for cache invalidation when running</%text>
diff --git a/kallithea/config/deployment.ini_tmpl b/kallithea/config/deployment.ini_tmpl
--- a/kallithea/config/deployment.ini_tmpl
+++ b/kallithea/config/deployment.ini_tmpl
@@ -242,6 +242,10 @@
#issue_server_link_wiki = https://mywiki.com/{id}
#issue_prefix_wiki = WIKI-
+## pullrequest id prefix
+## a prefix key to use when referring to pull request IDs. For example, using
+## '#' will give '#5' while using 'PR-' will give 'PR-5'.
+pull_request_prefix = #
## instance-id prefix
## a prefix key for this instance used for cache invalidation when running
diff --git a/kallithea/lib/helpers.py b/kallithea/lib/helpers.py
--- a/kallithea/lib/helpers.py
+++ b/kallithea/lib/helpers.py
@@ -741,7 +741,7 @@
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') % pull_request_reference(pull_request_id),
url('pullrequest_show', repo_name=repo_name,
pull_request_id=pull_request_id))
@@ -1414,6 +1414,10 @@
def changeset_status_lbl(changeset_status):
return dict(ChangesetStatus.STATUSES).get(changeset_status)
+def pull_request_reference(pull_request_id):
+ from kallithea import CONFIG
+ pull_request_prefix = CONFIG.get('pull_request_prefix', '#')
+ return '%s%s' % (pull_request_prefix, pull_request_id)
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': h.pull_request_reference(comment.pull_request.pull_request_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': h.pull_request_reference(pull_request.pull_request_id),
'status_change': status_change,
'closing_pr': closing_pr,
'pr_comment_url': comment_url,
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': h.pull_request_reference(pr.pull_request_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': h.pull_request_reference(pr.pull_request_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') % (h.changeset_status_lbl(c.statuses.get(cs.raw_id)[0]), 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') % (h.changeset_status_lbl(c.statuses.get(cs.raw_id)[0]), h.pull_request_reference(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])}">
<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)[0], 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)[0], h.pull_request_reference(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])}">
<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, h.pull_request_reference(c.pull_request.pull_request_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') % (h.pull_request_reference(c.pull_request.pull_request_id), c.pull_request.org_repo.repo_name, c.cs_branch_name)}
</%def>
<%block name="header_menu">
diff --git a/production.ini b/production.ini
--- a/production.ini
+++ b/production.ini
@@ -246,6 +246,10 @@
#issue_server_link_wiki = https://mywiki.com/{id}
#issue_prefix_wiki = WIKI-
+## pullrequest id prefix
+## a prefix key to use when referring to pull request IDs. For example, using
+## '#' will give '#5' while using 'PR-' will give 'PR-5'.
+pull_request_prefix = #
## instance-id prefix
## a prefix key for this instance used for cache invalidation when running
diff --git a/test.ini b/test.ini
--- a/test.ini
+++ b/test.ini
@@ -248,6 +248,10 @@
#issue_server_link_wiki = https://mywiki.com/{id}
#issue_prefix_wiki = WIKI-
+## pullrequest id prefix
+## a prefix key to use when referring to pull request IDs. For example, using
+## '#' will give '#5' while using 'PR-' will give 'PR-5'.
+pull_request_prefix = #
## instance-id prefix
## a prefix key for this instance used for cache invalidation when running
More information about the kallithea-general
mailing list