GithubHelp home page GithubHelp logo

isabella232 / django-offline-messages Goto Github PK

View Code? Open in Web Editor NEW

This project forked from zapier/django-offline-messages

0.0 0.0 0.0 553 KB

Offline messages for Django Web Framework

Home Page: https://github.com/dym/django-offline-messages

License: BSD 3-Clause "New" or "Revised" License

Python 100.00%

django-offline-messages's Introduction

Installation Instructions

Make changes to your settings:

  • Add 'offline_messages' to INSTALLED_APPS
  • Set MESSAGE_STORAGE to 'offline_messages.storage.OfflineStorageEngine'

About

This is a slightly modified version of the excellent and simple offline_messages package. It includes generic foreign keys plus extra meta information. This is a specific implementation for Zapier as we have tons of feedback points, but its easy to confuse the bejesus out of our customers because important error messages disappear for good.

So basically this adds:

  1. Persistent history of messages.
  2. Generic foreign keys to attach messages to specific objects (any model, any record).
  3. The ability to store even more meta data (EG: the parameters that caused the message).

Enjoy!

Example Usage

You can continue to use the standard Django message system as desired. Messages created like:

from django.contrib import messages

messages.add_message(request, messages.INFO, 'Hello world.')

Will work just fine. However, if you'd like to create an offline message, do something like this:

from offline_messages.utils import create_offline_message, constants

create_offline_message(User.objects.get(id=1), "Hello there!", level=constants.WARNING)

Or like this:

from offline_messages.models import OfflineMessage

OfflineMessage.objects.create(user=User.objects.get(id=1), level=20, message='Hello world.')

Usage example from the real life:

# Iterate through users
for user in User.objects.all():
    already_notified = OfflineMessage.objects.filter(user=user, message=message).exists()
    if not already_notified:
        create_offline_message(user, message, level=constants.WARNING)

Extra Functionality

The idea behind utils is you can just do:

from offline_messages import utils as messages

In place of:

from django.contrib import messages

And still have access to boring old messages.success(request, 'Good job!') but also have access to be able to do things like...

comment = Comment.objects.create(title='A test', message='Thanks!')

messages.success(request, 'Comment posted!', content_object=comment, meta={'blah': 'blah'})

django-offline-messages's People

Contributors

bryanhelmig avatar dym avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.