# HG changeset patch # User Mads Kiilerich # Date 1477315131 -7200 # Node ID 69ee6a249f55fd1d57f7b99223e7c9bf2b821d01 # Parent 6744baed1e960ab718d9869c089e9d2ad54f36ad pullrequests: show warning when updating PR and the reviewer list has changed since the form load diff -r 6744baed1e96 -r 69ee6a249f55 kallithea/controllers/pullrequests.py --- a/kallithea/controllers/pullrequests.py Mon Oct 24 15:18:51 2016 +0200 +++ b/kallithea/controllers/pullrequests.py Mon Oct 24 15:18:51 2016 +0200 @@ -504,6 +504,19 @@ _form = PullRequestPostForm()().to_python(request.POST) reviewer_ids = set(int(s) for s in _form['review_members']) + org_reviewer_ids = set(int(s) for s in _form['org_review_members']) + current_reviewer_ids = set(prr.user_id for prr in pull_request.reviewers) + other_added = [User.get(u) for u in current_reviewer_ids - org_reviewer_ids] + other_removed = [User.get(u) for u in org_reviewer_ids - current_reviewer_ids] + if other_added: + h.flash(_('Meanwhile, the following reviewers have been added: %s') % + (', '.join(u.username for u in other_added)), + category='warning') + if other_removed: + h.flash(_('Meanwhile, the following reviewers have been removed: %s') % + (', '.join(u.username for u in other_removed)), + category='warning') + if _form['updaterev']: return self.create_new_iteration(pull_request, _form['updaterev'], diff -r 6744baed1e96 -r 69ee6a249f55 kallithea/model/forms.py --- a/kallithea/model/forms.py Mon Oct 24 15:18:51 2016 +0200 +++ b/kallithea/model/forms.py Mon Oct 24 15:18:51 2016 +0200 @@ -538,6 +538,7 @@ pullrequest_title = v.UnicodeString(strip=True, required=True) pullrequest_desc = v.UnicodeString(strip=True, required=False) + org_review_members = v.Set() review_members = v.Set() updaterev = v.UnicodeString(strip=True, required=False, if_missing=None) owner = All(v.UnicodeString(strip=True, required=True), diff -r 6744baed1e96 -r 69ee6a249f55 kallithea/templates/pullrequests/pullrequest_show.html --- a/kallithea/templates/pullrequests/pullrequest_show.html Mon Oct 24 15:18:51 2016 +0200 +++ b/kallithea/templates/pullrequests/pullrequest_show.html Mon Oct 24 15:18:51 2016 +0200 @@ -225,6 +225,9 @@
## members goes here !
+ %for member,status in c.pull_request_reviewers: + + %endfor
    %for member,status in c.pull_request_reviewers: ## WARNING: the HTML below is duplicate with diff -r 6744baed1e96 -r 69ee6a249f55 kallithea/tests/functional/test_pullrequests.py --- a/kallithea/tests/functional/test_pullrequests.py Mon Oct 24 15:18:51 2016 +0200 +++ b/kallithea/tests/functional/test_pullrequests.py Mon Oct 24 15:18:51 2016 +0200 @@ -37,6 +37,7 @@ self.log_user() regular_user = User.get_by_username(TEST_USER_REGULAR_LOGIN) regular_user2 = User.get_by_username(TEST_USER_REGULAR2_LOGIN) + admin_user = User.get_by_username(TEST_USER_ADMIN_LOGIN) # create initial PR response = self.app.post(url(controller='pullrequests', action='create', @@ -80,14 +81,18 @@ 'pullrequest_desc': 'description', 'owner': TEST_USER_ADMIN_LOGIN, '_authentication_token': self.authentication_token(), - 'review_members': [regular_user2.user_id], + 'org_review_members': [admin_user.user_id], # fake - just to get some 'meanwhile' warning ... but it is also added ... + 'review_members': [regular_user2.user_id, admin_user.user_id], }, status=302) assert response.location == 'http://localhost/%s/pull-request/%s/_/Title' % (HG_REPO, pull_request2_id) response = response.follow() # verify reviewers were added / removed + response.mustcontain('Meanwhile, the following reviewers have been added: test_regular') + response.mustcontain('Meanwhile, the following reviewers have been removed: test_admin') response.mustcontain(no='' % regular_user.user_id) response.mustcontain('' % regular_user2.user_id) + response.mustcontain('' % admin_user.user_id) def test_update_with_invalid_reviewer(self): invalid_user_id = 99999