def email_about_suggested_event(event, base_url): base_url = fix_base_url(base_url) emails = _get_add_event_emails() event_title = event.title if len(event_title) > 30: event_title = '%s...' % event_title[:27] comments = ( SuggestedEventComment.objects .filter(suggested_event=event) .order_by('created') ) subject = ( '[Air Mozilla] New suggested event: %s' % event_title ) assert emails context = { 'event': event, 'base_url': base_url, 'comments': comments, 'subject': subject, } html_body = render_to_string( 'suggest/_email_submitted.html', context ) body = html2text(html_body) email = EmailMultiAlternatives( subject, body, settings.EMAIL_FROM_ADDRESS, emails ) email.attach_alternative(html_body, "text/html") email.send()
def email_about_approval_requested(event, group, base_url): base_url = fix_base_url(base_url) emails = [u.email for u in group.user_set.filter(is_active=True)] if not emails: return subject = ('[Air Mozilla] Approval requested: "%s"' % event.title) try: suggested_event = SuggestedEvent.objects.get(accepted=event) except SuggestedEvent.DoesNotExist: suggested_event = None context = { 'group': group.name, 'title': event.title, 'event': event, 'suggested_event': suggested_event, 'subject': subject, 'base_url': base_url, } html_body = render_to_string('manage/_email_approval.html', context) body = html2text(html_body) email = EmailMultiAlternatives( subject, body, 'Air Mozilla <%s>' % settings.EMAIL_FROM_ADDRESS, emails) email.attach_alternative(html_body, "text/html") email.send()
def email_about_suggested_event_comment(comment, base_url): base_url = fix_base_url(base_url) emails = _get_add_event_emails() event_title = comment.suggested_event.title if len(event_title) > 30: event_title = '%s...' % event_title[:27] subject = ( '[Air Mozilla] New comment on suggested event: %s' % event_title ) context = { 'event': comment.suggested_event, 'comment': comment, 'base_url': base_url, 'subject': subject, } html_body = render_to_string( 'suggest/_email_comment.html', context ) assert emails body = html2text(html_body) email = EmailMultiAlternatives( subject, body, settings.EMAIL_FROM_ADDRESS, emails ) email.attach_alternative(html_body, "text/html") email.send()
def email_about_rejected_suggestion(event, user, base_url): base_url = fix_base_url(base_url) emails = (event.user.email,) subject = ( '[Air Mozilla] Requested event not accepted: %s' % event.title ) context = { 'event': event, 'user': user, 'base_url': base_url, 'subject': subject, } html_body = render_to_string( 'manage/_email_suggested_rejected.html', context ) body = html2text(html_body) email = EmailMultiAlternatives( subject, body, 'Air Mozilla <%s>' % settings.EMAIL_FROM_ADDRESS, emails ) email.attach_alternative(html_body, "text/html") email.send()
def email_about_suggestion_comment(comment, user, base_url): base_url = fix_base_url(base_url) event = comment.suggested_event emails = (event.user.email,) event_title = comment.suggested_event.title if len(event_title) > 30: event_title = '%s...' % event_title[:27] subject = ( '[Air Mozilla] New comment on your suggested event ("%s")' % ( event_title, ) ) context = { 'event': event, 'comment': comment, 'user': user, 'base_url': base_url, 'subject': subject, } html_body = render_to_string( 'manage/_email_suggested_comment.html', context ) body = html2text(html_body) email = EmailMultiAlternatives( subject, body, 'Air Mozilla <%s>' % settings.EMAIL_FROM_ADDRESS, emails ) email.attach_alternative(html_body, "text/html") email.send()
def email_about_approval_requested(event, group, base_url): base_url = fix_base_url(base_url) emails = [u.email for u in group.user_set.filter(is_active=True)] if not emails: return subject = ( '[Air Mozilla] Approval requested: "%s"' % event.title ) try: suggested_event = SuggestedEvent.objects.get(accepted=event) except SuggestedEvent.DoesNotExist: suggested_event = None context = { 'group': group.name, 'title': event.title, 'event': event, 'suggested_event': suggested_event, 'subject': subject, 'base_url': base_url, } html_body = render_to_string( 'manage/_email_approval.html', context ) body = html2text(html_body) email = EmailMultiAlternatives( subject, body, 'Air Mozilla <%s>' % settings.EMAIL_FROM_ADDRESS, emails ) email.attach_alternative(html_body, "text/html") email.send()
def send_reply_notification(comment, base_url): base_url = fix_base_url(base_url) parent = comment.reply_to assert parent event = comment.event discussion = Discussion.objects.get(event=event) try: Unsubscription.objects.get(user=parent.user, discussion=discussion) return except Unsubscription.DoesNotExist: try: Unsubscription.objects.get(user=parent.user, ) return except Unsubscription.DoesNotExist: pass discussion = Discussion.objects.get(event=event) unsubscribe_discussion_url = _get_unsubscribe_discussion_url( parent.user, discussion) unsubscribe_all_url = _get_unsubscribe_all_url(parent.user) context = { 'reply': comment, 'comment': parent, 'event': event, 'base_url': base_url, 'unsubscribe_discussion_url': unsubscribe_discussion_url, 'unsubscribe_all_url': unsubscribe_all_url, } subject = ("Reply to your Air Mozilla comment on: %s" % (event.title, )) context['subject'] = subject html_body = render_to_string('comments/_email_reply_notification.html', context) # headers = {'Reply-To': payment.email} # html_body = premailer.transform( # html_body, # base_url=base_url # ) body = html2text(html_body) email = EmailMultiAlternatives( subject, body, 'Air Mozilla <%s>' % settings.EMAIL_FROM_ADDRESS, [parent.user.email], # headers=headers, ) email.attach_alternative(html_body, "text/html") email.send()
def email_about_rejected_suggestion(event, user, base_url): base_url = fix_base_url(base_url) emails = (event.user.email, ) subject = ('[Air Mozilla] Requested event not accepted: %s' % event.title) context = { 'event': event, 'user': user, 'base_url': base_url, 'subject': subject, } html_body = render_to_string('manage/_email_suggested_rejected.html', context) body = html2text(html_body) email = EmailMultiAlternatives( subject, body, 'Air Mozilla <%s>' % settings.EMAIL_FROM_ADDRESS, emails) email.attach_alternative(html_body, "text/html") email.send()
def send_moderator_notifications(comment, base_url): base_url = fix_base_url(base_url) event = comment.event discussion = Discussion.objects.get(event=event) moderators = discussion.moderators.exclude(id=comment.user.id) if not moderators: return approve_comment_url = _get_approve_comment_url(comment) remove_comment_url = _get_remove_comment_url(comment) context = { 'comment': comment, 'event': event, 'base_url': base_url, 'approve_comment_url': approve_comment_url, 'remove_comment_url': remove_comment_url, } subject = ( "New comment requires moderation on: %s" % (event.title,) ) context['subject'] = subject html_body = render_to_string( 'comments/_email_moderator_notification.html', context ) # headers = {'Reply-To': payment.email} # html_body = premailer.transform( # html_body, # base_url=base_url # ) body = html2text(html_body) email = EmailMultiAlternatives( subject, body, 'Air Mozilla <%s>' % settings.EMAIL_FROM_ADDRESS, [x.email for x in moderators], # headers=headers, ) email.attach_alternative(html_body, "text/html") email.send()
def email_sending_test(subject, html_body, emails, base_url): base_url = fix_base_url(base_url) context = { 'base_url': base_url, 'subject': subject, 'html_body': html_body, } html_body = render_to_string( 'manage/_email_sending_test.html', context, ) body = html2text(html_body) email = EmailMultiAlternatives( subject, body, 'Air Mozilla <%s>' % settings.EMAIL_FROM_ADDRESS, emails) email.attach_alternative(html_body, "text/html") email.send() return email
def email_about_suggested_event_comment(comment, base_url): base_url = fix_base_url(base_url) emails = _get_add_event_emails() event_title = comment.suggested_event.title if len(event_title) > 30: event_title = '%s...' % event_title[:27] subject = ('[Air Mozilla] New comment on suggested event: %s' % event_title) context = { 'event': comment.suggested_event, 'comment': comment, 'base_url': base_url, 'subject': subject, } html_body = render_to_string('suggest/_email_comment.html', context) assert emails body = html2text(html_body) email = EmailMultiAlternatives(subject, body, settings.EMAIL_FROM_ADDRESS, emails) email.attach_alternative(html_body, "text/html") email.send()
def email_about_suggested_event(event, base_url): base_url = fix_base_url(base_url) emails = _get_add_event_emails() event_title = event.title if len(event_title) > 30: event_title = '%s...' % event_title[:27] comments = (SuggestedEventComment.objects.filter( suggested_event=event).order_by('created')) subject = ('[Air Mozilla] New suggested event: %s' % event_title) assert emails context = { 'event': event, 'base_url': base_url, 'comments': comments, 'subject': subject, } html_body = render_to_string('suggest/_email_submitted.html', context) body = html2text(html_body) email = EmailMultiAlternatives(subject, body, settings.EMAIL_FROM_ADDRESS, emails) email.attach_alternative(html_body, "text/html") email.send()
def email_sending_test(subject, html_body, emails, base_url): base_url = fix_base_url(base_url) context = { 'base_url': base_url, 'subject': subject, 'html_body': html_body, } html_body = render_to_string( 'manage/_email_sending_test.html', context, ) body = html2text(html_body) email = EmailMultiAlternatives( subject, body, 'Air Mozilla <%s>' % settings.EMAIL_FROM_ADDRESS, emails ) email.attach_alternative(html_body, "text/html") email.send() return email
def send_moderator_notifications(comment, base_url): base_url = fix_base_url(base_url) event = comment.event discussion = Discussion.objects.get(event=event) moderators = discussion.moderators.exclude(id=comment.user.id) if not moderators: return approve_comment_url = _get_approve_comment_url(comment) remove_comment_url = _get_remove_comment_url(comment) context = { 'comment': comment, 'event': event, 'base_url': base_url, 'approve_comment_url': approve_comment_url, 'remove_comment_url': remove_comment_url, } subject = ("New comment requires moderation on: %s" % (event.title, )) context['subject'] = subject html_body = render_to_string('comments/_email_moderator_notification.html', context) # headers = {'Reply-To': payment.email} # html_body = premailer.transform( # html_body, # base_url=base_url # ) body = html2text(html_body) email = EmailMultiAlternatives( subject, body, 'Air Mozilla <%s>' % settings.EMAIL_FROM_ADDRESS, [x.email for x in moderators], # headers=headers, ) email.attach_alternative(html_body, "text/html") email.send()
def email_about_suggestion_comment(comment, user, base_url): base_url = fix_base_url(base_url) event = comment.suggested_event emails = (event.user.email, ) event_title = comment.suggested_event.title if len(event_title) > 30: event_title = '%s...' % event_title[:27] subject = ('[Air Mozilla] New comment on your suggested event ("%s")' % (event_title, )) context = { 'event': event, 'comment': comment, 'user': user, 'base_url': base_url, 'subject': subject, } html_body = render_to_string('manage/_email_suggested_comment.html', context) body = html2text(html_body) email = EmailMultiAlternatives( subject, body, 'Air Mozilla <%s>' % settings.EMAIL_FROM_ADDRESS, emails) email.attach_alternative(html_body, "text/html") email.send()
def send_reply_notification(comment, base_url): base_url = fix_base_url(base_url) parent = comment.reply_to assert parent event = comment.event discussion = Discussion.objects.get(event=event) try: Unsubscription.objects.get( user=parent.user, discussion=discussion ) return except Unsubscription.DoesNotExist: try: Unsubscription.objects.get( user=parent.user, ) return except Unsubscription.DoesNotExist: pass discussion = Discussion.objects.get(event=event) unsubscribe_discussion_url = _get_unsubscribe_discussion_url( parent.user, discussion ) unsubscribe_all_url = _get_unsubscribe_all_url( parent.user ) context = { 'reply': comment, 'comment': parent, 'event': event, 'base_url': base_url, 'unsubscribe_discussion_url': unsubscribe_discussion_url, 'unsubscribe_all_url': unsubscribe_all_url, } subject = ( "Reply to your Air Mozilla comment on: %s" % (event.title,) ) context['subject'] = subject html_body = render_to_string( 'comments/_email_reply_notification.html', context ) # headers = {'Reply-To': payment.email} # html_body = premailer.transform( # html_body, # base_url=base_url # ) body = html2text(html_body) email = EmailMultiAlternatives( subject, body, 'Air Mozilla <%s>' % settings.EMAIL_FROM_ADDRESS, [parent.user.email], # headers=headers, ) email.attach_alternative(html_body, "text/html") email.send()