[FIX] OFFBOARDING: Fixed offboarding permission issues for normal employees

This commit is contained in:
Horilla
2024-04-18 12:26:03 +05:30
parent ff4b33aa67
commit f28710b8b1
4 changed files with 31 additions and 9 deletions

View File

@@ -106,10 +106,12 @@
{% if perms.offboarding.view_offboarding or request.user.employee_get|is_in_offboarding:offboarding.offboarding %}
<div class="oh-tabs__content" id="Offboarding{{ offboarding.offboarding.id }}">
{% if perms.offboarding.add_offboardingstage or request.user.employee_get|any_manager %}
<div class="d-flex flex-row-reverse">
<a hx-get="{% url 'create-offboarding-stage' %}?offboarding_id={{offboarding.offboarding.id}}" style="width: 100px;" hx-target="#objectDetailsModalTarget" data-toggle="oh-modal-toggle" data-target="#objectDetailsModal" class="mb-3 oh-btn oh-btn--secondary">
<ion-icon name="add-outline"></ion-icon>
{% trans 'Stage' %}
</a>
</div>
{% endif %}
{% include "offboarding/stage/stages.html" %}
</div>

View File

@@ -72,6 +72,7 @@
<div class="oh-sticky-table__th text-center">{% trans "Task Status" %}</div>
<div class="oh-sticky-table__th text-center" style="width: 250px;">{% trans "Actions" %}</div>
{% for task in stage.grouper.offboardingtask_set.all %}
{% if request.user.employee_get.offboardingemployee.employeetask_set.all|is_employee_tasks:task or perms.offboarding.add_offboardingtask or request.user.employee_get|any_manager %}
<div class="oh-sticky-table__th" style="width: 200px;" >
<div class="d-flex justify-content-between align-items-center">
<span>
@@ -96,14 +97,15 @@
{% endif %}
</div>
</div>
{% endif %}
{% endfor %}
<div class="oh-sticky-table__th" style="width: 120px;">
{% if perms.offboarding.add_offboardingtask or request.user.employee_get|any_manager %}
{% if perms.offboarding.add_offboardingtask or request.user.employee_get|any_manager %}
<div class="oh-sticky-table__th" style="width: 120px;">
<button class="oh-checkpoint-badge text-success" data-toggle="oh-modal-toggle" data-target="#objectDetailsModal" hx-get="{% url "offboarding-add-task" %}?stage_id={{stage.grouper.id}}" hx-target="#objectDetailsModalTarget">
{% trans "Add Task" %}
</button>
{% endif %}
</div>
</div>
{% endif %}
</div>
</div>
<div class="oh-sticky-table__tbody" id="tableBody{{stage.grouper.id}}" data-stage-id="{{stage.grouper.id}}" data-archive-stage="{{stage.grouper.is_archived_stage|lower}}" data-offboarding-id="{{offboarding.offboarding.id}}">

View File

@@ -154,8 +154,8 @@
</div>
</div>
{% for task in stage.grouper.offboardingtask_set.all %}
<div class="oh-sticky-table__td">
{% if task|have_task:employee %}
{% if task|have_task:employee %}
<div class="oh-sticky-table__td">
{% for assinged_tasks in employee|get_assigned_task:task %}
<select
hx-get="{% url "update-task-status" %}?stage_id={{stage.grouper.id}}&employee_ids={{employee.id}}&task_id={{assinged_tasks.task_id.id}}"
@@ -174,8 +174,11 @@
<option value="{{ assinged_task.0 }}">{{ assinged_task.1 }}</option>
{% endif %} {% endfor %}
</select>
{% endfor %} {% else %}
{% if perms.offboarding.add_offboardingtask or request.user.employee_get|any_manager %}
{% endfor %}
</div>
{% else %}
{% if perms.offboarding.add_offboardingtask or request.user.employee_get|any_manager %}
<div class="oh-sticky-table__td">
<button
hx-get="{% url "offboarding-assign-task" %}?employee_ids={{employee.id}}&task_id={{task.id}}"
hx-target="#offboardingBody{{offboarding.offboarding.id}}"
@@ -185,11 +188,13 @@
>
{% trans 'Assign' %}
</button>
</div>
{% endif %}
{% endif %}
</div>
{% endfor %}
{% if perms.offboarding.add_offboardingtask or request.user.employee_get|any_manager %}
<div class="oh-sticky-table__td"></div>
{% endif %}
</div>
{% endif %}
{% endfor %}

View File

@@ -143,3 +143,16 @@ def completed_tasks(tasks):
This method is used to to check any stage manager
"""
return tasks.filter(status="completed").count()
@register.filter("is_employee_tasks")
def is_employee_tasks(employee_tasks,task):
"""
This method is used to to check any stage manager
"""
try:
if task.title in employee_tasks.values_list("task_id__title", flat=True):
print("true")
return True
return False
except:
return False