mirror of
https://github.com/netbox-community/netbox.git
synced 2026-02-05 14:56:24 -06:00
Closes #6954: Remember users' table ordering preferences
This commit is contained in:
@@ -1,7 +1,13 @@
|
||||
from django.contrib.auth.models import User
|
||||
from django.test import override_settings, TestCase
|
||||
from django.test import override_settings
|
||||
from django.test.client import RequestFactory
|
||||
from django.urls import reverse
|
||||
|
||||
from dcim.models import Site
|
||||
from dcim.tables import SiteTable
|
||||
from users.preferences import UserPreference
|
||||
from utilities.tables import configure_table
|
||||
from utilities.testing import TestCase
|
||||
|
||||
|
||||
DEFAULT_USER_PREFERENCES = {
|
||||
@@ -12,6 +18,7 @@ DEFAULT_USER_PREFERENCES = {
|
||||
|
||||
|
||||
class UserPreferencesTest(TestCase):
|
||||
user_permissions = ['dcim.view_site']
|
||||
|
||||
def test_userpreference(self):
|
||||
CHOICES = (
|
||||
@@ -37,3 +44,21 @@ class UserPreferencesTest(TestCase):
|
||||
userconfig = user.config
|
||||
|
||||
self.assertEqual(userconfig.data, DEFAULT_USER_PREFERENCES)
|
||||
|
||||
def test_table_ordering(self):
|
||||
url = reverse('dcim:site_list')
|
||||
response = self.client.get(f"{url}?sort=status")
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
# Check that table ordering preference has been recorded
|
||||
self.user.refresh_from_db()
|
||||
ordering = self.user.config.get(f'tables.SiteTable.ordering')
|
||||
self.assertEqual(ordering, ['status'])
|
||||
|
||||
# Check that a recorded preference is honored by default
|
||||
self.user.config.set(f'tables.SiteTable.ordering', ['-status'], commit=True)
|
||||
table = SiteTable(Site.objects.all())
|
||||
request = RequestFactory().get(url)
|
||||
request.user = self.user
|
||||
configure_table(table, request)
|
||||
self.assertEqual(table.order_by, ('-status',))
|
||||
|
||||
Reference in New Issue
Block a user