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/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 %} + + +{% endblock %} + +{% block helpdesk_body %} +
+

{% trans "Saved Queries" %}

+ + {% if saved_queries %} + + {% 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)