From f7bbcf027a07b5d6ab3086932e842586cc2cc68e Mon Sep 17 00:00:00 2001
From: j <0x006A@0x2620.org>
Date: Fri, 13 Feb 2015 15:22:14 +0000
Subject: [PATCH] fix findvalue for entity annotations
---
pandora/annotation/models.py | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/pandora/annotation/models.py b/pandora/annotation/models.py
index 1a00d723..bb93de07 100644
--- a/pandora/annotation/models.py
+++ b/pandora/annotation/models.py
@@ -144,7 +144,15 @@ class Annotation(models.Model):
layer = self.get_layer()
if self.value:
self.value = utils.cleanup_value(self.value, layer['type'])
- self.findvalue = ox.decode_html(ox.strip_tags(re.sub('
\n?', ' ', self.value))).replace('\n', ' ')
+
+ findvalue = self.value
+ try:
+ l = self.get_layer()
+ if l['type'] == 'entity':
+ findvalue = self.get_entity().name
+ except:
+ pass
+ self.findvalue = ox.decode_html(ox.strip_tags(re.sub('
\n?', ' ', findvalue))).replace('\n', ' ')
self.findvalue = unicodedata.normalize('NFKD', self.findvalue).lower()
sortvalue = sort_string(self.findvalue)
while sortvalue and not unicodedata.category(sortvalue[0])[0] in ('L', 'N'):
@@ -203,8 +211,11 @@ class Annotation(models.Model):
if e.annotations.exclude(id=self.id).count() == 0:
e.delete()
- def json(self, layer=False, keys=None, user=None):
+ def get_entity(self):
from entity.models import Entity
+ return Entity.get(self.value)
+
+ def json(self, layer=False, keys=None, user=None):
j = {
'user': self.user.username,
}
@@ -226,7 +237,7 @@ class Annotation(models.Model):
l = self.get_layer()
if l['type'] == 'entity':
try:
- entity = Entity.get(self.value)
+ entity = sef.get_entity()
j['entity'] = entity.json(user=user)
j['value'] = entity.html_link()
except: