From a994d25f90d2c04879f80d6f9df44878a6ee2428 Mon Sep 17 00:00:00 2001 From: dcz <dcz@ipipan.waw.pl> Date: Thu, 2 Nov 2023 16:48:17 +0100 Subject: [PATCH] exclude_status bugfix --- entries/views.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/entries/views.py b/entries/views.py index 3c6c04c..17a2ac5 100644 --- a/entries/views.py +++ b/entries/views.py @@ -414,10 +414,12 @@ def get_scroller_params(POST_data): #from django.db.models import Count -def iter_lexical_units(lexical_units, has_unified_frame='false'): +def iter_lexical_units(lexical_units, has_unified_frame='false', exclude_status=None): for lu in lexical_units: lu._frame = lu._frames[0] if lu._frames and len(lu._frames) > 0 else None - if lu._frame is None or (not hasattr(lu._frame, 'slowal_frame_2_unified_frame') and has_unified_frame == 'true'): + if lu._frame is None or \ + (not hasattr(lu._frame, 'slowal_frame_2_unified_frame') and has_unified_frame == 'true') or \ + (exclude_status is not None and lu._frame.status == exclude_status): continue else: yield lu @@ -505,7 +507,7 @@ def get_entries(request): ) ) if exclude_status is not None: - entries = entries.filter(lexical_units__frames__status__iexact=exclude_status) + entries = entries.exclude(lexical_units__frames__status=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) @@ -530,7 +532,7 @@ def get_entries(request): **( { 'lexical_units': [ - lu2dict(lu) for lu in iter_lexical_units(e.lexical_units.all(), has_unified_frame) + lu2dict(lu) for lu in iter_lexical_units(e.lexical_units.all(), has_unified_frame, exclude_status=exclude_status) ] } if with_lexical_units else {} -- GitLab