django-simple-audit-gizmag 0.2.2

Creator: codyrutscher

Last updated:

Add to Cart

Description:

djangosimpleauditgizmag 0.2.2

This applications was created to audit model’s changes and maintain a log of them


Installation
You can install django-simple-audit in 2 ways: using pip or by setup.py install
$ pip install django-simple-audit
Then modify your settings.py, adding the package simple_audit in INSTALLED_APPS and in MIDDLEWARE_CLASSES add
simple_audit.middleware.TrackingRequestOnThreadLocalMiddleware:
INSTALLED_APPS = [
'...',
'simple_audit',
]

MIDDLEWARE_CLASSES = [
'...',
'simple_audit.middleware.TrackingRequestOnThreadLocalMiddleware',
]


Usage

Tracking changes on a model
to audit a model you need import simple_audit and then register the model to be audited.
from django.db import models
import simple_audit


class Message(models.Model):

title = models.CharField(max_length=50, blank=False)
text = models.TextField(blank=False)

def __unicode__(self):
return self.text


class Owner(models.Model):

name = models.CharField(max_length=50, blank=False)

def __unicode__(self):
return self.name


class VirtualMachine(models.Model):

name = models.CharField(max_length=50, blank=False)
cpus = models.IntegerField()
owner = models.ForeignKey(Owner)
so = models.CharField(max_length=100, blank=False)
started = models.BooleanField()

def __unicode__(self):
return self.name


simple_audit.register(Message, Owner, VirtualMachine)


Advanced Usage (without httprequest or our middleware)
You can use django-simple-audit without an http request (for example in management command). In this situation
there is no http request on thread context. To ensure gathering all modification on a single AuditRequest, you can
specify it:
AuditRequest.new_request(path, user, ip)
try:
# my code... in same thread
finally:
AuditRequest.cleanup_request()


Tracking m2m fields changes
Tracking m2m fields changes is still experimental, but you can enable it with the following variable:

DJANGO_SIMPLE_AUDIT_M2M_FIELDS = True

You need to have at least one cache backend set in your django settings, otherwise the previous settings will be set to False.
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
'LOCATION': 'unique',
'TIMEOUT': 300,
}
}



Dependencies

Django >= 1.8
django.contrib.contenttypes installed in INSTALLED_APPS



TODO

Improve tests



CHANGELOG


0.2.2

Add support for Django 1.9.





0.2.1

Drop South, require Django 1.8 or newer.





0.2.0

Use South for migrations





0.1.12

Created some simple tests
Enable many to many fiedls tracking (see Usage)

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.