mirror of
https://github.com/zulip/zulip.git
synced 2025-11-18 12:54:58 +00:00
Add backend support for newer realms receiving stream notifications by default.
(imported from commit ea8ee65071423a94a462571aa30013969d9f3f7a)
This commit is contained in:
committed by
Zev Benjamin
parent
d434bf4bb4
commit
f058e9cac5
@@ -740,6 +740,12 @@ def notify_subscriptions_added(user_profile, sub_pairs, no_log=False):
|
||||
users=[user_profile.id])
|
||||
tornado_callbacks.send_notification(notice)
|
||||
|
||||
def notify_for_streams_by_default(user_profile):
|
||||
# For users in newer realms, generate notifications for stream
|
||||
# messages by default.
|
||||
return user_profile.realm.date_created > datetime.datetime(
|
||||
2013, 9, 24, tzinfo=timezone.utc)
|
||||
|
||||
def bulk_add_subscriptions(streams, users):
|
||||
recipients_map = bulk_get_recipients(Recipient.STREAM, [stream.id for stream in streams])
|
||||
recipients = [recipient.id for recipient in recipients_map.values()]
|
||||
@@ -777,7 +783,8 @@ def bulk_add_subscriptions(streams, users):
|
||||
for (user_profile, recipient_id, stream) in new_subs:
|
||||
color = pick_color_helper(user_profile, subs_by_user[user_profile.id])
|
||||
sub_to_add = Subscription(user_profile=user_profile, active=True,
|
||||
color=color, recipient_id=recipient_id)
|
||||
color=color, recipient_id=recipient_id,
|
||||
notifications=notify_for_streams_by_default(user_profile))
|
||||
subs_by_user[user_profile.id].append(sub_to_add)
|
||||
subs_to_add.append((sub_to_add, stream))
|
||||
Subscription.objects.bulk_create([sub for (sub, stream) in subs_to_add])
|
||||
@@ -818,7 +825,8 @@ def do_add_subscription(user_profile, stream, no_log=False):
|
||||
color = pick_color(user_profile)
|
||||
(subscription, created) = Subscription.objects.get_or_create(
|
||||
user_profile=user_profile, recipient=recipient,
|
||||
defaults={'active': True, 'color': color})
|
||||
defaults={'active': True, 'color': color,
|
||||
'notifications': notify_for_streams_by_default(user_profile)})
|
||||
did_subscribe = created
|
||||
if not subscription.active:
|
||||
did_subscribe = True
|
||||
|
||||
@@ -37,7 +37,8 @@ from zerver.lib.actions import do_remove_subscription, bulk_remove_subscriptions
|
||||
do_send_messages, do_add_subscription, get_default_subs, do_deactivate, \
|
||||
user_email_is_unique, do_invite_users, do_refer_friend, compute_mit_user_fullname, \
|
||||
do_add_alert_words, do_remove_alert_words, do_set_alert_words, get_subscriber_emails, \
|
||||
update_user_activity_interval, do_set_muted_topics, do_rename_stream
|
||||
update_user_activity_interval, do_set_muted_topics, do_rename_stream, \
|
||||
notify_for_streams_by_default
|
||||
from zerver.lib.create_user import random_api_key
|
||||
from zerver.forms import RegistrationForm, HomepageForm, ToSForm, CreateBotForm, \
|
||||
is_inactive, not_mit_mailing_list
|
||||
@@ -707,7 +708,8 @@ def home(request):
|
||||
onboarding_steps = ujson.loads(user_profile.onboarding_steps),
|
||||
staging = settings.STAGING_DEPLOYED or not settings.DEPLOYED,
|
||||
alert_words = register_ret['alert_words'],
|
||||
show_admin = user_profile.show_admin
|
||||
show_admin = user_profile.show_admin,
|
||||
notify_for_streams_by_default = notify_for_streams_by_default(user_profile)
|
||||
))
|
||||
|
||||
statsd.incr('views.home')
|
||||
|
||||
Reference in New Issue
Block a user