You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
triv: added blocks to be able to add own html (#129)
* triv: added blocks to be able to add own html
* fix: removed field_cache to be able to do request-based sb_admin_list
* feat: added possible to add optgroup in choice filter
* feat: added the possibility to stick footer on tables with sticky scrollbar
* fix: added translations in confirm modal and fixed ui bug
* fix: added translations in confirm modal and fixed ui bug
* triv: ux auto hide dropdown when radio
* feat: added styling for treebwidget, fixed jump on click and dont show expand when no children presented
* feat: added styling for treebwidget, fixed jump on click and dont show expand when no children presented
* feat: implement request-based field caching in SBAdminBaseView
* triv: enable sticky by default
* triv: black
Copy file name to clipboardExpand all lines: AGENTS.md
+21Lines changed: 21 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -878,6 +878,26 @@ Styles live in `static/sb_admin/src/css/_tabulator.css`: the icon is hidden on s
878
878
879
879
> **Recommendation:** Prefer `MultipleChoiceFilterWidget` over `ChoiceFilterWidget` for choice-based filters. It provides a better UX and gives users more flexibility to select multiple values at once.
880
880
881
+
### Grouped Choices
882
+
883
+
Both `ChoiceFilterWidget` and `MultipleChoiceFilterWidget` accept Django-style grouped choices in addition to the flat form. Grouped input renders a header (`<optgroup>` in select templates, a styled header `<li>` in the checkbox-dropdown templates); flat input renders identically to before.
Detection follows the same rule Django's `ChoiceWidget.optgroups` uses: the top-level structure is grouped if the second element of the first item is a list/tuple. Mixing flat and grouped choices in the same call is not supported.
900
+
881
901
### Custom Filter Widget Example
882
902
883
903
```python
@@ -3312,6 +3332,7 @@ Quick reference for all `sbadmin_` prefixed class attributes available in `SBAdm
3312
3332
|`sbadmin_list_reorder_field`| str | Field name for drag-and-drop row reordering |
|`sbadmin_table_history_enabled`| bool | Enable/disable table state history (default: `True`) |
3335
+
|`sbadmin_list_sticky_header_and_footer`| bool \| None | Enable sticky Tabulator column header together with sticky pagination footer and synced horizontal scrollbar. `None` falls back to `SBAdminRoleConfiguration.default_list_sticky_header_and_footer`; explicit `True`/`False` overrides the global setting. |
Copy file name to clipboardExpand all lines: README.md
+9Lines changed: 9 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -120,6 +120,15 @@ MIDDLEWARE = [
120
120
]
121
121
```
122
122
123
+
Enable Django i18n URLs so `{% url 'set_language' %}` is available for the navigation language picker:
124
+
```python
125
+
from django.urls import include, path
126
+
127
+
urlpatterns = [
128
+
path("i18n/", include("django.conf.urls.i18n")),
129
+
]
130
+
```
131
+
123
132
## 🔍 Audit Logging
124
133
125
134
Built-in optional audit app that automatically tracks all admin create, update, delete, and bulk operations with field-level diffs, snapshots, and request grouping. Just add `"django_smartbase_admin.audit"` to `INSTALLED_APPS` and run migrations.
0 commit comments