mirror of
https://github.com/zulip/zulip.git
synced 2025-11-06 15:03:34 +00:00
do_mark_stream_messages_as_read: Accept a Client object.
We also fix an incorrect Optional in the type annotations.
This commit is contained in:
@@ -2777,6 +2777,7 @@ def bulk_remove_subscriptions(users: Iterable[UserProfile],
|
|||||||
notify_subscriptions_removed(user_profile, streams_by_user[user_profile.id])
|
notify_subscriptions_removed(user_profile, streams_by_user[user_profile.id])
|
||||||
|
|
||||||
event = {'type': 'mark_stream_messages_as_read',
|
event = {'type': 'mark_stream_messages_as_read',
|
||||||
|
'client_id': acting_client.id,
|
||||||
'user_profile_id': user_profile.id,
|
'user_profile_id': user_profile.id,
|
||||||
'stream_ids': [stream.id for stream in streams]}
|
'stream_ids': [stream.id for stream in streams]}
|
||||||
queue_json_publish("deferred_work", event)
|
queue_json_publish("deferred_work", event)
|
||||||
@@ -3578,7 +3579,8 @@ def do_mark_all_as_read(user_profile: UserProfile, client: Client) -> int:
|
|||||||
return count
|
return count
|
||||||
|
|
||||||
def do_mark_stream_messages_as_read(user_profile: UserProfile,
|
def do_mark_stream_messages_as_read(user_profile: UserProfile,
|
||||||
stream: Optional[Stream],
|
client: Client,
|
||||||
|
stream: Stream,
|
||||||
topic_name: Optional[str]=None) -> int:
|
topic_name: Optional[str]=None) -> int:
|
||||||
log_statsd_event('mark_stream_as_read')
|
log_statsd_event('mark_stream_as_read')
|
||||||
|
|
||||||
|
|||||||
@@ -999,7 +999,7 @@ def mark_stream_as_read(request: HttpRequest,
|
|||||||
user_profile: UserProfile,
|
user_profile: UserProfile,
|
||||||
stream_id: int=REQ(validator=check_int)) -> HttpResponse:
|
stream_id: int=REQ(validator=check_int)) -> HttpResponse:
|
||||||
stream, recipient, sub = access_stream_by_id(user_profile, stream_id)
|
stream, recipient, sub = access_stream_by_id(user_profile, stream_id)
|
||||||
count = do_mark_stream_messages_as_read(user_profile, stream)
|
count = do_mark_stream_messages_as_read(user_profile, request.client, stream)
|
||||||
|
|
||||||
log_data_str = "[%s updated]" % (count,)
|
log_data_str = "[%s updated]" % (count,)
|
||||||
request._log_data["extra"] = log_data_str
|
request._log_data["extra"] = log_data_str
|
||||||
@@ -1021,7 +1021,7 @@ def mark_topic_as_read(request: HttpRequest,
|
|||||||
if not topic_exists:
|
if not topic_exists:
|
||||||
raise JsonableError(_('No such topic \'%s\'') % (topic_name,))
|
raise JsonableError(_('No such topic \'%s\'') % (topic_name,))
|
||||||
|
|
||||||
count = do_mark_stream_messages_as_read(user_profile, stream, topic_name)
|
count = do_mark_stream_messages_as_read(user_profile, request.client, stream, topic_name)
|
||||||
|
|
||||||
log_data_str = "[%s updated]" % (count,)
|
log_data_str = "[%s updated]" % (count,)
|
||||||
request._log_data["extra"] = log_data_str
|
request._log_data["extra"] = log_data_str
|
||||||
|
|||||||
@@ -14,7 +14,8 @@ from django.core.handlers.wsgi import WSGIRequest
|
|||||||
from django.core.handlers.base import BaseHandler
|
from django.core.handlers.base import BaseHandler
|
||||||
from zerver.models import \
|
from zerver.models import \
|
||||||
get_client, get_system_bot, ScheduledEmail, PreregistrationUser, \
|
get_client, get_system_bot, ScheduledEmail, PreregistrationUser, \
|
||||||
get_user_profile_by_id, Message, Realm, Service, UserMessage, UserProfile
|
get_user_profile_by_id, Message, Realm, Service, UserMessage, UserProfile, \
|
||||||
|
Client
|
||||||
from zerver.lib.context_managers import lockfile
|
from zerver.lib.context_managers import lockfile
|
||||||
from zerver.lib.error_notify import do_report_error
|
from zerver.lib.error_notify import do_report_error
|
||||||
from zerver.lib.feedback import handle_feedback
|
from zerver.lib.feedback import handle_feedback
|
||||||
@@ -41,7 +42,6 @@ from zerver.lib.str_utils import force_str
|
|||||||
from zerver.context_processors import common_context
|
from zerver.context_processors import common_context
|
||||||
from zerver.lib.outgoing_webhook import do_rest_call, get_outgoing_webhook_service_handler
|
from zerver.lib.outgoing_webhook import do_rest_call, get_outgoing_webhook_service_handler
|
||||||
from zerver.models import get_bot_services
|
from zerver.models import get_bot_services
|
||||||
from zulip import Client
|
|
||||||
from zulip_bots.lib import extract_query_without_mention
|
from zulip_bots.lib import extract_query_without_mention
|
||||||
from zerver.lib.bot_lib import EmbeddedBotHandler, get_bot_handler, EmbeddedBotQuitException
|
from zerver.lib.bot_lib import EmbeddedBotHandler, get_bot_handler, EmbeddedBotQuitException
|
||||||
|
|
||||||
@@ -522,6 +522,7 @@ class DeferredWorker(QueueProcessingWorker):
|
|||||||
def consume(self, event: Mapping[str, Any]) -> None:
|
def consume(self, event: Mapping[str, Any]) -> None:
|
||||||
if event['type'] == 'mark_stream_messages_as_read':
|
if event['type'] == 'mark_stream_messages_as_read':
|
||||||
user_profile = get_user_profile_by_id(event['user_profile_id'])
|
user_profile = get_user_profile_by_id(event['user_profile_id'])
|
||||||
|
client = Client.objects.get(id=event['client_id'])
|
||||||
|
|
||||||
for stream_id in event['stream_ids']:
|
for stream_id in event['stream_ids']:
|
||||||
# Since the user just unsubscribed, we don't require
|
# Since the user just unsubscribed, we don't require
|
||||||
@@ -529,4 +530,4 @@ class DeferredWorker(QueueProcessingWorker):
|
|||||||
# streams would never be accessible)
|
# streams would never be accessible)
|
||||||
(stream, recipient, sub) = access_stream_by_id(user_profile, stream_id,
|
(stream, recipient, sub) = access_stream_by_id(user_profile, stream_id,
|
||||||
require_active=False)
|
require_active=False)
|
||||||
do_mark_stream_messages_as_read(user_profile, stream)
|
do_mark_stream_messages_as_read(user_profile, client, stream)
|
||||||
|
|||||||
Reference in New Issue
Block a user