mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2026-10-29 01:54:56 +00:00
typehint corputils
This commit is contained in:
6 files changed
+61
-28
No files matched your search
@@ -1,3 +1,7 @@
|
||||
__lazy_modules__ = ["django.http"]
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from allianceauth import hooks
|
||||
@@ -5,9 +9,12 @@ from allianceauth.corputils import urls
|
||||
from allianceauth.menu.hooks import MenuItemHook
|
||||
from allianceauth.services.hooks import UrlHook
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from django.http import HttpRequest
|
||||
|
||||
|
||||
class CorpStats(MenuItemHook):
|
||||
def __init__(self):
|
||||
def __init__(self) -> None:
|
||||
MenuItemHook.__init__(
|
||||
self,
|
||||
_('Corporation Stats'),
|
||||
@@ -16,7 +23,7 @@ class CorpStats(MenuItemHook):
|
||||
navactive=['corputils:']
|
||||
)
|
||||
|
||||
def render(self, request):
|
||||
def render(self, request: "HttpRequest") -> str:
|
||||
if request.user.has_perm('corputils.view_corp_corpstats') or request.user.has_perm(
|
||||
'corputils.view_alliance_corpstats') or request.user.has_perm(
|
||||
'corputils.add_corpstats') or request.user.has_perm('corputils.view_state_corpstats'):
|
||||
@@ -25,10 +32,10 @@ class CorpStats(MenuItemHook):
|
||||
|
||||
|
||||
@hooks.register('menu_item_hook')
|
||||
def register_menu():
|
||||
def register_menu() -> CorpStats:
|
||||
return CorpStats()
|
||||
|
||||
|
||||
@hooks.register('url_hook')
|
||||
def register_url():
|
||||
def register_url() -> UrlHook:
|
||||
return UrlHook(urls, 'corputils', r'^corpstats/')
|
||||
@@ -1,12 +1,20 @@
|
||||
__lazy_modules__ = ["allianceauth.corputils.models", "django.contrib.auth.models"]
|
||||
|
||||
import logging
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from django.db import models
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
from allianceauth.corputils.models import CorpStats # noqa: F401
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class CorpStatsQuerySet(models.QuerySet):
|
||||
def visible_to(self, user):
|
||||
class CorpStatsQuerySet(models.QuerySet["CorpStats"]):
|
||||
def visible_to(self, user: "User") -> "CorpStatsQuerySet":
|
||||
# superusers get all visible
|
||||
if user.is_superuser:
|
||||
logger.debug(f'Returning all corpstats for superuser {user}.')
|
||||
@@ -41,9 +49,9 @@ class CorpStatsQuerySet(models.QuerySet):
|
||||
return self.none()
|
||||
|
||||
|
||||
class CorpStatsManager(models.Manager):
|
||||
def get_queryset(self):
|
||||
class CorpStatsManager(models.Manager["CorpStats"]):
|
||||
def get_queryset(self) -> CorpStatsQuerySet:
|
||||
return CorpStatsQuerySet(self.model, using=self._db)
|
||||
|
||||
def visible_to(self, user):
|
||||
def visible_to(self, user: "User") -> CorpStatsQuerySet:
|
||||
return self.get_queryset().visible_to(user)
|
||||
@@ -1,5 +1,7 @@
|
||||
__lazy_modules__ = ["django.contrib.auth.models"]
|
||||
|
||||
import logging
|
||||
from typing import ClassVar
|
||||
from typing import TYPE_CHECKING, ClassVar
|
||||
|
||||
from django.db import models
|
||||
|
||||
@@ -19,6 +21,9 @@ from .providers import (
|
||||
post_universe_names,
|
||||
)
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@@ -130,16 +135,16 @@ class CorpStats(models.Model):
|
||||
def mains(self) -> models.QuerySet["CorpMember"]:
|
||||
return self.members.filter(pk__in=[m.pk for m in self.members.all() if m.main_character and int(m.main_character.character_id) == int(m.character_id)])
|
||||
|
||||
def visible_to(self, user) -> bool:
|
||||
def visible_to(self, user: "User") -> bool:
|
||||
return CorpStats.objects.filter(pk=self.pk).visible_to(user).exists()
|
||||
|
||||
def can_update(self, user) -> bool:
|
||||
def can_update(self, user: "User") -> bool:
|
||||
return self.token.user == user or self.visible_to(user)
|
||||
|
||||
def corp_logo(self, size=128) -> str:
|
||||
def corp_logo(self, size: int = 128) -> str:
|
||||
return self.corp.logo_url(size)
|
||||
|
||||
def alliance_logo(self, size=128) -> str:
|
||||
def alliance_logo(self, size: int = 128) -> str:
|
||||
if self.corp.alliance:
|
||||
return self.corp.alliance.logo_url(size)
|
||||
else:
|
||||
@@ -187,7 +192,7 @@ class CorpMember(models.Model):
|
||||
def registered(self) -> bool:
|
||||
return CharacterOwnership.objects.filter(character__character_id=self.character_id).exists()
|
||||
|
||||
def portrait_url(self, size=32) -> str:
|
||||
def portrait_url(self, size: int = 32) -> str:
|
||||
return EveCharacter.generic_portrait_url(self.character_id, size)
|
||||
|
||||
@property
|
||||
|
||||
@@ -1,15 +1,19 @@
|
||||
__lazy_modules__ = ["esi.models", "esi.stubs"]
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from esi.models import Token
|
||||
from esi.openapi_clients import ESIClientProvider
|
||||
|
||||
from .. import __title__, __url__, __version__
|
||||
from . import __esi_compatibility_date__
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from esi.models import Token
|
||||
from esi.stubs import (
|
||||
CharactersDetail, CorporationsCorporationIdMembersGet,
|
||||
PostUniverseNamesOperation, PostUniverseNamesOperationBody,
|
||||
CharactersDetail,
|
||||
CorporationsCorporationIdMembersGet,
|
||||
PostUniverseNamesOperation,
|
||||
PostUniverseNamesOperationBody,
|
||||
)
|
||||
|
||||
esi = ESIClientProvider(
|
||||
@@ -24,11 +28,11 @@ esi = ESIClientProvider(
|
||||
])
|
||||
|
||||
|
||||
def get_characters_character_id(character_id: int, use_etag=True) -> "CharactersDetail":
|
||||
def get_characters_character_id(character_id: int, use_etag: bool = True) -> "CharactersDetail":
|
||||
return esi.client.Character.GetCharactersCharacterId(character_id=character_id).result(use_etag=use_etag)
|
||||
|
||||
|
||||
def get_corporations_corporation_id_members(corporation_id: int, token: Token) -> "CorporationsCorporationIdMembersGet":
|
||||
def get_corporations_corporation_id_members(corporation_id: int, token: "Token") -> "CorporationsCorporationIdMembersGet":
|
||||
return esi.client.Corporation.GetCorporationsCorporationIdMembers(corporation_id=corporation_id, token=token).result()
|
||||
|
||||
|
||||
|
||||
@@ -4,12 +4,12 @@ from allianceauth.corputils.models import CorpStats
|
||||
|
||||
|
||||
@shared_task
|
||||
def update_corpstats(pk):
|
||||
def update_corpstats(pk: int) -> None:
|
||||
cs = CorpStats.objects.get(pk=pk)
|
||||
cs.update()
|
||||
|
||||
|
||||
@shared_task
|
||||
def update_all_corpstats():
|
||||
def update_all_corpstats() -> None:
|
||||
for cs in CorpStats.objects.all():
|
||||
update_corpstats.delay(cs.pk)
|
||||
@@ -1,10 +1,13 @@
|
||||
__lazy_modules__ = ["django.contrib.auth.models", "django.http", "esi.models"]
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from django.contrib import messages
|
||||
from django.contrib.auth.decorators import (
|
||||
login_required, permission_required, user_passes_test,
|
||||
)
|
||||
from django.core.exceptions import ObjectDoesNotExist, PermissionDenied
|
||||
from django.db import IntegrityError
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.shortcuts import get_object_or_404, redirect, render
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
@@ -16,8 +19,14 @@ from allianceauth.eveonline.models import EveCharacter, EveCorporationInfo
|
||||
from .models import CorpMember, CorpStats
|
||||
from .providers import get_characters_character_id
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from django.contrib.auth.models import User
|
||||
from django.http import HttpRequest, HttpResponse, HttpResponseRedirect
|
||||
|
||||
def access_corpstats_test(user):
|
||||
from esi.models import Token
|
||||
|
||||
|
||||
def access_corpstats_test(user: "User") -> bool:
|
||||
return user.has_perm('corputils.view_corp_corpstats') or user.has_perm(
|
||||
'corputils.view_alliance_corpstats') or user.has_perm('corputils.view_state_corpstats') or user.has_perm(
|
||||
'corputils.add_corpstats')
|
||||
@@ -27,7 +36,7 @@ def access_corpstats_test(user):
|
||||
@user_passes_test(access_corpstats_test)
|
||||
@permission_required('corputils.add_corpstats')
|
||||
@token_required(scopes='esi-corporations.read_corporation_membership.v1')
|
||||
def corpstats_add(request, token) -> HttpResponseRedirect:
|
||||
def corpstats_add(request: "HttpRequest", token: "Token") -> "HttpResponseRedirect":
|
||||
try:
|
||||
if EveCharacter.objects.filter(character_id=token.character_id).exists():
|
||||
corp_id = EveCharacter.objects.get(character_id=token.character_id).corporation_id
|
||||
@@ -51,7 +60,7 @@ def corpstats_add(request, token) -> HttpResponseRedirect:
|
||||
|
||||
@login_required
|
||||
@user_passes_test(access_corpstats_test)
|
||||
def corpstats_view(request, corp_id=None):
|
||||
def corpstats_view(request: "HttpRequest", corp_id: int | None = None) -> "HttpResponse":
|
||||
corpstats = None
|
||||
|
||||
# get requested model
|
||||
@@ -133,7 +142,7 @@ def corpstats_view(request, corp_id=None):
|
||||
|
||||
@login_required
|
||||
@user_passes_test(access_corpstats_test)
|
||||
def corpstats_update(request, corp_id):
|
||||
def corpstats_update(request: "HttpRequest", corp_id: int) -> "HttpResponse":
|
||||
corp = get_object_or_404(EveCorporationInfo, corporation_id=corp_id)
|
||||
corpstats = get_object_or_404(CorpStats, corp=corp)
|
||||
try:
|
||||
@@ -148,7 +157,7 @@ def corpstats_update(request, corp_id):
|
||||
|
||||
@login_required
|
||||
@user_passes_test(access_corpstats_test)
|
||||
def corpstats_search(request):
|
||||
def corpstats_search(request: "HttpRequest") -> "HttpResponse":
|
||||
results = []
|
||||
search_string = request.GET.get('search_string', None)
|
||||
if search_string:
|
||||
|
||||
Reference in new issue
Block a user