diff --git a/atdb/taskdatabase/urls.py b/atdb/taskdatabase/urls.py index 60e1fe93e54a28b579961586cda7a54802b89760..891749a628a6710fa6412f9d6f432861a0e7142b 100644 --- a/atdb/taskdatabase/urls.py +++ b/atdb/taskdatabase/urls.py @@ -95,7 +95,6 @@ urlpatterns = [ path('tasks/<int:pk>/change_priority/<priority_change>/<page>', views.ChangePriority, name='task-change-priority'), path('tasks/<int:pk>/change_priority/<priority_change>', views.ChangePriority, name='task-change-priority'), path('tasks/sort-tasks/<sort>/<redirect_to_page>', views.SortTasks, name='sort-tasks'), - path('tasks/set_filter/<filter>/<redirect_to_page>', views.TaskSetFilter, name='task-set-filter'), path('tasks/set_active_filter/<redirect_to_page>', views.TaskSetActiveFilter, name='task-set-active-filter'), path('tasks/task-set-onhold-filter/<onhold>/<redirect_to_page>', views.TaskSetOnHoldFilter, name='task-set-onhold-filter'), diff --git a/atdb/taskdatabase/views.py b/atdb/taskdatabase/views.py index 547cd379beb8844a9b738c164a5e7d8cc9a3a83e..a5eeba1e26a4f00aa6afe4ae6103ba0879c05156 100644 --- a/atdb/taskdatabase/views.py +++ b/atdb/taskdatabase/views.py @@ -337,9 +337,8 @@ class ShowValidationPage(ListView): def get_queryset(self): - stored_tasks = Task.objects.filter(status__icontains='stored').order_by("sas_id") - tasks = stored_tasks.distinct("sas_id") - #tasks = get_filtered_tasks(self.request, stored_tasks) + stored_tasks = Task.objects.filter(status__icontains='stored') + tasks = get_filtered_tasks(self.request, stored_tasks, "sas_id") # exclude the failed tasks tasks = tasks.exclude(status__icontains="failed") @@ -407,8 +406,8 @@ class ShowFailuresPage(ListView): # this provides a broad range of filters for the search_box in the GUI -def get_filtered_tasks(request, pre_filtered_tasks=None): - filtered_tasks = [] +def get_filtered_tasks(request, pre_filtered_tasks=None, distinct=None): + filtered_tasks_as_list = None try: @@ -468,13 +467,13 @@ def get_filtered_tasks(request, pre_filtered_tasks=None): else: request.session['filtered'] = True - return filtered_tasks.order_by(my_sort) - - -# class TaskTables2View(SingleTableView): -# model = Task -# table_class = TaskTable -# template_name = 'taskdatabase/query/query.html' + if distinct: + # this does not seem to work, the distinct tasks are not sorted. + my_sorted_tasks = filtered_tasks.order_by(distinct,my_sort) + my_sorted_tasks = my_sorted_tasks.distinct(distinct) + return my_sorted_tasks + else: + return filtered_tasks.order_by(my_sort) def TaskDetails(request, id=0, page=0): @@ -1064,6 +1063,7 @@ def ChangePriority(request, pk, priority_change, page=0): def SortTasks(request, sort, redirect_to_page): # store the sort field on the session + request.session['sort'] = sort if redirect_to_page == 'atdb': return redirect('index')