From 87194b18e206357f331c7bcf6e97e36487d6b187 Mon Sep 17 00:00:00 2001 From: dcz <dcz@ipipan.waw.pl> Date: Tue, 10 Oct 2023 21:00:39 +0200 Subject: [PATCH] Entries list with lu bugfix and optimalization. --- entries/views.py | 38 ++++++++------------------------------ 1 file changed, 8 insertions(+), 30 deletions(-) diff --git a/entries/views.py b/entries/views.py index e9be919..7891091 100644 --- a/entries/views.py +++ b/entries/views.py @@ -412,7 +412,6 @@ def get_entries(request): total = entries.count() if scroller_params['filter']: entries = entries.filter(name__startswith=scroller_params['filter']) - filtered = entries.count() local_frame_form = None if 'frame_form' in request.session: @@ -452,6 +451,11 @@ def get_entries(request): ) if with_lexical_units: + if exclude_status is not None: + entries = entries.filter(lexical_units__frames__status__iexact=exclude_status) + entries = entries.filter(lexical_units__frames__isnull=False) + if has_unified_frame == 'true': + entries = entries.filter(lexical_units__frames__slowal_frame_2_unified_frame__isnull=False) frameQueryset = Frame.objects.select_related("slowal_frame_2_unified_frame").prefetch_related(Prefetch("assignments", to_attr="_assignments")); entries = entries.prefetch_related( Prefetch( @@ -466,6 +470,8 @@ def get_entries(request): ) ) + filtered = entries.count() + status_names = STATUS() POS_names = POS() @@ -476,10 +482,6 @@ def get_entries(request): continue else: yield lu - import datetime - now = datetime.datetime.now() - print("1 Current date and time : ") - print(now.strftime("%Y-%m-%d %H:%M:%S")) result = { 'draw' : scroller_params['draw'], @@ -509,34 +511,10 @@ def get_entries(request): } if with_lexical_units else {} ), - } for e in (entries if with_lexical_units else entries[first_index:last_index]) + } for e in entries[first_index:last_index] ], } - now = datetime.datetime.now() - print("2 Current date and time : ") - print(now.strftime("%Y-%m-%d %H:%M:%S")) - - if with_lexical_units: - filteredData = [] - for entry in result['data']: - lexicalUnits = entry['lexical_units'] - filteredLexicalUnits = [] - for lexicalUnit in lexicalUnits: - if (exclude_status is None or lexicalUnit['status'] != exclude_status) and \ - (restrict_to_user is None or lexicalUnit['assignee_username'] == restrict_to_user) and \ - (has_unified_frame != 'true' or lexicalUnit['unified_frame_id'] != -1): - filteredLexicalUnits.append(lexicalUnit) - entry['lexical_units'] = filteredLexicalUnits - if len(filteredLexicalUnits) > 0: - filteredData.append(entry) - - result['data'] = filteredData[first_index:last_index] - - now = datetime.datetime.now() - print("3 Current date and time : ") - print(now.strftime("%Y-%m-%d %H:%M:%S")) - return JsonResponse(result) return JsonResponse({}) -- GitLab