mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-08 20:10:17 +02:00
85 lines
3.3 KiB
Python
85 lines
3.3 KiB
Python
from django.contrib.auth.models import User
|
|
from django.db import models
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
from allianceauth.eveonline.models import EveCharacter, EveCorporationInfo
|
|
|
|
|
|
class Timer(models.Model):
|
|
class Objective(models.TextChoices):
|
|
"""
|
|
Choices for Objective Type
|
|
"""
|
|
|
|
FRIENDLY = "Friendly", _("Friendly")
|
|
HOSTILE = "Hostile", _("Hostile")
|
|
NEUTRAL = "Neutral", _("Neutral")
|
|
|
|
class Structure(models.TextChoices):
|
|
"""
|
|
Choices for Structure Type
|
|
"""
|
|
|
|
POCO = "POCO", _("POCO")
|
|
ORBITALSKYHOOK = "Orbital Skyhook", _("Orbital Skyhook")
|
|
IHUB = "I-HUB", _("Sovereignty Hub")
|
|
TCU = "TCU", _("TCU") # Pending Remval
|
|
POSS = "POS[S]", _("POS [S]")
|
|
POSM = "POS[M]", _("POS [M]")
|
|
POSL = "POS[L]", _("POS [L]")
|
|
ASTRAHUS = "Astrahus", _("Astrahus")
|
|
FORTIZAR = "Fortizar", _("Fortizar")
|
|
KEEPSTAR = "Keepstar", _("Keepstar")
|
|
RAITARU = "Raitaru", _("Raitaru")
|
|
AZBEL = "Azbel", _("Azbel")
|
|
SOTIYO = "Sotiyo", _("Sotiyo")
|
|
ATHANOR = "Athanor", _("Athanor")
|
|
TATARA = "Tatara", _("Tatara")
|
|
PHAROLUX = "Pharolux Cyno Beacon", _("Cyno Beacon")
|
|
TENEBREX = "Tenebrex Cyno Jammer", _("Cyno Jammer")
|
|
ANSIBLEX = "Ansiblex Jump Gate", _("Ansiblex Jump Gate")
|
|
MERCDEN = "Mercenary Den", _("Mercenary Den")
|
|
MOONPOP = "Moon Mining Cycle", _("Moon Mining Cycle")
|
|
METENOX = "Metenox Moon Drill", _("Metenox Moon Drill")
|
|
OTHER = "Other", _("Other")
|
|
|
|
class TimerType(models.TextChoices):
|
|
"""
|
|
Choices for Timer Type
|
|
"""
|
|
|
|
UNSPECIFIED = "UNSPECIFIED", _("Not Specified")
|
|
SHIELD = "SHIELD", _("Shield")
|
|
ARMOR = "ARMOR", _("Armor")
|
|
HULL = "HULL", _("Hull")
|
|
FINAL = "FINAL", _("Final")
|
|
ANCHORING = "ANCHORING", _("Anchoring")
|
|
UNANCHORING = "UNANCHORING", _("Unanchoring")
|
|
ABANDONED = "ABANDONED", _("Abandoned")
|
|
THEFT = "THEFT", _("Theft")
|
|
|
|
details = models.CharField(max_length=254, default="")
|
|
system = models.CharField(max_length=254, default="")
|
|
planet_moon = models.CharField(max_length=254, blank=True, default="")
|
|
structure = models.CharField(max_length=254,choices=Structure.choices,default=Structure.OTHER)
|
|
timer_type = models.CharField(max_length=254,choices=TimerType.choices,default=TimerType.UNSPECIFIED)
|
|
objective = models.CharField(max_length=254, choices=Objective.choices, default=Objective.NEUTRAL)
|
|
eve_time = models.DateTimeField()
|
|
important = models.BooleanField(default=False)
|
|
eve_character = models.ForeignKey(EveCharacter, null=True, on_delete=models.SET_NULL)
|
|
eve_corp = models.ForeignKey(EveCorporationInfo, on_delete=models.CASCADE)
|
|
corp_timer = models.BooleanField(default=False)
|
|
user = models.ForeignKey(User, null=True, on_delete=models.SET_NULL)
|
|
|
|
class Meta:
|
|
ordering = ['eve_time']
|
|
# Intentionally Commented out
|
|
# AAv0 has these in the Auth_ Content Type
|
|
# permissions = (
|
|
# ('timer_view', 'Can view Timerboard Timers'),
|
|
# ('timer_management', 'Can Manage Timerboard timers'))
|
|
# default_permissions = ()
|
|
|
|
def __str__(self) -> str:
|
|
return f"{self.system} {self.details}"
|