keep a log of changes

This commit is contained in:
j 2012-01-31 22:36:10 +05:30
commit 82c83c1309
12 changed files with 61 additions and 3 deletions

View file

@ -35,6 +35,7 @@ from data_api import external_data
from archive import extract
from annotation.models import Annotation
from clip.models import Clip
from changelog.models import Changelog
import archive.models
from person.models import get_name_sort
@ -228,6 +229,11 @@ class Item(models.Model):
self.data[key] = data[key]
return self.save()
def log(self):
c = Changelog(type='item')
c.value = self.json
c.save()
def update_external(self):
if settings.DATA_SERVICE and not self.itemId.startswith('0x'):
response = external_data('getData', {'id': self.itemId})
@ -572,7 +578,7 @@ class Item(models.Model):
qs = Annotation.objects.filter(item=self)
qs = qs.filter(layer=i)
qs = qs.order_by('start')
save(i, u'\n'.join([l.findvalue for l in qs]))
save(i, u'\n'.join(filter(None, [l.findvalue for l in qs])))
elif i != '*' and i not in self.facet_keys:
value = self.get(i)
if isinstance(value, list):

View file

@ -429,6 +429,7 @@ def edit(request):
data = json.loads(request.POST['data'])
item = get_object_or_404_json(models.Item, itemId=data['id'])
if item.editable(request.user):
item.log()
response = json_response(status=200, text='ok')
if 'notes' in data:
if request.user.get_profile().capability('canEditMetadata'):
@ -459,6 +460,7 @@ def remove(request):
data = json.loads(request.POST['data'])
item = get_object_or_404_json(models.Item, itemId=data['id'])
if item.editable(request.user):
item.log()
#FIXME: is this cascading enough or do we end up with orphan files etc.
item.delete()
response = json_response(status=200, text='removed')