mirror of
				https://github.com/netbox-community/netbox.git
				synced 2024-05-10 07:54:54 +00:00 
			
		
		
		
	Introduce DEFAULT_USER_PREFERENCES dynamic config setting
This commit is contained in:
		@@ -1,5 +1,6 @@
 | 
			
		||||
from django import forms
 | 
			
		||||
from django.contrib.auth.forms import AuthenticationForm, PasswordChangeForm as DjangoPasswordChangeForm
 | 
			
		||||
from django.utils.html import mark_safe
 | 
			
		||||
 | 
			
		||||
from utilities.forms import BootstrapMixin, DateTimePicker, StaticSelect
 | 
			
		||||
from utilities.utils import flatten_dict
 | 
			
		||||
@@ -22,10 +23,12 @@ class UserConfigFormMetaclass(forms.models.ModelFormMetaclass):
 | 
			
		||||
        # Emulate a declared field for each supported user preference
 | 
			
		||||
        preference_fields = {}
 | 
			
		||||
        for field_name, preference in PREFERENCES.items():
 | 
			
		||||
            description = f'{preference.description}<br />' if preference.description else ''
 | 
			
		||||
            help_text = f'{description}<code>{field_name}</code>'
 | 
			
		||||
            field_kwargs = {
 | 
			
		||||
                'label': preference.label,
 | 
			
		||||
                'choices': preference.choices,
 | 
			
		||||
                'help_text': preference.description,
 | 
			
		||||
                'help_text': mark_safe(help_text),
 | 
			
		||||
                'coerce': preference.coerce,
 | 
			
		||||
                'required': False,
 | 
			
		||||
                'widget': StaticSelect,
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,7 @@ from django.db.models.signals import post_save
 | 
			
		||||
from django.dispatch import receiver
 | 
			
		||||
from django.utils import timezone
 | 
			
		||||
 | 
			
		||||
from netbox.config import get_config
 | 
			
		||||
from netbox.models import BigIDModel
 | 
			
		||||
from utilities.querysets import RestrictedQuerySet
 | 
			
		||||
from utilities.utils import flatten_dict
 | 
			
		||||
@@ -166,7 +167,8 @@ def create_userconfig(instance, created, **kwargs):
 | 
			
		||||
    Automatically create a new UserConfig when a new User is created.
 | 
			
		||||
    """
 | 
			
		||||
    if created:
 | 
			
		||||
        UserConfig(user=instance).save()
 | 
			
		||||
        config = get_config()
 | 
			
		||||
        UserConfig(user=instance, data=config.DEFAULT_USER_PREFERENCES).save()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
 
 | 
			
		||||
@@ -31,6 +31,7 @@ PREFERENCES = {
 | 
			
		||||
    'pagination.per_page': UserPreference(
 | 
			
		||||
        label='Page length',
 | 
			
		||||
        choices=get_page_lengths(),
 | 
			
		||||
        description='The number of objects to display per page',
 | 
			
		||||
        coerce=lambda x: int(x)
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user