forked from 0x2620/pandora
annotations
This commit is contained in:
parent
9fc1430aaa
commit
132cbe30ac
3 changed files with 20 additions and 13 deletions
|
@ -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')
|
||||||
}
|
}
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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):
|
||||||
|
|
Loading…
Reference in a new issue