• May 20, 2023, 8:24 p.m.

    Misago 0.35 is a feature release focused on adding notifications framework to Misago.

    Notifications MVP

    In past Misago used to have an on-site alerts feature where users would receive an alert about some event (eg.: new reply in watched thread). This feature was mostly dropped when Misago was rewritten 7 years ago, with plan to re-introduce it later, hence the two-step notification option in thread subscriptions.

    Misago 0.35 brings familiar bell icon to forum navbar, and users will now receive notification about events they opted in to, like new replies and private threads. Latest notifications are instantly available through the notifications dropdown, part of new forum navbar. This dropdown enables users to see list of all recent notifications by default, but there's quick toggle to see only unread notifications. Users can also navigate to "Notifications" page which lets them to see all, read or unread only notifications, but also dismiss all unread notifications with "Mark all read" button.

    Notifications associated with new posts will be marked as read automatically when the API to mark post as read is called by JavaScript client. So users may experience situation when navbar displays red number next to notification bell, but "new reply" notification was already marked as read.

    Notifications are also marked as read when user clicks on unread notification on list for first time.

    Notification e-mails include a link that users may click to disable e-mail notifications.

    Notifications system also introduces defensiveness and self-healing as part of its features. It will not crash when watched thread entries for single user are multiplied, and will delete excessive entries when user changes their thread notification preferences next time. There are also heuristics in notifications API to detect and fix invalid unread notifications counter for user. Finally, process of notifying users about event runs on separate worker (Celery tasks queue), with process of notifying each user being separated from others, increasing responsiveness of forum and preventing errors encountered during attempt to notify an user about an event from disrupting other users experience.

    This feature's implementation is currently considered "minimal viable product" ("MVP"). Only notifications about new replies and new private threads are currently implemented, but in future releases notifications will be successively extended to other features like post mentions, likes or follows.

    Admin control panel now includes new "Notifications" page in settings section.

    Notifications (both old and new) are automatically pruned when they are older than specified in admin control panel.

    You can read development story behind the feature in "Notifications" thread in "Roadmap" category.

    Misago's GitHub also introduces a guide on adding new notification types for core contributors and plugin developers: notifications.md

    New forum navbar

    Misago 0.35 brings new forum navbar both for big and small displays. New navigation menu hides all navigation options under hamburger menu, makes more parts of site accessible directly from navbar, and improves navbar on mobile devices.

    New navbar also has read-only version for clients without JavaScript enabled, removing past effect where "Sign in" and "Register" buttons just appeared from nowhere.

    Lastly, navbar now uses position: sticky, so it stays on top of view when users scroll the site.

    In future releases I am planning to continue improving it, adding dropdown with recent private threads or replacing forum's logo with thread title when people scroll around thread's page.

    "Subscriptions" have been replaced by "watched threads"

    Misago now uses "watching" nomenclature instead which should be instantly understandable to people familiar with other forum software.

    Also infamous "Disabled" button on threads page is now labeled with "Watch", and stars iconography was replaced with bells.

    Users trying to access "subscribed" threads page will be redirected to watched threads page.

    Translation contexts

    Misago 0.35 continues addition of message contexts to translation messages in app. Because messages with context are considered different from ones without context, site owners running Misago in their language will notice some previously translated messages to become untranslated again. Past translation messages may still be retrieved from po files on Misago's GitHub.

    This approach is disruptive to translators, so in future I am planning to create separate Misago release that will be focused on adding context to all translation messages, and will create separate Transifex project for this new Misago version, so past versions translations are not overwritten.

    I apologize for problems caused. 🙏

    Fixed bug in active posts ranking

    Misago 0.35 fixes a bug where thread events (small messages between posts about thread being renamed/closed/moved/etc.) were counted to users activity.

    INSTALLED_APPS and context_processors are now imported from misago.settings

    In future I would like to hold most of settings required for Misago to work to be defined in misago package and not in "site" or "Django project" packages like they are currently. This "hiding" of configuration from sites is mostly dictated by reducing number of places Misago's Django configuration is stored, and reducing opt-in complexity for site owners.

    Site owners are still able to override those settings by creating settings_override.py file next to their site's settings.py and defining new values for those settings.

    Changelog

    • Notifications (#1536)
    • Redesign forum navbar (#1536)
    • Exclude events from active posters ranking (#1587)
    • Synchronize translations with Transifex (#1597)
    • Move INSTALLED_APPS setting's value from sites settings.py to misago/settings.py (#1596)
    • Move context_processors setting's value from sites settings.py to misago/settings.py (#1598)