Skip to content

Commit 361a26d

Browse files
committed
Refactor for better DRY
1 parent a363eba commit 361a26d

File tree

3 files changed

+17
-1
lines changed

3 files changed

+17
-1
lines changed

filer/admin/fileadmin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ class FileAdmin(PrimitivePermissionAwareModelAdmin):
6060
list_display = ('label',)
6161
list_per_page = 10
6262
search_fields = ['name', 'original_filename', 'sha1', 'description']
63-
autocomplete_fields = ('owner',)
63+
autocomplete_fields = ['owner']
6464
readonly_fields = ('sha1', 'display_canonical')
6565

6666
form = FileAdminChangeFrom

filer/admin/permissionadmin.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ class Media:
2222
css = {'all': ['filer/css/admin_folderpermissions.css']}
2323

2424
def get_autocomplete_fields(self, request):
25+
"""Remove "owner" from autocomplete_fields is User model has no search_fields"""
26+
2527
autocomplete_fields = super().get_autocomplete_fields(request)
2628
if django_version >= (5, 0):
2729
user_admin = self.admin_site.get_model_admin(get_user_model())

filer/admin/permissions.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,22 @@
1+
from django import VERSION as django_version
12
from django.contrib import admin
3+
from django.contrib.auth import get_user_model
24
from django.urls import reverse
35

46

57
class PrimitivePermissionAwareModelAdmin(admin.ModelAdmin):
8+
def get_autocomplete_fields(self, request):
9+
"""Remove "owner" from autocomplete_fields is User model has no search_fields"""
10+
11+
autocomplete_fields = super().get_autocomplete_fields(request)
12+
if django_version >= (5, 0):
13+
user_admin = self.admin_site.get_model_admin(get_user_model())
14+
else:
15+
user_admin = self.admin_site._registry[get_user_model()]
16+
if not user_admin.get_search_fields(request) and 'owner' in autocomplete_fields:
17+
autocomplete_fields.remove('owner')
18+
return autocomplete_fields
19+
620
def has_add_permission(self, request):
721
# we don't have a "add" permission... but all adding is handled
822
# by special methods that go around these permissions anyway

0 commit comments

Comments
 (0)