mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-09 12:30:15 +02:00
47 lines
1.8 KiB
Python
47 lines
1.8 KiB
Python
from __future__ import unicode_literals
|
|
from django.contrib import admin
|
|
|
|
from eveonline.models import EveCharacter
|
|
from eveonline.models import EveApiKeyPair
|
|
from eveonline.models import EveAllianceInfo
|
|
from eveonline.models import EveCorporationInfo
|
|
from authentication.models import AuthServicesInfo
|
|
|
|
admin.site.register(EveAllianceInfo)
|
|
admin.site.register(EveCorporationInfo)
|
|
|
|
|
|
class EveApiKeyPairAdmin(admin.ModelAdmin):
|
|
search_fields = ['api_id', 'user__username']
|
|
list_display = ['api_id', 'user', 'characters']
|
|
|
|
@staticmethod
|
|
def characters(obj):
|
|
return ', '.join(sorted([c.character_name for c in EveCharacter.objects.filter(api_id=obj.api_id)]))
|
|
|
|
def get_search_results(self, request, queryset, search_term):
|
|
queryset, use_distinct = super(EveApiKeyPairAdmin, self).get_search_results(request, queryset, search_term)
|
|
chars = EveCharacter.objects.filter(character_name__icontains=search_term)
|
|
queryset |= EveApiKeyPair.objects.filter(api_id__in=[char.api_id for char in chars if bool(char.api_id)])
|
|
return queryset, use_distinct
|
|
|
|
|
|
class EveCharacterAdmin(admin.ModelAdmin):
|
|
search_fields = ['character_name', 'corporation_name', 'alliance_name', 'user__username', 'api_id']
|
|
list_display = ('character_name', 'corporation_name', 'alliance_name', 'user', 'main_character')
|
|
|
|
@staticmethod
|
|
def main_character(obj):
|
|
if obj.user:
|
|
auth = AuthServicesInfo.objects.get(user=obj.user)
|
|
if auth and auth.main_char_id:
|
|
try:
|
|
return EveCharacter.objects.get(character_id=auth.main_char_id)
|
|
except EveCharacter.DoesNotExist:
|
|
pass
|
|
return None
|
|
|
|
|
|
admin.site.register(EveCharacter, EveCharacterAdmin)
|
|
admin.site.register(EveApiKeyPair, EveApiKeyPairAdmin)
|