From 38a4915cbb82c6fdb2485ed61a505b44545f1fc0 Mon Sep 17 00:00:00 2001
From: Fabio Ferreira da Silva <fabio_ferreiradasilva@yahoo.com.br>
Date: Fri, 12 Apr 2024 09:32:23 -0300
Subject: [PATCH] Fix admin search by USERNAME_FIELD

---
 machina/apps/forum_member/admin.py     | 13 +++++++------
 machina/apps/forum_permission/admin.py | 21 +++++++++++----------
 2 files changed, 18 insertions(+), 16 deletions(-)

diff --git a/machina/apps/forum_member/admin.py b/machina/apps/forum_member/admin.py
index 045035fd..ee216704 100644
--- a/machina/apps/forum_member/admin.py
+++ b/machina/apps/forum_member/admin.py
@@ -7,22 +7,23 @@
 """
 
 from django.contrib import admin
+from django.contrib.auth import get_user_model
 
 from machina.core.db.models import get_model
 from machina.models.fields import MarkupTextField, MarkupTextFieldWidget
 
-
 ForumProfile = get_model('forum_member', 'ForumProfile')
+USERNAME_FIELD = get_user_model().USERNAME_FIELD
 
 
 class ForumProfileAdmin(admin.ModelAdmin):
     """ The Forum Profile model admin. """
 
-    list_display = ('id', 'user', 'posts_count', )
-    list_filter = ('posts_count', )
-    list_display_links = ('id', 'user', )
-    raw_id_fields = ('user', )
-    search_fields = ('user__username',)
+    list_display = ('id', 'user', 'posts_count',)
+    list_filter = ('posts_count',)
+    list_display_links = ('id', 'user',)
+    raw_id_fields = ('user',)
+    search_fields = ('user__%s' % USERNAME_FIELD,)
 
     formfield_overrides = {
         MarkupTextField: {'widget': MarkupTextFieldWidget},
diff --git a/machina/apps/forum_permission/admin.py b/machina/apps/forum_permission/admin.py
index afad9a1d..855394d7 100644
--- a/machina/apps/forum_permission/admin.py
+++ b/machina/apps/forum_permission/admin.py
@@ -7,36 +7,37 @@
 """
 
 from django.contrib import admin
+from django.contrib.auth import get_user_model
 
 from machina.core.db.models import get_model
 
-
 ForumPermission = get_model('forum_permission', 'ForumPermission')
 GroupForumPermission = get_model('forum_permission', 'GroupForumPermission')
 UserForumPermission = get_model('forum_permission', 'UserForumPermission')
+USERNAME_FIELD = get_user_model().USERNAME_FIELD
 
 
 class ForumPermissionAdmin(admin.ModelAdmin):
     """ The Forum Permission model admin. """
 
-    search_fields = ('codename', )
-    list_display = ('name', 'codename', )
+    search_fields = ('codename',)
+    list_display = ('name', 'codename',)
 
 
 class GroupForumPermissionAdmin(admin.ModelAdmin):
     """ The Group Forum Permission model admin. """
 
-    search_fields = ('permission__codename', 'group__name', )
-    list_display = ('group', 'forum', 'permission', 'has_perm', )
-    list_editables = ('has_perm', )
-    raw_id_fields = ('group', )
+    search_fields = ('permission__codename', 'group__name',)
+    list_display = ('group', 'forum', 'permission', 'has_perm',)
+    list_editables = ('has_perm',)
+    raw_id_fields = ('group',)
     list_filter = ['forum', 'group']
 
 
 class UserForumPermissionAdmin(admin.ModelAdmin):
     """ The User Forum Permission model admin. """
 
-    search_fields = ('permission__codename', 'user__username', )
+    search_fields = ('permission__codename', 'user__%s' % USERNAME_FIELD,)
     list_display = (
         'user',
         'anonymous_user',
@@ -45,8 +46,8 @@ class UserForumPermissionAdmin(admin.ModelAdmin):
         'permission',
         'has_perm',
     )
-    list_editables = ('has_perm', )
-    raw_id_fields = ('user', )
+    list_editables = ('has_perm',)
+    raw_id_fields = ('user',)
     list_filter = ['forum']