[PATCH 2 of 2] pullrequest: internally use username iso userid when adding reviewers
Thomas De Schampheleire
patrickdepinguin at gmail.com
Mon Jun 22 12:45:25 EDT 2015
# HG changeset patch
# User Thomas De Schampheleire <thomas.de.schampheleire at gmail.com>
# Date 1434744060 -7200
# Fri Jun 19 22:01:00 2015 +0200
# Node ID 0e58e20f94d3a3fbb84f588397c2def50dd3b35d
# Parent 68032f8bd7f52c676bb5143a03b0dfd5df242f0c
pullrequest: internally use username iso userid when adding reviewers
When using API calls to create/update pullrequests and associated reviewers,
it is not convenient to need to know the user ids. Rather, change the form
handling so that usernames are used as form data.
diff --git a/kallithea/controllers/pullrequests.py b/kallithea/controllers/pullrequests.py
--- a/kallithea/controllers/pullrequests.py
+++ b/kallithea/controllers/pullrequests.py
@@ -374,7 +374,7 @@ class PullrequestsController(BaseRepoCon
return redirect(pull_request.url())
- def create_update(self, old_pull_request, updaterev, title, description, reviewers_ids):
+ def create_update(self, old_pull_request, updaterev, title, description, reviewers):
org_repo = RepoModel()._get_repo(old_pull_request.org_repo.repo_name)
org_ref_type, org_ref_name, org_rev = old_pull_request.org_ref.split(':')
new_org_rev = self._get_ref_rev(org_repo, 'rev', updaterev)
@@ -448,7 +448,7 @@ class PullrequestsController(BaseRepoCon
self.authuser.user_id,
old_pull_request.org_repo.repo_name, new_org_ref,
old_pull_request.other_repo.repo_name, new_other_ref,
- revisions, reviewers_ids, title, description
+ revisions, reviewers, title, description
)
except UserInvalidException, u:
h.flash(_('Invalid reviewer "%s" specified') % u, category='error')
@@ -490,21 +490,21 @@ class PullrequestsController(BaseRepoCon
raise HTTPForbidden()
_form = PullRequestPostForm()().to_python(request.POST)
- reviewers_ids = [int(s) for s in _form['review_members']]
+ reviewers = _form['review_members']
if _form['updaterev']:
return self.create_update(pull_request,
_form['updaterev'],
_form['pullrequest_title'],
_form['pullrequest_desc'],
- reviewers_ids)
+ reviewers)
old_description = pull_request.description
pull_request.title = _form['pullrequest_title']
pull_request.description = _form['pullrequest_desc'].strip() or _('No description')
try:
PullRequestModel().mention_from_description(pull_request, old_description)
- PullRequestModel().update_reviewers(pull_request_id, reviewers_ids)
+ PullRequestModel().update_reviewers(pull_request_id, reviewers)
except UserInvalidException, u:
h.flash(_('Invalid reviewer "%s" specified') % u, category='error')
raise HTTPBadRequest()
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
@@ -179,8 +179,8 @@ class PullRequestModel(BaseModel):
log.debug("Mentioning %s" % mention_recipients)
self.__add_reviewers(pr, [], mention_recipients)
- def update_reviewers(self, pull_request, reviewers_ids):
- reviewers_ids = set(reviewers_ids)
+ def update_reviewers(self, pull_request, reviewers):
+ reviewers_ids = set([self._get_user(member).user_id for member in reviewers])
pull_request = self.__get_pull_request(pull_request)
current_reviewers = PullRequestReviewers.query()\
.filter(PullRequestReviewers.pull_request==
diff --git a/kallithea/public/js/base.js b/kallithea/public/js/base.js
--- a/kallithea/public/js/base.js
+++ b/kallithea/public/js/base.js
@@ -1484,13 +1484,13 @@ var addReviewMember = function(id,fname,
' </div>\n'+
' <div class="reviewer_gravatar gravatar">{0}</div>\n'+
' <div style="float:left;">{1}</div>\n'+
- ' <input type="hidden" value="{2}" name="review_members" />\n'+
+ ' <input type="hidden" value="{3}" name="review_members" />\n'+
' <div class="reviewer_member_remove action_button" onclick="removeReviewMember({2})">\n'+
' <i class="icon-minus-circled"></i>\n'+
' </div> (add not saved)\n'+
' </div>\n'+
' </li>\n'
- ).format(gravatarelm, displayname, id);
+ ).format(gravatarelm, displayname, id, nname);
// check if we don't have this ID already in
var ids = [];
$('#review_members').find('li').each(function() {
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
@@ -224,7 +224,7 @@
${h.gravatar(member.email, size=14)}
</div>
<div style="float:left;">${member.full_name} (${_('Owner') if c.pull_request.user_id == member.user_id else _('Reviewer')})</div>
- <input type="hidden" value="${member.user_id}" name="review_members" />
+ <input type="hidden" value="${member.username}" name="review_members" />
%if editable:
<div class="reviewer_member_remove action_button" onclick="removeReviewMember(${member.user_id})" title="${_('Remove reviewer')}">
<i class="icon-minus-circled"></i>
More information about the kallithea-general
mailing list