diff --git a/helpdesk/cbv/pipeline.py b/helpdesk/cbv/pipeline.py
index f89aff9dc..e8faf5378 100644
--- a/helpdesk/cbv/pipeline.py
+++ b/helpdesk/cbv/pipeline.py
@@ -1,3 +1,5 @@
+from typing import Any
+
from django.urls import reverse, reverse_lazy
from django.utils.decorators import method_decorator
@@ -223,6 +225,19 @@ class TicketListView(HorillaListView):
action_method = """ticket_action_col"""
header_attrs = {"action": "style='width:200px'"}
+ def __init__(self, **kwargs: Any) -> None:
+ super().__init__(**kwargs)
+ if self.request.GET.get("ticket_tab") == "all_tickets":
+ if (
+ self.request.user.has_perm("helpdesk.view_claimrequest")
+ or self.request.user.has_perm("helpdesk.change_claimrequest")
+ or self.request.user.has_perm("helpdesk.change_ticket")
+ or self.request.user.has_perm("helpdesk.delete_ticket")
+ ):
+ self.action_method = "ticket_action_col"
+ else:
+ self.action_method = None
+
def get_queryset(self):
queryset = super().get_queryset()
if self.request.GET.get("is_active") != "false":
diff --git a/helpdesk/templates/cbv/pipeline/pipeline_action_col.html b/helpdesk/templates/cbv/pipeline/pipeline_action_col.html
index 2196458e3..89abc7678 100644
--- a/helpdesk/templates/cbv/pipeline/pipeline_action_col.html
+++ b/helpdesk/templates/cbv/pipeline/pipeline_action_col.html
@@ -1,7 +1,7 @@
{% load static i18n helpdeskfilters %}
{% if tab != 'my_tickets' %}
- {% if perms.helpdesk.change_ticket or perms.helpdesk.change_claimrequest or request.user.employee_get|is_department_manager:ticket %}
+ {% if perms.helpdesk.change_ticket or perms.helpdesk.change_claimrequest or perms.helpdesk.view_claimrequest or request.user.employee_get|is_department_manager:ticket %}
- {% else %}
+ {% endif %}
+ {% if tab != 'all_tickets' %}
{% if claim_request or request.user.employee_get in ticket.assigned_to.all %}
{% trans "Employee" %}
-
- {% trans "Action" %}
-
+ {% if perms.helpdesk.change_claimrequest or perms.helpdesk.change_ticket %}
+
+ {% trans "Action" %}
+
+ {% endif %}
@@ -58,51 +60,53 @@
>
-
-
- {% if not req.is_approved and not req.is_rejected %}
-
- {% else %}
-
- {% endif %}
- {% if not req.is_rejected %}
-
- {% else %}
-
-
+ {% endif %}
{% endfor %}
diff --git a/helpdesk/views.py b/helpdesk/views.py
index 241961395..f9d1dd16e 100644
--- a/helpdesk/views.py
+++ b/helpdesk/views.py
@@ -999,6 +999,7 @@ def view_ticket_claim_request(request, ticket_id):
ticket = Ticket.objects.filter(id=ticket_id).first()
if (
request.user.has_perm("helpdesk.change_claimrequest")
+ or request.user.has_perm("helpdesk.view_claimrequest")
or request.user.has_perm("helpdesk.change_ticket")
or is_department_manager(request, ticket)
):