Coverage for src/lexigram/admin/ui/filters/__init__.py: 100%

4 statements  

« prev     ^ index     » next       coverage.py v7.15.4, created at 2026-08-21 14:56 +0800

1""" 

2Filter system for DataTable. 

3 

4Example usage: 

5 from lexigram.admin.ui.filters import SelectFilter, RangeFilter, ToggleFilter, MultiSelectFilter 

6 

7 # Column-based filters (New Content API) 

8 BadgeColumn("species").filterable(SelectFilter( 

9 options={"dog": "Dogs", "cat": "Cats"}, 

10 )) 

11 

12 DateColumn("birth_date").filterable(RangeFilter( 

13 label="Birth Date Range", 

14 )) 

15 

16 BooleanColumn("is_neutered").filterable(ToggleFilter( 

17 true_label="Neutered/Spayed", 

18 false_label="Not Neutered", 

19 )) 

20""" 

21 

22from __future__ import annotations 

23 

24from lexigram.admin.ui.filters.base import Filter 

25from lexigram.admin.ui.filters.types import ( 

26 MultiSelectFilter, 

27 NumericRangeFilter, 

28 RangeFilter, 

29 SelectFilter, 

30 ToggleFilter, 

31) 

32 

33__all__ = [ 

34 "Filter", 

35 "MultiSelectFilter", 

36 "NumericRangeFilter", 

37 "RangeFilter", 

38 "SelectFilter", 

39 "ToggleFilter", 

40]