mirror of https://github.com/zulip/zulip.git
context_processors: Cache the realm description in default context.
This commit is contained in:
parent
6e8e7feffc
commit
261166f96d
|
@ -14,10 +14,10 @@ from zproject.backends import (
|
|||
SOCIAL_AUTH_BACKENDS,
|
||||
)
|
||||
from zerver.decorator import get_client_name
|
||||
from zerver.lib.bugdown import convert as bugdown_convert
|
||||
from zerver.lib.send_email import FromAddress
|
||||
from zerver.lib.subdomains import get_subdomain
|
||||
from zerver.lib.realm_icon import get_realm_icon_url
|
||||
from zerver.lib.realm_description import get_realm_rendered_description
|
||||
|
||||
from version import ZULIP_VERSION, LATEST_RELEASE_VERSION, \
|
||||
LATEST_RELEASE_ANNOUNCEMENT, LATEST_MAJOR_VERSION
|
||||
|
@ -69,9 +69,7 @@ def zulip_default_context(request: HttpRequest) -> Dict[str, Any]:
|
|||
realm_uri = realm.uri
|
||||
realm_name = realm.name
|
||||
realm_icon = get_realm_icon_url(realm)
|
||||
realm_description_raw = realm.description or "The coolest place in the universe."
|
||||
realm_description = bugdown_convert(realm_description_raw, message_realm=realm,
|
||||
no_previews=True)
|
||||
realm_description = get_realm_rendered_description(realm)
|
||||
realm_invite_required = realm.invite_required
|
||||
realm_plan_type = realm.plan_type
|
||||
|
||||
|
|
|
@ -435,6 +435,7 @@ def flush_realm(sender: Any, **kwargs: Any) -> None:
|
|||
cache_delete(realm_alert_words_cache_key(realm))
|
||||
cache_delete(realm_alert_words_automaton_cache_key(realm))
|
||||
cache_delete(active_non_guest_user_ids_cache_key(realm.id))
|
||||
cache_delete(realm_rendered_description_cache_key(realm))
|
||||
|
||||
def realm_alert_words_cache_key(realm: 'Realm') -> str:
|
||||
return "realm_alert_words:%s" % (realm.string_id,)
|
||||
|
@ -442,6 +443,9 @@ def realm_alert_words_cache_key(realm: 'Realm') -> str:
|
|||
def realm_alert_words_automaton_cache_key(realm: 'Realm') -> str:
|
||||
return "realm_alert_words_automaton:%s" % (realm.string_id,)
|
||||
|
||||
def realm_rendered_description_cache_key(realm: 'Realm') -> str:
|
||||
return "realm_rendered_description:%s" % (realm.string_id,)
|
||||
|
||||
# Called by models.py to flush the stream cache whenever we save a stream
|
||||
# object.
|
||||
def flush_stream(sender: Any, **kwargs: Any) -> None:
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
from zerver.models import Realm
|
||||
from zerver.lib.cache import cache_with_key, realm_rendered_description_cache_key
|
||||
from zerver.lib.bugdown import convert as bugdown_convert
|
||||
|
||||
@cache_with_key(realm_rendered_description_cache_key, timeout=3600*24*7)
|
||||
def get_realm_rendered_description(realm: Realm) -> str:
|
||||
realm_description_raw = realm.description or "The coolest place in the universe."
|
||||
return bugdown_convert(realm_description_raw, message_realm=realm,
|
||||
no_previews=True)
|
|
@ -228,7 +228,7 @@ class HomeTest(ZulipTestCase):
|
|||
result = self._get_home_page(stream='Denmark')
|
||||
|
||||
self.assert_length(queries, 43)
|
||||
self.assert_length(cache_mock.call_args_list, 7)
|
||||
self.assert_length(cache_mock.call_args_list, 8)
|
||||
|
||||
html = result.content.decode('utf-8')
|
||||
|
||||
|
@ -292,7 +292,7 @@ class HomeTest(ZulipTestCase):
|
|||
with patch('zerver.lib.cache.cache_set') as cache_mock:
|
||||
result = self._get_home_page()
|
||||
self.assertEqual(result.status_code, 200)
|
||||
self.assert_length(cache_mock.call_args_list, 6)
|
||||
self.assert_length(cache_mock.call_args_list, 7)
|
||||
self.assert_length(queries, 40)
|
||||
|
||||
@slow("Creates and subscribes 10 users in a loop. Should use bulk queries.")
|
||||
|
|
Loading…
Reference in New Issue