summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2019-02-04 10:24:48 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2019-04-24 19:38:56 +0200
commit7d987d9729dd8e116d9bc04cf034054e2b685960 (patch)
treea4a8a08bb96c94c197894af7891226d457008f52 /ishtar_common
parent7d5f17055e8bfa004ef45c174b9f767bc561d205 (diff)
downloadIshtar-7d987d9729dd8e116d9bc04cf034054e2b685960.tar.bz2
Ishtar-7d987d9729dd8e116d9bc04cf034054e2b685960.zip
Admin find: add dynamic fields
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/lookups.py48
1 files changed, 26 insertions, 22 deletions
diff --git a/ishtar_common/lookups.py b/ishtar_common/lookups.py
index 181fc97a1..1d566d1db 100644
--- a/ishtar_common/lookups.py
+++ b/ishtar_common/lookups.py
@@ -2,8 +2,7 @@ from ajax_select import register, LookupChannel as BaseLookupChannel
from django.conf import settings
from django.db.models import Q
-from ishtar_common.models import Area, Person, Organization, IshtarUser, Town, \
- Author
+from ishtar_common import models
class LookupChannel(BaseLookupChannel):
@@ -17,10 +16,19 @@ class LookupChannel(BaseLookupChannel):
ids.append(item)
return super(LookupChannel, self).get_objects(ids)
+ def format_item_display(self, item):
+ return u"<span class='ajax-label'>%s</span>" % unicode(item)
+
+
+class TypeLookupChannel(LookupChannel):
+ def get_query(self, q, request):
+ query = Q(label__icontains=q) | Q(label__icontains=q)
+ return self.model.objects.filter(query).order_by('label')[:20]
+
@register('town')
class TownLookup(LookupChannel):
- model = Town
+ model = models.Town
def get_query(self, q, request):
if settings.COUNTRY == 'fr':
@@ -33,25 +41,19 @@ class TownLookup(LookupChannel):
query = Q(name__icontains=q)
return self.model.objects.filter(query).order_by('name')[:20]
- def format_item_display(self, item):
- return u"<span class='ajax-label'>%s</span>" % unicode(item)
-
@register('organization')
class OrganizationLookup(LookupChannel):
- model = Organization
+ model = models.Organization
def get_query(self, q, request):
return self.model.objects.filter(
name__icontains=q).order_by('name')[:20]
- def format_item_display(self, item):
- return u"<span class='ajax-label'>%s</span>" % unicode(item)
-
@register('person')
class PersonLookup(LookupChannel):
- model = Person
+ model = models.Person
def get_query(self, q, request):
query = Q()
@@ -63,13 +65,10 @@ class PersonLookup(LookupChannel):
)
return self.model.objects.filter(query).order_by('name')[:20]
- def format_item_display(self, item):
- return u"<span class='ajax-label'>%s</span>" % unicode(item)
-
@register('author')
class AuthorLookup(LookupChannel):
- model = Author
+ model = models.Author
def get_query(self, q, request):
query = Q()
@@ -83,13 +82,10 @@ class AuthorLookup(LookupChannel):
)
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
+ model = models.IshtarUser
def get_query(self, q, request):
query = Q()
@@ -110,11 +106,19 @@ class UserLookup(LookupChannel):
@register('area')
class AreaLookup(LookupChannel):
- model = Area
+ model = models.Area
def get_query(self, q, request):
query = Q(label__icontains=q)
return self.model.objects.filter(query).order_by('label')[:20]
- def format_item_display(self, item):
- return u"<span class='ajax-label'>%s</span>" % unicode(item)
+
+@register('document')
+class DocumentLookup(LookupChannel):
+ model = models.Document
+
+ def get_query(self, q, request):
+ query = Q(title__icontains=q) | Q(reference__icontains=q) | Q(
+ internal_reference__icontains=q
+ )
+ return self.model.objects.filter(query).order_by('title')[:20]