diff --git a/allianceauth/authentication/admin.py b/allianceauth/authentication/admin.py index 5191981c..6b45ec80 100644 --- a/allianceauth/authentication/admin.py +++ b/allianceauth/authentication/admin.py @@ -399,7 +399,7 @@ class UserAdmin(BaseUserAdmin): def formfield_for_manytomany(self, db_field, request, **kwargs): """overriding this formfield to have sorted lists in the form""" if db_field.name == "groups": - kwargs["queryset"] = Group.objects.all().order_by(Lower('name')) + kwargs["queryset"] = Group.objects.all().order_by(Lower('name')) return super().formfield_for_manytomany(db_field, request, **kwargs) @@ -438,7 +438,7 @@ class StateAdmin(admin.ModelAdmin): ] def formfield_for_manytomany(self, db_field, request, **kwargs): - """overriding this formfield to have sorted lists in the form""" + """overriding this formfield to have sorted lists in the form""" if db_field.name == "member_characters": kwargs["queryset"] = EveCharacter.objects.all()\ .order_by(Lower('character_name')) @@ -448,8 +448,10 @@ class StateAdmin(admin.ModelAdmin): elif db_field.name == "member_alliances": kwargs["queryset"] = EveAllianceInfo.objects.all()\ .order_by(Lower('alliance_name')) + elif db_field.name == "permissions": + kwargs["queryset"] = Permission.objects.select_related("content_type").all() return super().formfield_for_manytomany(db_field, request, **kwargs) - + def has_delete_permission(self, request, obj=None): if obj == get_guest_state(): return False diff --git a/allianceauth/groupmanagement/admin.py b/allianceauth/groupmanagement/admin.py index 3f5b4a39..37fa1e37 100644 --- a/allianceauth/groupmanagement/admin.py +++ b/allianceauth/groupmanagement/admin.py @@ -1,4 +1,5 @@ from django.apps import apps +from django.contrib.auth.models import Permission from django.contrib import admin from django.contrib.auth.models import Group as BaseGroup, User from django.db.models import Count @@ -96,8 +97,7 @@ class HasLeaderFilter(admin.SimpleListFilter): return queryset -class GroupAdmin(admin.ModelAdmin): - list_select_related = ('authgroup',) +class GroupAdmin(admin.ModelAdmin): ordering = ('name',) list_display = ( 'name', @@ -122,7 +122,7 @@ class GroupAdmin(admin.ModelAdmin): qs = super().get_queryset(request) if _has_auto_groups: qs = qs.prefetch_related('managedalliancegroup_set', 'managedcorpgroup_set') - qs = qs.prefetch_related('authgroup__group_leaders') + qs = qs.prefetch_related('authgroup__group_leaders').select_related('authgroup') qs = qs.annotate( member_count=Count('user', distinct=True), ) @@ -168,6 +168,11 @@ class GroupAdmin(admin.ModelAdmin): filter_horizontal = ('permissions',) inlines = (AuthGroupInlineAdmin,) + def formfield_for_manytomany(self, db_field, request, **kwargs): + if db_field.name == "permissions": + kwargs["queryset"] = Permission.objects.select_related("content_type").all() + return super().formfield_for_manytomany(db_field, request, **kwargs) + class Group(BaseGroup): class Meta: