From ba99c9a37ee69aa240e56fea44471a7e3c03550d Mon Sep 17 00:00:00 2001 From: Horilla Date: Tue, 16 Apr 2024 12:23:14 +0530 Subject: [PATCH] [FIX] ONBOARDING: Fixed onboarding permsissions for onboarding pipeline --- base/templates/base/auth/permission_lines.html | 3 ++- onboarding/forms.py | 2 +- onboarding/templatetags/onboardingfilters.py | 7 +++++-- onboarding/views.py | 12 ++++++++++-- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/base/templates/base/auth/permission_lines.html b/base/templates/base/auth/permission_lines.html index b1be2e7a4..155ebddb0 100644 --- a/base/templates/base/auth/permission_lines.html +++ b/base/templates/base/auth/permission_lines.html @@ -25,7 +25,7 @@ {% endfor %} - +{% if employees.has_previous or employees.has_next %}
{% trans 'Page' %} {{ employees.number }} {% trans 'of' %} {{ employees.paginator.num_pages }}. @@ -59,3 +59,4 @@
+{% endif %} \ No newline at end of file diff --git a/onboarding/forms.py b/onboarding/forms.py index c2f537420..d50179160 100644 --- a/onboarding/forms.py +++ b/onboarding/forms.py @@ -409,4 +409,4 @@ class BankDetailsCreationForm(ModelForm): model = EmployeeBankDetails fields = "__all__" - exclude = ("employee_id", "additional_info") + exclude = ["employee_id", "additional_info", "is_active"] diff --git a/onboarding/templatetags/onboardingfilters.py b/onboarding/templatetags/onboardingfilters.py index d95a61cf4..65e9abd66 100644 --- a/onboarding/templatetags/onboardingfilters.py +++ b/onboarding/templatetags/onboardingfilters.py @@ -48,9 +48,12 @@ def task_manages(user, recruitment): """ try: employee = user.employee_get + employee_tasks = employee.onboarding_task.all() + for task in employee_tasks: + if task.stage_id and task.stage_id.recruitment_id == recruitment: + return True return ( - recruitment.onboarding_task.filter(employee_id=employee).exists() - or recruitment.onboardingstage_set.filter(employee_id=employee).exists() + recruitment.onboardingstage_set.filter(employee_id=employee).exists() or recruitment.recruitment_managers.filter(id=user.employee_get.id).exists() ) except Exception: diff --git a/onboarding/views.py b/onboarding/views.py index 4d4fc421d..178b690df 100644 --- a/onboarding/views.py +++ b/onboarding/views.py @@ -783,8 +783,16 @@ def onboarding_view(request): """ filter_obj = RecruitmentFilter(request.GET) # is active filteration not providing on pipeline - recruitments = filter_obj.qs.filter(is_active=True) - + recruitments = filter_obj.qs + recruitments = recruitments.filter( + is_active=True, recruitment_managers__in=[request.user.employee_get] + ) | recruitments.filter(onboarding_stage__employee_id__in=[request.user.employee_get] + ) + employee_tasks = request.user.employee_get.onboarding_task.all() + for task in employee_tasks: + if task.stage_id and task.stage_id.recruitment_id not in recruitments: + recruitments = recruitments | filter_obj.qs.filter(id=task.stage_id.recruitment_id.id) + recruitments = recruitments.filter(is_active =True).distinct() status = request.GET.get("closed") onboarding_stages = OnboardingStage.objects.all()