diff --git a/vehicles/admin.py b/vehicles/admin.py index 0904759..278bad3 100644 --- a/vehicles/admin.py +++ b/vehicles/admin.py @@ -1,4 +1,5 @@ from django.contrib import admin +from django.contrib.auth.models import User from vehicles.models import * @@ -30,6 +31,7 @@ class _vhc_admin(admin.ModelAdmin): ) class _vhc_infos_admin(admin.ModelAdmin): + always_show_username = True save_as = True list_display = ('Vehicle', 'nType', 'sDesc') @@ -57,6 +59,25 @@ class _vhc_infos_admin(admin.ModelAdmin): }), ) + def formfield_for_foreignkey(self, db_field, request=None, **kwargs): + field = super(_vhc_infos_admin, self).formfield_for_foreignkey(db_field, request, **kwargs) + if db_field.remote_field.model == User: + field.label_from_instance = self.get_user_label + return field + + def formfield_for_manytomany(self, db_field, request=None, **kwargs): + field = super(_vhc_infos_admin, self).formfield_for_manytomany(db_field, request, **kwargs) + if db_field.remote_field.model == User: + field.label_from_instance = self.get_user_label + return field + + def get_user_label(self, user): + name = user.get_full_name() + username = user.username + if not self.always_show_username: + return name or username + return (name and name != username and '%s (%s)' % (name, username) or username) + admin.site.register(Vehicles_infos, _vhc_infos_admin)