[UPDT] HELPDESK: Easy filter added to the list view
This commit is contained in:
@@ -2,6 +2,7 @@ from typing import Any
|
|||||||
|
|
||||||
from django.urls import reverse, reverse_lazy
|
from django.urls import reverse, reverse_lazy
|
||||||
from django.utils.decorators import method_decorator
|
from django.utils.decorators import method_decorator
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
from base.methods import filtersubordinates, is_reportingmanager
|
from base.methods import filtersubordinates, is_reportingmanager
|
||||||
from helpdesk.filter import TicketFilter, TicketReGroup
|
from helpdesk.filter import TicketFilter, TicketReGroup
|
||||||
@@ -44,13 +45,13 @@ class TicketPipelineNav(HorillaNavView):
|
|||||||
filter_form_context_name = "form"
|
filter_form_context_name = "form"
|
||||||
|
|
||||||
group_by_fields = [
|
group_by_fields = [
|
||||||
("employee_id", "Owner"),
|
("employee_id", _("Owner")),
|
||||||
("ticket_type", "Ticket Type"),
|
("ticket_type", _("Ticket Type")),
|
||||||
("status", "Status"),
|
("status", _("Status")),
|
||||||
("priority", "Priority"),
|
("priority", _("Priority")),
|
||||||
("tags", "Tags"),
|
("tags", _("Tags")),
|
||||||
("assigned_to", "Assigner"),
|
("assigned_to", _("Assigner")),
|
||||||
("employee_id__employee_work_info__company_id", "Company"),
|
("employee_id__employee_work_info__company_id", _("Company")),
|
||||||
]
|
]
|
||||||
|
|
||||||
actions = [
|
actions = [
|
||||||
@@ -129,12 +130,12 @@ class TicketTabView(HorillaTabView):
|
|||||||
|
|
||||||
self.tabs = [
|
self.tabs = [
|
||||||
{
|
{
|
||||||
"title": "My Tickets",
|
"title": _("My Tickets"),
|
||||||
# "url":f'{ reverse("ticket-pipeline-view")}?ticket_tab=my_tickets&',
|
# "url":f'{ reverse("ticket-pipeline-view")}?ticket_tab=my_tickets&',
|
||||||
"url": f"{url}?ticket_tab=my_tickets",
|
"url": f"{url}?ticket_tab=my_tickets",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Suggested Tickets",
|
"title": _("Suggested Tickets"),
|
||||||
# "url":f'{ reverse("ticket-pipeline-view")}?ticket_tab=suggested_tickets&',
|
# "url":f'{ reverse("ticket-pipeline-view")}?ticket_tab=suggested_tickets&',
|
||||||
"url": f"{url}?ticket_tab=suggested_tickets",
|
"url": f"{url}?ticket_tab=suggested_tickets",
|
||||||
},
|
},
|
||||||
@@ -145,7 +146,7 @@ class TicketTabView(HorillaTabView):
|
|||||||
):
|
):
|
||||||
self.tabs.append(
|
self.tabs.append(
|
||||||
{
|
{
|
||||||
"title": "All Tickets",
|
"title": _("All Tickets"),
|
||||||
# "url":f'{ reverse("ticket-pipeline-view")}?ticket_tab=all_tickets&',
|
# "url":f'{ reverse("ticket-pipeline-view")}?ticket_tab=all_tickets&',
|
||||||
"url": f"{url}?ticket_tab=all_tickets",
|
"url": f"{url}?ticket_tab=all_tickets",
|
||||||
}
|
}
|
||||||
@@ -207,15 +208,15 @@ class TicketListView(HorillaListView):
|
|||||||
"tags",
|
"tags",
|
||||||
]
|
]
|
||||||
columns = [
|
columns = [
|
||||||
("Ticket ID", "get_ticket_id_col"),
|
(_("Ticket ID"), "get_ticket_id_col"),
|
||||||
("Title", "title"),
|
(_("Title"), "title"),
|
||||||
("Owner", "employee_id"),
|
(_("Owner"), "employee_id"),
|
||||||
("Type", "ticket_type"),
|
(_("Type"), "ticket_type"),
|
||||||
("Forward to", "get_raised_on"),
|
(_("Forward to"), "get_raised_on"),
|
||||||
("Assigned to", "get_assigned_to"),
|
(_("Assigned to"), "get_assigned_to"),
|
||||||
("Status", "get_status_col"),
|
(_("Status"), "get_status_col"),
|
||||||
("Priority", "get_priority_stars"),
|
(_("Priority"), "get_priority_stars"),
|
||||||
("Tags", "get_tags_col"),
|
(_("Tags"), "get_tags_col"),
|
||||||
]
|
]
|
||||||
|
|
||||||
row_attrs = """
|
row_attrs = """
|
||||||
@@ -226,6 +227,85 @@ class TicketListView(HorillaListView):
|
|||||||
action_method = """ticket_action_col"""
|
action_method = """ticket_action_col"""
|
||||||
header_attrs = {"action": "style='width:200px'"}
|
header_attrs = {"action": "style='width:200px'"}
|
||||||
|
|
||||||
|
row_status_indications = [
|
||||||
|
(
|
||||||
|
"canceled--dot",
|
||||||
|
_("Canceled"),
|
||||||
|
"""
|
||||||
|
onclick="
|
||||||
|
$('#applyFilter').closest('form').find('[name=status]').val('canceled');
|
||||||
|
$('[name=new]').val('unknown').change();
|
||||||
|
$('[name=in_progress]').val('unknown').change();
|
||||||
|
$('[name=on_hold]').val('unknown').change();
|
||||||
|
$('[name=resolved]').val('unknown').change();
|
||||||
|
$('#applyFilter').click();
|
||||||
|
"
|
||||||
|
|
||||||
|
""",
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"resolved--dot",
|
||||||
|
_("Resolved"),
|
||||||
|
"""
|
||||||
|
onclick="
|
||||||
|
$('#applyFilter').closest('form').find('[name=status]').val('resolved');
|
||||||
|
$('[name=new]').val('unknown').change();
|
||||||
|
$('[name=in_progress]').val('unknown').change();
|
||||||
|
$('[name=on_hold]').val('unknown').change();
|
||||||
|
$('[name=canceled]').val('unknown').change();
|
||||||
|
$('#applyFilter').click();
|
||||||
|
"
|
||||||
|
|
||||||
|
""",
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"on_hold--dot",
|
||||||
|
_("On Hold"),
|
||||||
|
"""
|
||||||
|
onclick="
|
||||||
|
$('#applyFilter').closest('form').find('[name=status]').val('on_hold');
|
||||||
|
$('[name=new]').val('unknown').change();
|
||||||
|
$('[name=in_progress]').val('unknown').change();
|
||||||
|
$('[name=resolved]').val('unknown').change();
|
||||||
|
$('[name=canceled]').val('unknown').change();
|
||||||
|
$('#applyFilter').click();
|
||||||
|
"
|
||||||
|
|
||||||
|
""",
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"in_progress--dot",
|
||||||
|
_("In Progress"),
|
||||||
|
"""
|
||||||
|
onclick="
|
||||||
|
$('#applyFilter').closest('form').find('[name=status]').val('in_progress');
|
||||||
|
$('[name=new]').val('unknown').change();
|
||||||
|
$('[name=on_hold]').val('unknown').change();
|
||||||
|
$('[name=resolved]').val('unknown').change();
|
||||||
|
$('[name=canceled]').val('unknown').change();
|
||||||
|
$('#applyFilter').click();
|
||||||
|
"
|
||||||
|
|
||||||
|
""",
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"new--dot",
|
||||||
|
_("New"),
|
||||||
|
"""
|
||||||
|
onclick="
|
||||||
|
$('#applyFilter').closest('form').find('[name=status]').val('new');
|
||||||
|
$('[name=on_hold]').val('unknown').change();
|
||||||
|
$('[name=in_progress]').val('unknown').change();
|
||||||
|
$('[name=resolved]').val('unknown').change();
|
||||||
|
$('[name=canceled]').val('unknown').change();
|
||||||
|
$('#applyFilter').click();
|
||||||
|
"
|
||||||
|
|
||||||
|
""",
|
||||||
|
),
|
||||||
|
]
|
||||||
|
row_status_class = "new-{new} in_progress-{in_progress} on_hold-{on_hold} resolved-{resolved} canceled-{canceled}"
|
||||||
|
|
||||||
def __init__(self, **kwargs: Any) -> None:
|
def __init__(self, **kwargs: Any) -> None:
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
if self.request.GET.get("ticket_tab") == "all_tickets":
|
if self.request.GET.get("ticket_tab") == "all_tickets":
|
||||||
|
|||||||
@@ -1,6 +1,29 @@
|
|||||||
{% extends "index.html" %}
|
{% extends "index.html" %}
|
||||||
{% load static i18n %}
|
{% load static i18n %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.resolved--dot {
|
||||||
|
background-color: yellowgreen;
|
||||||
|
}
|
||||||
|
|
||||||
|
.on_hold--dot {
|
||||||
|
background-color: red;
|
||||||
|
}
|
||||||
|
|
||||||
|
.in_progress--dot {
|
||||||
|
background-color: orange;
|
||||||
|
}
|
||||||
|
|
||||||
|
.canceled--dot {
|
||||||
|
background-color: gray;
|
||||||
|
}
|
||||||
|
|
||||||
|
.new--dot {
|
||||||
|
background-color: dodgerblue;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
{% include "generic/components.html" %}
|
{% include "generic/components.html" %}
|
||||||
|
|
||||||
{% for path in script_static_paths %}
|
{% for path in script_static_paths %}
|
||||||
@@ -9,7 +32,7 @@
|
|||||||
|
|
||||||
<div
|
<div
|
||||||
class="oh-checkpoint-badge mb-2"
|
class="oh-checkpoint-badge mb-2"
|
||||||
id="selectedInstances"
|
id="selectedTickets"
|
||||||
data-ids="[]"
|
data-ids="[]"
|
||||||
data-clicked=""
|
data-clicked=""
|
||||||
style="display: none"
|
style="display: none"
|
||||||
@@ -27,4 +50,5 @@
|
|||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
|
|||||||
Reference in New Issue
Block a user