2009-01-05 14:30:08 +02:00
from django . core . mail import EmailMultiAlternatives
from django . conf import settings
from django . core . urlresolvers import reverse
2009-01-19 19:50:01 +02:00
from django . utils . translation import ugettext as _
2009-01-05 14:30:08 +02:00
2009-03-31 00:03:16 +03:00
from forum import settings as forum_settings
from forum . util import absolute_url
2009-01-17 17:56:19 +02:00
2009-01-19 19:50:01 +02:00
TOPIC_SUBSCRIPTION_TEXT_TEMPLATE = ( u """ New reply from %(username)s to topic that you have subscribed on.
- - -
% ( message ) s
- - -
See topic : % ( post_url ) s
Unsubscribe % ( unsubscribe_url ) s """ )
PM_RECIPIENT_TEXT_TEMPLATE = ( u """ User %(username)s have sent your the new private message.
- - -
% ( message ) s
- - -
See message online : % ( pm_url ) s """ )
def send_mail ( rec_list , subject , text , html = None ) :
"""
Shortcut for sending email .
"""
from_email = settings . DEFAULT_FROM_EMAIL
msg = EmailMultiAlternatives ( subject , text , from_email , rec_list )
if html :
msg . attach_alternative ( html , " text/html " )
if forum_settings . EMAIL_DEBUG :
print ' ---begin--- '
print ' To: ' , rec_list
print ' Subject: ' , subject
print ' Body: ' , text
print ' ---end--- '
else :
msg . send ( fail_silently = True )
def notify_topic_subscribers ( post ) :
2009-03-31 00:03:16 +03:00
from forum . models import Post
2009-01-05 14:30:08 +02:00
topic = post . topic
if post != topic . head :
for user in topic . subscribers . all ( ) :
if user != post . user :
subject = u ' RE: %s ' % topic . name
to_email = user . email
2009-01-19 19:50:01 +02:00
text_content = TOPIC_SUBSCRIPTION_TEXT_TEMPLATE % {
' username ' : post . user . username ,
' message ' : post . body_text ,
' post_url ' : absolute_url ( post . get_absolute_url ( ) ) ,
2009-01-22 17:52:10 +02:00
' unsubscribe_url ' : absolute_url ( reverse ( ' forum_delete_subscription ' , args = [ post . topic . id ] ) ) ,
2009-01-19 19:50:01 +02:00
}
2009-01-05 14:30:08 +02:00
#html_content = html_version(post)
2009-01-19 19:50:01 +02:00
send_mail ( [ to_email ] , subject , text_content )
2009-01-05 14:30:08 +02:00
2009-01-19 19:50:01 +02:00
def notify_pm_recipients ( pm ) :
2009-01-21 17:43:08 +02:00
if not pm . read :
2009-03-31 00:03:16 +03:00
from forum . models import PrivateMessage
2009-01-21 17:43:08 +02:00
subject = ( u ' There are new messages ' )
to_email = pm . dst_user . email
text_content = PM_RECIPIENT_TEXT_TEMPLATE % {
' username ' : pm . src_user . username ,
' message ' : pm . body_text ,
' pm_url ' : absolute_url ( pm . get_absolute_url ( ) ) ,
}
send_mail ( [ to_email ] , subject , text_content )