diff --git a/atdb/taskdatabase/services/algorithms.py b/atdb/taskdatabase/services/algorithms.py index 70ac69f12ab2702c1343ed26c542d4a644c7c3ed..0e41549469a72781ded8b68c1e4170c5fa0e62d7 100644 --- a/atdb/taskdatabase/services/algorithms.py +++ b/atdb/taskdatabase/services/algorithms.py @@ -9,7 +9,6 @@ from django.db.models import Q, Sum import logging from .common import timeit from django.urls import reverse -from django.utils.http import urlencode from ..models import Task, LogEntry, Workflow, Configuration from django.conf import settings @@ -252,7 +251,7 @@ def construct_link_to_monitor_history(request, title, name, hostname): try: if settings.DEV == True: - url = request.build_absolute_uri(reverse('monitor')) + urlencode('?' + query) + url = request.build_absolute_uri(reverse('monitor')) + '?' + query else: # Unclear why 'build_absolute_uri' doesn't return 'https' in production. # Probably because the https is handled fully outside the container by Traefik @@ -450,13 +449,13 @@ def construct_link_to_tasks_api(request, status, workflow_id, count): query = "?workflow__id=" + str(workflow_id) if settings.DEV == True: - url = request.build_absolute_uri(reverse('tasks')) + urlencode(query) + url = request.build_absolute_uri(reverse('tasks')) + query else: # Unclear why 'build_absolute_uri' doesn't return 'https' in production. # Probably because the https is handled fully outside the container by Traefik # and ATDB is not aware of that. - url = "https://" + request.get_host() + reverse('tasks') + urlencode(query) + url = "https://" + request.get_host() + reverse('tasks') + query link = '<a href="' + url + '" target="_blank">' + str(count) + "</a>" except: pass diff --git a/atdb/taskdatabase/views.py b/atdb/taskdatabase/views.py index 31c1859be3cb4e5104c54dc451ee20d1ebac8fa9..79441ae858d2b7b5e31ba1e5b9f61dbd6c11ce55 100644 --- a/atdb/taskdatabase/views.py +++ b/atdb/taskdatabase/views.py @@ -20,7 +20,6 @@ from django_tables2.views import SingleTableMixin from django_tables2 import SingleTableView from django.shortcuts import render, redirect -from django.utils.http import urlencode from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from rest_framework.request import Request @@ -539,7 +538,7 @@ def AnnotateQuality(request, id=0, page=0, new_remark=""): task.remarks['quality'] = request.POST.get("annotation","") task.save() - return redirect('validation') + urlencode('?page='+request.POST.get("return_to_page", 1)) + return redirect('validation') + '?page='+request.POST.get("return_to_page", 1) else: # a GET means that the form should be presented to be filled in @@ -877,7 +876,7 @@ def Hold(request, pk, hold_it, page=0): return redirect('query') else: # redirect to tasks list - return redirect('index') + urlencode('?page=' + page) + return redirect('index') + '?page=' + page def HoldQuery(request, pk, hold_it, query_params): @@ -887,7 +886,7 @@ def HoldQuery(request, pk, hold_it, query_params): task.save() current_query_params = convert_query_params_to_url(query_params) - return redirect('query') + '?' + urlencode(current_query_params) + return redirect('query') + '?' + current_query_params @login_required @@ -916,7 +915,7 @@ def TaskSetStatus(request, pk, new_status, page=0): return redirect('task-details') else: # redirect to tasks list - return redirect('index') + urlencode('?page=' + page) + return redirect('index') + '?page=' + page @login_required @@ -933,7 +932,7 @@ def TaskValidate(request, pk, quality, new_status, page=0): return redirect('validation') else: # redirect to tasks list - return redirect('validation') + urlencode('?page=' + page) + return redirect('validation') + '?page=' + page @login_required @@ -948,7 +947,7 @@ def TaskRetry(request, pk, new_status, page=0): return redirect('task-details') else: # redirect to tasks list - return redirect('failures') + urlencode('?page=' + page) + return redirect('failures') + '?page=' + page # set a filter value in the session, used later by the 'get_searched_tasks' mechanism @@ -962,7 +961,7 @@ def TaskSetFilter(request, filter, redirect_to_page): if redirect_to_page == 'quality': return redirect('quality') - return redirect('index') + urlencode('?page=1') + return redirect('index') + '?page=1' # set the defined list of ACTIVE_STATUSSES on the session, used later by the 'get_searched_tasks' mechanism @@ -972,7 +971,7 @@ def TaskSetActiveFilter(request, redirect_to_page): if redirect_to_page == 'quality': return redirect('quality') - return redirect('index') + urlencode('?page=1') + return redirect('index') + '?page=1' def TaskSetOnHoldFilter(request, onhold, redirect_to_page): @@ -980,7 +979,7 @@ def TaskSetOnHoldFilter(request, onhold, redirect_to_page): if redirect_to_page == 'quality': return redirect('quality') - return redirect('index') + urlencode('?page=1') + return redirect('index') + '?page=1' def TaskClearFilter(request, redirect_to_page): @@ -994,7 +993,7 @@ def TaskClearFilter(request, redirect_to_page): return redirect('quality') if redirect_to_page == 'query': return redirect('query') - return redirect('index') + urlencode('?page=1') + return redirect('index') + '?page=1' @login_required @@ -1014,7 +1013,7 @@ def ChangePriority(request, pk, priority_change, page=0): return redirect('task-details') else: # redirect to tasks list - return redirect('index') + urlencode('?page=' + page) + return redirect('index') + '?page=' + page def SortTasks(request, sort, redirect_to_page): @@ -1059,7 +1058,7 @@ def TaskSetStatusTables2(request, pk, new_status, query_params): current_query_params = convert_query_params_to_url(query_params) # current_query_params = "id=&id__gte=&id__lte=&workflow__id=&filter=%09test&filter__icontains=&priority=&priority__gte=&priority__lte=&status__icontains=&status__in=&project=&project__icontains=&sas_id=&sas_id__icontains=&resume=unknown" - return redirect('query') + urlencode('?' + current_query_params) + return redirect('query') + '?' + current_query_params @login_required @@ -1076,7 +1075,7 @@ def TaskMultiStatus(request, new_status, query_params): task.save() current_query_params = request.session['current_query_params'] - return redirect('query') + urlencode('?' + current_query_params) + return redirect('query') + '?' + current_query_params # add the current query parameters to the session so that they survive # the request/response to the confirmation page (which has other query parameters) @@ -1100,7 +1099,7 @@ def TaskMultiHold(request, onhold, query_params): task.save() current_query_params = request.session['current_query_params'] - return redirect('query') + urlencode('?' + current_query_params) + return redirect('query') + '?' + current_query_params # add the current query parameters to the session so that they survive # the request/response to the confirmation page (which has other query parameters)