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):