From 6bdbd729a72af22ddff0b96ac7e5f05c1619d5d8 Mon Sep 17 00:00:00 2001 From: j <0x006A@0x2620.org> Date: Wed, 15 Feb 2012 21:31:24 +0530 Subject: [PATCH] update item sort after changing person sort value, fixes #30 --- pandora/person/models.py | 10 +++++++++- pandora/person/tasks.py | 11 +++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 pandora/person/tasks.py diff --git a/pandora/person/models.py b/pandora/person/models.py index 5bc75551..4bfb882c 100644 --- a/pandora/person/models.py +++ b/pandora/person/models.py @@ -13,7 +13,7 @@ from item import utils import item.models import managers - +import tasks def get_name_sort(name): name = unicodedata.normalize('NFKD', name).strip() @@ -51,6 +51,9 @@ class Person(models.Model): self.sortsortname = utils.sort_string(self.sortname) self.numberofnames = len(self.name.split(' ')) super(Person, self).save(*args, **kwargs) + tasks.update_itemsort.delay(self.id) + + def update_itemsort(self): item.models.Facet.objects.filter( key__in=item.models.Item.person_keys + ['name'], value=self.name @@ -59,6 +62,11 @@ class Person(models.Model): ).update( sortvalue=self.sortname ) + for i in item.models.Item.objects.filter(facets__in=item.models.Facet.objects.filter( + key__in=item.models.Item.person_keys + ['name'], + value=self.name) + ).distinct(): + i.update_sort() def get_or_create(model, name, imdbId=None): if imdbId: diff --git a/pandora/person/tasks.py b/pandora/person/tasks.py new file mode 100644 index 00000000..a77fe2dd --- /dev/null +++ b/pandora/person/tasks.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# vi:si:et:sw=4:sts=4:ts=4 +from celery.task import task + +import models + + +@task(ignore_resulsts=True, queue='default') +def update_itemsort(id): + p = models.Person.objects.get(pk=id) + p.update_itemsort()