diff --git a/loko/common/admin.py b/loko/common/admin.py index 2e1d043..14cc652 100644 --- a/loko/common/admin.py +++ b/loko/common/admin.py @@ -608,7 +608,7 @@ class UserContractAccessAdmin(admin.ModelAdmin): class UserConfigAdmin(admin.ModelAdmin): list_display = ("user", "display_contracts", "display_thematics", "display_views", "is_intern", "display_roles", "company", "display_member_teams", "duplicate_button") list_filter = ("thematics", "roles", "company", "user__companymember__teams", "contracts", "accessible_views", "auto_logout_hours") - search_fields = ("user__username", "contracts__contract_number") + search_fields = ("user__username", "user__first_name", "user__last_name", "contracts__contract_number") inlines = [UserThematicsInline, UserContractAccessInline, UserWarehouseAccessInline, UserWarehouseLocationAccessInline, UserCompanyTeamAccessInline, UserAssetTypeAccessInline, UserAssetAccessInline] filter_horizontal = ("linked_configs", "accessible_views") actions = ["duplicate_config_action", "apply_config_from_action", "assign_company_action"] diff --git a/loko/common/tests.py b/loko/common/tests.py index 357d5ad..7dc5d98 100644 --- a/loko/common/tests.py +++ b/loko/common/tests.py @@ -317,6 +317,30 @@ class UserConfigCopyTests(TestCase): target_ut = UserThematics.objects.get(user_config=self.config_target, thematic=self.thematic) self.assertTrue(target_ut.can_inspect) + def test_userconfig_admin_search_fields_includes_first_and_last_name(self): + from common.admin import UserConfigAdmin + self.assertIn("user__first_name", UserConfigAdmin.search_fields) + self.assertIn("user__last_name", UserConfigAdmin.search_fields) + self.assertIn("user__username", UserConfigAdmin.search_fields) + + def test_userconfig_admin_search_by_name(self): + from common.admin import UserConfigAdmin + from django.test import RequestFactory + self.user_source.first_name = "Jean" + self.user_source.last_name = "Dupont" + self.user_source.save() + + admin_obj = UserConfigAdmin(UserConfig, None) + request = RequestFactory().get('/admin/common/userconfig/') + + qs_first, _ = admin_obj.get_search_results(request, UserConfig.objects.all(), "Jean") + self.assertIn(self.config_source, qs_first) + self.assertNotIn(self.config_target, qs_first) + + qs_last, _ = admin_obj.get_search_results(request, UserConfig.objects.all(), "Dupont") + self.assertIn(self.config_source, qs_last) + self.assertNotIn(self.config_target, qs_last) + class ScheduledCommandResolveOutputFileTests(TestCase): def test_resolve_output_file_with_placeholders(self):