mirror of
https://github.com/zulip/zulip.git
synced 2025-11-05 14:35:27 +00:00
send_email: Add support for passing language into send_future_email.
This adds language paramater to send_future_email. As a result, this properly internationalizes invitation reminder emails, by passing correct language into send_future_email. Fixes #11240.
This commit is contained in:
committed by
Tim Abbott
parent
b9f7b08af2
commit
254bf4c08f
@@ -267,6 +267,5 @@ def handle_digest_email(user_profile_id: int, cutoff: float,
|
|||||||
logger.info("Sending digest email for %s" % (user_profile.email,))
|
logger.info("Sending digest email for %s" % (user_profile.email,))
|
||||||
# Send now, as a ScheduledEmail
|
# Send now, as a ScheduledEmail
|
||||||
send_future_email('zerver/emails/digest', user_profile.realm, to_user_ids=[user_profile.id],
|
send_future_email('zerver/emails/digest', user_profile.realm, to_user_ids=[user_profile.id],
|
||||||
from_name="Zulip Digest", from_address=FromAddress.NOREPLY,
|
from_name="Zulip Digest", from_address=FromAddress.NOREPLY, context=context)
|
||||||
context=context)
|
|
||||||
return None
|
return None
|
||||||
|
|||||||
@@ -125,8 +125,8 @@ def send_email_from_dict(email_dict: Mapping[str, Any]) -> None:
|
|||||||
|
|
||||||
def send_future_email(template_prefix: str, realm: Realm, to_user_ids: Optional[List[int]]=None,
|
def send_future_email(template_prefix: str, realm: Realm, to_user_ids: Optional[List[int]]=None,
|
||||||
to_emails: Optional[List[str]]=None, from_name: Optional[str]=None,
|
to_emails: Optional[List[str]]=None, from_name: Optional[str]=None,
|
||||||
from_address: Optional[str]=None, context: Dict[str, Any]={},
|
from_address: Optional[str]=None, language: Optional[str]=None,
|
||||||
delay: datetime.timedelta=datetime.timedelta(0)) -> None:
|
context: Dict[str, Any]={}, delay: datetime.timedelta=datetime.timedelta(0)) -> None:
|
||||||
# WARNING: Be careful when using this with multiple recipients;
|
# WARNING: Be careful when using this with multiple recipients;
|
||||||
# because the current ScheduledEmail model (used primarily for
|
# because the current ScheduledEmail model (used primarily for
|
||||||
# cancelling planned emails) does not support multiple recipients,
|
# cancelling planned emails) does not support multiple recipients,
|
||||||
@@ -139,11 +139,12 @@ def send_future_email(template_prefix: str, realm: Realm, to_user_ids: Optional[
|
|||||||
# above problem is not relevant.
|
# above problem is not relevant.
|
||||||
template_name = template_prefix.split('/')[-1]
|
template_name = template_prefix.split('/')[-1]
|
||||||
email_fields = {'template_prefix': template_prefix, 'to_user_ids': to_user_ids, 'to_emails': to_emails,
|
email_fields = {'template_prefix': template_prefix, 'to_user_ids': to_user_ids, 'to_emails': to_emails,
|
||||||
'from_name': from_name, 'from_address': from_address, 'context': context}
|
'from_name': from_name, 'from_address': from_address, 'language': language,
|
||||||
|
'context': context}
|
||||||
|
|
||||||
if settings.DEVELOPMENT_LOG_EMAILS:
|
if settings.DEVELOPMENT_LOG_EMAILS:
|
||||||
send_email(template_prefix, to_user_ids=to_user_ids, to_emails=to_emails, from_name=from_name,
|
send_email(template_prefix, to_user_ids=to_user_ids, to_emails=to_emails, from_name=from_name,
|
||||||
from_address=from_address, context=context)
|
from_address=from_address, language=language, context=context)
|
||||||
# For logging the email
|
# For logging the email
|
||||||
|
|
||||||
assert (to_user_ids is None) ^ (to_emails is None)
|
assert (to_user_ids is None) ^ (to_emails is None)
|
||||||
|
|||||||
@@ -234,6 +234,7 @@ class ConfirmationEmailWorker(QueueProcessingWorker):
|
|||||||
referrer.realm,
|
referrer.realm,
|
||||||
to_emails=[invitee.email],
|
to_emails=[invitee.email],
|
||||||
from_address=FromAddress.tokenized_no_reply_address(),
|
from_address=FromAddress.tokenized_no_reply_address(),
|
||||||
|
language=referrer.realm.default_language,
|
||||||
context=context,
|
context=context,
|
||||||
delay=datetime.timedelta(days=2))
|
delay=datetime.timedelta(days=2))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user