zulip/zerver/lib
Suyash Vardhan Mathur 20a97bdb05 events: Add functionality to mark messages as unread.
Co-authored-by: Steve Howell <showell@zulip.com>
Co-authored-by: Tim Abbott <tabbott@zulip.com>

This commit adds the backend functionality to
mark messages as unread through update_message_flags
with `unread` flag and `remove` operation.

We also manage incoming events in the webapp.

Tweaked by tabbott to simplify the implementation and add an API
feature level update to the documentation.

This commit was originally drafted by showell, and showell
also finalized the changes.  Many thanks to Suyash here for
the main work here, which was to get all the tests and
documentation work moving forward.
2022-03-15 18:00:35 -07:00
..
markdown help_docs: Document user management via user profile modal. 2022-03-15 12:35:03 -07:00
url_preview url_preview: Only return image URLs that validate as URLs. 2022-02-18 15:32:27 -08:00
webhooks python: Remove unnecessary list comprehension. 2021-12-30 06:51:50 -08:00
__init__.py
actions.py events: Add functionality to mark messages as unread. 2022-03-15 18:00:35 -07:00
addressee.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
alert_words.py docs: Remove highlight parameters from links. 2022-02-16 13:15:39 -08:00
attachments.py python: Fix mypy no_implicit_reexport errors. 2021-07-16 14:02:31 -07:00
avatar.py avatar: Remove ?x=x kludge. 2021-10-14 12:47:43 -07:00
avatar_hash.py typing: Improve typing with assertions. 2021-08-20 05:54:19 -07:00
bot_config.py bot_config: Placate mypy 0.930. 2021-12-28 09:31:55 -08:00
bot_lib.py python: Remove locally dead code. 2021-08-19 01:51:37 -07:00
bot_storage.py python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00
bulk_create.py typing: Fix argument type for models in function signatures. 2021-08-20 05:54:19 -07:00
cache.py python: Remove default "utf8" argument for encode(), decode(). 2021-08-02 15:53:52 -07:00
cache_helpers.py session: Enforce that changes cannot happen in a transaction. 2022-03-15 13:52:15 -07:00
camo.py python: Convert "".format to Python 3.6 f-strings. 2021-08-02 15:53:52 -07:00
ccache.py python: Remove default "utf8" argument for encode(), decode(). 2021-08-02 15:53:52 -07:00
compatibility.py compatibility: Shift functions to new module. 2021-06-05 07:33:25 -07:00
context_managers.py python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00
create_user.py docs: Add missing space in “time zone”. 2022-02-24 14:05:12 -08:00
data_types.py python: Reformat with Black, except quotes. 2021-02-12 13:11:19 -08:00
db.py requirements: Upgrade Python requirements. 2021-12-28 09:31:55 -08:00
debug.py python: Accept Optional[FrameType] in signal handlers. 2021-12-28 09:31:55 -08:00
dev_ldap_directory.py python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00
digest.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
display_recipient.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
domains.py python: Convert deprecated Django ugettext alias to gettext. 2021-04-15 18:01:34 -07:00
drafts.py python: Convert deprecated Django ugettext alias to gettext again. 2022-01-13 14:28:12 -08:00
email_mirror.py rate_limit: Pass seconds to freedom to all RateLimited exceptions. 2021-11-04 20:34:39 -07:00
email_mirror_helpers.py email_mirror: Move ZulipEmailForwardUserError into email_mirror_helpers. 2021-08-31 16:37:54 -07:00
email_notifications.py user_groups: Don't use access_user_group_by_id for notifications. 2022-01-04 14:45:04 -08:00
email_validation.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
emoji.py emoji: Add backend changes to support still image for animated emojis. 2021-09-12 07:13:04 +00:00
error_notify.py backend: Change `do_report_error` return value. 2022-02-04 15:16:55 -08:00
event_schema.py events: Add functionality to mark messages as unread. 2022-03-15 18:00:35 -07:00
events.py events: Add functionality to mark messages as unread. 2022-03-15 18:00:35 -07:00
exceptions.py zilencer: Stop serving requests from deactivated remote servers. 2022-01-21 14:56:04 -08:00
export.py push_notifications: Send user_uuid to the push bouncer. 2022-03-14 17:47:30 -07:00
external_accounts.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
fix_unreads.py models: Use default db table name for UserTopic. 2021-09-17 12:14:28 -07:00
generate_test_data.py populate_db: Generate resolved topics for testing. 2021-08-03 16:42:09 -07:00
github.py fetch-contributor-data: Use builtin backoff. 2021-09-01 05:34:13 -07:00
home.py home: Send rendered realm description for spectators. 2022-02-17 16:17:15 +00:00
hotspots.py hotspots: Remove intro_reply hotspot. 2021-12-07 21:55:59 -08:00
html_diff.py html_diff: Handle empty differences between empty strings. 2021-10-18 18:27:40 -07:00
html_to_text.py python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00
i18n.py request: Refactor ZulipRequestNotes to RequestNotes. 2021-09-03 08:48:45 -07:00
import_realm.py import: Create system groups and add users to it while importing. 2022-03-14 18:53:47 -07:00
initial_password.py python: Remove default "utf8" argument for encode(), decode(). 2021-08-02 15:53:52 -07:00
integrations.py webhooks: Rename Yo App to Yo. 2021-12-22 14:05:17 -08:00
logging_util.py python: Remove duplicates of global imports inside functions. 2022-01-12 13:50:12 -08:00
management.py management: Fix typing for management scripts. 2021-08-20 05:54:18 -07:00
mdiff.py python: Replace universal_newlines with text. 2022-01-23 22:16:01 -08:00
mention.py performance: Cache stream lookups in MentionBackend. 2021-12-30 11:28:15 -08:00
message.py events: Add functionality to mark messages as unread. 2022-03-15 18:00:35 -07:00
migrate.py typing: Replace CursorObj by CursorWrapper. 2021-08-20 05:54:19 -07:00
mobile_auth_otp.py python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00
name_restrictions.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
narrow.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
notes.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
notification_data.py notifications: Don't enqueue notifications for bots. 2022-01-03 09:55:06 -08:00
onboarding.py onboarding: Manage occurrence of 'help' command. 2021-12-06 11:32:00 -08:00
outgoing_http.py python: Replace requests.packages.urllib3 alias with urllib3. 2022-01-23 22:14:17 -08:00
outgoing_webhook.py outgoing webhooks: Fix inconsistencies with Slack's API. 2021-09-23 11:19:20 -07:00
presence.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
profile.py python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00
push_notifications.py push_notifs: Log both user id and user uuid if we have them. 2022-03-14 17:47:30 -07:00
pysa.py
queue.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
rate_limiter.py request: Refactor ZulipRequestNotes to RequestNotes. 2021-09-03 08:48:45 -07:00
realm_description.py markdown: Refactor out additional properties added to Message. 2021-06-24 18:14:53 -07:00
realm_icon.py python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00
realm_logo.py realm: Rename plan type constants to be more descriptive. 2021-10-19 12:20:39 -07:00
redis_utils.py python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00
remote_server.py push_notifs: Log the number of devices notification was sent to. 2021-09-29 15:50:06 -07:00
request.py request: Support converter or json_validator with argument_type="body". 2022-03-15 13:02:02 -07:00
response.py backend: Add request as parameter to json_success. 2022-02-04 15:16:56 -08:00
rest.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
retention.py models: Manage indexes from migration 0001 with Django. 2022-02-23 11:59:45 -08:00
safe_session_cached_db.py session: Enforce that changes cannot happen in a transaction. 2022-03-15 13:52:15 -07:00
scim.py scim: Upgrade to django-scim2 0.17.1. 2022-02-04 15:43:45 -08:00
scim_filter.py scim: Order Users by id when queried using filter syntax. 2021-11-26 16:06:16 -08:00
send_email.py send_email: Log error if EMAIL_HOST_USER is set without password. 2022-02-09 11:04:40 -08:00
server_initialization.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
sessions.py sessions: Use SessionBase instead of Session. 2021-07-24 09:54:21 -07:00
soft_deactivation.py soft_deactivate: Handle multiple SUBSCRIPTION_DEACTIVATEDs. 2021-11-10 12:19:25 -08:00
sqlalchemy_utils.py sqlalchemy_utils: Remove NonClosingPool.recreate override. 2022-02-10 11:59:41 -08:00
storage.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
stream_color.py streams: Extract stream_color library. 2022-03-14 18:01:36 -07:00
stream_subscription.py performance: Avoid monster query for existing subs. 2021-12-28 12:15:02 -08:00
stream_topic.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
stream_traffic.py streams: Extract stream_traffic library. 2022-03-14 18:01:36 -07:00
streams.py docs: Consistently hyphenate “web-public”. 2022-01-28 17:45:45 -08:00
string_validation.py string_validation: Prohibit non-printable characters in stream names. 2022-02-01 16:04:34 -08:00
subdomains.py python: Reformat with Black 22 (stable). 2022-02-18 18:03:13 -08:00
subscription_info.py subscriptions: Improve types for subscription info. 2022-03-14 18:01:39 -07:00
templates.py api docs: Replace most markdown files with a common template. 2021-06-24 10:42:08 -07:00
test_classes.py user_groups: Add members to the System groups created. 2022-03-14 18:53:46 -07:00
test_console_output.py test_console_output: Avoid appending to bytes in a loop. 2021-12-29 16:50:08 -08:00
test_data.source.txt Rename default branch to ‘main’. 2021-09-06 12:56:35 -07:00
test_fixtures.py python: Replace universal_newlines with text. 2022-01-23 22:16:01 -08:00
test_helpers.py test_helpers: Fix exception safety of stdout_suppressed. 2022-01-11 19:38:36 -08:00
test_runner.py sqlalchemy_utils: Make get_sqlalchemy_connection a context manager. 2022-02-10 11:59:41 -08:00
tex.py python: Replace universal_newlines with text. 2022-01-23 22:16:01 -08:00
thumbnail.py thumbnail: Remove unused is_camo_url parameter. 2021-08-19 01:51:37 -07:00
timeout.py timeout: Remove unnecessary varargs support. 2021-02-15 17:05:28 -08:00
timestamp.py docs: Add missing space in “time zone”. 2022-02-24 14:05:12 -08:00
timezone.py python: Reformat with Black, except quotes. 2021-02-12 13:11:19 -08:00
topic.py request: Add a var_name parameter to converter. 2022-03-15 13:02:02 -07:00
transfer.py python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00
type_debug.py python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00
types.py types: Create a new TypedDict RealmPlaygroundDict for playground objects. 2022-03-15 15:58:36 -07:00
unminify.py unminify: Fix lookup if source map does not exist in disk. 2021-03-16 14:46:18 -07:00
upload.py emoji: Support animated PNGs. 2022-03-15 12:47:21 -07:00
url_encoding.py hash_util: Move enc/decodeHashComponent to shared. 2022-03-01 18:14:31 -08:00
user_agent.py python: Reformat with Black, except quotes. 2021-02-12 13:11:19 -08:00
user_groups.py user_groups: Add members to the System groups created. 2022-03-14 18:53:46 -07:00
user_mutes.py typing: Use assertions for function arguments. 2021-07-26 14:48:45 -07:00
user_status.py status: Extract format_user_status helper. 2021-09-02 16:50:25 -07:00
user_topics.py user_topic: Rename topic_mutes.py to user_topics.py. 2022-03-11 14:26:55 -08:00
users.py events: Remove some properties of user sent to spectators. 2022-02-22 10:36:08 -08:00
utils.py utils: Remove unused split_by function. 2021-08-19 01:51:37 -07:00
validator.py validator: Add WildValue class for enforcing JSON type checking. 2022-03-15 13:02:02 -07:00
widget.py poll widget: Add server validation. 2021-06-14 17:46:16 -07:00
zcommand.py zcommand: Replace "mode" with "theme" in the returned message. 2021-11-22 14:59:16 -08:00
zephyr.py python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00