create new ChangeSet API
This commit is contained in:
parent
7921f255e2
commit
55d2d6759f
5 changed files with 67 additions and 7 deletions
|
@ -1,4 +1,5 @@
|
|||
import typing
|
||||
from collections import OrderedDict
|
||||
from itertools import chain
|
||||
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
|
@ -284,3 +285,14 @@ class ChangedObject(models.Model):
|
|||
|
||||
def __repr__(self):
|
||||
return '<ChangedObject #%s on ChangeSet #%s>' % (str(self.pk), str(self.changeset_id))
|
||||
|
||||
def serialize(self):
|
||||
return OrderedDict((
|
||||
('type', self.model_class.__name__.lower()),
|
||||
('is_created', self.is_created),
|
||||
('is_deleted', self.deleted),
|
||||
('pk', self.obj_pk),
|
||||
('updated_fields', self.updated_fields),
|
||||
('m2m_added', self.m2m_added),
|
||||
('m2m_removed', self.m2m_removed),
|
||||
))
|
||||
|
|
|
@ -74,6 +74,8 @@ class ChangeSet(models.Model):
|
|||
"""
|
||||
if request.user.is_authenticated:
|
||||
return ChangeSet.objects.filter(author=request.user)
|
||||
elif 'changeset' in request.session:
|
||||
return ChangeSet.objects.filter(pk=request.session['changeset'])
|
||||
return ChangeSet.objects.none()
|
||||
|
||||
@classmethod
|
||||
|
@ -447,7 +449,18 @@ class ChangeSet(models.Model):
|
|||
return OrderedDict((
|
||||
('id', self.pk),
|
||||
('author', self.author_id),
|
||||
('state', self.state),
|
||||
('assigned_to', self.assigned_to_id),
|
||||
('changed_objects_count', self.changed_objects_count),
|
||||
('created', None if self.created is None else self.created.isoformat()),
|
||||
('last_change', None if self.last_change is None else self.last_change.datetime.isoformat()),
|
||||
('last_update', None if self.last_update is None else self.last_update.datetime.isoformat()),
|
||||
('last_state_update', (None if self.last_state_update is None else
|
||||
self.last_state_update.datetime.isoformat())),
|
||||
('last_state_update_user', (None if self.last_state_update is None else
|
||||
self.last_state_update.user_id)),
|
||||
('last_state_update_comment', (None if self.last_state_update is None else
|
||||
self.last_state_update.comment)),
|
||||
))
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
from collections import OrderedDict
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import models
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
@ -25,3 +27,10 @@ class ChangeSetUpdate(models.Model):
|
|||
|
||||
def __repr__(self):
|
||||
return '<Update #%s on ChangeSet #%s>' % (str(self.pk), str(self.changeset_id))
|
||||
|
||||
def serialize_tiny(self):
|
||||
return OrderedDict((
|
||||
('datetime', self.datetime.isoformat()),
|
||||
('comment', self.comment),
|
||||
('user', self.user_id),
|
||||
))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue