diff --git a/zerver/lib/actions.py b/zerver/lib/actions.py index 2e4b0c2862..4650c68944 100644 --- a/zerver/lib/actions.py +++ b/zerver/lib/actions.py @@ -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 diff --git a/zerver/views/__init__.py b/zerver/views/__init__.py index 1af1078511..3bc9f71d3e 100644 --- a/zerver/views/__init__.py +++ b/zerver/views/__init__.py @@ -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')