diff options
Diffstat (limited to 'ishtar_common/lookups.py')
| -rw-r--r-- | ishtar_common/lookups.py | 22 | 
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 | 
