mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-10-30 20:55:42 +00:00 
			
		
		
		
	Toggle full name display of users (#5927)
* Add option to display full names instead of usernames * InvenTree Setting added to allow for admins to choose full names over usernames for display in the web GUI * Fix FA icon for settings page * Remove debug print
This commit is contained in:
		| @@ -1874,6 +1874,12 @@ class InvenTreeSetting(BaseInvenTreeSetting): | ||||
|             ] | ||||
|         }, | ||||
|  | ||||
|         'DISPLAY_FULL_NAMES': { | ||||
|             'name': _('Display Users full names'), | ||||
|             'description': _('Display Users full names instead of usernames'), | ||||
|             'default': False, | ||||
|             'validator': bool | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     typ = 'inventree' | ||||
|   | ||||
| @@ -17,6 +17,7 @@ | ||||
|         {% include "InvenTree/settings/setting.html" with key="INVENTREE_INSTANCE" icon="fa-info-circle" %} | ||||
|         {% include "InvenTree/settings/setting.html" with key="INVENTREE_INSTANCE_TITLE" icon="fa-info-circle" %} | ||||
|         {% include "InvenTree/settings/setting.html" with key="INVENTREE_RESTRICT_ABOUT" icon="fa-info-circle" %} | ||||
|         {% include "InvenTree/settings/setting.html" with key="DISPLAY_FULL_NAMES" icon="fa-font" %} | ||||
|         <tr><td colspan='5'></td></tr> | ||||
|         {% include "InvenTree/settings/setting.html" with key="INVENTREE_UPDATE_CHECK_INTERVAL" icon="fa-calendar-alt" %} | ||||
|         {% include "InvenTree/settings/setting.html" with key="INVENTREE_DOWNLOAD_FROM_URL" icon="fa-cloud-download-alt" %} | ||||
|   | ||||
| @@ -6,7 +6,7 @@ import logging | ||||
| from django.conf import settings | ||||
| from django.contrib import admin | ||||
| from django.contrib.auth import get_user_model | ||||
| from django.contrib.auth.models import Group, Permission | ||||
| from django.contrib.auth.models import Group, Permission, User | ||||
| from django.contrib.contenttypes.fields import GenericForeignKey | ||||
| from django.contrib.contenttypes.models import ContentType | ||||
| from django.core.cache import cache | ||||
| @@ -21,6 +21,7 @@ from django.utils.translation import gettext_lazy as _ | ||||
|  | ||||
| from rest_framework.authtoken.models import Token as AuthToken | ||||
|  | ||||
| import common.models as common_models | ||||
| import InvenTree.helpers | ||||
| import InvenTree.models | ||||
| from InvenTree.ready import canAppAccessDatabase | ||||
| @@ -28,6 +29,22 @@ from InvenTree.ready import canAppAccessDatabase | ||||
| logger = logging.getLogger("inventree") | ||||
|  | ||||
|  | ||||
| #  OVERRIDE START | ||||
| # Overrides Django User model __str__ with a custom function to be able to change | ||||
| # string representation of a user | ||||
| def user_model_str(self): | ||||
|     """Function to override the default Django User __str__""" | ||||
|  | ||||
|     if common_models.InvenTreeSetting.get_setting('DISPLAY_FULL_NAMES'): | ||||
|         if self.first_name or self.last_name: | ||||
|             return f'{self.first_name} {self.last_name}' | ||||
|     return self.username | ||||
|  | ||||
|  | ||||
| User.add_to_class("__str__", user_model_str)  # Overriding User.__str__ | ||||
| #  OVERRIDE END | ||||
|  | ||||
|  | ||||
| def default_token(): | ||||
|     """Generate a default value for the token""" | ||||
|     return ApiToken.generate_key() | ||||
| @@ -785,10 +802,16 @@ class Owner(models.Model): | ||||
|  | ||||
|     def __str__(self): | ||||
|         """Defines the owner string representation.""" | ||||
|         return f'{self.owner} ({self.owner_type.name})' | ||||
|         if self.owner_type.name == 'user' and common_models.InvenTreeSetting.get_setting('DISPLAY_FULL_NAMES'): | ||||
|             display_name = self.owner.get_full_name() | ||||
|         else: | ||||
|             display_name = str(self.owner) | ||||
|         return f'{display_name} ({self.owner_type.name})' | ||||
|  | ||||
|     def name(self): | ||||
|         """Return the 'name' of this owner.""" | ||||
|         if self.owner_type.name == 'user' and common_models.InvenTreeSetting.get_setting('DISPLAY_FULL_NAMES'): | ||||
|             return self.owner.get_full_name() | ||||
|         return str(self.owner) | ||||
|  | ||||
|     def label(self): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user