Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Notifications #1536

Merged
merged 107 commits into from
May 15, 2023
Merged

Notifications #1536

merged 107 commits into from
May 15, 2023

Conversation

rafalp
Copy link
Owner

@rafalp rafalp commented Mar 30, 2023

Adds new notifications feature to Misago. Old notifications data is still there in case people would want to revert their updates, but otherwise new misago.notifications app replaces old logic completely.

Fixes #1402

MVP: private threads and threads replies

  • Migrate thread subscriptions to watched threads
  • Add default thread watching options (settings and users)
  • Add API for watching/unwatching thread
  • Retrieve new and old in-app notifications via API
  • Add notifications list page
  • Add "mark all as read" option for notifications
  • Get notification message
  • Get redirect link to notification target
  • Zero user's notifications when they have no unread notifications to display
  • Use notification icons for notification level setting in user options screen
  • Display new notifications blurb in the navbar
  • Display notifications dropdown on desktop
  • Display notifications overlay on mobile
  • Replace subscribe option on thread view with watch option
  • Use new default thread watching options in posting
  • Update watched thread's read date if thread post is marked as read
  • Read posts notifications together with post
  • Notify users watching thread about new replies to it
  • Watch private thread you are added to
  • Notify users about new private thread
  • Add link for unwatching from emails in the e-mail
  • Replace subscribed threads list with watched threads list
  • Add redirect from subscribed threads list url to watched threads list
  • Remove read_at and secret fields from notification
  • Heal invalid unread notifications counter
  • Delete notifications older than X days
  • Remove subscriptions implementation (other than models)
  • On WatchedThread model remove notifications field and use send_emails flag instead
  • On Notification model remove extra_actors field
  • Add replied notifications to forum history faker
  • Add watching threads to forum history faker
  • Generate watched threads and notifications for all threads, users and replies

Data integrity

  • Anonymize actor name
  • Update actor name
  • Export user notifications
  • Deleting user content
  • Deleting user accounts
  • Moving posts
  • Merging posts
  • Deleting posts
  • Renaming threads
  • Moving threads
  • Merging threads
  • Deleting threads
  • Moving category contents
  • Deleting category contents

Notifications queries

  • Retrieve user notifications for list
  • Count user unread notifications
  • Retrieve user notification by id

Watched threads notifications

  • Get user's watched threads (user, -thread_id)
  • Get thread watchers to notify (-id, thread_id)
  • Get threads watchers (thread_id, user_id)

New navbar

  • Update logo and small logo help text to better describe their use

Q&A tests

  • Spellcheck with ChatGTP
  • Default watching options in users settings admin
  • User watching options in user admin
  • User watching options in their options form
  • New thread reply
  • New private thread
  • Auto watch thread
  • Change notifications on thread page
  • Change notifications on watched threads list

Dev docs

  • misago.notifications.message_factory
  • misago.notifications.redirect_factory
  • misago.notifications.users.notify_user

@rafalp rafalp added area: frontend This issue involves JavaScript, React.js and Node area: backend This issue involves Python, Django or dependency (eg. database) new feature New feature labels Mar 30, 2023
@rafalp rafalp added this to the 0.33 milestone Mar 30, 2023
@rafalp rafalp self-assigned this Mar 30, 2023
@coveralls
Copy link

coveralls commented Mar 30, 2023

Coverage Status

Coverage: 97.575% (-0.01%) from 97.585% when pulling b9226f0 on fix-1402-add-notifications into 68ed35c on master.

@rafalp rafalp marked this pull request as ready for review May 15, 2023 21:16
@rafalp rafalp merged commit b6eb89f into master May 15, 2023
@rafalp rafalp deleted the fix-1402-add-notifications branch May 15, 2023 21:30
@rafalp rafalp added the feature: notifications On site and email notifications label May 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: backend This issue involves Python, Django or dependency (eg. database) area: frontend This issue involves JavaScript, React.js and Node feature: notifications On site and email notifications new feature New feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add notifications feature
2 participants