# HG changeset patch # User Marcin Kuzminski # Date 1346796518 -7200 # Node ID 0a623ec24b62545b4e62ecdcfe0c9b4e16286936 # Parent 69420c48a0e61274718f8aa37617e391f016dba2 part2 of pull-request notification improvements diff -r 69420c48a0e6 -r 0a623ec24b62 rhodecode/model/comment.py --- a/rhodecode/model/comment.py Tue Sep 04 22:46:05 2012 +0200 +++ b/rhodecode/model/comment.py Wed Sep 05 00:08:38 2012 +0200 @@ -125,16 +125,15 @@ recipients += [User.get_by_email(author_email)] #pull request elif pull_request: + _url = h.url('pullrequest_show', + repo_name=pull_request.other_repo.repo_name, + pull_request_id=pull_request.pull_request_id, + anchor='comment-%s' % comment.comment_id, + qualified=True, + ) subj = safe_unicode( h.link_to('Re pull request: %(desc)s %(line)s' % \ - {'desc': desc, 'line': line}, - h.url('pullrequest_show', - repo_name=pull_request.other_repo.repo_name, - pull_request_id=pull_request.pull_request_id, - anchor='comment-%s' % comment.comment_id, - qualified=True, - ) - ) + {'desc': desc, 'line': line}, _url) ) notification_type = Notification.TYPE_PULL_REQUEST_COMMENT @@ -144,22 +143,36 @@ # add pull request author recipients += [pull_request.author] + # add the reviewers to notification + recipients += [x.user for x in pull_request.reviewers] + + #set some variables for email notification + kwargs = { + 'pr_id': pull_request.pull_request_id, + 'status_change': status_change, + 'pr_comment_url': _url, + 'pr_comment_user': h.person(user.email), + 'pr_target_repo': h.url('summary_home', + repo_name=pull_request.other_repo.repo_name, + qualified=True) + } # create notification objects, and emails NotificationModel().create( - created_by=user, subject=subj, body=body, - recipients=recipients, type_=notification_type, - email_kwargs={'status_change': status_change} + created_by=user, subject=subj, body=body, + recipients=recipients, type_=notification_type, + email_kwargs=kwargs ) mention_recipients = set(self._extract_mentions(body))\ .difference(recipients) if mention_recipients: + kwargs.update({'pr_mention': True}) subj = _('[Mention]') + ' ' + subj NotificationModel().create( created_by=user, subject=subj, body=body, recipients=mention_recipients, type_=notification_type, - email_kwargs={'status_change': status_change} + email_kwargs=kwargs ) return comment diff -r 69420c48a0e6 -r 0a623ec24b62 rhodecode/model/notification.py --- a/rhodecode/model/notification.py Tue Sep 04 22:46:05 2012 +0200 +++ b/rhodecode/model/notification.py Wed Sep 05 00:08:38 2012 +0200 @@ -245,6 +245,7 @@ TYPE_PASSWORD_RESET = 'passoword_link' TYPE_REGISTRATION = Notification.TYPE_REGISTRATION TYPE_PULL_REQUEST = Notification.TYPE_PULL_REQUEST + TYPE_PULL_REQUEST_COMMENT = Notification.TYPE_PULL_REQUEST_COMMENT TYPE_DEFAULT = 'default' def __init__(self): @@ -257,6 +258,7 @@ self.TYPE_REGISTRATION: 'email_templates/registration.html', self.TYPE_DEFAULT: 'email_templates/default.html', self.TYPE_PULL_REQUEST: 'email_templates/pull_request.html', + self.TYPE_PULL_REQUEST_COMMENT: 'email_templates/pull_request_comment.html', } def get_email_tmpl(self, type_, **kwargs): diff -r 69420c48a0e6 -r 0a623ec24b62 rhodecode/templates/email_templates/pull_request_comment.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rhodecode/templates/email_templates/pull_request_comment.html Wed Sep 05 00:08:38 2012 +0200 @@ -0,0 +1,15 @@ +## -*- coding: utf-8 -*- +<%inherit file="main.html"/> + +User ${pr_comment_user} commented on pull request #${pr_id} for +repository ${pr_target_repo} + +

+${body} + +%if status_change: + New status -> ${status_change} +%endif +

+ +View this comment here: ${pr_comment_url}