mirror of
https://github.com/zulip/zulip.git
synced 2025-11-03 13:33:24 +00:00
notifications: Move send_future_email to zerver/lib/send_email.py.
This commit is contained in:
@@ -10,8 +10,9 @@ from django.db.models import Q, QuerySet
|
||||
from django.template import loader
|
||||
from django.conf import settings
|
||||
|
||||
from zerver.lib.send_email import send_future_email
|
||||
from zerver.lib.notifications import build_message_list, hash_util_encode, \
|
||||
send_future_email, one_click_unsubscribe_link
|
||||
one_click_unsubscribe_link
|
||||
from zerver.models import UserProfile, UserMessage, Recipient, Stream, \
|
||||
Subscription, get_active_streams
|
||||
from zerver.context_processors import common_context
|
||||
|
||||
@@ -8,6 +8,7 @@ from django.core.mail import EmailMultiAlternatives
|
||||
from django.template import loader
|
||||
from django.utils.timezone import now as timezone_now
|
||||
from zerver.decorator import statsd_increment
|
||||
from zerver.lib.send_email import send_future_email
|
||||
from zerver.lib.queue import queue_json_publish
|
||||
from zerver.models import (
|
||||
Recipient,
|
||||
@@ -378,26 +379,6 @@ def log_digest_event(msg):
|
||||
logging.basicConfig(filename=settings.DIGEST_LOG_PATH, level=logging.INFO)
|
||||
logging.info(msg)
|
||||
|
||||
def send_future_email(template_prefix, recipients, from_email=None, context={},
|
||||
delay=datetime.timedelta(0), tags=[]):
|
||||
# type: (str, List[Dict[str, Any]], Optional[Text], Dict[str, Any], datetime.timedelta, Iterable[Text]) -> None
|
||||
subject = loader.render_to_string(template_prefix + '.subject', context).strip()
|
||||
email_text = loader.render_to_string(template_prefix + '.txt', context)
|
||||
email_html = loader.render_to_string(template_prefix + '.html', context)
|
||||
|
||||
if from_email is None:
|
||||
from_email = settings.NOREPLY_EMAIL_ADDRESS
|
||||
for recipient in recipients:
|
||||
email_fields = {'email_html': email_html,
|
||||
'email_subject': subject,
|
||||
'email_text': email_text,
|
||||
'recipient_email': recipient.get('email'),
|
||||
'recipient_name': recipient.get('name'),
|
||||
'from_email': from_email}
|
||||
ScheduledJob.objects.create(type=ScheduledJob.EMAIL, filter_string=recipient.get('email'),
|
||||
data=ujson.dumps(email_fields),
|
||||
scheduled_timestamp=timezone_now() + delay)
|
||||
|
||||
def enqueue_welcome_emails(email, name):
|
||||
# type: (Text, Text) -> None
|
||||
from zerver.context_processors import common_context
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
from django.conf import settings
|
||||
from django.core.mail import send_mail
|
||||
from django.template import loader, TemplateDoesNotExist
|
||||
from zerver.models import UserProfile
|
||||
from django.utils.timezone import now as timezone_now
|
||||
from zerver.models import UserProfile, ScheduledJob, get_user_profile_by_email
|
||||
|
||||
from typing import Dict, List, Optional, Text
|
||||
import datetime
|
||||
import ujson
|
||||
|
||||
from typing import Any, Dict, Iterable, List, Optional, Text
|
||||
|
||||
def display_email(user):
|
||||
# type: (UserProfile) -> Text
|
||||
@@ -27,3 +31,23 @@ def send_email(template_prefix, to_email, from_email=None, context={}):
|
||||
def send_email_to_user(template_prefix, user, from_email=None, context={}):
|
||||
# type: (str, UserProfile, Optional[Text], Dict[str, Text]) -> bool
|
||||
return send_email(template_prefix, display_email(user), from_email=from_email, context=context)
|
||||
|
||||
def send_future_email(template_prefix, recipients, from_email=None, context={},
|
||||
delay=datetime.timedelta(0), tags=[]):
|
||||
# type: (str, List[Dict[str, Any]], Optional[Text], Dict[str, Any], datetime.timedelta, Iterable[Text]) -> None
|
||||
subject = loader.render_to_string(template_prefix + '.subject', context).strip()
|
||||
email_text = loader.render_to_string(template_prefix + '.txt', context)
|
||||
email_html = loader.render_to_string(template_prefix + '.html', context)
|
||||
|
||||
if from_email is None:
|
||||
from_email = settings.NOREPLY_EMAIL_ADDRESS
|
||||
for recipient in recipients:
|
||||
email_fields = {'email_html': email_html,
|
||||
'email_subject': subject,
|
||||
'email_text': email_text,
|
||||
'recipient_email': recipient.get('email'),
|
||||
'recipient_name': recipient.get('name'),
|
||||
'from_email': from_email}
|
||||
ScheduledJob.objects.create(type=ScheduledJob.EMAIL, filter_string=recipient.get('email'),
|
||||
data=ujson.dumps(email_fields),
|
||||
scheduled_timestamp=timezone_now() + delay)
|
||||
|
||||
@@ -35,7 +35,7 @@ from zerver.lib.actions import (
|
||||
get_stream,
|
||||
do_create_realm,
|
||||
)
|
||||
|
||||
from zerver.lib.send_email import send_future_email
|
||||
from zerver.lib.initial_password import initial_password
|
||||
from zerver.lib.actions import (
|
||||
do_deactivate_realm,
|
||||
@@ -45,7 +45,7 @@ from zerver.lib.actions import (
|
||||
from zerver.lib.mobile_auth_otp import xor_hex_strings, ascii_to_hex, \
|
||||
otp_encrypt_api_key, is_valid_otp, hex_to_ascii, otp_decrypt_api_key
|
||||
from zerver.lib.notifications import enqueue_welcome_emails, \
|
||||
one_click_unsubscribe_link, send_future_email
|
||||
one_click_unsubscribe_link
|
||||
from zerver.lib.test_helpers import find_pattern_in_email, find_key_by_email, queries_captured, \
|
||||
HostRequestMock, unsign_subdomain_cookie
|
||||
from zerver.lib.test_classes import (
|
||||
|
||||
@@ -14,7 +14,7 @@ from zerver.lib.feedback import handle_feedback
|
||||
from zerver.lib.queue import SimpleQueueClient, queue_json_publish
|
||||
from zerver.lib.timestamp import timestamp_to_datetime
|
||||
from zerver.lib.notifications import handle_missedmessage_emails, enqueue_welcome_emails, \
|
||||
clear_followup_emails_queue, send_future_email, send_missedmessage_email
|
||||
clear_followup_emails_queue, send_missedmessage_email
|
||||
from zerver.lib.push_notifications import handle_push_notification
|
||||
from zerver.lib.actions import do_send_confirmation_email, \
|
||||
do_update_user_activity, do_update_user_activity_interval, do_update_user_presence, \
|
||||
@@ -22,6 +22,7 @@ from zerver.lib.actions import do_send_confirmation_email, \
|
||||
render_incoming_message, do_update_embedded_data
|
||||
from zerver.lib.url_preview import preview as url_preview
|
||||
from zerver.lib.digest import handle_digest_email
|
||||
from zerver.lib.send_email import send_future_email
|
||||
from zerver.lib.email_mirror import process_message as mirror_email
|
||||
from zerver.decorator import JsonableError
|
||||
from zerver.tornado.socket import req_redis_key
|
||||
|
||||
Reference in New Issue
Block a user