Show More
@@ -502,9 +502,10 b' class PullrequestsController(BaseRepoCon' | |||||
502 | pull_request.title = _form['pullrequest_title'] |
|
502 | pull_request.title = _form['pullrequest_title'] | |
503 | pull_request.description = _form['pullrequest_desc'].strip() or _('No description') |
|
503 | pull_request.description = _form['pullrequest_desc'].strip() or _('No description') | |
504 | pull_request.owner = User.get_by_username(_form['owner']) |
|
504 | pull_request.owner = User.get_by_username(_form['owner']) | |
|
505 | user = User.get(c.authuser.user_id) | |||
505 | try: |
|
506 | try: | |
506 | PullRequestModel().mention_from_description(pull_request, old_description) |
|
507 | PullRequestModel().mention_from_description(user, pull_request, old_description) | |
507 | PullRequestModel().update_reviewers(pull_request_id, reviewers_ids) |
|
508 | PullRequestModel().update_reviewers(user, pull_request_id, reviewers_ids) | |
508 | except UserInvalidException as u: |
|
509 | except UserInvalidException as u: | |
509 | h.flash(_('Invalid reviewer "%s" specified') % u, category='error') |
|
510 | h.flash(_('Invalid reviewer "%s" specified') % u, category='error') | |
510 | raise HTTPBadRequest() |
|
511 | raise HTTPBadRequest() |
@@ -100,7 +100,7 b' class ChangesetCommentsModel(BaseModel):' | |||||
100 | recipients += [cs_author] |
|
100 | recipients += [cs_author] | |
101 | email_kwargs = { |
|
101 | email_kwargs = { | |
102 | 'status_change': status_change, |
|
102 | 'status_change': status_change, | |
103 |
'cs_comment_user': |
|
103 | 'cs_comment_user': user.full_name_and_username, | |
104 | 'cs_target_repo': h.canonical_url('summary_home', repo_name=repo.repo_name), |
|
104 | 'cs_target_repo': h.canonical_url('summary_home', repo_name=repo.repo_name), | |
105 | 'cs_comment_url': comment_url, |
|
105 | 'cs_comment_url': comment_url, | |
106 | 'raw_id': revision, |
|
106 | 'raw_id': revision, | |
@@ -148,7 +148,7 b' class ChangesetCommentsModel(BaseModel):' | |||||
148 | 'status_change': status_change, |
|
148 | 'status_change': status_change, | |
149 | 'closing_pr': closing_pr, |
|
149 | 'closing_pr': closing_pr, | |
150 | 'pr_comment_url': comment_url, |
|
150 | 'pr_comment_url': comment_url, | |
151 |
'pr_comment_user': |
|
151 | 'pr_comment_user': user.full_name_and_username, | |
152 | 'pr_target_repo': h.canonical_url('summary_home', |
|
152 | 'pr_target_repo': h.canonical_url('summary_home', | |
153 | repo_name=pull_request.other_repo.repo_name), |
|
153 | repo_name=pull_request.other_repo.repo_name), | |
154 | 'repo_name': pull_request.other_repo.repo_name, |
|
154 | 'repo_name': pull_request.other_repo.repo_name, |
@@ -111,11 +111,11 b' class PullRequestModel(BaseModel):' | |||||
111 |
|
111 | |||
112 | mention_recipients = set(User.get_by_username(username, case_insensitive=True) |
|
112 | mention_recipients = set(User.get_by_username(username, case_insensitive=True) | |
113 | for username in extract_mentioned_users(new.description)) |
|
113 | for username in extract_mentioned_users(new.description)) | |
114 | self.__add_reviewers(new, reviewers, mention_recipients) |
|
114 | self.__add_reviewers(created_by_user, new, reviewers, mention_recipients) | |
115 |
|
115 | |||
116 | return new |
|
116 | return new | |
117 |
|
117 | |||
118 | def __add_reviewers(self, pr, reviewers, mention_recipients=None): |
|
118 | def __add_reviewers(self, user, pr, reviewers, mention_recipients=None): | |
119 | #members |
|
119 | #members | |
120 | for member in set(reviewers): |
|
120 | for member in set(reviewers): | |
121 | _usr = self._get_user(member) |
|
121 | _usr = self._get_user(member) | |
@@ -135,7 +135,7 b' class PullRequestModel(BaseModel):' | |||||
135 | subject = safe_unicode( |
|
135 | subject = safe_unicode( | |
136 | h.link_to( |
|
136 | h.link_to( | |
137 | _('%(user)s wants you to review pull request %(pr_nice_id)s: %(pr_title)s') % \ |
|
137 | _('%(user)s wants you to review pull request %(pr_nice_id)s: %(pr_title)s') % \ | |
138 |
{'user': |
|
138 | {'user': user.username, | |
139 | 'pr_title': pr.title, |
|
139 | 'pr_title': pr.title, | |
140 | 'pr_nice_id': pr.nice_id()}, |
|
140 | 'pr_nice_id': pr.nice_id()}, | |
141 | pr_url) |
|
141 | pr_url) | |
@@ -144,19 +144,19 b' class PullRequestModel(BaseModel):' | |||||
144 | _org_ref_type, org_ref_name, _org_rev = pr.org_ref.split(':') |
|
144 | _org_ref_type, org_ref_name, _org_rev = pr.org_ref.split(':') | |
145 | email_kwargs = { |
|
145 | email_kwargs = { | |
146 | 'pr_title': pr.title, |
|
146 | 'pr_title': pr.title, | |
147 |
'pr_user_created': |
|
147 | 'pr_user_created': user.full_name_and_username, | |
148 | 'pr_repo_url': h.canonical_url('summary_home', repo_name=pr.other_repo.repo_name), |
|
148 | 'pr_repo_url': h.canonical_url('summary_home', repo_name=pr.other_repo.repo_name), | |
149 | 'pr_url': pr_url, |
|
149 | 'pr_url': pr_url, | |
150 | 'pr_revisions': revision_data, |
|
150 | 'pr_revisions': revision_data, | |
151 | 'repo_name': pr.other_repo.repo_name, |
|
151 | 'repo_name': pr.other_repo.repo_name, | |
152 | 'pr_nice_id': pr.nice_id(), |
|
152 | 'pr_nice_id': pr.nice_id(), | |
153 | 'ref': org_ref_name, |
|
153 | 'ref': org_ref_name, | |
154 |
'pr_username': |
|
154 | 'pr_username': user.username, | |
155 | 'threading': threading, |
|
155 | 'threading': threading, | |
156 | 'is_mention': False, |
|
156 | 'is_mention': False, | |
157 | } |
|
157 | } | |
158 | if reviewers: |
|
158 | if reviewers: | |
159 |
NotificationModel().create(created_by= |
|
159 | NotificationModel().create(created_by=user, subject=subject, body=body, | |
160 | recipients=reviewers, |
|
160 | recipients=reviewers, | |
161 | type_=Notification.TYPE_PULL_REQUEST, |
|
161 | type_=Notification.TYPE_PULL_REQUEST, | |
162 | email_kwargs=email_kwargs) |
|
162 | email_kwargs=email_kwargs) | |
@@ -167,21 +167,21 b' class PullRequestModel(BaseModel):' | |||||
167 | if mention_recipients: |
|
167 | if mention_recipients: | |
168 | email_kwargs['is_mention'] = True |
|
168 | email_kwargs['is_mention'] = True | |
169 | subject = _('[Mention]') + ' ' + subject |
|
169 | subject = _('[Mention]') + ' ' + subject | |
170 |
NotificationModel().create(created_by= |
|
170 | NotificationModel().create(created_by=user, subject=subject, body=body, | |
171 | recipients=mention_recipients, |
|
171 | recipients=mention_recipients, | |
172 | type_=Notification.TYPE_PULL_REQUEST, |
|
172 | type_=Notification.TYPE_PULL_REQUEST, | |
173 | email_kwargs=email_kwargs) |
|
173 | email_kwargs=email_kwargs) | |
174 |
|
174 | |||
175 | def mention_from_description(self, pr, old_description=''): |
|
175 | def mention_from_description(self, user, pr, old_description=''): | |
176 | mention_recipients = set(User.get_by_username(username, case_insensitive=True) |
|
176 | mention_recipients = set(User.get_by_username(username, case_insensitive=True) | |
177 | for username in extract_mentioned_users(pr.description)) |
|
177 | for username in extract_mentioned_users(pr.description)) | |
178 | mention_recipients.difference_update(User.get_by_username(username, case_insensitive=True) |
|
178 | mention_recipients.difference_update(User.get_by_username(username, case_insensitive=True) | |
179 | for username in extract_mentioned_users(old_description)) |
|
179 | for username in extract_mentioned_users(old_description)) | |
180 |
|
180 | |||
181 | log.debug("Mentioning %s", mention_recipients) |
|
181 | log.debug("Mentioning %s", mention_recipients) | |
182 | self.__add_reviewers(pr, [], mention_recipients) |
|
182 | self.__add_reviewers(user, pr, [], mention_recipients) | |
183 |
|
183 | |||
184 | def update_reviewers(self, pull_request, reviewers_ids): |
|
184 | def update_reviewers(self, user, pull_request, reviewers_ids): | |
185 | reviewers_ids = set(reviewers_ids) |
|
185 | reviewers_ids = set(reviewers_ids) | |
186 | pull_request = self.__get_pull_request(pull_request) |
|
186 | pull_request = self.__get_pull_request(pull_request) | |
187 | current_reviewers = PullRequestReviewers.query()\ |
|
187 | current_reviewers = PullRequestReviewers.query()\ | |
@@ -194,7 +194,7 b' class PullRequestModel(BaseModel):' | |||||
194 | to_remove = current_reviewers_ids.difference(reviewers_ids) |
|
194 | to_remove = current_reviewers_ids.difference(reviewers_ids) | |
195 |
|
195 | |||
196 | log.debug("Adding %s reviewers", to_add) |
|
196 | log.debug("Adding %s reviewers", to_add) | |
197 | self.__add_reviewers(pull_request, to_add) |
|
197 | self.__add_reviewers(user, pull_request, to_add) | |
198 |
|
198 | |||
199 | log.debug("Removing %s reviewers", to_remove) |
|
199 | log.debug("Removing %s reviewers", to_remove) | |
200 | for uid in to_remove: |
|
200 | for uid in to_remove: |
General Comments 0
You need to be logged in to leave comments.
Login now