changeset 3781:40d50bb7cf2f beta

emailing: log failing emailing as an error TODO: The failure should be reported back to the user (or the admins). The system should not silently not send any emails to the targeted recipients. Even better: it should inform the user whenever emails was (scheduled to be) sent - and to whom.
author Mads Kiilerich <madski@unity3d.com>
date Wed, 10 Apr 2013 03:00:38 +0200
parents 1de8abd9a4e1
children c7c4855517c4
files rhodecode/model/notification.py rhodecode/model/pull_request.py
diffstat 2 files changed, 7 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/model/notification.py	Thu Apr 04 12:12:38 2013 +0200
+++ b/rhodecode/model/notification.py	Wed Apr 10 03:00:38 2013 +0200
@@ -85,6 +85,9 @@
                 obj = self._get_user(u)
                 if obj:
                     recipients_objs.append(obj)
+                else:
+                    # TODO: inform user that requested operation couldn't be completed
+                    log.error('cannot email unknown user %r', u)
             recipients_objs = set(recipients_objs)
             log.debug('sending notifications %s to %s' % (
                 type_, recipients_objs)
@@ -95,6 +98,7 @@
             log.debug('sending notifications %s to admins: %s' % (
                 type_, recipients_objs)
             )
+        # TODO: inform user who are notified
         notif = Notification.create(
             created_by=created_by_obj, subject=subject,
             body=body, recipients=recipients_objs, type_=type_
--- a/rhodecode/model/pull_request.py	Thu Apr 04 12:12:38 2013 +0200
+++ b/rhodecode/model/pull_request.py	Wed Apr 10 03:00:38 2013 +0200
@@ -89,8 +89,6 @@
         revision_data = [(x.raw_id, x.message)
                          for x in map(org_repo.get_changeset, revisions)]
         #notification to reviewers
-        notif = NotificationModel()
-
         pr_url = h.url('pullrequest_show', repo_name=other_repo.repo_name,
                        pull_request_id=new.pull_request_id,
                        qualified=True,
@@ -114,9 +112,9 @@
             'pr_revisions': revision_data
         }
 
-        notif.create(created_by=created_by_user, subject=subject, body=body,
-                     recipients=reviewers,
-                     type_=Notification.TYPE_PULL_REQUEST, email_kwargs=kwargs)
+        NotificationModel().create(created_by=created_by_user, subject=subject, body=body,
+                                   recipients=reviewers,
+                                   type_=Notification.TYPE_PULL_REQUEST, email_kwargs=kwargs)
         return new
 
     def update_reviewers(self, pull_request, reviewers_ids):