diff --git a/ietf/person/tests.py b/ietf/person/tests.py index 11e1a5b663..bb75b438db 100644 --- a/ietf/person/tests.py +++ b/ietf/person/tests.py @@ -112,6 +112,14 @@ def test_person_profile_without_email(self): r = self.client.get(url) self.assertContains(r, person.name, status_code=200) + def test_case_insensitive(self): + # Case insensitive seach + person = PersonFactory(name="Test Person") + url = urlreverse("ietf.person.views.profile", kwargs={ "email_or_name": "test person"}) + r = self.client.get(url) + self.assertContains(r, person.name, status_code=200) + self.assertNotIn('More than one person', r.content.decode()) + def test_person_profile_duplicates(self): # same Person name and email - should not show on the profile as multiple Person records person = PersonFactory(name="bazquux@example.com", user__email="bazquux@example.com") diff --git a/ietf/person/views.py b/ietf/person/views.py index 4e3f7d8c30..23a8dea3d2 100644 --- a/ietf/person/views.py +++ b/ietf/person/views.py @@ -69,11 +69,11 @@ def ajax_select2_search(request, model_name): def profile(request, email_or_name): - aliases = Alias.objects.filter(name=email_or_name) + aliases = Alias.objects.filter(name__iexact=email_or_name) persons = set(a.person for a in aliases) if '@' in email_or_name: - emails = Email.objects.filter(address=email_or_name) + emails = Email.objects.filter(address__iexact=email_or_name) persons.update(e.person for e in emails) persons = [p for p in persons if p and p.id]