From 56ab2a3848e0c11579bc2310efaaef20bab9a711 Mon Sep 17 00:00:00 2001 From: dcz <dcz@ipipan.waw.pl> Date: Mon, 16 Oct 2023 13:35:21 +0200 Subject: [PATCH] Sorting the unified frame list bugfix. --- unifier/views.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/unifier/views.py b/unifier/views.py index c444fe5..76f607e 100644 --- a/unifier/views.py +++ b/unifier/views.py @@ -213,13 +213,32 @@ def get_unified_frames(request): exclude_status = request.GET.get('exclude_status') restrict_to_user = request.GET.get('restrict_to_user') + scroller_params = get_scroller_params(request.POST) + + first_index, last_index = scroller_params['start'], scroller_params['start'] + scroller_params['length'] + order_field, order_dir = scroller_params['order'] + if order_field == 0: + order_field = 'title' + elif order_field == 1: + order_field = 'status' + else: + order_field = None + + if order_dir == 'desc' and order_field is not None: + order_field = '-' + order_field + errors_dict = dict() if 'unified_frame_form' in request.session: forms = collect_forms(request.session['unified_frame_form'], errors_dict) unified_frames = get_filtered_objects(forms).filter() else: - unified_frames = UnifiedFrame.objects.order_by('title').all() + unified_frames = UnifiedFrame.objects + + if order_field is not None: + unified_frames = unified_frames.order_by(order_field) + + unified_frames = unified_frames.all() if scroller_params['filter']: unified_frames = unified_frames.filter(title__startswith=scroller_params['filter']) @@ -254,6 +273,8 @@ def get_unified_frames(request): value['status'] == choices.UnifiedFrameStatus.VERIFIED: res_processed.append(value) + res_processed = res_processed[first_index:last_index] + ret = { 'draw': scroller_params['draw'], 'recordsTotal': len(res_processed), -- GitLab