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 %} + + + {% else %} + + {% endif %} + {% if not req.is_rejected %} + + {% else %} + + {% endif %} +
- + {% 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) ):