This commit is contained in:
zandercymatics 2024-09-10 13:13:18 -06:00
parent 78a762a2ea
commit f9a39fcca8
No known key found for this signature in database
GPG key ID: FF4636ABEC9682B7
2 changed files with 14 additions and 13 deletions

View file

@ -459,7 +459,6 @@ class GetRequestsJsonTest(TestWithUser, WebTest):
for domain_request in data["domain_requests"]:
self.assertNotEqual(domain_request["status"], DomainRequest.DomainRequestStatus.APPROVED)
def test_search(self):
"""Tests our search functionality. We expect that search filters on creator only when we are in portfolio mode"""
# Test search for domain name
@ -469,7 +468,6 @@ class GetRequestsJsonTest(TestWithUser, WebTest):
self.assertEqual(len(data["domain_requests"]), 1)
requested_domain = data["domain_requests"][0]["requested_domain"]
print(f"requested domain is: {requested_domain}")
self.assertEqual(requested_domain, "lamb-chops.gov")
# Test search for 'New domain request'
@ -486,10 +484,9 @@ class GetRequestsJsonTest(TestWithUser, WebTest):
portfolio=self.portfolio,
roles=[UserPortfolioRoleChoices.ORGANIZATION_ADMIN],
)
response = self.app.get(reverse("get_domain_requests_json"), {
"search_term": "info",
"portfolio": self.portfolio.id
})
response = self.app.get(
reverse("get_domain_requests_json"), {"search_term": "info", "portfolio": self.portfolio.id}
)
self.assertEqual(response.status_code, 200)
data = response.json
self.assertTrue(any(req["creator"].startswith("info") for req in data["domain_requests"]))
@ -528,11 +525,10 @@ class GetRequestsJsonTest(TestWithUser, WebTest):
roles=[UserPortfolioRoleChoices.ORGANIZATION_ADMIN],
)
self.client.force_login(self.user)
response = self.app.get(reverse("get_domain_requests_json"), {
"search_term": "beef",
"status": "started",
"portfolio": self.portfolio.id
})
response = self.app.get(
reverse("get_domain_requests_json"),
{"search_term": "beef", "status": "started", "portfolio": self.portfolio.id},
)
self.assertEqual(response.status_code, 200)
data = response.json
self.assertTrue(all("beef" in req["requested_domain"] for req in data["domain_requests"]))

View file

@ -75,9 +75,14 @@ def apply_search(queryset, request):
if search_term_lower in new_domain_request_text:
queryset = queryset.filter(
Q(requested_domain__name__icontains=search_term) | Q(requested_domain__isnull=True)
)
)
elif is_portfolio:
queryset = queryset.filter(Q(requested_domain__name__icontains=search_term) | Q(creator__first_name__icontains=search_term) | Q(creator__last_name__icontains=search_term) | Q(creator__email__icontains=search_term))
queryset = queryset.filter(
Q(requested_domain__name__icontains=search_term)
| Q(creator__first_name__icontains=search_term)
| Q(creator__last_name__icontains=search_term)
| Q(creator__email__icontains=search_term)
)
# For non org users
else:
queryset = queryset.filter(Q(requested_domain__name__icontains=search_term))