summaryrefslogtreecommitdiff
path: root/ishtar_common/models.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-10-12 16:33:24 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-10-12 16:33:24 +0200
commit2f61567837dab3e2e7354d8b81e844596046cb2a (patch)
tree66df3422b057c773b3088d2746323389bedad517 /ishtar_common/models.py
parent6776fd5a5d88667d58085441facb7fa0c98b76da (diff)
downloadIshtar-2f61567837dab3e2e7354d8b81e844596046cb2a.tar.bz2
Ishtar-2f61567837dab3e2e7354d8b81e844596046cb2a.zip
Search vectors manage integration of parent vectors (refs #2912)
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r--ishtar_common/models.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 915415416..ac5c29a0f 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -924,6 +924,7 @@ class FullSearch(models.Model):
BASE_SEARCH_VECTORS = []
INT_SEARCH_VECTORS = []
M2M_SEARCH_VECTORS = []
+ PARENT_SEARCH_VECTORS = []
class Meta:
abstract = True
@@ -968,6 +969,15 @@ class FullSearch(models.Model):
search_vectors.append(
"'{}':1".format(q.all()[0][INT_SEARCH_VECTOR]))
+ # copy parent vector fields
+ for PARENT_SEARCH_VECTOR in self.PARENT_SEARCH_VECTORS:
+ parent = getattr(self, PARENT_SEARCH_VECTOR)
+ if hasattr(parent, 'all'): # m2m
+ for p in parent.all():
+ search_vectors.append(p.search_vector)
+ else:
+ search_vectors.append(parent.search_vector)
+
# query "simple" fields
q = base_q.annotate(
search=SearchVector(