Skip to main content

No project description provided

Project description

django-one-time-notices

Displays a modal with notice content if a user hasn't seen it yet.

Install

pip install django-one-time-notices

Settings

Add to INSTALLED_APPS:

django.contrib.auth
django.contrib.admin
...
notices

Add to TEMPLATES['OPTIONS']:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                ...
                'django.core.context_processors.request'
                ...
                'notices.context_processors.notices',
            ]
        }
    }
]

To customise the notice colour (button and title border), add

NOTICES_COLOUR=<colour>  # any css-acceptable colour

Static assets

Add notices/css/notices.css and notices/js/notices.js to your markup.

Usage

In templates, load the tags:

{% load notices_tags %}

and add the modal:

{% NoticesModal %} 

The modal will be shown. Once it has been dismissed it won't be shown again unless the notice version changes (see below), the notice_seen cookie is deleted, or the notice timeout is reached.

Setting/updating the notice

via models and django admin

Add a Notice instance in the django admin.

Notices have title, content, version and optional timeout_seconds, starts_at and expires_at fields.

Version can be any positive number; it defaults to incrementing the last version number. Set the expires_at datetime to avoid showing this notice after the specified date, even if the user has never seen/dismissed it. Set the starts_at datetime to avoid showing the notice until a particular date/time.

Note that only the notice with the latest version will be shown. If the latest version has not started yet, a previous version will not be shown, even if it hasn't expired.

Set the timeout_seconds to set a cookie timeout; this means the notice will be reshown.

To show a new notice, add another Notice instance with an incremented version number.

via django settings

Override the Notice model by adding to your settings.py: NOTICES_VERSION # an integer NOTICES_TITLE # optional, default = "New!" NOTICES_CONTENT # optional, default = "" NOTICES_TIMEOUT_SECONDS # optional, default = None

Set NOTICES_VERSION = 0 to clear the cookie and disable showing notices at all.

Project details


Download files

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

Source Distribution

django_one_time_notices-0.1.3.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

django_one_time_notices-0.1.3-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file django_one_time_notices-0.1.3.tar.gz.

File metadata

  • Download URL: django_one_time_notices-0.1.3.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.11.3 Linux/5.15.0-76-generic

File hashes

Hashes for django_one_time_notices-0.1.3.tar.gz
Algorithm Hash digest
SHA256 21af73fa20b3f526422a225a38bd35d1c6dca22a08f395968fca4bf82de92609
MD5 8dd00337f0d1b97d3901b89c9e064d06
BLAKE2b-256 f31491dee13e93db7a284e3ac501237e2dd39d0837b1ace8fdc196baa9cf103d

See more details on using hashes here.

File details

Details for the file django_one_time_notices-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for django_one_time_notices-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ca1806e85c5a3dc756fcd4028aa28763a61e1e69f04ca391733e172c8892a139
MD5 8834239f3c94a5fe4775aa020e78e5ac
BLAKE2b-256 619f1d814985d3a2db93039a15bd550f5f08964d86ae8be772fb22e20c17ca56

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