Add default user preferences tables testing in BaseTable

This commit is contained in:
Renato Almeida de Oliveira Zaroubin 2025-01-30 21:09:36 +00:00
parent 5514df9dee
commit 22af6dd05f

View File

@ -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
@ -13,6 +14,7 @@ from django.utils.safestring import mark_safe
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from django_tables2.data import TableQuerysetData from django_tables2.data import TableQuerysetData
from core.models import ObjectType from core.models import ObjectType
from extras.choices import * from extras.choices import *
from extras.models import CustomField, CustomLink from extras.models import CustomField, CustomLink
@ -64,6 +66,11 @@ 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):
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: if not selected_columns:
selected_columns = getattr(self.Meta, 'default_columns', self.Meta.fields) selected_columns = getattr(self.Meta, 'default_columns', self.Meta.fields)