Compare commits

..

No commits in common. "86de7f626905b01d79a6a797e0ea8ca28ef403a3" and "e3e5e3b9e5362c968dd35151300b59d6a2f0d5a1" have entirely different histories.

4 changed files with 19 additions and 25 deletions

View file

@ -163,19 +163,22 @@ class Annotation(models.Model):
self.sortvalue = None self.sortvalue = None
self.languages = None self.languages = None
with transaction.atomic():
if not self.clip or self.start != self.clip.start or self.end != self.clip.end: if not self.clip or self.start != self.clip.start or self.end != self.clip.end:
self.clip, created = Clip.get_or_create(self.item, self.start, self.end) self.clip, created = Clip.get_or_create(self.item, self.start, self.end)
with transaction.atomic():
if set_public_id: if set_public_id:
self.set_public_id() self.set_public_id()
super(Annotation, self).save(*args, **kwargs) super(Annotation, self).save(*args, **kwargs)
if self.clip: if self.clip:
self.clip.update_findvalue() Clip.objects.filter(**{
setattr(self.clip, self.layer, True) 'id': self.clip.id,
self.clip.save(update_fields=[self.layer, 'sortvalue', 'findvalue']) self.layer: False
}).update(**{self.layer: True})
# update clip.findvalue
self.clip.save()
# update matches in bulk if called from load_subtitles # update matches in bulk if called from load_subtitles
if not delay_matches: if not delay_matches:

View file

@ -60,7 +60,9 @@ class MetaClip(object):
self.hue = self.saturation = self.lightness = 0 self.hue = self.saturation = self.lightness = 0
self.volume = 0 self.volume = 0
def update_findvalue(self): def save(self, *args, **kwargs):
if self.duration != self.end - self.start:
self.update_calculated_values()
if not self.aspect_ratio and self.item: if not self.aspect_ratio and self.item:
streams = self.item.streams() streams = self.item.streams()
if streams: if streams:
@ -88,11 +90,6 @@ class MetaClip(object):
self.findvalue = '\n'.join(list(filter(None, [a.findvalue for a in anns]))) self.findvalue = '\n'.join(list(filter(None, [a.findvalue for a in anns])))
for l in [k['id'] for k in settings.CONFIG['layers']]: for l in [k['id'] for k in settings.CONFIG['layers']]:
setattr(self, l, l in anns_by_layer and bool(len(anns_by_layer[l]))) setattr(self, l, l in anns_by_layer and bool(len(anns_by_layer[l])))
def save(self, *args, **kwargs):
if self.duration != self.end - self.start:
self.update_calculated_values()
self.update_findvalue()
models.Model.save(self, *args, **kwargs) models.Model.save(self, *args, **kwargs)
clip_keys = ('id', 'in', 'out', 'position', 'created', 'modified', clip_keys = ('id', 'in', 'out', 'position', 'created', 'modified',

View file

@ -1,4 +1,3 @@
import logging
import os import os
import subprocess import subprocess
import tempfile import tempfile
@ -6,9 +5,6 @@ import tempfile
from django.conf import settings from django.conf import settings
logger = logging.getLogger('pandora.' + __name__)
def extract_text(pdf, page=None): def extract_text(pdf, page=None):
if page is not None: if page is not None:
page = str(page) page = str(page)
@ -70,8 +66,6 @@ class FulltextMixin:
res = self.elasticsearch().delete(index=self._ES_INDEX, doc_type=self._ES_DOC_TYPE, id=self.id) res = self.elasticsearch().delete(index=self._ES_INDEX, doc_type=self._ES_DOC_TYPE, id=self.id)
except NotFoundError: except NotFoundError:
pass pass
except:
logger.error('failed to delete fulltext document', exc_info=True)
def update_fulltext(self): def update_fulltext(self):
if self.has_fulltext_key(): if self.has_fulltext_key():

View file

@ -559,7 +559,7 @@ pandora.uploadDroppedFiles = function(files) {
var clips, type = getType(items); var clips, type = getType(items);
if (Ox.isUndefined(callback)) { if (Ox.isUndefined(callback)) {
callback = index; callback = index;
index = pandora.$ui.editPanel && pandora.$ui.editPanel.getPasteIndex index = pandora.$ui.editPanel
? pandora.$ui.editPanel.getPasteIndex() ? pandora.$ui.editPanel.getPasteIndex()
: void 0; : void 0;
} }