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

Add default user preferences tables testing in BaseTable

Renato Almeida de Oliveira Zaroubin 1 год назад
Родитель
Сommit
22af6dd05f
1 измененных файлов с 7 добавлено и 0 удалено
  1. 7 0
      netbox/netbox/tables/tables.py

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

@@ -2,6 +2,7 @@ from copy import deepcopy
 from functools import cached_property
 
 import django_tables2 as tables
+from django.conf import settings
 from django.contrib.auth.models import AnonymousUser
 from django.contrib.contenttypes.fields import GenericForeignKey
 from django.core.exceptions import FieldDoesNotExist
@@ -13,6 +14,7 @@ from django.utils.safestring import mark_safe
 from django.utils.translation import gettext_lazy as _
 from django_tables2.data import TableQuerysetData
 
+
 from core.models import ObjectType
 from extras.choices import *
 from extras.models import CustomField, CustomLink
@@ -64,6 +66,11 @@ class BaseTable(tables.Table):
         selected_columns = None
         if user is not None and not isinstance(user, AnonymousUser):
             selected_columns = user.config.get(f"tables.{self.name}.columns")
+        elif isinstance(user, AnonymousUser):
+            default_user_preferences = settings.DEFAULT_USER_PREFERENCES
+            default_table = default_user_preferences.get('tables', {}).get(self.name, {}).get('columns', {})
+            if default_table != {}:
+                selected_columns = default_table
         if not selected_columns:
             selected_columns = getattr(self.Meta, 'default_columns', self.Meta.fields)