mirror of
https://github.com/zulip/zulip.git
synced 2025-11-05 22:43:42 +00:00
notification: Use existing email format for missed 1:1 DM via DM group.
To maintain API compatibility, we render the email notification for missed 1:1 direct messages using DirectMessageGroup with the same format as messages sent to a Personal recipient.
This commit is contained in:
committed by
Tim Abbott
parent
2dbc17b453
commit
015f674520
@@ -209,10 +209,13 @@ def build_message_list(
|
||||
messages_to_render: list[dict[str, Any]] = []
|
||||
|
||||
def sender_string(message: Message) -> str:
|
||||
if message.recipient.type in (Recipient.STREAM, Recipient.DIRECT_MESSAGE_GROUP):
|
||||
if message.recipient.type == Recipient.STREAM:
|
||||
return message.sender.full_name
|
||||
else:
|
||||
return ""
|
||||
elif message.recipient.type == Recipient.DIRECT_MESSAGE_GROUP:
|
||||
display_recipient = get_display_recipient(message.recipient)
|
||||
if len(display_recipient) > 2:
|
||||
return message.sender.full_name
|
||||
return ""
|
||||
|
||||
def fix_plaintext_image_urls(content: str) -> str:
|
||||
# Replace image URLs in plaintext content of the form
|
||||
@@ -272,7 +275,8 @@ def build_message_list(
|
||||
grouping: dict[str, Any] = {"user": message.sender_id}
|
||||
narrow_link = personal_narrow_url(
|
||||
realm=user.realm,
|
||||
sender=message.sender,
|
||||
sender_id=message.sender.id,
|
||||
sender_full_name=message.sender.full_name,
|
||||
)
|
||||
header = f"You and {message.sender.full_name}"
|
||||
header_html = Markup(
|
||||
@@ -500,35 +504,37 @@ def do_send_missedmessage_events_reply_in_zulip(
|
||||
reply_to_name = "Zulip"
|
||||
|
||||
senders = list({m["message"].sender for m in missed_messages})
|
||||
if missed_messages[0]["message"].recipient.type == Recipient.DIRECT_MESSAGE_GROUP:
|
||||
display_recipient = get_display_recipient(missed_messages[0]["message"].recipient)
|
||||
message = missed_messages[0]["message"]
|
||||
if message.recipient.type == Recipient.DIRECT_MESSAGE_GROUP:
|
||||
display_recipient = get_display_recipient(message.recipient)
|
||||
narrow_url = direct_message_group_narrow_url(
|
||||
user=user_profile,
|
||||
display_recipient=display_recipient,
|
||||
)
|
||||
context.update(narrow_url=narrow_url)
|
||||
other_recipients = [r["full_name"] for r in display_recipient if r["id"] != user_profile.id]
|
||||
context.update(group_pm=True)
|
||||
if len(other_recipients) == 2:
|
||||
direct_message_group_display_name = " and ".join(other_recipients)
|
||||
context.update(direct_message_group_display_name=direct_message_group_display_name)
|
||||
if len(other_recipients) <= 1:
|
||||
context.update(group_pm=False, private_message=True)
|
||||
elif len(other_recipients) == 2:
|
||||
group_display_name = " and ".join(other_recipients)
|
||||
context.update(group_pm=True, direct_message_group_display_name=group_display_name)
|
||||
elif len(other_recipients) == 3:
|
||||
direct_message_group_display_name = (
|
||||
group_display_name = (
|
||||
f"{other_recipients[0]}, {other_recipients[1]}, and {other_recipients[2]}"
|
||||
)
|
||||
context.update(direct_message_group_display_name=direct_message_group_display_name)
|
||||
context.update(group_pm=True, direct_message_group_display_name=group_display_name)
|
||||
else:
|
||||
direct_message_group_display_name = "{}, and {} others".format(
|
||||
group_display_name = "{}, and {} others".format(
|
||||
", ".join(other_recipients[:2]), len(other_recipients) - 2
|
||||
)
|
||||
context.update(direct_message_group_display_name=direct_message_group_display_name)
|
||||
elif missed_messages[0]["message"].recipient.type == Recipient.PERSONAL:
|
||||
context.update(group_pm=True, direct_message_group_display_name=group_display_name)
|
||||
elif message.recipient.type == Recipient.PERSONAL:
|
||||
narrow_url = personal_narrow_url(
|
||||
realm=user_profile.realm,
|
||||
sender=missed_messages[0]["message"].sender,
|
||||
sender_id=message.sender.id,
|
||||
sender_full_name=message.sender.full_name,
|
||||
)
|
||||
context.update(narrow_url=narrow_url)
|
||||
context.update(private_message=True)
|
||||
context.update(narrow_url=narrow_url, private_message=True)
|
||||
elif (
|
||||
context["mention"]
|
||||
or context["stream_email_notify"]
|
||||
@@ -550,7 +556,6 @@ def do_send_missedmessage_events_reply_in_zulip(
|
||||
]
|
||||
}
|
||||
)
|
||||
message = missed_messages[0]["message"]
|
||||
assert message.recipient.type == Recipient.STREAM
|
||||
stream = Stream.objects.only("id", "name").get(id=message.recipient.type_id)
|
||||
narrow_url = message_link_url(
|
||||
|
||||
Reference in New Issue
Block a user