diff --git a/admin_interface/admin.py b/admin_interface/admin.py index d44406f..b2fd770 100644 --- a/admin_interface/admin.py +++ b/admin_interface/admin.py @@ -112,7 +112,10 @@ class ThemeAdmin(admin.ModelAdmin): }), (_('List Filter'), { 'classes': ('wide', ), - 'fields': ('list_filter_dropdown', ) + 'fields': ( + 'list_filter_dropdown', + 'list_filter_sticky', + ) }), (_('Recent Actions'), { 'classes': ('wide', ), diff --git a/admin_interface/migrations/0018_theme_list_filter_sticky.py b/admin_interface/migrations/0018_theme_list_filter_sticky.py new file mode 100644 index 0000000..e308c43 --- /dev/null +++ b/admin_interface/migrations/0018_theme_list_filter_sticky.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- + +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('admin_interface', '0017_change_list_filter_dropdown'), + ] + + operations = [ + migrations.AddField( + model_name='theme', + name='list_filter_sticky', + field=models.BooleanField(default=True, verbose_name='sticky position'), + ), + ] diff --git a/admin_interface/models.py b/admin_interface/models.py index 4ffab99..c67aa02 100644 --- a/admin_interface/models.py +++ b/admin_interface/models.py @@ -291,6 +291,10 @@ class Theme(models.Model): list_filter_dropdown = models.BooleanField( default=True, verbose_name=_('use dropdown')) + list_filter_sticky = models.BooleanField( + default=True, + verbose_name=_('sticky position')) + recent_actions_visible = models.BooleanField( default=True, verbose_name=_('visible')) diff --git a/admin_interface/templates/admin_interface/css/admin-interface.css b/admin_interface/templates/admin_interface/css/admin-interface.css index 2566c98..e67c510 100644 --- a/admin_interface/templates/admin_interface/css/admin-interface.css +++ b/admin_interface/templates/admin_interface/css/admin-interface.css @@ -282,6 +282,21 @@ color:{{ theme.css_generic_link_hover_color }}; } +/* list-filter sticky */ +{% if theme.list_filter_sticky %} +@media (min-width: 768px) { + .admin-interface .module.filtered #changelist-filter { + position: sticky; + top: 40px; + } + /* feature not available for django < 3.1.2 */ + .admin-interface .module.filtered #toolbar + #changelist-filter { + position: absolute; + top: 0px; + } +} +{% endif %} + .admin-interface .module.filtered #changelist-filter { {% if theme.css_module_rounded_corners %} border-bottom-left-radius: 4px;