Adding timer type to the timer board

See issue #1287
This commit is contained in:
Peter Pfeufer 2021-10-20 15:30:45 +02:00
parent 2da78f7793
commit b31521c758
No known key found for this signature in database
GPG Key ID: 6051D2C6AD4EBC27
4 changed files with 71 additions and 5 deletions

View File

@ -5,7 +5,7 @@ from django.utils import timezone
from django.core.validators import MaxValueValidator, MinValueValidator from django.core.validators import MaxValueValidator, MinValueValidator
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from .models import Timer from .models import Timer, TimerType
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -13,7 +13,7 @@ logger = logging.getLogger(__name__)
class TimerForm(forms.ModelForm): class TimerForm(forms.ModelForm):
class Meta: class Meta:
model = Timer model = Timer
fields = ('details', 'system', 'planet_moon', 'structure', 'objective', 'important', 'corp_timer') fields = ('details', 'system', 'planet_moon', 'structure', 'timer_type', 'objective', 'important', 'corp_timer')
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user', None) self.user = kwargs.pop('user', None)
@ -59,6 +59,7 @@ class TimerForm(forms.ModelForm):
system = forms.CharField(max_length=254, required=True, label=_("System")) system = forms.CharField(max_length=254, required=True, label=_("System"))
planet_moon = forms.CharField(max_length=254, label=_("Planet/Moon"), required=False, initial="") planet_moon = forms.CharField(max_length=254, label=_("Planet/Moon"), required=False, initial="")
structure = forms.ChoiceField(choices=structure_choices, required=True, label=_("Structure Type")) structure = forms.ChoiceField(choices=structure_choices, required=True, label=_("Structure Type"))
timer_type = forms.ChoiceField(choices=TimerType.choices, label=_("Timer Type"))
objective = forms.ChoiceField(choices=objective_choices, required=True, label=_("Objective")) objective = forms.ChoiceField(choices=objective_choices, required=True, label=_("Objective"))
days_left = forms.IntegerField(required=True, label=_("Days Remaining"), validators=[MinValueValidator(0)]) days_left = forms.IntegerField(required=True, label=_("Days Remaining"), validators=[MinValueValidator(0)])
hours_left = forms.IntegerField(required=True, label=_("Hours Remaining"), hours_left = forms.IntegerField(required=True, label=_("Hours Remaining"),

View File

@ -0,0 +1,30 @@
# Generated by Django 3.2.8 on 2021-10-20 13:26
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("timerboard", "0003_on_delete"),
]
operations = [
migrations.AddField(
model_name="timer",
name="timer_type",
field=models.CharField(
choices=[
("UNSPECIFIED", "Not Specified"),
("SHIELD", "Shield"),
("ARMOR", "Armor"),
("HULL", "Hull"),
("FINAL", "Final"),
("ANCHORING", "Anchoring"),
("UNANCHORING", "Unanchoring"),
],
default="UNSPECIFIED",
max_length=254,
),
),
]

View File

@ -1,10 +1,25 @@
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 django.utils.translation import gettext as _
from allianceauth.eveonline.models import EveCharacter from allianceauth.eveonline.models import EveCharacter
from allianceauth.eveonline.models import EveCorporationInfo from allianceauth.eveonline.models import EveCorporationInfo
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")
class Timer(models.Model): class Timer(models.Model):
class Meta: class Meta:
ordering = ['eve_time'] ordering = ['eve_time']
@ -13,6 +28,11 @@ class Timer(models.Model):
system = models.CharField(max_length=254, default="") system = models.CharField(max_length=254, default="")
planet_moon = models.CharField(max_length=254, default="") planet_moon = models.CharField(max_length=254, default="")
structure = models.CharField(max_length=254, default="") structure = models.CharField(max_length=254, default="")
timer_type = models.CharField(
max_length=254,
choices=TimerType.choices,
default=TimerType.UNSPECIFIED,
)
objective = models.CharField(max_length=254, default="") objective = models.CharField(max_length=254, default="")
eve_time = models.DateTimeField() eve_time = models.DateTimeField()
important = models.BooleanField(default=False) important = models.BooleanField(default=False)

View File

@ -46,7 +46,12 @@
{% else %} {% else %}
<tr class="info"> <tr class="info">
{% endif %} {% endif %}
<td style="width:150px" class="text-center">{{ timer.details }}</td> <td style="width:150px" class="text-center">
{{ timer.details }}
{% if timer.timer_type != 'UNSPECIFIED' %}
({{ timer.get_timer_type_display }})
{% endif %}
</td>
<td class="text-center"> <td class="text-center">
{% if timer.objective == "Hostile" %} {% if timer.objective == "Hostile" %}
<div class="label label-danger"> <div class="label label-danger">
@ -208,7 +213,12 @@
{% else %} {% else %}
<tr class="info"> <tr class="info">
{% endif %} {% endif %}
<td style="width:150px" class="text-center">{{ timer.details }}</td> <td style="width:150px" class="text-center">
{{ timer.details }}
{% if timer.timer_type != 'UNSPECIFIED' %}
({{ timer.get_timer_type_display }})
{% endif %}
</td>
<td class="text-center"> <td class="text-center">
{% if timer.objective == "Hostile" %} {% if timer.objective == "Hostile" %}
<div class="label label-danger"> <div class="label label-danger">
@ -376,7 +386,12 @@
{% else %} {% else %}
<tr class="info"> <tr class="info">
{% endif %} {% endif %}
<td style="width:150px" class="text-center">{{ timer.details }}</td> <td style="width:150px" class="text-center">
{{ timer.details }}
{% if timer.timer_type != 'UNSPECIFIED' %}
({{ timer.get_timer_type_display }})
{% endif %}
</td>
<td class="text-center"> <td class="text-center">
{% if timer.objective == "Hostile" %} {% if timer.objective == "Hostile" %}
<div class="label label-danger"> <div class="label label-danger">