This commit is contained in:
j 2011-12-27 12:25:39 +05:30
commit 876e360e76
13 changed files with 68 additions and 90 deletions

View file

@ -545,7 +545,7 @@ class Item(models.Model):
'\n'.join([f.path for f in self.files.all()]))
elif key['type'] == 'layer':
qs = Annotation.objects.filter(layer=i, item=self).order_by('start')
save(i, '\n'.join([l.value for l in qs]))
save(i, u'\n'.join([l.findvalue for l in qs]))
elif i != '*' and i not in self.facet_keys:
value = self.get(i)
if isinstance(value, list):
@ -737,6 +737,22 @@ class Item(models.Model):
#update cached values in clips
self.clips.all().update(director=s.director, title=s.title)
def update_layer_facets(self):
filters = [f['id'] for f in settings.CONFIG['filters']]
for layer in settings.CONFIG['layers']:
if layer['id'] in filters:
key = layer['id']
current_values = [a['value']
for a in self.annotations.filter(layer=key).distinct().values('value')]
saved_values = [i.value for i in Facet.objects.filter(item=self, key=key)]
removed_values = filter(lambda i: i not in current_values, saved_values)
if removed_values:
Facet.objects.filter(item=self, key=key, value__in=removed_values).delete()
for value in current_values:
if value not in saved_values:
sortvalue = value
Facet.objects.get_or_create(item=self, key=key, value=value, sortvalue=sortvalue)
def update_facets(self):
for key in self.facet_keys + ['title']:
current_values = self.get(key, [])
@ -773,9 +789,11 @@ class Item(models.Model):
if key in self.person_keys + ['name']:
sortvalue = get_name_sort(value)
Facet.objects.get_or_create(item=self, key=key, value=value, sortvalue=sortvalue)
self.update_layer_facets()
def path(self, name=''):
h = self.itemId
h = (7-len(h))*'0' + h
return os.path.join('items', h[:2], h[2:4], h[4:6], h[6:], name)
'''