Use django-auditlog 😏

This commit is contained in:
Jan Tuomi
2017-06-17 13:47:31 +03:00
parent c9aef9dba4
commit 4f62dce814
4 changed files with 16 additions and 92 deletions
+1
View File
@@ -24,3 +24,4 @@ django-tables2==1.6.1
pep8==1.7.0
dealer==2.0.5
django-modeltranslation==0.12.1
django-auditlog==0.4.3
+2
View File
@@ -50,6 +50,7 @@ INSTALLED_APPS = [
'django_nose',
'bootstrap3',
'django_tables2',
'auditlog'
]
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
@@ -73,6 +74,7 @@ MIDDLEWARE_CLASSES = [
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'auditlog.middleware.AuditlogMiddleware'
]
CORS_ORIGIN_ALLOW_ALL = True
@@ -1,68 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11 on 2017-06-15 16:24
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone
class Migration(migrations.Migration):
dependencies = [
('webapp', '0010_auto_20170608_0924'),
]
operations = [
migrations.CreateModel(
name='AuditedModel',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
],
),
migrations.CreateModel(
name='AuditLogEntry',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('date', models.DateTimeField(default=django.utils.timezone.now)),
('event', models.CharField(choices=[('CREATED', 'Created'), ('MODIFIED', 'Modified'), ('DELETED', 'Deleted')], max_length=10)),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='webapp.Official')),
],
),
migrations.RemoveField(
model_name='basefeed',
name='id',
),
migrations.RemoveField(
model_name='baserole',
name='id',
),
migrations.RemoveField(
model_name='messageparent',
name='id',
),
migrations.AddField(
model_name='basefeed',
name='auditedmodel_ptr',
field=models.OneToOneField(auto_created=True, default=1, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='webapp.AuditedModel'),
preserve_default=False,
),
migrations.AddField(
model_name='baserole',
name='auditedmodel_ptr',
field=models.OneToOneField(auto_created=True, default=1, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='webapp.AuditedModel'),
preserve_default=False,
),
migrations.AddField(
model_name='messageparent',
name='auditedmodel_ptr',
field=models.OneToOneField(auto_created=True, default=1, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='webapp.AuditedModel'),
preserve_default=False,
),
migrations.AddField(
model_name='tag',
name='auditedmodel_ptr',
field=models.OneToOneField(auto_created=True, default=1, on_delete=django.db.models.deletion.CASCADE, parent_link=True, to='webapp.AuditedModel'),
preserve_default=False,
),
]
+13 -24
View File
@@ -5,35 +5,16 @@ from django.contrib.auth.models import User
from webapp.utils import month_from_now
from django.utils.translation import ugettext_lazy as _
from django.contrib.auth.models import User
from auditlog.registry import auditlog
class AuditLogEntry(models.Model):
'''
A single entry in the audit log
'''
user = models.ForeignKey('Official')
date = models.DateTimeField(default=timezone.now)
event = models.CharField(choices=[
('CREATED', _('Created')),
('MODIFIED', _('Modified')),
('DELETED', _('Deleted'))],
max_length=10)
class AuditedModel(models.Model):
'''
Superclass for all audited models, e.g. events
'''
pass
class Tag(AuditedModel):
class Tag(models.Model):
slug = models.SlugField(primary_key=True)
name = models.CharField(max_length=127)
icon = models.ImageField()
class BaseFeed(AuditedModel):
class BaseFeed(models.Model):
'''
model containing something showing on some info feed
'''
@@ -55,7 +36,7 @@ class Event(BaseFeed):
end_time = models.DateTimeField(default=timezone.now)
class BaseRole(AuditedModel):
class BaseRole(models.Model):
'''
Base model for occupations/roles
'''
@@ -82,7 +63,7 @@ class CustomKaehmyRole(BaseRole):
form = models.ForeignKey('KaehmyForm', related_name='custom_roles')
class MessageParent(AuditedModel):
class MessageParent(models.Model):
pass
@@ -128,3 +109,11 @@ class Official(User):
verbose_name = _('Official')
phone_number = models.TextField(_('Phone number'))
auditlog.register(Tag)
auditlog.register(Feed)
auditlog.register(Event)
auditlog.register(PresetRole)
auditlog.register(Role)
auditlog.register(Official)