mirror of https://github.com/zulip/zulip.git
onboarding: Update initial direct message content.
This commit updates the Welcome Bot's initial direct message content. We inform about the tracked onboarding messages via direct message only if it exists. Fixes #30051.
This commit is contained in:
parent
0583e81e2b
commit
5bb66e6c99
|
@ -53,11 +53,11 @@ def send_initial_direct_message(user: UserProfile) -> int:
|
||||||
with override_language(user.default_language):
|
with override_language(user.default_language):
|
||||||
if education_organization:
|
if education_organization:
|
||||||
getting_started_string = _("""
|
getting_started_string = _("""
|
||||||
If you are new to Zulip, check out our [Using Zulip for a class guide]({getting_started_url})!
|
To learn more, check out our [Using Zulip for a class guide]({getting_started_url})!
|
||||||
""").format(getting_started_url="/help/using-zulip-for-a-class")
|
""").format(getting_started_url="/help/using-zulip-for-a-class")
|
||||||
else:
|
else:
|
||||||
getting_started_string = _("""
|
getting_started_string = _("""
|
||||||
If you are new to Zulip, check out our [Getting started guide]({getting_started_url})!
|
To learn more, check out our [Getting started guide]({getting_started_url})!
|
||||||
""").format(getting_started_url="/help/getting-started-with-zulip")
|
""").format(getting_started_url="/help/getting-started-with-zulip")
|
||||||
|
|
||||||
organization_setup_string = ""
|
organization_setup_string = ""
|
||||||
|
@ -80,8 +80,15 @@ Note that this is a [demo organization]({demo_organization_help_url}) and
|
||||||
will be **automatically deleted** in 30 days.
|
will be **automatically deleted** in 30 days.
|
||||||
""").format(demo_organization_help_url="/help/demo-organizations")
|
""").format(demo_organization_help_url="/help/demo-organizations")
|
||||||
|
|
||||||
|
inform_about_tracked_onboarding_messages_text = ""
|
||||||
|
if OnboardingUserMessage.objects.filter(realm_id=user.realm_id).exists():
|
||||||
|
inform_about_tracked_onboarding_messages_text = _("""
|
||||||
|
I've kicked off some conversations to help you get started. You can find
|
||||||
|
them in your [Inbox](/#inbox).
|
||||||
|
""")
|
||||||
|
|
||||||
content = _("""
|
content = _("""
|
||||||
Hello, and welcome to Zulip!👋 This is a direct message from me, Welcome Bot.
|
Hello, and welcome to Zulip!👋 {inform_about_tracked_onboarding_messages_text}
|
||||||
|
|
||||||
{getting_started_text} {organization_setup_text}
|
{getting_started_text} {organization_setup_text}
|
||||||
|
|
||||||
|
@ -91,6 +98,7 @@ I can also help you get set up! Just click anywhere on this message or press `r`
|
||||||
|
|
||||||
Here are a few messages I understand: {bot_commands}
|
Here are a few messages I understand: {bot_commands}
|
||||||
""").format(
|
""").format(
|
||||||
|
inform_about_tracked_onboarding_messages_text=inform_about_tracked_onboarding_messages_text,
|
||||||
getting_started_text=getting_started_string,
|
getting_started_text=getting_started_string,
|
||||||
organization_setup_text=organization_setup_string,
|
organization_setup_text=organization_setup_string,
|
||||||
demo_organization_text=demo_organization_warning_string,
|
demo_organization_text=demo_organization_warning_string,
|
||||||
|
|
|
@ -1046,7 +1046,7 @@ class LoginTest(ZulipTestCase):
|
||||||
# seem to be any O(N) behavior. Some of the cache hits are related
|
# seem to be any O(N) behavior. Some of the cache hits are related
|
||||||
# to sending messages, such as getting the welcome bot, looking up
|
# to sending messages, such as getting the welcome bot, looking up
|
||||||
# the alert words for a realm, etc.
|
# the alert words for a realm, etc.
|
||||||
with self.assert_database_query_count(93), self.assert_memcached_count(14):
|
with self.assert_database_query_count(94), self.assert_memcached_count(14):
|
||||||
with self.captureOnCommitCallbacks(execute=True):
|
with self.captureOnCommitCallbacks(execute=True):
|
||||||
self.register(self.nonreg_email("test"), "test")
|
self.register(self.nonreg_email("test"), "test")
|
||||||
|
|
||||||
|
@ -1731,8 +1731,9 @@ class RealmCreationTest(ZulipTestCase):
|
||||||
self.assertEqual(result.status_code, 302)
|
self.assertEqual(result.status_code, 302)
|
||||||
|
|
||||||
# Make sure the correct Welcome Bot direct message is sent.
|
# Make sure the correct Welcome Bot direct message is sent.
|
||||||
|
realm = get_realm(string_id)
|
||||||
welcome_msg = Message.objects.filter(
|
welcome_msg = Message.objects.filter(
|
||||||
realm_id=get_realm(string_id).id,
|
realm_id=realm.id,
|
||||||
sender__email="welcome-bot@zulip.com",
|
sender__email="welcome-bot@zulip.com",
|
||||||
recipient__type=Recipient.PERSONAL,
|
recipient__type=Recipient.PERSONAL,
|
||||||
).latest("id")
|
).latest("id")
|
||||||
|
@ -1744,6 +1745,22 @@ class RealmCreationTest(ZulipTestCase):
|
||||||
self.assertNotIn("Using Zulip for a class guide", welcome_msg.content)
|
self.assertNotIn("Using Zulip for a class guide", welcome_msg.content)
|
||||||
self.assertNotIn("demo organization", welcome_msg.content)
|
self.assertNotIn("demo organization", welcome_msg.content)
|
||||||
|
|
||||||
|
# Organization has tracked onboarding messages.
|
||||||
|
self.assertTrue(OnboardingUserMessage.objects.filter(realm_id=realm.id).exists())
|
||||||
|
self.assertIn("I've kicked off some conversations", welcome_msg.content)
|
||||||
|
|
||||||
|
# Verify that Organization without 'OnboardingUserMessage' records
|
||||||
|
# doesn't include "I've kicked off..." text in welcome_msg content.
|
||||||
|
OnboardingUserMessage.objects.filter(realm_id=realm.id).delete()
|
||||||
|
do_create_user("hamlet", "password", realm, "hamlet", acting_user=None)
|
||||||
|
welcome_msg = Message.objects.filter(
|
||||||
|
realm_id=realm.id,
|
||||||
|
sender__email="welcome-bot@zulip.com",
|
||||||
|
recipient__type=Recipient.PERSONAL,
|
||||||
|
).latest("id")
|
||||||
|
self.assertTrue(welcome_msg.content.startswith("Hello, and welcome to Zulip!"))
|
||||||
|
self.assertNotIn("I've kicked off some conversations", welcome_msg.content)
|
||||||
|
|
||||||
@override_settings(OPEN_REALM_CREATION=True)
|
@override_settings(OPEN_REALM_CREATION=True)
|
||||||
def test_create_education_demo_organization_welcome_bot_direct_message(self) -> None:
|
def test_create_education_demo_organization_welcome_bot_direct_message(self) -> None:
|
||||||
password = "test"
|
password = "test"
|
||||||
|
|
|
@ -908,7 +908,7 @@ class QueryCountTest(ZulipTestCase):
|
||||||
|
|
||||||
prereg_user = PreregistrationUser.objects.get(email="fred@zulip.com")
|
prereg_user = PreregistrationUser.objects.get(email="fred@zulip.com")
|
||||||
|
|
||||||
with self.assert_database_query_count(83):
|
with self.assert_database_query_count(84):
|
||||||
with self.assert_memcached_count(19):
|
with self.assert_memcached_count(19):
|
||||||
with self.capture_send_event_calls(expected_num_events=10) as events:
|
with self.capture_send_event_calls(expected_num_events=10) as events:
|
||||||
fred = do_create_user(
|
fred = do_create_user(
|
||||||
|
|
Loading…
Reference in New Issue