annotations

This commit is contained in:
j 2011-02-09 14:28:52 +00:00
parent 66acfaadfa
commit de31786eff
3 changed files with 20 additions and 13 deletions

View file

@ -87,7 +87,6 @@ class Annotation(models.Model):
'in': self.start, 'in': self.start,
'out': self.end, 'out': self.end,
'value': self.value, 'value': self.value,
'value_html': self.html(),
'created': self.created.strftime('%Y-%m-%dT%H:%M:%SZ'), 'created': self.created.strftime('%Y-%m-%dT%H:%M:%SZ'),
'modified': self.modified.strftime('%Y-%m-%dT%H:%M:%SZ') 'modified': self.modified.strftime('%Y-%m-%dT%H:%M:%SZ')
} }

View file

@ -7,6 +7,8 @@ from ox.django.decorators import login_required_json
from ox.django.shortcuts import render_to_json_response, get_object_or_404_json, json_response from ox.django.shortcuts import render_to_json_response, get_object_or_404_json, json_response
import models import models
from item.models import Item
from api.actions import actions from api.actions import actions
@ -38,8 +40,8 @@ def addAnnotation(request):
param data { param data {
item: itemId, item: itemId,
layer: layerId, layer: layerId,
start: float, in: float,
end: float, out: float,
value: string value: string
} }
return {'status': {'code': int, 'text': string}, return {'status': {'code': int, 'text': string},
@ -49,19 +51,19 @@ def addAnnotation(request):
} }
''' '''
data = json.loads(request.POST['data']) data = json.loads(request.POST['data'])
for key in ('item', 'layer', 'start', 'end', 'value'): for key in ('item', 'layer', 'in', 'out', 'value'):
if key not in data: if key not in data:
return render_to_json_response(json_response(status=400, return render_to_json_response(json_response(status=400,
text='invalid data')) text='invalid data'))
item = get_object_or_404_json(models.Item, itemId=data['item']) item = get_object_or_404_json(Item, itemId=data['item'])
layer = get_object_or_404_json(models.Layer, layerId=data['layer']) layer = get_object_or_404_json(models.Layer, name=data['layer'])
annotation = models.Annotation( annotation = models.Annotation(
item=item, item=item,
layer=layer, layer=layer,
user=request.user, user=request.user,
start=float(data['start']), end=float(data['end']), start=float(data['in']), end=float(data['out']),
value=data['value']) value=data['value'])
annotation.save() annotation.save()
response = json_response() response = json_response()
@ -94,8 +96,8 @@ def editAnnotation(request):
''' '''
param data { param data {
id:, id:,
start: float, in: float,
end: float, out: float,
value: string, value: string,
} }
return {'status': {'code': int, 'text': string}, return {'status': {'code': int, 'text': string},
@ -105,9 +107,12 @@ def editAnnotation(request):
''' '''
response = json_response({}) response = json_response({})
data = json.loads(request.POST['data']) data = json.loads(request.POST['data'])
layer = get_object_or_404_json(models.Layer, pk=data['id']) a = get_object_or_404_json(models.Annotation, pk=data['id'])
if layer.editable(request.user): if a.editable(request.user):
response = json_response(status=501, text='not implemented') a.value = data['value']
a.start = data['in']
a.end = data['out']
a.save()
else: else:
response = json_response(status=403, text='permission denied') response = json_response(status=403, text='permission denied')
return render_to_json_response(response) return render_to_json_response(response)

View file

@ -206,9 +206,12 @@ class File(models.Model):
return srt return srt
srts = re.compile('(\d\d:\d\d:\d\d[,.]\d\d\d)\s*-->\s*(\d\d:\d\d:\d\d[,.]\d\d\d)\s*(.+?)\n\n', re.DOTALL) srts = re.compile('(\d\d:\d\d:\d\d[,.]\d\d\d)\s*-->\s*(\d\d:\d\d:\d\d[,.]\d\d\d)\s*(.+?)\n\n', re.DOTALL)
i = 0
for s in srts.findall(data): for s in srts.findall(data):
_s = {'in': parseTime(s[0]), 'out': parseTime(s[1]), 'value': s[2].strip()} _s = {'id': str(i),
'in': parseTime(s[0]), 'out': parseTime(s[1]), 'value': s[2].strip()}
srt.append(_s) srt.append(_s)
i += 1
return srt return srt
def editable(self, user): def editable(self, user):