diff --git a/helpdesk/templates/helpdesk/filters/priority.html b/helpdesk/templates/helpdesk/filters/priority.html
new file mode 100644
index 00000000..2b9f7340
--- /dev/null
+++ b/helpdesk/templates/helpdesk/filters/priority.html
@@ -0,0 +1,15 @@
+{% load i18n humanize %}
+{% load static %}
+{% load in_list %}
+
\ No newline at end of file
diff --git a/helpdesk/templates/helpdesk/navigation-sidebar.html b/helpdesk/templates/helpdesk/navigation-sidebar.html
index 8fbb80ad..0f183436 100644
--- a/helpdesk/templates/helpdesk/navigation-sidebar.html
+++ b/helpdesk/templates/helpdesk/navigation-sidebar.html
@@ -34,6 +34,12 @@
{% endif %}
+
+
+
+ {% trans "Manage Saved Queries" %}
+
+
diff --git a/helpdesk/templates/helpdesk/saved_searches_list.html b/helpdesk/templates/helpdesk/saved_searches_list.html
new file mode 100644
index 00000000..a168c3eb
--- /dev/null
+++ b/helpdesk/templates/helpdesk/saved_searches_list.html
@@ -0,0 +1,59 @@
+{% extends "helpdesk/base.html" %}
+{% load i18n %}
+
+{% block helpdesk_title %}
+ {% trans "Saved Queries" %}
+{% endblock %}
+
+{% block helpdesk_breadcrumb %}
+
+ {% trans "Tickets" %}
+
+ {% trans "Saved Queries" %}
+{% endblock %}
+
+{% block helpdesk_body %}
+
+
{% trans "Saved Queries" %}
+
+ {% if saved_queries %}
+
+ {% for q in saved_queries %}
+ -
+
+
+
+ {% endfor %}
+
+ {% else %}
+
{% trans "No saved queries found." %}
+ {% endif %}
+
+{% endblock %}
diff --git a/helpdesk/templates/helpdesk/ticket_list.html b/helpdesk/templates/helpdesk/ticket_list.html
index 5c5f8e0b..0e0fa640 100644
--- a/helpdesk/templates/helpdesk/ticket_list.html
+++ b/helpdesk/templates/helpdesk/ticket_list.html
@@ -171,6 +171,9 @@
+
@@ -201,6 +204,10 @@
id="filterBoxSort">
{% include 'helpdesk/filters/sorting.html' %}
+
+ {% include 'helpdesk/filters/priority.html' %}
+
{% include 'helpdesk/filters/owner.html' %}
diff --git a/helpdesk/urls.py b/helpdesk/urls.py
index 4cca21e9..be79d226 100644
--- a/helpdesk/urls.py
+++ b/helpdesk/urls.py
@@ -119,6 +119,7 @@ urlpatterns = [
path("rss/", staff.rss_list, name="rss_index"),
path("reports/", staff.report_index, name="report_index"),
re_path(r"^reports/(?P\w+)/$", staff.run_report, name="run_report"),
+ path("saved-searches/", staff.saved_searches_list, name="saved_searches_list"),
path("save_query/", staff.save_query, name="savequery"),
path("delete_query//", staff.delete_saved_query, name="delete_query"),
path("settings/", staff.EditUserSettingsView.as_view(), name="user_settings"),
diff --git a/helpdesk/views/staff.py b/helpdesk/views/staff.py
index 63f9ea9d..8206726f 100644
--- a/helpdesk/views/staff.py
+++ b/helpdesk/views/staff.py
@@ -1077,6 +1077,7 @@ def ticket_list(request):
"queue",
"assigned_to",
"status",
+ "priority",
"q",
"sort",
"sortreverse",
@@ -1089,6 +1090,7 @@ def ticket_list(request):
("queue", "queue__id__in"),
("assigned_to", "assigned_to__id__in"),
("status", "status__in"),
+ ("priority", "priority__in"),
("kbitem", "kbitem__in"),
]
filter_null_params = dict(
@@ -1096,6 +1098,7 @@ def ticket_list(request):
("queue", "queue__id__isnull"),
("assigned_to", "assigned_to__id__isnull"),
("status", "status__isnull"),
+ ("priority", "priority__isnull"),
("kbitem", "kbitem__isnull"),
]
)
@@ -1187,6 +1190,7 @@ def ticket_list(request):
kb_items=kbitem,
queue_choices=huser.get_queues(),
status_choices=Ticket.STATUS_CHOICES,
+ priority_choices=Ticket.PRIORITY_CHOICES,
kbitem_choices=kbitem_choices,
urlsafe_query=urlsafe_query,
user_saved_queries=user_saved_queries,
@@ -1687,6 +1691,23 @@ def run_report(request, report):
run_report = staff_member_required(run_report)
+@helpdesk_staff_member_required
+def saved_searches_list(request):
+ user = request.user
+ saved_queries = SavedSearch.objects.filter(Q(user=user) | Q(shared=True)).distinct()
+
+ return render(
+ request,
+ "helpdesk/saved_searches_list.html",
+ {
+ "saved_queries": saved_queries,
+ },
+ )
+
+
+saved_searches_list = staff_member_required(saved_searches_list)
+
+
@helpdesk_staff_member_required
def save_query(request):
title = request.POST.get("title", None)