From d314fe7e4e82a2e9b74644fd500371b33d8e5098 Mon Sep 17 00:00:00 2001
From: MOIS3Y <s.zhukovskii@ispsystem.com>
Date: Fri, 1 Sep 2023 17:58:58 +0900
Subject: [PATCH] Add: resolved tickets filter

---
 logs_collector/collector/views.py             | 30 +++++++++----------
 .../templates/includes/navigation.html        |  8 +++++
 2 files changed, 23 insertions(+), 15 deletions(-)

diff --git a/logs_collector/collector/views.py b/logs_collector/collector/views.py
index 1459842..5377061 100644
--- a/logs_collector/collector/views.py
+++ b/logs_collector/collector/views.py
@@ -78,27 +78,27 @@ class ListAllTickets(LoginRequiredMixin, PageTitleViewMixin, generic.ListView):
 
     def get_queryset(self):
         search_query = self.request.GET.get('search', '')
-        if search_query:
-            query_list = []
-            try:
-                for item in search_query.split(','):
-                    query_list.append(int(item))
-            except ValueError:
-                return super().get_queryset()
-            queryset = self.model.objects.filter(
-                Q(number__in=query_list) | Q(number__icontains=query_list[0])
-            )
+        resolved_status_query = self.request.GET.get('resolved', '')
+        if search_query or resolved_status_query:
             self.paginate_by = 100  # ? fake disable pagination)
+            if search_query:
+                query_list = []
+                try:
+                    for item in search_query.split(','):
+                        query_list.append(int(item))
+                except ValueError:
+                    return super().get_queryset()
+                queryset = self.model.objects.filter(
+                    Q(number__in=query_list) | Q(number__icontains=query_list[0])  # noqa:E501
+                )
+            if resolved_status_query:
+                queryset = self.model.objects.filter(Q(resolved=True))
             return queryset
 
         return super().get_queryset()
 
 
-class ListPlatformTickets(
-        LoginRequiredMixin,
-        PageTitleViewMixin,
-        generic.ListView
-        ):
+class ListPlatformTickets(LoginRequiredMixin, PageTitleViewMixin, generic.ListView):  # noqa:E501
     model = Ticket
     template_name = 'collector/tickets.html'
     context_object_name = 'tickets'
diff --git a/logs_collector/templates/includes/navigation.html b/logs_collector/templates/includes/navigation.html
index aa0bcfd..2310f06 100644
--- a/logs_collector/templates/includes/navigation.html
+++ b/logs_collector/templates/includes/navigation.html
@@ -53,6 +53,14 @@
             </li>
             {% endfor %}
             <li><hr class="dropdown-divider" /></li>
+            <li>
+              <a
+                class="dropdown-item {% if request.GET.resolved %}active{% endif %}"
+                href="{% url 'collector:tickets' %}?resolved=true">
+                <i class="bi bi-check-circle"></i> Resolved
+              </a>
+            </li>
+            <li><hr class="dropdown-divider" /></li>
             <li>
               <a class="dropdown-item" href="{% url 'collector:tickets' %}">
                 <i class="bi bi-funnel"></i> Reset filter