From 6d873e9fa10622005f95182b83ad05933842292a Mon Sep 17 00:00:00 2001
From: dcz <dcz@ipipan.waw.pl>
Date: Thu, 2 Nov 2023 16:43:00 +0100
Subject: [PATCH] exclude_status bugfix

---
 entries/views.py | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/entries/views.py b/entries/views.py
index c9486c9..98177cd 100644
--- a/entries/views.py
+++ b/entries/views.py
@@ -468,7 +468,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)
@@ -481,7 +481,9 @@ def get_entries(request):
         def iter_lexical_units(e):
             for lu in e.lexical_units.all():
                 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
-- 
GitLab