compute edit duration more efficiently

This commit is contained in:
j 2014-11-10 11:39:38 +01:00
parent e084766e69
commit 8cb776eb51

View file

@ -316,7 +316,7 @@ class Edit(models.Model):
_map = { _map = {
'posterFrames': 'poster_frames' 'posterFrames': 'poster_frames'
} }
if 'clips' in keys or 'duration' in keys: if 'clips' in keys:
clips = self.get_clips_json(user) clips = self.get_clips_json(user)
for key in keys: for key in keys:
@ -330,7 +330,11 @@ class Edit(models.Model):
elif key == 'clips': elif key == 'clips':
response[key] = clips response[key] = clips
elif key == 'duration': elif key == 'duration':
response[key] = sum([c['duration'] for c in clips]) if self.type == 'static':
response[key] = sum([(c['annotation__end'] or c['end']) - (c['annotation__start'] or c['start'])
for c in self.get_clips(user).values('start', 'end', 'annotation__start', 'annotation__end')])
else:
response[key] = sum([c['end'] - c['start'] for c in self.get_clips(user).values('start', 'end')])
elif key == 'editable': elif key == 'editable':
response[key] = self.editable(user) response[key] = self.editable(user)
elif key == 'user': elif key == 'user':