Просмотр исходного кода

Merge pull request #18544 from renatoalmeidaoliveira/18154-make-BaseTable-aware-default_user_preferences-annon-users

FIX #18154 - Cannot change default table preferences for anonymous users
bctiemann 1 год назад
Родитель
Сommit
4c5fbb7326
1 измененных файлов с 3 добавлено и 0 удалено
  1. 3 0
      netbox/netbox/tables/tables.py

+ 3 - 0
netbox/netbox/tables/tables.py

@@ -2,6 +2,7 @@ from copy import deepcopy
 from functools import cached_property
 from functools import cached_property
 
 
 import django_tables2 as tables
 import django_tables2 as tables
+from django.conf import settings
 from django.contrib.auth.models import AnonymousUser
 from django.contrib.auth.models import AnonymousUser
 from django.contrib.contenttypes.fields import GenericForeignKey
 from django.contrib.contenttypes.fields import GenericForeignKey
 from django.core.exceptions import FieldDoesNotExist
 from django.core.exceptions import FieldDoesNotExist
@@ -64,6 +65,8 @@ class BaseTable(tables.Table):
         selected_columns = None
         selected_columns = None
         if user is not None and not isinstance(user, AnonymousUser):
         if user is not None and not isinstance(user, AnonymousUser):
             selected_columns = user.config.get(f"tables.{self.name}.columns")
             selected_columns = user.config.get(f"tables.{self.name}.columns")
+        elif isinstance(user, AnonymousUser) and hasattr(settings, 'DEFAULT_USER_PREFERENCES'):
+            selected_columns = settings.DEFAULT_USER_PREFERENCES.get('tables', {}).get(self.name, {}).get('columns')
         if not selected_columns:
         if not selected_columns:
             selected_columns = getattr(self.Meta, 'default_columns', self.Meta.fields)
             selected_columns = getattr(self.Meta, 'default_columns', self.Meta.fields)