Esempio n. 1
0
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()
Esempio n. 2
0
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()
Esempio n. 3
0
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()
Esempio n. 4
0
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()
Esempio n. 5
0
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()
Esempio n. 6
0
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()
Esempio n. 7
0
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()
Esempio n. 8
0
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()
Esempio n. 9
0
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()
Esempio n. 10
0
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
Esempio n. 11
0
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()
Esempio n. 12
0
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()
Esempio n. 13
0
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
Esempio n. 14
0
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()
Esempio n. 15
0
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()
Esempio n. 16
0
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()