rebase again

This commit is contained in:
Ida Dittrich 2025-12-15 07:28:25 +01:00
commit ce434dd74d
2 changed files with 8 additions and 83 deletions

View file

@ -384,14 +384,12 @@ class ChatObjects:
matches = True
# Handle general search across text fields
if "search" in filters and filters["search"] is not None:
search_term = str(filters["search"]).strip().lower()
if "search" in filters:
search_term = str(filters["search"]).lower()
if search_term:
# Search in all string fields
found = False
for key, value in record.items():
if value is None:
continue
if isinstance(value, str) and search_term in value.lower():
found = True
break
@ -406,39 +404,17 @@ class ChatObjects:
if field_name == "search":
continue # Already handled above
# Skip None or empty filter values (but empty string for strings should still filter)
if filter_value is None:
continue
# If field doesn't exist in record, reject this record for this filter
if field_name not in record:
matches = False
break
record_value = record.get(field_name)
# Handle simple value - default to "contains" for strings, "equals" for other types
# Handle simple value (equals operator)
if not isinstance(filter_value, dict):
# Skip None values in record
if record_value is None:
if record_value != filter_value:
matches = False
break
# For string fields, default to "contains" for more intuitive filtering
if isinstance(record_value, str) and isinstance(filter_value, str):
# Skip empty filter strings
filter_str = str(filter_value).strip().lower()
if not filter_str:
continue
record_str = record_value.lower()
if filter_str not in record_str:
matches = False
break
else:
# For non-string fields, use exact match
if record_value != filter_value:
matches = False
break
continue
# Handle filter with operator

View file

@ -308,14 +308,12 @@ class ComponentObjects:
matches = True
# Handle general search across text fields
if "search" in filters and filters["search"] is not None:
search_term = str(filters["search"]).strip().lower()
if "search" in filters:
search_term = str(filters["search"]).lower()
if search_term:
# Search in all string fields
found = False
for key, value in record.items():
if value is None:
continue
if isinstance(value, str) and search_term in value.lower():
found = True
break
@ -324,72 +322,23 @@ class ComponentObjects:
break
if not found:
matches = False
# Continue checking other filters, but this record won't match
# Handle field-specific filters
for field_name, filter_value in filters.items():
if field_name == "search":
continue # Already handled above
# Skip None or empty filter values (but empty string for strings should still filter)
if filter_value is None:
continue
# If field doesn't exist in record, reject this record for this filter
if field_name not in record:
matches = False
break
record_value = record.get(field_name)
# Handle simple value - default to "contains" for strings, "equals" for other types
# Handle simple value (equals operator)
if not isinstance(filter_value, dict):
# Skip None values in record
if record_value is None:
if record_value != filter_value:
matches = False
break
# Special handling for fileSize field - parse formatted size strings
if field_name == "fileSize" and isinstance(filter_value, str):
try:
# Parse formatted size string (e.g., "2.13 MB", "1.5 GB", "500 KB")
filter_size_bytes = self._parse_size_string(filter_value)
if filter_size_bytes is not None:
# Compare as integers (bytes)
if isinstance(record_value, (int, float)):
# Allow small tolerance for rounding differences (5% or 50KB, whichever is smaller)
# This accounts for formatting differences but prevents matching very different sizes
tolerance = min(filter_size_bytes * 0.05, 50 * 1024)
if abs(record_value - filter_size_bytes) > tolerance:
matches = False
break
else:
matches = False
break
else:
# If parsing fails, try string contains match
if str(record_value) not in filter_value:
matches = False
break
except Exception:
# If parsing fails, skip this filter
continue
# For string fields, default to "contains" for more intuitive filtering
elif isinstance(record_value, str) and isinstance(filter_value, str):
# Skip empty filter strings
filter_str = str(filter_value).strip().lower()
if not filter_str:
continue
record_str = record_value.lower()
if filter_str not in record_str:
matches = False
break
else:
# For non-string fields, use exact match
if record_value != filter_value:
matches = False
break
continue
# Handle filter with operator