From e0ac7540823f477131bd8ec2d30338afc15a1cb2 Mon Sep 17 00:00:00 2001 From: Horilla Date: Fri, 2 Jan 2026 14:11:30 +0530 Subject: [PATCH] [FIX] ONBOARDING: Fix candidate not showing when filtered with recruitment name or stage name --- onboarding/filters.py | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/onboarding/filters.py b/onboarding/filters.py index df23a6af5..4b09196d9 100644 --- a/onboarding/filters.py +++ b/onboarding/filters.py @@ -86,9 +86,27 @@ class OnboardingCandidateFilter(FilterSet): """ search_onboarding = filters.CharFilter( - field_name="candidate_id__name", lookup_expr="icontains" + field_name="candidate_id__name", method="pipeline_search" ) class Meta: model = CandidateStage - fields = "__all__" + fields = [ + "candidate_id", + "onboarding_stage_id", + "sequence", + "onboarding_end_date", + ] + + def pipeline_search(self, queryset, _, value): + """ + This method is used to search recruitment + """ + queryset = ( + queryset.filter(onboarding_stage_id__stage_title__icontains=value) + | queryset.filter(candidate_id__name__icontains=value) + | queryset.filter( + onboarding_stage_id__recruitment_id__title__icontains=value + ) + ) + return queryset.distinct()