From 02c8a095418c923c856127dff3a6868401fb9395 Mon Sep 17 00:00:00 2001 From: kirosbr Date: Sun, 20 Mar 2022 18:39:02 +0100 Subject: [PATCH] affichage des utilisateurs avec fname et lname dans editio heure --- collabs/admin.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/collabs/admin.py b/collabs/admin.py index 7bd7b89..24782e7 100644 --- a/collabs/admin.py +++ b/collabs/admin.py @@ -1,5 +1,6 @@ from django.contrib import admin from rangefilter.filters import DateRangeFilter +from django.contrib.auth.models import User from collabs.models import * @@ -17,6 +18,8 @@ class Collabs_hour_Form_admin(forms.ModelForm): class Collabs_hour_Admin(admin.ModelAdmin): + always_show_username = True + class Meta: verbose_name = 'Heure supplémentaire' verbose_name_plural = 'Heures supplémentaires' @@ -38,6 +41,25 @@ class Collabs_hour_Admin(admin.ModelAdmin): return super().get_form(request, obj, **kwargs) + def formfield_for_foreignkey(self, db_field, request=None, **kwargs): + field = super(Collabs_hour_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(Collabs_hour_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) + def save_model(self, request, obj, form, change):