1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Implemented changelog views

This commit is contained in:
Jeremy Stretch
2018-06-20 13:52:54 -04:00
parent a8b11e45c1
commit ddd878683d
17 changed files with 317 additions and 87 deletions

View File

@@ -9,6 +9,7 @@ from django.contrib.auth.models import User
from django.contrib.contenttypes.fields import GenericForeignKey
from django.contrib.contenttypes.models import ContentType
from django.contrib.postgres.fields import JSONField
from django.core.urlresolvers import reverse
from django.core.validators import ValidationError
from django.db import models
from django.db.models import Q
@@ -704,15 +705,18 @@ class ObjectChange(models.Model):
editable=False
)
serializer = 'extras.api.serializers.ObjectChangeSerializer'
csv_headers = ['time', 'user', 'request_id', 'action', 'content_type', 'object_id', 'object_repr', 'object_data']
class Meta:
ordering = ['-time']
def __str__(self):
attribution = 'by {}'.format(self.user_name) if self.user_name else '(no attribution)'
return '{} {} {}'.format(
return '{} {} {} by {}'.format(
self.content_type,
self.object_repr,
self.get_action_display().lower(),
attribution
self.user_name
)
def save(self, *args, **kwargs):
@@ -724,6 +728,21 @@ class ObjectChange(models.Model):
return super(ObjectChange, self).save(*args, **kwargs)
def get_absolute_url(self):
return reverse('extras:objectchange', args=[self.pk])
def to_csv(self):
return (
self.time,
self.user or self.user_name,
self.request_id,
self.get_action_display(),
self.content_type,
self.object_id,
self.object_repr,
self.object_data,
)
@property
def object_data_pretty(self):
return json.dumps(self.object_data, indent=4, sort_keys=True)