datatracker/ietf/person/views.py
Ole Laursen baab85b6b5 Make the EmailsField search a bit more intelligent by tokenizing the
input values so that a search for John Doe matches John M. Doe too
 - Legacy-Id: 8278
2014-08-17 16:08:12 +00:00

23 lines
801 B
Python

from django.http import HttpResponse
from django.db.models import Q
from ietf.person.models import Email
from ietf.person.fields import json_emails
def ajax_search_emails(request):
q = [w.strip() for w in request.GET.get('q', '').split() if w.strip()]
if not q:
emails = Email.objects.none()
else:
query = Q()
for t in q:
query &= Q(person__alias__name__icontains=t) | Q(address__icontains=t)
emails = Email.objects.filter(query).exclude(person=None)
if request.GET.get("user") == "1":
emails = emails.exclude(person__user=None) # require an account at the Datatracker
emails = emails.filter(active=True).order_by('person__name').distinct()[:10]
return HttpResponse(json_emails(emails), content_type='application/json')