summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-08-03 18:35:07 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-08-03 18:35:07 +0200
commit61ea7576eda6a62f1eba30f99fa2069de57297e1 (patch)
treeda81bae5588a1986411b8edd4d9576adebdddbeb /ishtar_common
parenta99b08c076575e352fd35a9af0864370486901f1 (diff)
downloadIshtar-61ea7576eda6a62f1eba30f99fa2069de57297e1.tar.bz2
Ishtar-61ea7576eda6a62f1eba30f99fa2069de57297e1.zip
Lookup: add author
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/lookups.py22
1 files changed, 21 insertions, 1 deletions
diff --git a/ishtar_common/lookups.py b/ishtar_common/lookups.py
index ef2ff81f1..9570f8bc6 100644
--- a/ishtar_common/lookups.py
+++ b/ishtar_common/lookups.py
@@ -2,7 +2,7 @@ from ajax_select import register, LookupChannel
from django.conf import settings
from django.db.models import Q
-from ishtar_common.models import Person, Organization, IshtarUser, Town
+from ishtar_common.models import Person, Organization, IshtarUser, Town, Author
@register('town')
@@ -54,6 +54,26 @@ class PersonLookup(LookupChannel):
return u"<span class='ajax-label'>%s</span>" % unicode(item)
+@register('author')
+class AuthorLookup(LookupChannel):
+ model = Author
+
+ def get_query(self, q, request):
+ query = Q()
+ for term in q.strip().split(' '):
+ query &= (
+ Q(person__name__icontains=term) |
+ Q(person__surname__icontains=term) |
+ Q(person__raw_name__icontains=term) |
+ Q(person__attached_to__name__icontains=term) |
+ Q(author_type__label__icontains=term)
+ )
+ return self.model.objects.filter(query).order_by('person__name')[:20]
+
+ def format_item_display(self, item):
+ return u"<span class='ajax-label'>%s</span>" % unicode(item)
+
+
@register('ishtaruser')
class UserLookup(LookupChannel):
model = IshtarUser