changeset 3257:32a283e5fd0d beta

Don't send notification email for auto-status changes
author Marcin Kuzminski <marcin@python-works.com>
date Tue, 29 Jan 2013 22:40:29 +0100
parents b67173bae3ff
children 6f71e6f81c9f
files rhodecode/model/changeset_status.py rhodecode/model/comment.py
diffstat 2 files changed, 19 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/model/changeset_status.py	Tue Jan 29 03:47:30 2013 +0100
+++ b/rhodecode/model/changeset_status.py	Tue Jan 29 22:40:29 2013 +0100
@@ -132,10 +132,11 @@
         if not comment:
             from rhodecode.model.comment import ChangesetCommentsModel
             comment = ChangesetCommentsModel().create(
-                text='Auto status change',
+                text='Auto status change to %s' % status,
                 repo=repo,
                 user=user,
                 pull_request=pull_request,
+                send_email=False
             )
         if revision:
             q = q.filter(ChangesetStatus.repo == repo)
--- a/rhodecode/model/comment.py	Tue Jan 29 03:47:30 2013 +0100
+++ b/rhodecode/model/comment.py	Tue Jan 29 22:40:29 2013 +0100
@@ -58,7 +58,7 @@
         return user_objects
 
     def create(self, text, repo, user, revision=None, pull_request=None,
-               f_path=None, line_no=None, status_change=None):
+               f_path=None, line_no=None, status_change=None, send_email=True):
         """
         Creates new comment for changeset or pull request.
         IF status_change is not none this comment is associated with a
@@ -72,6 +72,7 @@
         :param f_path:
         :param line_no:
         :param status_change:
+        :param send_email:
         """
         if not text:
             return
@@ -164,25 +165,27 @@
                                    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=email_kwargs
-        )
 
-        mention_recipients = set(self._extract_mentions(body))\
-                                .difference(recipients)
-        if mention_recipients:
-            email_kwargs.update({'pr_mention': True})
-            subj = _('[Mention]') + ' ' + subj
+        if send_email:
+            # create notification objects, and emails
             NotificationModel().create(
                 created_by=user, subject=subj, body=body,
-                recipients=mention_recipients,
-                type_=notification_type,
+                recipients=recipients, type_=notification_type,
                 email_kwargs=email_kwargs
             )
 
+            mention_recipients = set(self._extract_mentions(body))\
+                                    .difference(recipients)
+            if mention_recipients:
+                email_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=email_kwargs
+                )
+
         return comment
 
     def delete(self, comment):