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
This commit is contained in:
parent
a5e1586433
commit
baab85b6b5
|
@ -5,10 +5,18 @@ from ietf.person.models import Email
|
|||
from ietf.person.fields import json_emails
|
||||
|
||||
def ajax_search_emails(request):
|
||||
q = request.GET.get('q', '').strip()
|
||||
emails = Email.objects.filter(Q(person__alias__name__icontains=q) |
|
||||
Q(address__icontains=q))
|
||||
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')
|
||||
|
|
Loading…
Reference in a new issue