summaryrefslogtreecommitdiff
path: root/ishtar_common/models.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2018-01-19 15:35:43 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2018-01-19 15:35:43 +0100
commitcc1eb217bd22da8fcad3bc0fd785a6889e0be157 (patch)
treeb3aa5c0104016c4fb84f656f051ce0206e61a5f1 /ishtar_common/models.py
parent1aa3218151854fcbbdc0be627bc2bd951aa567ba (diff)
downloadIshtar-cc1eb217bd22da8fcad3bc0fd785a6889e0be157.tar.bz2
Ishtar-cc1eb217bd22da8fcad3bc0fd785a6889e0be157.zip
Search vectors for authors and sources
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r--ishtar_common/models.py26
1 files changed, 20 insertions, 6 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 4f500db60..66b15be34 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -2246,7 +2246,7 @@ class Organization(Address, Merge, OwnPerms, ValueGetter):
'name': 'name__icontains',
'organization_type': 'organization_type__pk__in',
}
- BASE_SEARCH_VECTORS = ['name', 'town__name']
+ BASE_SEARCH_VECTORS = ['name', 'town']
# fields
name = models.CharField(_(u"Name"), max_length=500)
@@ -2304,6 +2304,8 @@ class PersonType(GeneralType):
verbose_name = _(u"Person type")
verbose_name_plural = _(u"Person types")
ordering = ('label',)
+
+
post_save.connect(post_save_cache, sender=PersonType)
post_delete.connect(post_save_cache, sender=PersonType)
@@ -2316,6 +2318,8 @@ class TitleType(GeneralType):
verbose_name = _(u"Title type")
verbose_name_plural = _(u"Title types")
ordering = ('label',)
+
+
post_save.connect(post_save_cache, sender=TitleType)
post_delete.connect(post_save_cache, sender=TitleType)
@@ -2333,7 +2337,7 @@ class Person(Address, Merge, OwnPerms, ValueGetter):
'attached_to__name', 'town')
SHOW_URL = 'show-person'
MODIFY_URL = 'person_modify'
- BASE_SEARCH_VECTORS = ['name', 'surname', 'raw_name', 'town__name',
+ BASE_SEARCH_VECTORS = ['name', 'surname', 'raw_name', 'town',
'attached_to__name', 'email']
# search parameters
@@ -2554,8 +2558,8 @@ class IshtarUser(FullSearch):
'person__email', 'person__person_types_list',
'person__attached_to')
BASE_SEARCH_VECTORS = [
- 'username', 'person__name', 'person__surname', 'person__email',
- 'person__town__name', 'person__attached_to__name']
+ 'user_ptr__username', 'person__name', 'person__surname',
+ 'person__email', 'person__town', 'person__attached_to__name']
# search parameters
EXTRA_REQUEST_KEYS = {
@@ -2675,10 +2679,11 @@ post_save.connect(post_save_cache, sender=AuthorType)
post_delete.connect(post_save_cache, sender=AuthorType)
-class Author(models.Model):
+class Author(FullSearch):
person = models.ForeignKey(Person, verbose_name=_(u"Person"),
related_name='author')
author_type = models.ForeignKey(AuthorType, verbose_name=_(u"Author type"))
+ PARENT_SEARCH_VECTORS = ['person']
class Meta:
verbose_name = _(u"Author")
@@ -2712,6 +2717,8 @@ class SourceType(GeneralType):
verbose_name = _(u"Source type")
verbose_name_plural = _(u"Source types")
ordering = ['label']
+
+
post_save.connect(post_save_cache, sender=SourceType)
post_delete.connect(post_save_cache, sender=SourceType)
@@ -2720,6 +2727,8 @@ class SupportType(GeneralType):
class Meta:
verbose_name = _(u"Support type")
verbose_name_plural = _(u"Support types")
+
+
post_save.connect(post_save_cache, sender=SupportType)
post_delete.connect(post_save_cache, sender=SupportType)
@@ -2735,7 +2744,7 @@ post_save.connect(post_save_cache, sender=Format)
post_delete.connect(post_save_cache, sender=Format)
-class Source(OwnPerms, ImageModel, models.Model):
+class Source(OwnPerms, ImageModel, FullSearch):
title = models.CharField(_(u"Title"), max_length=300)
external_id = models.TextField(_(u"External ID"), max_length=300, null=True,
blank=True)
@@ -2768,8 +2777,13 @@ class Source(OwnPerms, ImageModel, models.Model):
additional_information = models.TextField(_(u"Additional information"),
blank=True, null=True)
duplicate = models.BooleanField(_(u"Has a duplicate"), default=False)
+
TABLE_COLS = ['title', 'source_type', 'authors', 'associated_url']
COL_LINK = ['associated_url']
+ BASE_SEARCH_VECTORS = ['title', 'source_type__label', 'external_id',
+ 'reference', 'description', 'comment',
+ 'additional_information']
+ PARENT_SEARCH_VECTORS = ['authors']
class Meta:
abstract = True