mirror of https://github.com/zulip/zulip.git
hotspots: Add TUTORIAL_ENABLED setting to toggle INTRO_HOTSPOTS.
We add a TUTORIAL_ENABLED setting for self-hosters who want to disable the tutorial entirely on their system. For this, the default value (True) is placed in default_settings.py, which can be overwritten by adding an entry in /etc/zulip/settings.py.
This commit is contained in:
parent
fdefc4275a
commit
7f6fe128f6
|
@ -71,6 +71,10 @@ def get_next_hotspots(user: UserProfile) -> List[Dict[str, object]]:
|
|||
for hotspot in ALL_HOTSPOTS
|
||||
]
|
||||
|
||||
# If a Zulip server has disabled the tutorial, never send hotspots.
|
||||
if not settings.TUTORIAL_ENABLED:
|
||||
return []
|
||||
|
||||
if user.tutorial_status == UserProfile.TUTORIAL_FINISHED:
|
||||
return []
|
||||
|
||||
|
|
|
@ -28,16 +28,21 @@ class TestGetNextHotspots(ZulipTestCase):
|
|||
self.assertEqual(hotspots[0]["name"], "intro_streams")
|
||||
|
||||
def test_all_intro_hotspots_done(self) -> None:
|
||||
self.assertNotEqual(self.user.tutorial_status, UserProfile.TUTORIAL_FINISHED)
|
||||
for hotspot in INTRO_HOTSPOTS:
|
||||
do_mark_hotspot_as_read(self.user, hotspot)
|
||||
self.assertEqual(self.user.tutorial_status, UserProfile.TUTORIAL_FINISHED)
|
||||
self.assertEqual(get_next_hotspots(self.user), [])
|
||||
with self.settings(TUTORIAL_ENABLED=True):
|
||||
self.assertNotEqual(self.user.tutorial_status, UserProfile.TUTORIAL_FINISHED)
|
||||
for hotspot in INTRO_HOTSPOTS:
|
||||
do_mark_hotspot_as_read(self.user, hotspot)
|
||||
self.assertEqual(self.user.tutorial_status, UserProfile.TUTORIAL_FINISHED)
|
||||
self.assertEqual(get_next_hotspots(self.user), [])
|
||||
|
||||
def test_send_all(self) -> None:
|
||||
with self.settings(DEVELOPMENT=True, ALWAYS_SEND_ALL_HOTSPOTS=True):
|
||||
self.assertEqual(len(ALL_HOTSPOTS), len(get_next_hotspots(self.user)))
|
||||
|
||||
def test_tutorial_disabled(self) -> None:
|
||||
with self.settings(TUTORIAL_ENABLED=False):
|
||||
self.assertEqual(get_next_hotspots(self.user), [])
|
||||
|
||||
|
||||
class TestHotspots(ZulipTestCase):
|
||||
def test_do_mark_hotspot_as_read(self) -> None:
|
||||
|
|
|
@ -190,6 +190,10 @@ TWO_FACTOR_AUTHENTICATION_ENABLED = False
|
|||
# in development mode.
|
||||
ALWAYS_SEND_ALL_HOTSPOTS = False
|
||||
|
||||
# The new user tutorial is enabled by default, but can be disabled for
|
||||
# self-hosters who want to disable the tutorial entirely on their system.
|
||||
TUTORIAL_ENABLED = True
|
||||
|
||||
# In-development search pills feature.
|
||||
SEARCH_PILLS_ENABLED = False
|
||||
|
||||
|
|
|
@ -672,6 +672,9 @@ ENABLE_GRAVATAR = True
|
|||
## to '' will disable the Camo integration.
|
||||
CAMO_URI = "/external_content/"
|
||||
|
||||
## Controls the tutorial popups for new users.
|
||||
# TUTORIAL_ENABLED = True
|
||||
|
||||
## Controls whether Zulip will rate-limit user requests.
|
||||
# RATE_LIMITING = True
|
||||
|
||||
|
|
Loading…
Reference in New Issue