This app is very similar to the Messaging System on Facebook. There are tests, but they are from the project I forked it from. I will update and improve them once I get around to it.
- Each Message is a thread with participants and messages
- Inbox with filter for read and unread messages
- Outbox
- Fulltext search support using Haystack
- Users are notified using django-notification when new messages arrive
- Batch update to set messages to read/unread/delete
- Ajax posting of messages within thread
- Can be used with jquery.tokeninput to offer a similar usuability as Facebook when it comes to selecting recipients.
- Installable using pip and easy_install
- Modular message sending using facebox
The app comes with a very basic user search component. If you want to extend it or adapt it to your needs look at views.recipient_search. Adapt your own version in a seperate app and then change the call in your compose templates:
$("#id_recipient").tokenInput("{% url recipient_search %}?format=json", parameters)
to point to your custom view.
This feature is not finished yet. In the future it is possible to enable reply emails (if you are using Sendgrid as email service) using the following settings:
THREADED_MESSAGES_USE_SENDGRID = True THREADED_MESSAGES_ID = "m"
When a user replies online the recipient will get an email to which he can respond.
- Haystack
- Django-notification (this version is compatible with Django 1.4: https://github.com/yourcelf/django-notification#egg=django_notification-dev )
- django-avatar
- django-pagination
- django-crispy-forms
- sendgrid-parse-api (released soon) - only if email replies should be activated
pip install -e "git+http://github.com/philippWassibauer/django-threaded-messages.git#egg=threaded-messages"
or
pip install django-threaded-messages
There are two other repositories doing this (one of them is not maintained anymore):
https://github.com/typeish/django-threaded-messages
I am not sure what the exact differences are to this implementation. I am pretty certain that they don't include read/unread, fulltext search, pip install etc.
http://github.com/philippWassibauer http://twitter.com/scalar http://philippw.tumblr.com https://bitbucket.org/philippwassibauer