dont save clip/sequence ids in db

This commit is contained in:
j 2012-06-18 16:36:04 +02:00
commit 81cef44d19
7 changed files with 47 additions and 37 deletions

View file

@ -22,7 +22,6 @@ def parseCondition(condition, user):
'''
k = condition.get('key', 'name')
k = {
'id': 'public_id',
'in': 'start',
'out': 'end'
}.get(k, k)
@ -41,13 +40,16 @@ def parseCondition(condition, user):
if op == '-':
q = parseCondition({'key': k, 'value': v[0], 'operator': '>='}, user) \
& parseCondition({'key': k, 'value': v[1], 'operator': '<'}, user)
if exclude:
return ~q
else:
return q
return exclude and ~q or q
if (not exclude and op == '=' or op in ('$', '^', '>=', '<')) and v == '':
return Q()
if k == 'id':
itemId, points = v.split('/')
points = [float('%0.03f'%float(p)) for p in points.split('-')]
q = Q(item__itemId=itemId, start=points[0], end=points[1])
return exclude and ~q or q
if k.endswith('__id'):
v = decode_id(v)
if isinstance(v, bool): #featured and public flag

View file

@ -19,10 +19,9 @@ from django.db import models
class Sequence(models.Model):
class Meta:
unique_together = ("public_id", "mode")
unique_together = ("item", "start", "end", "mode")
mode = models.CharField(max_length=128)
public_id = models.CharField(max_length=128)
item = models.ForeignKey(Item, null=True, related_name='sequences')
sort = models.ForeignKey(ItemSort, null=True, related_name='sequences')
user = models.IntegerField(db_index=True, null=True)
@ -35,15 +34,16 @@ class Sequence(models.Model):
objects = managers.SequenceManager()
def save(self, *args, **kwargs):
self.public_id = u"%s/%0.03f-%0.03f" % (
self.item.itemId, float(self.start), float(self.end)
)
self.duration = self.end - self.start
if self.item:
self.user = self.item.user and self.item.user.id
self.sort = self.item.sort
super(Sequence, self).save(*args, **kwargs)
@property
def public_id(self):
return u"%s/%0.03f-%0.03f" % (self.item.itemId, float(self.start), float(self.end))
def __unicode__(self):
return self.public_id

View file

@ -33,9 +33,6 @@ def get_sequences(itemId):
'end': float('%0.03f' % s['out']),
'hash': s['hash']
}
sequence['public_id'] = u"%s/%0.03f-%0.03f" % (
i.itemId, sequence['start'], sequence['end']
)
sequence['duration'] = sequence['end'] - sequence['start']
if not keys:
keys = ', '.join(['"%s"'%k for k in sequence.keys()])
@ -48,7 +45,3 @@ def get_sequences(itemId):
cursor.execute(sql)
transaction.commit_unless_managed()
@task(ignore_results=True, queue='encoding')
def update_sequence_ids(itemId):
for s in models.Sequence.objects.filter(item__itemId=itemId):
s.save()