[FIX] RECRUITMENT: Fixed recruitment survey pagination issue

This commit is contained in:
Horilla
2024-04-16 12:21:25 +05:30
parent fa5a24a438
commit 5b65977a7f
5 changed files with 19 additions and 7 deletions

View File

@@ -11,7 +11,7 @@ from base.thread_local_middleware import _thread_locals
from django.db import models
def record_queryset_paginator(request, queryset, page_name, records_per_page=50):
def record_queryset_paginator(request, queryset, page_name, records_per_page=10):
"""
This method is used to return the paginator entries
"""

View File

@@ -10,7 +10,7 @@
{{grouper.grouper}}
<div class="oh-tabs__input-badge-container">
<span class="oh-badge oh-badge--secondary oh-badge--small oh-badge--round ms-2 mr-2" id="recruitmentCandidateCount1" title="{{grouper.list|length}} {% trans "Questions" %}" onclick="event.stopPropagation()">
{{grouper.list|length}}
{{grouper.list.paginator.count}}
</span>
</div>
</span

View File

@@ -10,7 +10,7 @@ from django.shortcuts import render
from django.core.paginator import Paginator
from django.contrib.auth.models import User
from horilla.decorators import login_required, permission_required
from base.methods import sortby, get_key_instances
from base.methods import get_pagination, sortby, get_key_instances
from attendance.methods.group_by import group_by_queryset as general_group_by
from recruitment.filters import (
CandidateFilter,
@@ -185,7 +185,7 @@ def filter_survey(request):
"template_id__title",
page=request.GET.get("template_page"),
page_name="template_page",
records_per_page=50,
records_per_page=get_pagination(),
)
all_template_object_list = []
for template in templates:

View File

@@ -13,7 +13,7 @@ from django.shortcuts import render, redirect
from django.contrib import messages
from django.http import HttpResponse, HttpResponseRedirect
from django.utils.translation import gettext_lazy as _
from base.methods import closest_numbers
from base.methods import closest_numbers, get_pagination
from horilla.decorators import login_required, permission_required
from recruitment.models import Recruitment, SurveyTemplate
from recruitment.forms import (
@@ -138,7 +138,7 @@ def view_question_template(request):
"template_id__title",
page=request.GET.get("template_page"),
page_name="template_page",
records_per_page=50,
records_per_page=get_pagination(),
)
all_template_object_list = []
for template in templates:

View File

@@ -338,6 +338,9 @@ def paginator_qry_recruitment_limited(qryset, page_number):
return qryset
user_recruitments = {}
@login_required
@manager_can_enter(perm="recruitment.view_recruitment")
def recruitment_pipeline(request):
@@ -347,6 +350,9 @@ def recruitment_pipeline(request):
view = request.GET.get("view")
rec = Recruitment.objects.filter(is_active=True)
filter_obj = RecruitmentFilter(request.GET, queryset=rec)
# user_recruitments[request.user.id] = {
# "recruitments": rec,
# }
if filter_obj.qs.exists() and view == "card":
template = "pipeline/pipeline_card.html"
elif rec.exists():
@@ -374,7 +380,7 @@ cache = {}
@login_required
@permission_required("recruitment.view_recruitment")
@manager_can_enter(perm="recruitment.view_recruitment")
def filter_pipeline(request):
"""
This method is used to search/filter from pipeline
@@ -384,6 +390,12 @@ def filter_pipeline(request):
candidate_filter = CandidateFilter(request.GET)
view = request.GET.get("view")
recruitments = filter_obj.qs.filter(is_active=True)
if not request.user.has_perm("recruitment.view_recruitment"):
recruitments = recruitments.filter(Q(recruitment_managers=request.user.employee_get))
stage_recruitment_ids = stage_filter.qs.filter(stage_managers=request.user.employee_get).values_list('recruitment_id', flat=True).distinct()
recruitments = recruitments | filter_obj.qs.filter(id__in=stage_recruitment_ids)
recruitments = recruitments.filter(is_active = True).distinct()
closed = request.GET.get("closed")
filter_dict = parse_qs(request.GET.urlencode())
filter_dict = get_key_instances(Recruitment, filter_dict)