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"))
|
||||
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
|
||||
def test_user_account_not_found(client: Client):
|
||||
|
||||
@@ -65,6 +65,7 @@ class SearchView(LoginRequiredMixin, TemplateView):
|
||||
UserFilterSchema(search=query)
|
||||
.filter(User.objects.viewable_by(self.request.user))
|
||||
.order_by(F("last_login").desc(nulls_last=True))
|
||||
.distinct()
|
||||
)
|
||||
clubs = list(Club.objects.filter(name__icontains=query)[:5])
|
||||
return super().get_context_data(**kwargs) | {"users": users, "clubs": clubs}
|
||||
|
||||
Reference in New Issue
Block a user