mirror of
https://github.com/jazzband/django-admin2.git
synced 2026-03-17 06:30:25 +00:00
basics for recording history
This commit is contained in:
parent
14d2a20431
commit
598b0a704f
3 changed files with 25 additions and 9 deletions
|
|
@ -15,11 +15,11 @@ from . import permissions
|
|||
|
||||
|
||||
class LogEntryManager(models.Manager):
|
||||
def log_action(self, user_id, content_type_id, object_id, object_repr,
|
||||
action_flag, change_message=''):
|
||||
def log_action(self, user_id, obj, action_flag, change_message=''):
|
||||
content_type_id = ContentType.objects.get_for_model(obj).id
|
||||
e = self.model(None, None, user_id, content_type_id,
|
||||
smart_text(object_id), object_repr[:200], action_flag,
|
||||
change_message)
|
||||
smart_text(obj.id), obj.__unicode__()[:200],
|
||||
action_flag, change_message)
|
||||
e.save()
|
||||
|
||||
|
||||
|
|
@ -30,8 +30,10 @@ class LogEntry(models.Model):
|
|||
DELETION = 3
|
||||
|
||||
action_time = models.DateTimeField(_('action time'), auto_now=True)
|
||||
user = models.ForeignKey(settings.AUTH_USER_MODEL)
|
||||
content_type = models.ForeignKey(ContentType, blank=True, null=True)
|
||||
user = models.ForeignKey(settings.AUTH_USER_MODEL,
|
||||
related_name='log_entries')
|
||||
content_type = models.ForeignKey(ContentType, blank=True, null=True,
|
||||
related_name='log_entries')
|
||||
object_id = models.TextField(_('object id'), blank=True, null=True)
|
||||
object_repr = models.CharField(_('object repr'), max_length=200)
|
||||
action_flag = models.PositiveSmallIntegerField(_('action flag'))
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ from datetime import date, time, datetime
|
|||
from django import template
|
||||
from django.db.models.fields import FieldDoesNotExist
|
||||
|
||||
from .. import utils, renderers
|
||||
from .. import utils, renderers, models
|
||||
|
||||
|
||||
register = template.Library()
|
||||
|
|
@ -141,6 +141,5 @@ def render(context, model_instance, attribute_name):
|
|||
@register.inclusion_tag('djadmin2theme_default/includes/history.html',
|
||||
takes_context=True)
|
||||
def action_history(context):
|
||||
from django.contrib.admin.models import LogEntry
|
||||
actions = LogEntry.objects.filter(user__pk=context['user'].pk)
|
||||
actions = models.LogEntry.objects.filter(user__pk=context['user'].pk)
|
||||
return {'actions': actions}
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ import extra_views
|
|||
|
||||
from . import permissions, utils
|
||||
from .forms import AdminAuthenticationForm
|
||||
from .models import LogEntry
|
||||
from .viewmixins import Admin2Mixin, AdminModel2Mixin, Admin2ModelFormMixin
|
||||
from .filters import build_list_filter
|
||||
|
||||
|
|
@ -231,6 +232,11 @@ class ModelEditFormView(AdminModel2Mixin, Admin2ModelFormMixin,
|
|||
context['action_name'] = ugettext_lazy("Change")
|
||||
return context
|
||||
|
||||
def forms_valid(self, form, inlines):
|
||||
response = super(ModelEditFormView, self).forms_valid(form, inlines)
|
||||
LogEntry.objects.log_action(self.request.user.id, self.object, 2)
|
||||
return response
|
||||
|
||||
|
||||
class ModelAddFormView(AdminModel2Mixin, Admin2ModelFormMixin,
|
||||
extra_views.CreateWithInlinesView):
|
||||
|
|
@ -253,6 +259,11 @@ class ModelAddFormView(AdminModel2Mixin, Admin2ModelFormMixin,
|
|||
context['action_name'] = ugettext_lazy("Add")
|
||||
return context
|
||||
|
||||
def forms_valid(self, form, inlines):
|
||||
response = super(ModelAddFormView, self).forms_valid(form, inlines)
|
||||
LogEntry.objects.log_action(self.request.user.id, self.object, 1)
|
||||
return response
|
||||
|
||||
|
||||
class ModelDeleteView(AdminModel2Mixin, generic.DeleteView):
|
||||
"""Context Variables
|
||||
|
|
@ -283,6 +294,10 @@ class ModelDeleteView(AdminModel2Mixin, generic.DeleteView):
|
|||
})
|
||||
return context
|
||||
|
||||
def delete(self, request, *args, **kwargs):
|
||||
LogEntry.objects.log_action(request.user.id, self.get_object(), 3)
|
||||
return super(ModelDeleteView, self).delete(request, *args, **kwargs)
|
||||
|
||||
|
||||
class PasswordChangeView(Admin2Mixin, generic.UpdateView):
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue