[FIX] ONBOARDING: Fixed onboarding permsissions for onboarding pipeline

This commit is contained in:
Horilla
2024-04-16 12:23:14 +05:30
parent 5b65977a7f
commit ba99c9a37e
4 changed files with 18 additions and 6 deletions

View File

@@ -25,7 +25,7 @@
</div>
</div>
{% endfor %}
{% if employees.has_previous or employees.has_next %}
<div class="oh-wrapper w-100">
<div class="oh-pagination">
<span class="oh-pagination__page" data-toggle="modal" data-target="#addEmployeeModal">{% trans 'Page' %} {{ employees.number }} {% trans 'of' %} {{ employees.paginator.num_pages }}.</span>
@@ -59,3 +59,4 @@
</nav>
</div>
</div>
{% endif %}

View File

@@ -409,4 +409,4 @@ class BankDetailsCreationForm(ModelForm):
model = EmployeeBankDetails
fields = "__all__"
exclude = ("employee_id", "additional_info")
exclude = ["employee_id", "additional_info", "is_active"]

View File

@@ -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:

View File

@@ -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()