From 3658b9c170796762a6dc5164c3608702c4f85575 Mon Sep 17 00:00:00 2001 From: j <0x006A@0x2620.org> Date: Tue, 9 Aug 2011 12:03:06 +0200 Subject: [PATCH] special case name facet --- pandora/item/models.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pandora/item/models.py b/pandora/item/models.py index 093290570..eefa443f4 100644 --- a/pandora/item/models.py +++ b/pandora/item/models.py @@ -499,6 +499,12 @@ class Item(models.Model): if isinstance(values[0], list): values = map(lambda x: {'actor': x[0], 'character': x[1]}, values) values = [i['character'] for i in values] + elif key == 'name': + values = [] + for k in map(lambda x: x['id'], + filter(lambda x: x.get('sort') == 'person', + config['itemKeys'])): + values += self.get(k, []) else: values = self.get(key, '') if isinstance(values, list): @@ -506,6 +512,7 @@ class Item(models.Model): else: save(key, values) + save('summary', self.get('summary', '')) save('trivia', ' '.join(self.get('trivia', []))) @@ -654,6 +661,13 @@ class Item(models.Model): #FIXME: what to do with Unkown Director, Year, Country etc. for key in self.facet_keys: current_values = self.get(key, []) + #FIXME: is there a better way to build name collection? + if key == 'name': + current_values = [] + for k in map(lambda x: x['id'], + filter(lambda x: x.get('sort') == 'person', + config['itemKeys'])): + current_values += self.get(k, []) if not isinstance(current_values, list): current_values = [unicode(current_values)] current_values = list(set(current_values))