Skip to main content

Wrapper around django.contrib.messages adding persistence.

Project description

# Persistent Messages-like Framework for Django

Persisent, dismissable, targeted, messages framework for Django apps

## STATUS

Alpha - pls do not use. This README is six years old.

## Background

Django messages are great for one-off notifications to users, but not
for persistent notification banners. From the [official
documentation](https://docs.djangoproject.com/en/1.11/ref/contrib/messages/)
on the Django messages framework:

> Quite commonly in web applications, you need to display a one-time
> notification message to the user after processing a form or some other
> types of user input. [...] The messages framework allows you to
> temporarily store messages in one request and retrieve them for
> display in a subsequent request (usually the next one).

These one-time messages are usually dynamic, created within a view
function, to alert the user to something that has just happened. This
project is designed to extend the pattern to support configurable and
persistent messages to users. The canonical use case for this is the EU
Cookie warning. This appears to everyone (logged in or not) until the
user explicitly dismiss it. It is not related to any specific action
that the user has taken (beyond visiting the site for the first time),
and it persists across all requests.

## Requirements

- Messages can be managed via the admin site
- The message can contain HTML (specifically href links)
- The message can be categorised (e.g. INFO | WARNING)
- The message can be targeted to appear to the following groups:
- All users (inc. anonymous)
- Authenticated users only
- Specific user groups only
- The message can be marked as dismissable
- The message can be enabled / disabled
- The message can expire (do not show after {{datetime}})
- Track message dismissals

## Use cases

- As the marketing team I would like to notify users of an event / activity
- As the tech team I would like to alert users to platform maintenance
- As the EU I would like to annoy people with a message about cookies

## Technical implementation

1. Print out all messages targeted at a user

```python
# live == enabled, not expired, not-dismissed, targeted at user
for m in PersistentMessage.objects.for_user(user).active():
print(m.message)
```

2. Display messages in a template using template context

```html
<body>
{% for m in persistent_messages %}
<div class="{{m.extra_tags}}">{{ m.message }}</div>
{% endfor %} ...
</body>
```

Project details


Release history Release notifications | RSS feed

This version

0.3

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_persistent_messages-0.3.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

django_persistent_messages-0.3-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file django_persistent_messages-0.3.tar.gz.

File metadata

  • Download URL: django_persistent_messages-0.3.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.10.10 Darwin/23.1.0

File hashes

Hashes for django_persistent_messages-0.3.tar.gz
Algorithm Hash digest
SHA256 36bb654f8d7868a5217e571c71299ab92de41751a3a7abff36f1b091e8d6fa58
MD5 561e7013b914fe7777871cc4be1eabeb
BLAKE2b-256 aa550b02396e2ced8ac9a52d31c30e01b9fb3f5e8fcf569cc69dd5f8bf6be789

See more details on using hashes here.

File details

Details for the file django_persistent_messages-0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for django_persistent_messages-0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 65f7fa9afd0ce11d8841c12f43a355144d5d66a9a905892e2d8b52bb4a96f7df
MD5 d6476ebf68166748152e0acad5cbc23a
BLAKE2b-256 1fcfb0f04c15bcfdcc75371444f16c1240c20f6f6472c9578f717d5cdc6814cb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page