From 3f9cf97b589e7f2b4ae5d105f1e9793bc2f124e5 Mon Sep 17 00:00:00 2001 From: Horilla Date: Sun, 24 Nov 2024 10:48:27 +0530 Subject: [PATCH] [UPDT] BASE: Updated pagination_qry function by replace it into base.methods folder --- base/methods.py | 10 ++++++++++ base/request_and_approve.py | 21 +++++++++------------ base/templatetags/basefilters.py | 10 ---------- base/views.py | 10 +--------- employee/policies.py | 3 +-- helpdesk/views.py | 11 +---------- 6 files changed, 22 insertions(+), 43 deletions(-) diff --git a/base/methods.py b/base/methods.py index 9c6ac2a81..22c09cddf 100644 --- a/base/methods.py +++ b/base/methods.py @@ -9,6 +9,7 @@ from django.apps import apps from django.conf import settings from django.contrib.staticfiles import finders from django.core.exceptions import ObjectDoesNotExist +from django.core.paginator import Paginator from django.db import models from django.db.models import ForeignKey, ManyToManyField, OneToOneField, Q from django.db.models.functions import Lower @@ -658,6 +659,15 @@ def get_pagination(): return count +def paginator_qry(queryset, page_number): + """ + Common paginator method + """ + paginator = Paginator(queryset, get_pagination()) + queryset = paginator.get_page(page_number) + return queryset + + def is_holiday(date): """ Check if the given date is a holiday. diff --git a/base/request_and_approve.py b/base/request_and_approve.py index 6202d8fec..ff331032f 100644 --- a/base/request_and_approve.py +++ b/base/request_and_approve.py @@ -7,53 +7,50 @@ This module is used to map url patterns with request and approve methods in Dash import json from django.apps import apps -from django.core.paginator import Paginator -from django.db.models import Q from django.shortcuts import render -from base.methods import filtersubordinates +from base.methods import filtersubordinates, paginator_qry from base.models import ShiftRequest, WorkTypeRequest from horilla.decorators import login_required -def paginator_qry(qryset, page_number): - """ - This method is used to paginate query set - """ - paginator = Paginator(qryset, 10) - qryset = paginator.get_page(page_number) - return qryset - - @login_required def dashboard_shift_request(request): + page_number = request.GET.get("page") + previous_data = request.GET.urlencode() requests = ShiftRequest.objects.filter( approved=False, canceled=False, employee_id__is_active=True ) requests = filtersubordinates(request, requests, "base.add_shiftrequest") requests_ids = json.dumps([instance.id for instance in requests]) + requests = paginator_qry(requests, page_number) return render( request, "request_and_approve/shift_request.html", { "requests": requests, "requests_ids": requests_ids, + "pd": previous_data, }, ) @login_required def dashboard_work_type_request(request): + page_number = request.GET.get("page") + previous_data = request.GET.urlencode() requests = WorkTypeRequest.objects.filter( approved=False, canceled=False, employee_id__is_active=True ) requests = filtersubordinates(request, requests, "base.add_worktyperequest") requests_ids = json.dumps([instance.id for instance in requests]) + requests = paginator_qry(requests, page_number) return render( request, "request_and_approve/work_type_request.html", { "requests": requests, "requests_ids": requests_ids, + "pd": previous_data, }, ) diff --git a/base/templatetags/basefilters.py b/base/templatetags/basefilters.py index 99905c95f..302c3d59c 100644 --- a/base/templatetags/basefilters.py +++ b/base/templatetags/basefilters.py @@ -9,16 +9,6 @@ from base.methods import get_pagination from base.models import MultipleApprovalManagers from employee.models import Employee, EmployeeWorkInformation - -def paginator_qry(qryset, page_number): - """ - This method is used to paginate queryset - """ - paginator = Paginator(qryset, get_pagination()) - qryset = paginator.get_page(page_number) - return qryset - - register = template.Library() diff --git a/base/views.py b/base/views.py index 64cae8185..6203680c3 100644 --- a/base/views.py +++ b/base/views.py @@ -110,6 +110,7 @@ from base.methods import ( get_key_instances, get_pagination, is_reportingmanager, + paginator_qry, sortby, ) from base.models import ( @@ -199,15 +200,6 @@ def is_reportingmanger(request, instance): return manager == employee_work_info_manager -def paginator_qry(queryset, page_number): - """ - Common paginator method - """ - paginator = Paginator(queryset, get_pagination()) - queryset = paginator.get_page(page_number) - return queryset - - def initialize_database_condition(): """ Determines if the database initialization process should be triggered. diff --git a/employee/policies.py b/employee/policies.py index 56ef1e789..87c4747e6 100644 --- a/employee/policies.py +++ b/employee/policies.py @@ -15,8 +15,7 @@ from django.http import HttpResponse, JsonResponse from django.shortcuts import get_object_or_404, redirect, render from django.utils.translation import gettext_lazy as _ -from base.methods import filtersubordinates, get_key_instances -from base.views import paginator_qry +from base.methods import filtersubordinates, get_key_instances, paginator_qry from employee.filters import DisciplinaryActionFilter, PolicyFilter from employee.forms import DisciplinaryActionForm, PolicyForm from employee.models import ( diff --git a/helpdesk/views.py b/helpdesk/views.py index d979ec053..442c06e7e 100644 --- a/helpdesk/views.py +++ b/helpdesk/views.py @@ -21,8 +21,8 @@ from base.forms import TagsForm from base.methods import ( filtersubordinates, get_key_instances, - get_pagination, is_reportingmanager, + paginator_qry, sortby, ) from base.models import Department, JobPosition, Tags @@ -69,15 +69,6 @@ logger = logging.getLogger(__name__) # Create your views here. -def paginator_qry(qryset, page_number): - """ - This method is used to paginate query set - """ - paginator = Paginator(qryset, get_pagination()) - qryset = paginator.get_page(page_number) - return qryset - - @login_required def faq_category_view(request): """