From f7a7cce881c1051a09474abcab48749ff6827494 Mon Sep 17 00:00:00 2001
From: Clinton Blackburn <cblackburn@edx.org>
Date: Thu, 17 Sep 2015 15:51:16 -0400
Subject: [PATCH] Using a better admin interface for UserProfiles

This interface should actually be useful as it doesn't attempt to load all users on the edit page.

ECOM-2172
---
 common/djangoapps/student/admin.py | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/common/djangoapps/student/admin.py b/common/djangoapps/student/admin.py
index 05509dc..4fae854 100644
--- a/common/djangoapps/student/admin.py
+++ b/common/djangoapps/student/admin.py
@@ -148,7 +148,20 @@ class CourseEnrollmentAdmin(admin.ModelAdmin):
         model = CourseEnrollment
 
 
-admin.site.register(UserProfile)
+class UserProfileAdmin(admin.ModelAdmin):
+    """ Admin interface for UserProfile model. """
+    list_display = ('user', 'name',)
+    search_fields = ('user__username', 'user__first_name', 'user__last_name', 'user__email', 'name',)
+
+    def get_readonly_fields(self, request, obj=None):
+        # The user field should not be editable for an existing user profile.
+        if obj:
+            return self.readonly_fields + ('user',)
+        return self.readonly_fields
+
+    class Meta(object):  # pylint: disable=missing-docstring
+        model = UserProfile
+
 
 admin.site.register(UserTestGroup)
 
@@ -165,3 +178,5 @@ admin.site.register(DashboardConfiguration, ConfigurationModelAdmin)
 admin.site.register(LinkedInAddToProfileConfiguration, LinkedInAddToProfileConfigurationAdmin)
 
 admin.site.register(CourseEnrollment, CourseEnrollmentAdmin)
+
+admin.site.register(UserProfile, UserProfileAdmin)
--
libgit2 0.26.0