queue_processor: Add langauge to the events added to invites queue.

This is a prep commit for adding realm-level default for various
user settings. We add the language, in which the invite email will
be sent, to the dict added to queue itself to avoid making queries
in a loop when sending multiple emails from queue.

We also handle the case for old events in the queue.
This commit is contained in:
sahil839
2021-06-22 16:59:40 +05:30
committed by Tim Abbott
parent 6a191a7bf0
commit 37bf160298
3 changed files with 22 additions and 6 deletions

View File

@@ -6652,7 +6652,9 @@ def filter_presence_idle_user_ids(user_ids: Set[int]) -> List[int]:
return sorted(idle_user_ids)
def do_send_confirmation_email(invitee: PreregistrationUser, referrer: UserProfile) -> str:
def do_send_confirmation_email(
invitee: PreregistrationUser, referrer: UserProfile, email_language: str
) -> str:
"""
Send the confirmation/welcome e-mail to an invited user.
"""
@@ -6667,7 +6669,7 @@ def do_send_confirmation_email(invitee: PreregistrationUser, referrer: UserProfi
"zerver/emails/invitation",
to_emails=[invitee.email],
from_address=FromAddress.tokenized_no_reply_address(),
language=referrer.realm.default_language,
language=email_language,
context=context,
realm=referrer.realm,
)
@@ -6829,7 +6831,11 @@ def do_invite_users(
stream_ids = [stream.id for stream in streams]
prereg_user.streams.set(stream_ids)
event = {"prereg_id": prereg_user.id, "referrer_id": user_profile.id}
event = {
"prereg_id": prereg_user.id,
"referrer_id": user_profile.id,
"email_language": user_profile.realm.default_language,
}
queue_json_publish("invites", event)
if skipped:
@@ -6951,6 +6957,7 @@ def do_resend_user_invite_email(prereg_user: PreregistrationUser) -> int:
event = {
"prereg_id": prereg_user.id,
"referrer_id": prereg_user.referred_by.id,
"email_language": prereg_user.referred_by.realm.default_language,
}
queue_json_publish("invites", event)