mirror of
https://github.com/zulip/zulip.git
synced 2025-11-18 21:48:30 +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])
|
users=[user_profile.id])
|
||||||
tornado_callbacks.send_notification(notice)
|
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):
|
def bulk_add_subscriptions(streams, users):
|
||||||
recipients_map = bulk_get_recipients(Recipient.STREAM, [stream.id for stream in streams])
|
recipients_map = bulk_get_recipients(Recipient.STREAM, [stream.id for stream in streams])
|
||||||
recipients = [recipient.id for recipient in recipients_map.values()]
|
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:
|
for (user_profile, recipient_id, stream) in new_subs:
|
||||||
color = pick_color_helper(user_profile, subs_by_user[user_profile.id])
|
color = pick_color_helper(user_profile, subs_by_user[user_profile.id])
|
||||||
sub_to_add = Subscription(user_profile=user_profile, active=True,
|
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_by_user[user_profile.id].append(sub_to_add)
|
||||||
subs_to_add.append((sub_to_add, stream))
|
subs_to_add.append((sub_to_add, stream))
|
||||||
Subscription.objects.bulk_create([sub for (sub, stream) in subs_to_add])
|
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)
|
color = pick_color(user_profile)
|
||||||
(subscription, created) = Subscription.objects.get_or_create(
|
(subscription, created) = Subscription.objects.get_or_create(
|
||||||
user_profile=user_profile, recipient=recipient,
|
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
|
did_subscribe = created
|
||||||
if not subscription.active:
|
if not subscription.active:
|
||||||
did_subscribe = True
|
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, \
|
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, \
|
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, \
|
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.lib.create_user import random_api_key
|
||||||
from zerver.forms import RegistrationForm, HomepageForm, ToSForm, CreateBotForm, \
|
from zerver.forms import RegistrationForm, HomepageForm, ToSForm, CreateBotForm, \
|
||||||
is_inactive, not_mit_mailing_list
|
is_inactive, not_mit_mailing_list
|
||||||
@@ -707,7 +708,8 @@ def home(request):
|
|||||||
onboarding_steps = ujson.loads(user_profile.onboarding_steps),
|
onboarding_steps = ujson.loads(user_profile.onboarding_steps),
|
||||||
staging = settings.STAGING_DEPLOYED or not settings.DEPLOYED,
|
staging = settings.STAGING_DEPLOYED or not settings.DEPLOYED,
|
||||||
alert_words = register_ret['alert_words'],
|
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')
|
statsd.incr('views.home')
|
||||||
|
|||||||
Reference in New Issue
Block a user