diff --git a/onboarding/filters.py b/onboarding/filters.py index 03d747793..422b29b1a 100644 --- a/onboarding/filters.py +++ b/onboarding/filters.py @@ -2,9 +2,10 @@ filters.py Used to register filter for onboarding models """ + from django import forms -from django_filters import filters -from onboarding.models import Candidate +from django_filters import filters +from onboarding.models import Candidate, CandidateStage, OnboardingStage from base.filters import FilterSet @@ -22,3 +23,39 @@ class CandidateFilter(FilterSet): model = Candidate fields = {} + + +class OnboardingStageFilter(FilterSet): + """ + OnboardingStageFilter + """ + + search_onboarding = filters.CharFilter(field_name="stage_title", method="pipeline_search") + + class Meta: + model = OnboardingStage + fields = "__all__" + + def pipeline_search(self, queryset, _, value): + """ + This method is used to search recruitment + """ + queryset = ( + queryset.filter(stage_title__icontains=value) + | queryset.filter(candidate__candidate_id__name__icontains=value) + ) + return queryset.distinct() + + +class OnboardingCandidateFilter(FilterSet): + """ + OnboardingStageFilter + """ + + search_onboarding = filters.CharFilter( + field_name="candidate_id__name", lookup_expr="icontains" + ) + + class Meta: + model = CandidateStage + fields = "__all__" diff --git a/onboarding/templates/onboarding/filters.html b/onboarding/templates/onboarding/filters.html new file mode 100644 index 000000000..f511107d5 --- /dev/null +++ b/onboarding/templates/onboarding/filters.html @@ -0,0 +1,59 @@ +{% load i18n %} +{% load static %} +