From 80bd72a171e85280647cc83324e755920df739a8 Mon Sep 17 00:00:00 2001 From: bhargav1002 Date: Sat, 7 Jun 2025 12:20:38 +0530 Subject: [PATCH 1/3] feat: add saved queries list view page with run and delete support --- .../helpdesk/navigation-sidebar.html | 6 ++ .../helpdesk/saved_searches_list.html | 59 +++++++++++++++++++ helpdesk/urls.py | 1 + helpdesk/views/staff.py | 17 ++++++ 4 files changed, 83 insertions(+) create mode 100644 helpdesk/templates/helpdesk/saved_searches_list.html diff --git a/helpdesk/templates/helpdesk/navigation-sidebar.html b/helpdesk/templates/helpdesk/navigation-sidebar.html index 36ce6ece..83fd366e 100644 --- a/helpdesk/templates/helpdesk/navigation-sidebar.html +++ b/helpdesk/templates/helpdesk/navigation-sidebar.html @@ -34,6 +34,12 @@ {% endif %} + + +{% endblock %} + +{% block helpdesk_body %} +
+

{% trans "Saved Queries" %}

+ + {% if saved_queries %} + + {% else %} +

{% trans "No saved queries found." %}

+ {% endif %} +
+{% endblock %} 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..08a36ebd 100644 --- a/helpdesk/views/staff.py +++ b/helpdesk/views/staff.py @@ -1687,6 +1687,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) From 12fba9c68ca09c4e58a8638479b0b1c667c2c791 Mon Sep 17 00:00:00 2001 From: bhargav1002 Date: Sun, 8 Jun 2025 16:42:26 +0530 Subject: [PATCH 2/3] Add priority filter to ticket list view and template --- helpdesk/templates/helpdesk/filters/priority.html | 15 +++++++++++++++ helpdesk/templates/helpdesk/ticket_list.html | 7 +++++++ helpdesk/views/staff.py | 4 ++++ 3 files changed, 26 insertions(+) create mode 100644 helpdesk/templates/helpdesk/filters/priority.html 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 %} +
+
+ +
+
+ +
+
+ +
+
{% trans "Ctrl-click to select multiple options" %}
+
\ No newline at end of file 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/views/staff.py b/helpdesk/views/staff.py index 63f9ea9d..bf82e5fc 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, From c46a05cd6ff297fcbf7eccdcb8239e4075a6c8bd Mon Sep 17 00:00:00 2001 From: bhargav1002 Date: Sun, 8 Jun 2025 16:56:02 +0530 Subject: [PATCH 3/3] Enhance helpdesk UI: wrap saved query titles, group toolbar buttons, align filter labels --- .../templates/helpdesk/filters/sorting.html | 4 +- .../helpdesk/navigation-sidebar.html | 2 +- .../templates/helpdesk/ticket_desc_table.html | 44 ++++++++++--------- 3 files changed, 26 insertions(+), 24 deletions(-) diff --git a/helpdesk/templates/helpdesk/filters/sorting.html b/helpdesk/templates/helpdesk/filters/sorting.html index 2661f65e..6ae019a9 100644 --- a/helpdesk/templates/helpdesk/filters/sorting.html +++ b/helpdesk/templates/helpdesk/filters/sorting.html @@ -4,7 +4,7 @@
    -
    +
    diff --git a/helpdesk/templates/helpdesk/navigation-sidebar.html b/helpdesk/templates/helpdesk/navigation-sidebar.html index 36ce6ece..8fbb80ad 100644 --- a/helpdesk/templates/helpdesk/navigation-sidebar.html +++ b/helpdesk/templates/helpdesk/navigation-sidebar.html @@ -23,7 +23,7 @@