From 8cb1bdfd1aa5dda8b925187f6793c68f0b585dd9 Mon Sep 17 00:00:00 2001 From: Ambulance Clerc Date: Tue, 12 Sep 2023 10:03:03 +0200 Subject: [PATCH] Studenteval: Affichage des nom dans selectbox --- .gitignore | 2 +- studenteval/admin.py | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 6f40667..57dd205 100644 --- a/.gitignore +++ b/.gitignore @@ -361,7 +361,7 @@ MigrationBackup/ # Fody - auto-generated XML schema FodyWeavers.xsd -venv* +./venv .venv-main* *migrations/ diff --git a/studenteval/admin.py b/studenteval/admin.py index 8b2ef4a..5851aa6 100644 --- a/studenteval/admin.py +++ b/studenteval/admin.py @@ -3,6 +3,7 @@ from studenteval.models import cl_Student_eval from django.urls import reverse from django.utils.html import format_html from . import views +from django.contrib.auth.models import User from rangefilter.filters import * from django.core.exceptions import PermissionDenied @@ -11,6 +12,7 @@ def is_member(user, group): class _cl_Student_eval_admin(admin.ModelAdmin): request = None + always_show_username = True list_display = ('ID','action_buttons','sStudent', "get_ref_of_eval", "nEval_Type", "nEval_Mode", "sAuthor", 'get_mirrored') @@ -77,6 +79,25 @@ class _cl_Student_eval_admin(admin.ModelAdmin): obj.save() + def formfield_for_foreignkey(self, db_field, request=None, **kwargs): + field = super(_cl_Student_eval_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(_cl_Student_eval_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) +