mirror of
https://github.com/ae-utbm/sith.git
synced 2026-09-01 10:09:17 +00:00
Merge pull request #1468 from ae-utbm/fix-duplicate-user-search
fix: duplicate user search when a whitelist exists
This commit is contained in:
@@ -141,6 +141,22 @@ class TestSearchUsersView(TestSearchUsers):
|
|||||||
response = self.client.get(reverse("core:search"))
|
response = self.client.get(reverse("core:search"))
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
|
|
||||||
|
def test_search_with_whitelist_unique(self):
|
||||||
|
"""Test that when a user has a whitelist and appears in the results,
|
||||||
|
it appears only once.
|
||||||
|
|
||||||
|
This is a regression test (cf #1463)
|
||||||
|
"""
|
||||||
|
user = subscriber_user.make(is_viewable=False)
|
||||||
|
user.whitelisted_users.add(
|
||||||
|
*subscriber_user.make(_quantity=4, _bulk_create=True)
|
||||||
|
)
|
||||||
|
self.client.force_login(user)
|
||||||
|
response = self.client.get(
|
||||||
|
reverse("core:search", query={"query": user.last_name})
|
||||||
|
)
|
||||||
|
assert response.context_data["users"] == [user]
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
def test_user_account_not_found(client: Client):
|
def test_user_account_not_found(client: Client):
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ class SearchView(LoginRequiredMixin, TemplateView):
|
|||||||
UserFilterSchema(search=query)
|
UserFilterSchema(search=query)
|
||||||
.filter(User.objects.viewable_by(self.request.user))
|
.filter(User.objects.viewable_by(self.request.user))
|
||||||
.order_by(F("last_login").desc(nulls_last=True))
|
.order_by(F("last_login").desc(nulls_last=True))
|
||||||
|
.distinct()
|
||||||
)
|
)
|
||||||
clubs = list(Club.objects.filter(name__icontains=query)[:5])
|
clubs = list(Club.objects.filter(name__icontains=query)[:5])
|
||||||
return super().get_context_data(**kwargs) | {"users": users, "clubs": clubs}
|
return super().get_context_data(**kwargs) | {"users": users, "clubs": clubs}
|
||||||
|
|||||||
Reference in New Issue
Block a user