Giter Club home page Giter Club logo

django-gatekeeper's Introduction

django-gatekeeper

Django application for moderation of model instances.

Provides convenience methods and an admin interface for moderating instances of registered Django models.

django-gatekeeper is a project of Sunlight Labs (c) 2008. Writen by Jeremy Carbaugh <[email protected]>

All code is under a BSD-style license, see LICENSE for details.

Homepage: http://pypi.python.org/pypi/django-gatekeeper/

Source: http://github.com/sunlightlabs/django-gatekeeper/

Requirements

python >= 2.4

django >= 1.0

Installation

To install run

python setup.py install

which will install the application into python's site-packages directory.

Quick Setup

settings.py

Add to INSTALLED_APPS:

gatekeeper

Be sure to place gatekeeper above any application which contains models that will be moderated.

Add to MIDDLEWARE_CLASSES:

gatekeeper.middleware.GatekeeperMiddleware

Register Models

>>> from django.db import models
>>> import gatekeeper
>>> class MyModel(models.Model):
...     pass
>>> gatekeeper.register(MyModel)

Admin Moderation Queue

Include the following in urls.py BEFORE the default admin:

url(r'^admin/gatekeeper/', include('gatekeeper.urls')),

Filtering Moderated Models

>>> from myapp.models import MyModel
>>> import gatekeeper
>>> def index(request):
...     my_models = gatekeeper.approved(MyModel.objects.get(creator=request.user))

Advanced Usage

Auto-Moderation

It can be hassle to have to manually moderate objects when there is a simple ruleset used to determine how an object will be moderated. In order to use auto-moderation, the following needs to be added to settings.py:

GATEKEEPER_ENABLE_AUTOMODERATION = True

Gatekeeper provides two methods of auto-moderation. First, if the user that saves a moderated object has permission to moderate that object, it will be automatically approved. This will always happen if GATEKEEPER_ENABLE_AUTOMODERATION is set to true in settings.py. The second form of auto-moderation allows a moderation method to be written. This method should return True to approve, False to reject, or None to pass on for manual moderation. The auto-moderation function is pass as an argument when registering a Model.

>>> class MyModel(models.Model):
...     pass
>>> def myautomod(obj):
...     pass
>>> gatekeeper.register(MyModel, auto_moderator=myautomod)

If the auto-moderation function returns None or is not specified for a model, the first form of auto-moderation will be attempted.

Default Moderation

By default, moderated model instances will be marked as pending and placed on the moderation queue when created. This behavior can be overridden by specifying GATEKEEPER_DEFAULT_STATUS in settings.py.

  • 0 - mark objects as pending and place on the moderation queue
  • 1 - mark objects as approved and bypass the moderation queue
  • -1 - mark objects as rejected and bypass the moderation queue

Moderation Queue Notifications

Gatekeep will send a notification email to a list of recipients when a new object is placed on the moderation queue. Specify GATEKEEPER_MODERATOR_LIST in settings.py to enable notifications.

GATEKEEPER_MODERATOR_LIST = ['[email protected]','[email protected]']

Post-moderation Signal

Many applications will want to execute certain tasks once an object is moderated. Gatekeeper provides a signal that is fired when an object is manually or automatically moderated.

gatekeeper.post_moderation

django-gatekeeper's People

Contributors

jcarbaugh avatar

Stargazers

 avatar  avatar

Watchers

 avatar  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.