[UPDT] RECRUITMENT: Start onboarding candidates filter logic

This commit is contained in:
Horilla
2025-03-26 14:03:32 +05:30
parent 065af92f29
commit 96942b4a32
3 changed files with 21 additions and 4 deletions

View File

@@ -34,6 +34,9 @@ class CandidateFilter(FilterSet):
"""
name = django_filters.CharFilter(field_name="name", lookup_expr="icontains")
start_onboard = django_filters.CharFilter(
method="start_onboard_method", lookup_expr="icontains"
)
candidate = django_filters.ModelMultipleChoiceFilter(
queryset=Candidate.objects.all(),
@@ -109,6 +112,13 @@ class CandidateFilter(FilterSet):
).distinct()
return queryset
def start_onboard_method(self, queryset, _, value):
"""
This method will include the candidates whether they are on the onboarding pipline stage
"""
return queryset.filter(onboarding_stage__isnull=False)
class Meta:
"""
Meta class to add the additional info

View File

@@ -37,4 +37,4 @@
</button>
</div>
</form>
</div>
</div>

View File

@@ -7,6 +7,7 @@ This module is used to write dashboard related views
import datetime
from django.core import serializers
from django.db.models import Q
from django.http import JsonResponse
from django.shortcuts import render
from django.utils.translation import gettext_lazy as _
@@ -126,7 +127,9 @@ def dashboard(request):
else:
total_vacancy += openings.vacancy
hired_candidates = candidates.filter(hired=True)
hired_candidates = candidates.filter(
Q(hired=True) | Q(stage_id__stage_type="hired")
).distinct()
total_candidates = len(candidates)
total_hired_candidates = len(hired_candidates)
conversion_ratio = 0
@@ -151,7 +154,9 @@ def dashboard(request):
"total_hired_candidates": total_hired_candidates,
"conversion_ratio": conversion_ratio,
"acceptance_ratio": acceptance_ratio,
"onboard_candidates": hired_candidates.filter(start_onboard=True),
"onboard_candidates": hired_candidates.filter(
onboarding_stage__isnull=False
),
"job_data": job_data,
"total_vacancy": total_vacancy,
"recruitment_manager_mapping": recruitment_manager_mapping,
@@ -159,7 +164,9 @@ def dashboard(request):
"joining": joining,
"dep_vacancy": dep_vacancy,
"stage_chart_count": stage_chart_count,
"onboarding_count": hired_candidates.filter(start_onboard=True).count(),
"onboarding_count": hired_candidates.filter(
onboarding_stage__isnull=False
).count(),
"total_candidates": total_candidates,
"skill_zone": skill_zone,
},