@@ -123,3 +123,53 @@ class ProductCategoryTreeInline(SBAdminFakeInlineMixin, SBAdminTableInline):
123123```
124124
125125You can learn more about Fake Inlines in [ 🔗Fake inlines section] ( /docs/detail/fake_inlines ) .
126+
127+
128+ ### Tree Filter Widget
129+ The Tree Filter Widget enables users to filter data using hierarchical structures such as categories, departments etc...
130+
131+ ![ TreeWidget filter sbadmin] ( /img/screenshots/tree_widget_filter.png )
132+
133+ ### 💡 Example: Category Tree Filter for Product SBAdmin View
134+
135+ #### 1. Create widget
136+ Create a filter-specific widget by combining the base tree widget and SBAdminTreeFilterWidget:
137+
138+ ``` python title="catalog/sb_admin_widgets.py"
139+ class CategoryTreeFilterWidget (CategoryTreeWidget , SBAdminTreeFilterWidget ):
140+ template_name = " sb_admin/filter_widgets/tree_select_filter.html"
141+ ```
142+
143+
144+ #### 2. Add the Filter to Your Admin
145+ Use the custom widget in a SBAdminField in your admin class to enable tree-based filtering:
146+
147+ ``` python title="catalog/sb_admin.py"
148+ python title= " catalog/sb_admin.py"
149+ @admin.register (Product, site = sb_admin_site)
150+ class ProductSBAdmin (SBAdmin ):
151+ model = Product
152+ sbadmin_list_display = (
153+ # ... Other fields
154+ SBAdminField(
155+ name = " categories" ,
156+ title = " Categories" ,
157+ annotate = " categories__name" ,
158+ filter_widget = CategoryTreeFilterWidget(
159+ search_query_lambda = lambda request , qs , model , search_term , language_code : qs.filter(
160+ name__icontains = search_term
161+ ),
162+ filter_query_lambda = lambda request , filter_value : Q(
163+ is_active = True
164+ ),
165+ ),
166+ ),
167+ )
168+ ```
169+
170+ #### ⚙️ Key Options
171+ - ` multiselect ` : True for multiple selections, False for single.
172+ - ` value_field ` : Typically ` "path" ` for ` MP_Node ` trees.
173+ - ` search_query_lambda ` : Optional search support inside the tree.
174+ - ` filter_query_lambda ` : Filter values in widget.
175+
0 commit comments