email notifications
This commit is contained in:
parent
4658732dde
commit
0ff1f115dd
5 changed files with 122 additions and 0 deletions
89
issue/notifications.py
Normal file
89
issue/notifications.py
Normal file
|
@ -0,0 +1,89 @@
|
|||
from django.core.mail import send_mass_mail
|
||||
from django.template.loader import render_to_string
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.conf import settings
|
||||
|
||||
from issue.models import *
|
||||
|
||||
|
||||
def notify_new_issue(issue):
|
||||
|
||||
project = issue.project
|
||||
|
||||
dests = project.subscribers.all().distinct()
|
||||
|
||||
if hasattr(settings, 'FROM_ADDR'):
|
||||
from_addr = settings.FROM_ADDR
|
||||
else:
|
||||
return
|
||||
|
||||
subject = "[PonyTracker] New issue: %s (%s)" %(issue.title, project.name)
|
||||
|
||||
data = []
|
||||
|
||||
for dest in dests:
|
||||
|
||||
if dest == issue.author:
|
||||
continue
|
||||
|
||||
dest_addr = dest.email
|
||||
if not dest_addr:
|
||||
continue
|
||||
|
||||
c = {
|
||||
'dest': dest.username,
|
||||
'author': issue.author.username,
|
||||
'title': issue.title,
|
||||
'description:': issue.description,
|
||||
'uri': settings.BASE_URL \
|
||||
+ reverse('show-issue', args=[project.name, issue.id]),
|
||||
}
|
||||
|
||||
message = render_to_string('emails/new_issue.html', c)
|
||||
|
||||
data += [(subject, message, from_addr, [dest_addr])]
|
||||
|
||||
send_mass_mail(tuple(data))
|
||||
|
||||
|
||||
def notify_new_comment(event):
|
||||
|
||||
issue = event.issue
|
||||
project = issue.project
|
||||
|
||||
dests = issue.subscribers.all()
|
||||
dests |= project.subscribers.all()
|
||||
dests = dests.distinct()
|
||||
|
||||
if hasattr(settings, 'FROM_ADDR'):
|
||||
from_addr = settings.FROM_ADDR
|
||||
else:
|
||||
return
|
||||
|
||||
subject = "[PonyTracker] New comment - %s (%s)" %(issue.title, project.name)
|
||||
|
||||
data = []
|
||||
|
||||
for dest in dests:
|
||||
|
||||
if dest == event.author:
|
||||
continue
|
||||
|
||||
dest_addr = dest.email
|
||||
if not dest_addr:
|
||||
continue
|
||||
|
||||
c = {
|
||||
'dest': dest.username,
|
||||
'author': event.author.username,
|
||||
'title': issue.title,
|
||||
'comment': event.additionnal_section,
|
||||
'uri': settings.BASE_URL \
|
||||
+ reverse('show-issue', args=[project.name, issue.id]),
|
||||
}
|
||||
|
||||
message = render_to_string('emails/new_comment.html', c)
|
||||
|
||||
data += [(subject, message, from_addr, [dest_addr])]
|
||||
|
||||
send_mass_mail(tuple(data))
|
Loading…
Add table
Add a link
Reference in a new issue