diff options
Diffstat (limited to 'commcrawler/lookups.py')
-rw-r--r-- | commcrawler/lookups.py | 41 |
1 files changed, 6 insertions, 35 deletions
diff --git a/commcrawler/lookups.py b/commcrawler/lookups.py index f8d4897..106a69a 100644 --- a/commcrawler/lookups.py +++ b/commcrawler/lookups.py @@ -1,28 +1,15 @@ -from ajax_select import register, LookupChannel as BaseLookupChannel +from ajax_select import register from django.db.models import Q -from . import models - - -class LookupChannel(BaseLookupChannel): - def get_objects(self, items): - # TODO: why IDs are not given here? M2M issue - ids = [] - for item in items: - if hasattr(item, 'pk'): - ids.append(item.pk) - else: - ids.append(item) - return super(LookupChannel, self).get_objects(ids) +from commorganization.lookups import LookupChannel - def format_item_display(self, item): - return u"<span class='ajax-label'>%s</span>" % str(item) +from . import models -@register('organization') -class OrganizationLookup(LookupChannel): - model = models.Organization +@register('target') +class TargetLookup(LookupChannel): + model = models.Target def get_query(self, q, request): query = Q() @@ -31,19 +18,3 @@ class OrganizationLookup(LookupChannel): query &= subquery return self.model.objects.filter(query).order_by('name')[:20] - -@register('area') -class AreaLookup(LookupChannel): - model = models.Area - - def get_query(self, q, request): - query = Q() - for term in q.strip().split(' '): - subquery = ( - Q(name__icontains=term) | - Q(parent__name__icontains=term) | - Q(reference=term) - ) - query &= subquery - return self.model.objects.filter(query).order_by('name')[:20] - |