Cache realm user basic info dict that is used in bugdown

(imported from commit 688c47daceb73534be90bd98a031c7b4edb5546e)
This commit is contained in:
Leo Franchi
2013-10-23 17:16:39 -04:00
parent b26f158020
commit e1557bef73
5 changed files with 30 additions and 21 deletions

View File

@@ -12,7 +12,7 @@ from zerver.models import Realm, RealmEmoji, Stream, UserProfile, UserActivity,
to_dict_cache_key, get_realm, stringify_message_dict, bulk_get_recipients, \
email_to_domain, email_to_username, display_recipient_cache_key, \
get_stream_cache_key, to_dict_cache_key_id, is_super_user, \
get_active_user_profiles_by_realm, UserActivityInterval
UserActivityInterval, get_active_user_dicts_in_realm
from django.db import transaction, IntegrityError
from django.db.models import F, Q
@@ -79,7 +79,7 @@ def log_event(event):
log.write(ujson.dumps(event) + '\n')
def active_user_ids(realm):
return [up.id for up in get_active_user_profiles_by_realm(realm)]
return [userdict['id'] for userdict in get_active_user_dicts_in_realm(realm)]
def notify_created_user(user_profile):
notice = dict(event=dict(type="realm_user", op="add",
@@ -365,7 +365,7 @@ def do_create_stream(realm, stream_name):
stream.name = stream_name
stream.save()
Recipient.objects.create(type_id=stream.id, type=Recipient.STREAM)
subscribers = get_active_user_profiles_by_realm(realm).filter(is_bot=False)
subscribers = UserProfile.objects.filter(realm=realm, is_active=True, is_bot=False)
bulk_add_subscriptions([stream], subscribers)
def create_stream_if_needed(realm, stream_name, invite_only=False):
@@ -1668,10 +1668,10 @@ def do_events_register(user_profile, user_client, apply_markdown=True,
if event_types is None or "pointer" in event_types:
ret['pointer'] = user_profile.pointer
if event_types is None or "realm_user" in event_types:
ret['realm_users'] = [{'email' : profile.email,
'is_bot' : profile.is_bot,
'full_name' : profile.full_name}
for profile in get_active_user_profiles_by_realm(user_profile.realm)]
ret['realm_users'] = [{'email' : userdict['email'],
'is_bot' : userdict['is_bot'],
'full_name' : userdict['full_name']}
for userdict in get_active_user_dicts_in_realm(user_profile.realm)]
if event_types is None or "onboarding_steps" in event_types:
ret['onboarding_steps'] = {'email' : user_profile.email,
'steps' : user_profile.onboarding_steps}
@@ -2085,7 +2085,7 @@ Referred: %s""" % (user_profile.full_name, user_profile.email, user_profile.real
def notify_realm_emoji(realm):
notice = dict(event=dict(type="realm_emoji", op="update",
realm_emoji=realm.get_emoji()),
users=[up.id for up in get_active_user_profiles_by_realm(realm)])
users=[userdict['id'] for userdict in get_active_user_dicts_in_realm(realm)])
tornado_callbacks.send_notification(notice)
def do_add_realm_emoji(realm, name, img_url):