mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-10 21:10:17 +02:00
Improve admin site
This commit is contained in:
parent
458685026b
commit
2d24d064d5
@ -122,10 +122,9 @@ class MainCorporationsFilter(admin.SimpleListFilter):
|
|||||||
parameter_name = 'main_corporations'
|
parameter_name = 'main_corporations'
|
||||||
|
|
||||||
def lookups(self, request, model_admin):
|
def lookups(self, request, model_admin):
|
||||||
qs = UserProfile.objects\
|
qs = EveCharacter.objects\
|
||||||
.exclude(main_character=None)\
|
.exclude(userprofile=None)\
|
||||||
.values(corporation_id=F('main_character__corporation_id'))\
|
.values('corporation_id', 'corporation_name')\
|
||||||
.annotate(corporation_name=F('main_character__corporation_name'))\
|
|
||||||
.distinct()
|
.distinct()
|
||||||
return tuple([
|
return tuple([
|
||||||
(x['corporation_id'], x['corporation_name']) for x in qs
|
(x['corporation_id'], x['corporation_name']) for x in qs
|
||||||
@ -145,11 +144,10 @@ class MainAllianceFilter(admin.SimpleListFilter):
|
|||||||
parameter_name = 'main_alliances'
|
parameter_name = 'main_alliances'
|
||||||
|
|
||||||
def lookups(self, request, model_admin):
|
def lookups(self, request, model_admin):
|
||||||
qs = UserProfile.objects\
|
qs = EveCharacter.objects\
|
||||||
.exclude(main_character=None)\
|
.exclude(alliance_id=None)\
|
||||||
.exclude(main_character__alliance_id=None)\
|
.exclude(userprofile=None)\
|
||||||
.values(alliance_id=F('main_character__alliance_id'))\
|
.values('alliance_id', 'alliance_name')\
|
||||||
.annotate(alliance_name=F('main_character__alliance_name'))\
|
|
||||||
.distinct()
|
.distinct()
|
||||||
return tuple([
|
return tuple([
|
||||||
(x['alliance_id'], x['alliance_name']) for x in qs
|
(x['alliance_id'], x['alliance_name']) for x in qs
|
||||||
|
@ -52,6 +52,7 @@ class GroupAdmin(admin.ModelAdmin):
|
|||||||
'authgroup__open',
|
'authgroup__open',
|
||||||
'authgroup__public'
|
'authgroup__public'
|
||||||
)
|
)
|
||||||
|
search_fields = ('name', 'authgroup__description')
|
||||||
|
|
||||||
filter_horizontal = ('permissions',)
|
filter_horizontal = ('permissions',)
|
||||||
inlines = (AuthGroupInlineAdmin,)
|
inlines = (AuthGroupInlineAdmin,)
|
||||||
@ -83,6 +84,9 @@ class GroupAdmin(admin.ModelAdmin):
|
|||||||
|
|
||||||
def _properties(self, obj):
|
def _properties(self, obj):
|
||||||
properties = list()
|
properties = list()
|
||||||
|
if obj.authgroup.internal:
|
||||||
|
properties.append('Internal')
|
||||||
|
else:
|
||||||
if obj.authgroup.hidden:
|
if obj.authgroup.hidden:
|
||||||
properties.append('Hidden')
|
properties.append('Hidden')
|
||||||
if obj.authgroup.open:
|
if obj.authgroup.open:
|
||||||
|
@ -1,7 +1,56 @@
|
|||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
|
from allianceauth.eveonline.models import EveCharacter
|
||||||
|
|
||||||
from .models import DiscordUser
|
from .models import DiscordUser
|
||||||
|
|
||||||
|
|
||||||
|
class MainCorporationsFilter(admin.SimpleListFilter):
|
||||||
|
"""Custom filter to show corporations from service users only"""
|
||||||
|
title = 'corporation'
|
||||||
|
parameter_name = 'main_corporations'
|
||||||
|
|
||||||
|
def lookups(self, request, model_admin):
|
||||||
|
qs = EveCharacter.objects\
|
||||||
|
.exclude(userprofile=None)\
|
||||||
|
.exclude(userprofile__user__discord=None)\
|
||||||
|
.values('corporation_id', 'corporation_name')\
|
||||||
|
.distinct()
|
||||||
|
return tuple([
|
||||||
|
(x['corporation_id'], x['corporation_name']) for x in qs
|
||||||
|
])
|
||||||
|
|
||||||
|
def queryset(self, request, queryset):
|
||||||
|
if self.value() is None:
|
||||||
|
return queryset.all()
|
||||||
|
else:
|
||||||
|
return queryset\
|
||||||
|
.filter(user__profile__main_character__corporation_id=self.value())
|
||||||
|
|
||||||
|
|
||||||
|
class MainAllianceFilter(admin.SimpleListFilter):
|
||||||
|
"""Custom filter to show alliances from service users only"""
|
||||||
|
title = 'alliance'
|
||||||
|
parameter_name = 'main_alliances'
|
||||||
|
|
||||||
|
def lookups(self, request, model_admin):
|
||||||
|
qs = EveCharacter.objects\
|
||||||
|
.exclude(alliance_id=None)\
|
||||||
|
.exclude(userprofile=None)\
|
||||||
|
.exclude(userprofile__user__discord=None)\
|
||||||
|
.values('alliance_id', 'alliance_name')\
|
||||||
|
.distinct()
|
||||||
|
return tuple([
|
||||||
|
(x['alliance_id'], x['alliance_name']) for x in qs
|
||||||
|
])
|
||||||
|
|
||||||
|
def queryset(self, request, queryset):
|
||||||
|
if self.value() is None:
|
||||||
|
return queryset.all()
|
||||||
|
else:
|
||||||
|
return queryset\
|
||||||
|
.filter(user__profile__main_character__alliance_id=self.value())
|
||||||
|
|
||||||
|
|
||||||
class DiscordUserAdmin(admin.ModelAdmin):
|
class DiscordUserAdmin(admin.ModelAdmin):
|
||||||
ordering = ('user__username', )
|
ordering = ('user__username', )
|
||||||
list_select_related = True
|
list_select_related = True
|
||||||
@ -18,8 +67,8 @@ class DiscordUserAdmin(admin.ModelAdmin):
|
|||||||
'uid'
|
'uid'
|
||||||
)
|
)
|
||||||
list_filter = (
|
list_filter = (
|
||||||
'user__profile__main_character__corporation_name',
|
MainCorporationsFilter,
|
||||||
'user__profile__main_character__alliance_name',
|
MainAllianceFilter,
|
||||||
'user__date_joined',
|
'user__date_joined',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -1,7 +1,56 @@
|
|||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
|
from allianceauth.eveonline.models import EveCharacter
|
||||||
|
|
||||||
from .models import AuthTS, Teamspeak3User, StateGroup
|
from .models import AuthTS, Teamspeak3User, StateGroup
|
||||||
|
|
||||||
|
|
||||||
|
class MainCorporationsFilter(admin.SimpleListFilter):
|
||||||
|
"""Custom filter to show corporations from service users only"""
|
||||||
|
title = 'corporation'
|
||||||
|
parameter_name = 'main_corporations'
|
||||||
|
|
||||||
|
def lookups(self, request, model_admin):
|
||||||
|
qs = EveCharacter.objects\
|
||||||
|
.exclude(userprofile=None)\
|
||||||
|
.exclude(userprofile__user__teamspeak3=None)\
|
||||||
|
.values('corporation_id', 'corporation_name')\
|
||||||
|
.distinct()
|
||||||
|
return tuple([
|
||||||
|
(x['corporation_id'], x['corporation_name']) for x in qs
|
||||||
|
])
|
||||||
|
|
||||||
|
def queryset(self, request, queryset):
|
||||||
|
if self.value() is None:
|
||||||
|
return queryset.all()
|
||||||
|
else:
|
||||||
|
return queryset\
|
||||||
|
.filter(user__profile__main_character__corporation_id=self.value())
|
||||||
|
|
||||||
|
|
||||||
|
class MainAllianceFilter(admin.SimpleListFilter):
|
||||||
|
"""Custom filter to show alliances from service users only"""
|
||||||
|
title = 'alliance'
|
||||||
|
parameter_name = 'main_alliances'
|
||||||
|
|
||||||
|
def lookups(self, request, model_admin):
|
||||||
|
qs = EveCharacter.objects\
|
||||||
|
.exclude(alliance_id=None)\
|
||||||
|
.exclude(userprofile=None)\
|
||||||
|
.exclude(userprofile__user__teamspeak3=None)\
|
||||||
|
.values('alliance_id', 'alliance_name')\
|
||||||
|
.distinct()
|
||||||
|
return tuple([
|
||||||
|
(x['alliance_id'], x['alliance_name']) for x in qs
|
||||||
|
])
|
||||||
|
|
||||||
|
def queryset(self, request, queryset):
|
||||||
|
if self.value() is None:
|
||||||
|
return queryset.all()
|
||||||
|
else:
|
||||||
|
return queryset\
|
||||||
|
.filter(user__profile__main_character__alliance_id=self.value())
|
||||||
|
|
||||||
|
|
||||||
class Teamspeak3UserAdmin(admin.ModelAdmin):
|
class Teamspeak3UserAdmin(admin.ModelAdmin):
|
||||||
ordering = ('user__username', )
|
ordering = ('user__username', )
|
||||||
list_select_related = True
|
list_select_related = True
|
||||||
@ -20,8 +69,8 @@ class Teamspeak3UserAdmin(admin.ModelAdmin):
|
|||||||
'perm_key'
|
'perm_key'
|
||||||
)
|
)
|
||||||
list_filter = (
|
list_filter = (
|
||||||
'user__profile__main_character__corporation_name',
|
MainCorporationsFilter,
|
||||||
'user__profile__main_character__alliance_name',
|
MainAllianceFilter,
|
||||||
'user__date_joined',
|
'user__date_joined',
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -57,9 +106,21 @@ class Teamspeak3UserAdmin(admin.ModelAdmin):
|
|||||||
|
|
||||||
|
|
||||||
class AuthTSgroupAdmin(admin.ModelAdmin):
|
class AuthTSgroupAdmin(admin.ModelAdmin):
|
||||||
fields = ['auth_group', 'ts_group']
|
ordering = ('auth_group__name', )
|
||||||
|
list_select_related = True
|
||||||
|
|
||||||
|
list_display = ('auth_group', '_ts_group')
|
||||||
|
list_filter = ('ts_group', )
|
||||||
|
|
||||||
|
fields = ('auth_group', 'ts_group')
|
||||||
filter_horizontal = ('ts_group',)
|
filter_horizontal = ('ts_group',)
|
||||||
|
|
||||||
|
def _ts_group(self, obj):
|
||||||
|
return [x for x in obj.ts_group.all().order_by('ts_group_id')]
|
||||||
|
|
||||||
|
_ts_group.short_description = 'ts groups'
|
||||||
|
#_ts_group.admin_order_field = 'profile__state'
|
||||||
|
|
||||||
|
|
||||||
@admin.register(StateGroup)
|
@admin.register(StateGroup)
|
||||||
class StateGroupAdmin(admin.ModelAdmin):
|
class StateGroupAdmin(admin.ModelAdmin):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user