mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-21 10:12:28 +02:00
Compare commits
16 Commits
ea321c1e97
...
f43f87e2f3
Author | SHA1 | Date | |
---|---|---|---|
|
f43f87e2f3 | ||
|
5e526da11c | ||
|
5c79265f90 | ||
|
eb0134e716 | ||
|
afde1f4729 | ||
|
5c6dda0eac | ||
|
af453bc772 | ||
|
e13674e886 | ||
|
e3e856b826 | ||
|
9d1cd23a8f | ||
|
148f7c116f | ||
|
33e7134d6f | ||
|
fb799551aa | ||
|
7b95051fe1 | ||
|
efb6a6db4f | ||
|
478aa1aa12 |
@ -1,6 +1,8 @@
|
|||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
class AnalyticsConfig(AppConfig):
|
class AnalyticsConfig(AppConfig):
|
||||||
name = 'allianceauth.analytics'
|
name = 'allianceauth.analytics'
|
||||||
label = 'analytics'
|
label = 'analytics'
|
||||||
|
verbose_name = _('Analytics')
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
from django.core.checks import register, Tags
|
from django.core.checks import register, Tags
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
class AuthenticationConfig(AppConfig):
|
class AuthenticationConfig(AppConfig):
|
||||||
name = "allianceauth.authentication"
|
name = "allianceauth.authentication"
|
||||||
label = "authentication"
|
label = "authentication"
|
||||||
|
verbose_name = _("Authentication")
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
from allianceauth.authentication import checks, signals # noqa: F401
|
from allianceauth.authentication import checks, signals # noqa: F401
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import logging
|
import logging
|
||||||
|
from typing import ClassVar
|
||||||
|
|
||||||
from django.contrib.auth.models import User, Permission
|
from django.contrib.auth.models import User, Permission
|
||||||
from django.db import models, transaction
|
from django.db import models, transaction
|
||||||
@ -27,7 +28,7 @@ class State(models.Model):
|
|||||||
help_text="Factions to whose members this state is available.")
|
help_text="Factions to whose members this state is available.")
|
||||||
public = models.BooleanField(default=False, help_text="Make this state available to any character.")
|
public = models.BooleanField(default=False, help_text="Make this state available to any character.")
|
||||||
|
|
||||||
objects = StateManager()
|
objects: ClassVar[StateManager] = StateManager()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
ordering = ['-priority']
|
ordering = ['-priority']
|
||||||
@ -137,8 +138,10 @@ class UserProfile(models.Model):
|
|||||||
sender=self.__class__, user=self.user, state=self.state
|
sender=self.__class__, user=self.user, state=self.state
|
||||||
)
|
)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self) -> str:
|
||||||
return str(self.user)
|
return str(self.user)
|
||||||
|
|
||||||
|
|
||||||
class CharacterOwnership(models.Model):
|
class CharacterOwnership(models.Model):
|
||||||
class Meta:
|
class Meta:
|
||||||
default_permissions = ('change', 'delete')
|
default_permissions = ('change', 'delete')
|
||||||
@ -148,7 +151,7 @@ class CharacterOwnership(models.Model):
|
|||||||
owner_hash = models.CharField(max_length=28, unique=True)
|
owner_hash = models.CharField(max_length=28, unique=True)
|
||||||
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='character_ownerships')
|
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='character_ownerships')
|
||||||
|
|
||||||
objects = CharacterOwnershipManager()
|
objects: ClassVar[CharacterOwnershipManager] = CharacterOwnershipManager()
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return f"{self.user}: {self.character}"
|
return f"{self.user}: {self.character}"
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
class CorpUtilsConfig(AppConfig):
|
class CorpUtilsConfig(AppConfig):
|
||||||
name = 'allianceauth.corputils'
|
name = 'allianceauth.corputils'
|
||||||
label = 'corputils'
|
label = 'corputils'
|
||||||
|
verbose_name = _('Corporation Stats')
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
|
from typing import ClassVar
|
||||||
|
|
||||||
from allianceauth.authentication.models import CharacterOwnership, UserProfile
|
from allianceauth.authentication.models import CharacterOwnership, UserProfile
|
||||||
from bravado.exception import HTTPForbidden
|
from bravado.exception import HTTPForbidden
|
||||||
@ -40,9 +41,9 @@ class CorpStats(models.Model):
|
|||||||
verbose_name = "corp stats"
|
verbose_name = "corp stats"
|
||||||
verbose_name_plural = "corp stats"
|
verbose_name_plural = "corp stats"
|
||||||
|
|
||||||
objects = CorpStatsManager()
|
objects: ClassVar[CorpStatsManager] = CorpStatsManager()
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self) -> str:
|
||||||
return f"{self.__class__.__name__} for {self.corp}"
|
return f"{self.__class__.__name__} for {self.corp}"
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
|
@ -3,6 +3,7 @@ Crontab App Config
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
class CrontabConfig(AppConfig):
|
class CrontabConfig(AppConfig):
|
||||||
@ -12,3 +13,4 @@ class CrontabConfig(AppConfig):
|
|||||||
|
|
||||||
name = "allianceauth.crontab"
|
name = "allianceauth.crontab"
|
||||||
label = "crontab"
|
label = "crontab"
|
||||||
|
verbose_name = _("Crontab")
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
class EveonlineConfig(AppConfig):
|
class EveonlineConfig(AppConfig):
|
||||||
name = 'allianceauth.eveonline'
|
name = 'allianceauth.eveonline'
|
||||||
label = 'eveonline'
|
label = 'eveonline'
|
||||||
|
verbose_name = _('EVE Online')
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
class EveAutogroupsConfig(AppConfig):
|
class EveAutogroupsConfig(AppConfig):
|
||||||
name = 'allianceauth.eveonline.autogroups'
|
name = 'allianceauth.eveonline.autogroups'
|
||||||
label = 'eve_autogroups'
|
label = 'eve_autogroups'
|
||||||
|
verbose_name = _('EVE Online Autogroups')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
import allianceauth.eveonline.autogroups.signals
|
import allianceauth.eveonline.autogroups.signals
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import logging
|
import logging
|
||||||
|
from typing import ClassVar
|
||||||
from django.db import models, transaction
|
from django.db import models, transaction
|
||||||
from django.contrib.auth.models import Group, User
|
from django.contrib.auth.models import Group, User
|
||||||
from django.core.exceptions import ObjectDoesNotExist
|
from django.core.exceptions import ObjectDoesNotExist
|
||||||
@ -78,7 +79,7 @@ class AutogroupsConfig(models.Model):
|
|||||||
max_length=10, default='', blank=True,
|
max_length=10, default='', blank=True,
|
||||||
help_text='Any spaces in the group name will be replaced with this.')
|
help_text='Any spaces in the group name will be replaced with this.')
|
||||||
|
|
||||||
objects = AutogroupsConfigManager()
|
objects: ClassVar[AutogroupsConfigManager] = AutogroupsConfigManager()
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
@ -14,10 +14,10 @@ class EveCharacterProviderManager:
|
|||||||
class EveCharacterManager(models.Manager):
|
class EveCharacterManager(models.Manager):
|
||||||
provider = EveCharacterProviderManager()
|
provider = EveCharacterProviderManager()
|
||||||
|
|
||||||
def create_character(self, character_id):
|
def create_character(self, character_id) -> models.Model:
|
||||||
return self.create_character_obj(self.provider.get_character(character_id))
|
return self.create_character_obj(self.provider.get_character(character_id))
|
||||||
|
|
||||||
def create_character_obj(self, character: providers.Character):
|
def create_character_obj(self, character: providers.Character) -> models.Model:
|
||||||
return self.create(
|
return self.create(
|
||||||
character_id=character.id,
|
character_id=character.id,
|
||||||
character_name=character.name,
|
character_name=character.name,
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import logging
|
import logging
|
||||||
from typing import Union
|
from typing import ClassVar, Union
|
||||||
|
|
||||||
from django.core.exceptions import ObjectDoesNotExist
|
from django.core.exceptions import ObjectDoesNotExist
|
||||||
from django.db import models
|
from django.db import models
|
||||||
@ -75,8 +75,8 @@ class EveAllianceInfo(models.Model):
|
|||||||
alliance_ticker = models.CharField(max_length=254)
|
alliance_ticker = models.CharField(max_length=254)
|
||||||
executor_corp_id = models.PositiveIntegerField()
|
executor_corp_id = models.PositiveIntegerField()
|
||||||
|
|
||||||
objects = EveAllianceManager()
|
objects: ClassVar[EveAllianceManager] = EveAllianceManager()
|
||||||
provider = EveAllianceProviderManager()
|
provider: ClassVar[EveAllianceProviderManager] = EveAllianceProviderManager()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
indexes = [models.Index(fields=['executor_corp_id',])]
|
indexes = [models.Index(fields=['executor_corp_id',])]
|
||||||
@ -147,7 +147,7 @@ class EveCorporationInfo(models.Model):
|
|||||||
EveAllianceInfo, blank=True, null=True, on_delete=models.SET_NULL
|
EveAllianceInfo, blank=True, null=True, on_delete=models.SET_NULL
|
||||||
)
|
)
|
||||||
|
|
||||||
objects = EveCorporationManager()
|
objects: ClassVar[EveCorporationManager] = EveCorporationManager()
|
||||||
provider = EveCorporationProviderManager()
|
provider = EveCorporationProviderManager()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
@ -214,7 +214,7 @@ class EveCharacter(models.Model):
|
|||||||
faction_id = models.PositiveIntegerField(blank=True, null=True, default=None)
|
faction_id = models.PositiveIntegerField(blank=True, null=True, default=None)
|
||||||
faction_name = models.CharField(max_length=254, blank=True, null=True, default='')
|
faction_name = models.CharField(max_length=254, blank=True, null=True, default='')
|
||||||
|
|
||||||
objects = EveCharacterManager()
|
objects: ClassVar[EveCharacterManager] = EveCharacterManager()
|
||||||
provider = EveCharacterProviderManager()
|
provider = EveCharacterProviderManager()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
class FatConfig(AppConfig):
|
class FatConfig(AppConfig):
|
||||||
name = 'allianceauth.fleetactivitytracking'
|
name = 'allianceauth.fleetactivitytracking'
|
||||||
label = 'fleetactivitytracking'
|
label = 'fleetactivitytracking'
|
||||||
|
verbose_name = _('Fleet Activity Tracking')
|
||||||
|
@ -3,6 +3,7 @@ Framework App Config
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
class FrameworkConfig(AppConfig):
|
class FrameworkConfig(AppConfig):
|
||||||
@ -12,3 +13,4 @@ class FrameworkConfig(AppConfig):
|
|||||||
|
|
||||||
name = "allianceauth.framework"
|
name = "allianceauth.framework"
|
||||||
label = "framework"
|
label = "framework"
|
||||||
|
verbose_name = _("Framework")
|
||||||
|
@ -5,6 +5,24 @@
|
|||||||
* to be used throughout Alliance Auth and its Community Apps
|
* to be used throughout Alliance Auth and its Community Apps
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* General
|
||||||
|
------------------------------------------------------------------------------------- */
|
||||||
|
@media all {
|
||||||
|
.navbar-toggler.collapsed {
|
||||||
|
transform: rotate(180deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
ul#nav-right:has(li) + ul#nav-right-character-control > li:first-child {
|
||||||
|
display: list-item !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media all and (max-width: 991px) {
|
||||||
|
ul#nav-left:has(li) + ul#nav-right + ul#nav-right-character-control > li:first-child {
|
||||||
|
display: list-item !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Bootstrap fixes
|
/* Bootstrap fixes
|
||||||
------------------------------------------------------------------------------------- */
|
------------------------------------------------------------------------------------- */
|
||||||
@media all {
|
@media all {
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
class GroupManagementConfig(AppConfig):
|
class GroupManagementConfig(AppConfig):
|
||||||
name = 'allianceauth.groupmanagement'
|
name = 'allianceauth.groupmanagement'
|
||||||
label = 'groupmanagement'
|
label = 'groupmanagement'
|
||||||
verbose_name = 'Group Management'
|
verbose_name = _('Group Management')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
from . import signals # noqa: F401
|
from . import signals # noqa: F401
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
class HRApplicationsConfig(AppConfig):
|
class HRApplicationsConfig(AppConfig):
|
||||||
name = 'allianceauth.hrapplications'
|
name = 'allianceauth.hrapplications'
|
||||||
label = 'hrapplications'
|
label = 'hrapplications'
|
||||||
|
verbose_name = _('HR Applications')
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
from typing import ClassVar
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from sortedm2m.fields import SortedManyToManyField
|
from sortedm2m.fields import SortedManyToManyField
|
||||||
@ -40,7 +41,7 @@ class Application(models.Model):
|
|||||||
reviewer_character = models.ForeignKey(EveCharacter, on_delete=models.SET_NULL, blank=True, null=True)
|
reviewer_character = models.ForeignKey(EveCharacter, on_delete=models.SET_NULL, blank=True, null=True)
|
||||||
created = models.DateTimeField(auto_now_add=True)
|
created = models.DateTimeField(auto_now_add=True)
|
||||||
|
|
||||||
objects = ApplicationManager()
|
objects: ClassVar[ApplicationManager] = ApplicationManager()
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.user) + " Application To " + str(self.form)
|
return str(self.user) + " Application To " + str(self.form)
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import logging
|
import logging
|
||||||
|
|
||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -12,6 +13,7 @@ logger = logging.getLogger(__name__)
|
|||||||
class MenuConfig(AppConfig):
|
class MenuConfig(AppConfig):
|
||||||
name = "allianceauth.menu"
|
name = "allianceauth.menu"
|
||||||
label = "menu"
|
label = "menu"
|
||||||
|
verbose_name = _("Menu")
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
from allianceauth.menu.core import smart_sync
|
from allianceauth.menu.core import smart_sync
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
from typing import ClassVar
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
@ -68,7 +69,7 @@ class MenuItem(models.Model):
|
|||||||
help_text=_("External URL this menu items will link to"),
|
help_text=_("External URL this menu items will link to"),
|
||||||
)
|
)
|
||||||
|
|
||||||
objects = MenuItemManager()
|
objects: ClassVar[MenuItemManager] = MenuItemManager()
|
||||||
|
|
||||||
def __str__(self) -> str:
|
def __str__(self) -> str:
|
||||||
return self.text
|
return self.text
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
class NotificationsConfig(AppConfig):
|
class NotificationsConfig(AppConfig):
|
||||||
name = 'allianceauth.notifications'
|
name = 'allianceauth.notifications'
|
||||||
label = 'notifications'
|
label = 'notifications'
|
||||||
|
verbose_name = _('Notifications')
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import logging
|
import logging
|
||||||
|
from typing import ClassVar
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
@ -56,7 +57,7 @@ class Notification(models.Model):
|
|||||||
timestamp = models.DateTimeField(auto_now_add=True, db_index=True)
|
timestamp = models.DateTimeField(auto_now_add=True, db_index=True)
|
||||||
viewed = models.BooleanField(default=False, db_index=True)
|
viewed = models.BooleanField(default=False, db_index=True)
|
||||||
|
|
||||||
objects = NotificationManager()
|
objects: ClassVar[NotificationManager] = NotificationManager()
|
||||||
|
|
||||||
def __str__(self) -> str:
|
def __str__(self) -> str:
|
||||||
return f"{self.user}: {self.title}"
|
return f"{self.user}: {self.title}"
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
class OptimerConfig(AppConfig):
|
class OptimerConfig(AppConfig):
|
||||||
name = 'allianceauth.optimer'
|
name = 'allianceauth.optimer'
|
||||||
label = 'optimer'
|
label = 'optimer'
|
||||||
|
verbose_name = _('Fleet Operations')
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
class PermissionsToolConfig(AppConfig):
|
class PermissionsToolConfig(AppConfig):
|
||||||
name = 'allianceauth.permissions_tool'
|
name = 'allianceauth.permissions_tool'
|
||||||
label = 'permissions_tool'
|
label = 'permissions_tool'
|
||||||
|
verbose_name = _('Permissions Audit')
|
||||||
|
@ -61,6 +61,7 @@ CELERYBEAT_SCHEDULE = {
|
|||||||
'esi_cleanup_token': {
|
'esi_cleanup_token': {
|
||||||
'task': 'esi.tasks.cleanup_token',
|
'task': 'esi.tasks.cleanup_token',
|
||||||
'schedule': crontab(minute='0', hour='0'),
|
'schedule': crontab(minute='0', hour='0'),
|
||||||
|
'apply_offset': True,
|
||||||
},
|
},
|
||||||
'run_model_update': {
|
'run_model_update': {
|
||||||
'task': 'allianceauth.eveonline.tasks.run_model_update',
|
'task': 'allianceauth.eveonline.tasks.run_model_update',
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
class ServicesConfig(AppConfig):
|
class ServicesConfig(AppConfig):
|
||||||
name = 'allianceauth.services'
|
name = 'allianceauth.services'
|
||||||
label = 'services'
|
label = 'services'
|
||||||
|
verbose_name = _('Services')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
from . import signals
|
from . import signals
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
class DiscordServiceConfig(AppConfig):
|
class DiscordServiceConfig(AppConfig):
|
||||||
name = 'allianceauth.services.modules.discord'
|
name = 'allianceauth.services.modules.discord'
|
||||||
label = 'discord'
|
label = 'discord'
|
||||||
|
verbose_name = _('Discord Service')
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import logging
|
import logging
|
||||||
from typing import Optional
|
from typing import ClassVar, Optional
|
||||||
|
|
||||||
from requests.exceptions import HTTPError
|
from requests.exceptions import HTTPError
|
||||||
|
|
||||||
@ -59,7 +59,7 @@ class DiscordUser(models.Model):
|
|||||||
help_text='Date & time this service account was activated'
|
help_text='Date & time this service account was activated'
|
||||||
)
|
)
|
||||||
|
|
||||||
objects = DiscordUserManager()
|
objects: ClassVar[DiscordUserManager] = DiscordUserManager()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
permissions = (
|
permissions = (
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
class DiscourseServiceConfig(AppConfig):
|
class DiscourseServiceConfig(AppConfig):
|
||||||
name = 'allianceauth.services.modules.discourse'
|
name = 'allianceauth.services.modules.discourse'
|
||||||
label = 'discourse'
|
label = 'discourse'
|
||||||
|
verbose_name = _('Discourse Service')
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
class ExampleServiceConfig(AppConfig):
|
class ExampleServiceConfig(AppConfig):
|
||||||
name = 'allianceauth.services.modules.example'
|
name = 'allianceauth.services.modules.example'
|
||||||
label = 'example_service'
|
label = 'example_service'
|
||||||
|
verbose_name = _('Example Service')
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
class Ips4ServiceConfig(AppConfig):
|
class Ips4ServiceConfig(AppConfig):
|
||||||
name = 'allianceauth.services.modules.ips4'
|
name = 'allianceauth.services.modules.ips4'
|
||||||
label = 'ips4'
|
label = 'ips4'
|
||||||
|
verbose_name = _('IPS4 Service')
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
class MumbleServiceConfig(AppConfig):
|
class MumbleServiceConfig(AppConfig):
|
||||||
name = 'allianceauth.services.modules.mumble'
|
name = 'allianceauth.services.modules.mumble'
|
||||||
label = 'mumble'
|
label = 'mumble'
|
||||||
|
verbose_name = _('Mumble Service')
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import random
|
import random
|
||||||
import string
|
import string
|
||||||
|
from typing import ClassVar
|
||||||
from passlib.hash import bcrypt_sha256
|
from passlib.hash import bcrypt_sha256
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
@ -116,7 +117,7 @@ class MumbleUser(AbstractServiceModel):
|
|||||||
help_text="Timestamp of the users Last Disconnection to Mumble"
|
help_text="Timestamp of the users Last Disconnection to Mumble"
|
||||||
)
|
)
|
||||||
|
|
||||||
objects = MumbleManager()
|
objects: ClassVar[MumbleManager] = MumbleManager()
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.username
|
return self.username
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
class OpenfireServiceConfig(AppConfig):
|
class OpenfireServiceConfig(AppConfig):
|
||||||
name = 'allianceauth.services.modules.openfire'
|
name = 'allianceauth.services.modules.openfire'
|
||||||
label = 'openfire'
|
label = 'openfire'
|
||||||
|
verbose_name = _('Openfire Service')
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
class Phpbb3ServiceConfig(AppConfig):
|
class Phpbb3ServiceConfig(AppConfig):
|
||||||
name = 'allianceauth.services.modules.phpbb3'
|
name = 'allianceauth.services.modules.phpbb3'
|
||||||
label = 'phpbb3'
|
label = 'phpbb3'
|
||||||
|
verbose_name = _('phpBB3 Service')
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
class SmfServiceConfig(AppConfig):
|
class SmfServiceConfig(AppConfig):
|
||||||
name = 'allianceauth.services.modules.smf'
|
name = 'allianceauth.services.modules.smf'
|
||||||
label = 'smf'
|
label = 'smf'
|
||||||
|
verbose_name = _('SMF Service')
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
class Teamspeak3ServiceConfig(AppConfig):
|
class Teamspeak3ServiceConfig(AppConfig):
|
||||||
name = 'allianceauth.services.modules.teamspeak3'
|
name = 'allianceauth.services.modules.teamspeak3'
|
||||||
label = 'teamspeak3'
|
label = 'teamspeak3'
|
||||||
|
verbose_name = _('TeamSpeak 3 Service')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
from . import signals
|
from . import signals
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
class XenforoServiceConfig(AppConfig):
|
class XenforoServiceConfig(AppConfig):
|
||||||
name = 'allianceauth.services.modules.xenforo'
|
name = 'allianceauth.services.modules.xenforo'
|
||||||
label = 'xenforo'
|
label = 'xenforo'
|
||||||
|
verbose_name = _('Xenforo Service')
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
|
|
||||||
<div class="card text-center m-2" style="min-width: 18rem; min-height: 18rem;">
|
<div class="card text-center mx-2 mb-3" style="min-width: 18rem; min-height: 18rem;">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<h5 class="card-title">{% block title %}{% endblock title %}</h5>
|
<h5 class="card-title">{% block title %}{% endblock title %}</h5>
|
||||||
|
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
class SRPConfig(AppConfig):
|
class SRPConfig(AppConfig):
|
||||||
name = 'allianceauth.srp'
|
name = 'allianceauth.srp'
|
||||||
label = 'srp'
|
label = 'srp'
|
||||||
|
verbose_name = _('Ship Replacement')
|
||||||
|
@ -12,11 +12,7 @@
|
|||||||
<ul class="list-group">
|
<ul class="list-group">
|
||||||
{% for notif in notifications %}
|
{% for notif in notifications %}
|
||||||
<li class="list-group-item">
|
<li class="list-group-item">
|
||||||
{% if notif.state == 'opened' %}
|
<span class="badge bg-success me-2">{% translate "Open" %}</span>
|
||||||
<span class="badge bg-success me-2">{% translate "Open" %}</span>
|
|
||||||
{% else %}
|
|
||||||
<span class="badge bg-danger me-2">{% translate "Closed" %}</span>
|
|
||||||
{% endif %}
|
|
||||||
<a href="{{ notif.web_url }}" target="_blank">#{{ notif.iid }} {{ notif.title }}</a>
|
<a href="{{ notif.web_url }}" target="_blank">#{{ notif.iid }} {{ notif.title }}</a>
|
||||||
</li>
|
</li>
|
||||||
{% empty %}
|
{% empty %}
|
||||||
|
@ -24,13 +24,11 @@
|
|||||||
{% include 'bundles/auth-framework-css.html' %}
|
{% include 'bundles/auth-framework-css.html' %}
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.navbar-toggler.collapsed{
|
@media all {
|
||||||
transform: rotate(180deg);
|
.nav-padding {
|
||||||
}
|
margin-top: {% header_padding_size %} !important;
|
||||||
|
max-height: calc(100vh - {% header_padding_size %}) !important;
|
||||||
.nav-padding {
|
}
|
||||||
margin-top: {% header_padding_size %} !important;
|
|
||||||
max-height: calc(100vh - {% header_padding_size %}) !important;
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
@ -63,6 +61,11 @@
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<ul id="nav-right-character-control" class="nav navbar-nav">
|
<ul id="nav-right-character-control" class="nav navbar-nav">
|
||||||
|
<li class="nav-item ms-lg-2 py-2 py-lg-1 col-12 col-lg-auto d-none">
|
||||||
|
<div class="vr d-none d-lg-flex h-100 mx-2 text-white-50"></div>
|
||||||
|
<hr class="d-lg-none my-2 text-body text-white-50">
|
||||||
|
</li>
|
||||||
|
|
||||||
{% block header_nav_user_character_control %} <!-- Default to add char and swap main -->
|
{% block header_nav_user_character_control %} <!-- Default to add char and swap main -->
|
||||||
{% include 'allianceauth/top-menu-rh-default.html' %}
|
{% include 'allianceauth/top-menu-rh-default.html' %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -67,6 +67,26 @@ def get_datatables_language_static(language: str) -> str:
|
|||||||
|
|
||||||
return static_url
|
return static_url
|
||||||
|
|
||||||
|
@register.simple_tag
|
||||||
|
def get_relative_datatables_language_path(language: str) -> str:
|
||||||
|
"""
|
||||||
|
Get the correct language code URL for DataTables (relative path to the static folder)
|
||||||
|
|
||||||
|
:param language: Django's language code
|
||||||
|
:type language: str
|
||||||
|
:return: Mapped language code
|
||||||
|
:rtype: str
|
||||||
|
"""
|
||||||
|
|
||||||
|
mapped_language = get_datatable_language_code(language)
|
||||||
|
static_url = (
|
||||||
|
f"allianceauth/libs/DataTables/Plugins/2.2.1/i18n/{mapped_language}.json"
|
||||||
|
if mapped_language
|
||||||
|
else ""
|
||||||
|
)
|
||||||
|
|
||||||
|
return static_url
|
||||||
|
|
||||||
|
|
||||||
@register.simple_tag
|
@register.simple_tag
|
||||||
def get_momentjs_language_static(language: str) -> str:
|
def get_momentjs_language_static(language: str) -> str:
|
||||||
@ -88,3 +108,24 @@ def get_momentjs_language_static(language: str) -> str:
|
|||||||
)
|
)
|
||||||
|
|
||||||
return static_url
|
return static_url
|
||||||
|
|
||||||
|
@register.simple_tag
|
||||||
|
def get_relative_momentjs_language_path(language: str) -> str:
|
||||||
|
"""
|
||||||
|
Get the correct language code URL for Moment.JS (relative path to the static folder)
|
||||||
|
|
||||||
|
:param language: Django's language code
|
||||||
|
:type language: str
|
||||||
|
:return: Mapped language code path
|
||||||
|
:rtype: str
|
||||||
|
"""
|
||||||
|
|
||||||
|
mapped_language = get_momentjs_language_code(language)
|
||||||
|
|
||||||
|
static_url = (
|
||||||
|
f"allianceauth/libs/moment.js/2.29.4/locale/{mapped_language}.js"
|
||||||
|
if mapped_language
|
||||||
|
else ""
|
||||||
|
)
|
||||||
|
|
||||||
|
return static_url
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
class TimerBoardConfig(AppConfig):
|
class TimerBoardConfig(AppConfig):
|
||||||
name = 'allianceauth.timerboard'
|
name = 'allianceauth.timerboard'
|
||||||
label = 'timerboard'
|
label = 'timerboard'
|
||||||
|
verbose_name = _('Structure Timers')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user