2023-06-06 12:27:41 +05:30
|
|
|
"""
|
|
|
|
|
filters.py
|
|
|
|
|
Used to register filter for onboarding models
|
|
|
|
|
"""
|
2024-02-15 12:12:23 +05:30
|
|
|
|
2023-05-10 15:06:57 +05:30
|
|
|
from django import forms
|
2024-02-15 12:12:23 +05:30
|
|
|
from django_filters import filters
|
2024-05-07 12:23:36 +05:30
|
|
|
|
2023-12-01 15:36:51 +05:30
|
|
|
from base.filters import FilterSet
|
2025-05-19 16:51:04 +05:30
|
|
|
from base.models import Company
|
|
|
|
|
from employee.models import Employee
|
2024-07-26 10:37:20 +05:30
|
|
|
from onboarding.models import CandidateStage, OnboardingStage
|
|
|
|
|
from recruitment.models import Candidate
|
2023-05-10 15:06:57 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
class CandidateFilter(FilterSet):
|
2023-06-06 12:27:41 +05:30
|
|
|
"""
|
|
|
|
|
FilterSet class for Candidate model
|
|
|
|
|
"""
|
2023-05-10 15:06:57 +05:30
|
|
|
|
2023-06-06 12:27:41 +05:30
|
|
|
name = filters.CharFilter(field_name="name", lookup_expr="icontains")
|
2023-05-10 15:06:57 +05:30
|
|
|
|
2023-06-06 12:27:41 +05:30
|
|
|
class Meta:
|
|
|
|
|
"""
|
|
|
|
|
Meta class to add some additional options
|
|
|
|
|
"""
|
2023-05-10 15:06:57 +05:30
|
|
|
|
2023-06-06 12:27:41 +05:30
|
|
|
model = Candidate
|
|
|
|
|
fields = {}
|
2024-02-15 12:12:23 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
class OnboardingStageFilter(FilterSet):
|
|
|
|
|
"""
|
|
|
|
|
OnboardingStageFilter
|
|
|
|
|
"""
|
|
|
|
|
|
2024-03-10 19:37:46 +05:30
|
|
|
search_onboarding = filters.CharFilter(
|
|
|
|
|
field_name="stage_title", method="pipeline_search"
|
|
|
|
|
)
|
2024-02-15 12:12:23 +05:30
|
|
|
|
2025-05-19 16:51:04 +05:30
|
|
|
employee_id = filters.ModelChoiceFilter(
|
|
|
|
|
queryset=Employee.objects.all(), label="Stage Manager"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
onboarding_task__task_title = filters.CharFilter(
|
|
|
|
|
field_name="onboarding_task__task_title", lookup_expr="icontains", label="Task"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
onboarding_task__employee_id = filters.ModelChoiceFilter(
|
|
|
|
|
field_name="onboarding_task__employee_id",
|
|
|
|
|
queryset=Employee.objects.all(),
|
|
|
|
|
label="Task Manager",
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
recruitment_id__company_id = filters.ModelChoiceFilter(
|
|
|
|
|
field_name="recruitment_id__company_id",
|
|
|
|
|
queryset=Company.objects.all(),
|
|
|
|
|
label="Company",
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
onboarding_task__candidates = filters.ModelChoiceFilter(
|
|
|
|
|
field_name="onboarding_task__candidates",
|
|
|
|
|
queryset=Candidate.objects.all(),
|
|
|
|
|
label="Candidates",
|
|
|
|
|
)
|
|
|
|
|
|
2024-02-15 12:12:23 +05:30
|
|
|
class Meta:
|
|
|
|
|
model = OnboardingStage
|
|
|
|
|
fields = "__all__"
|
|
|
|
|
|
|
|
|
|
def pipeline_search(self, queryset, _, value):
|
|
|
|
|
"""
|
|
|
|
|
This method is used to search recruitment
|
|
|
|
|
"""
|
2024-03-10 19:37:46 +05:30
|
|
|
queryset = queryset.filter(stage_title__icontains=value) | queryset.filter(
|
|
|
|
|
candidate__candidate_id__name__icontains=value
|
2024-02-15 12:12:23 +05:30
|
|
|
)
|
|
|
|
|
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__"
|