From 0fcb517b0bbfd4e00fd875176c64dd7b828dae1e Mon Sep 17 00:00:00 2001 From: Ariel Rin Date: Mon, 9 Sep 2024 03:57:21 +0000 Subject: [PATCH] Timerboard Improvements --- allianceauth/locale/en/LC_MESSAGES/django.po | 369 ++++++++++-------- allianceauth/timerboard/form.py | 43 +- ...bjective_alter_timer_structure_and_more.py | 28 ++ allianceauth/timerboard/models.py | 80 ++-- .../timerboard/dashboard.timers.html | 2 +- .../templates/timerboard/timertable.html | 193 +++------ allianceauth/timerboard/tests.py | 8 +- 7 files changed, 360 insertions(+), 363 deletions(-) create mode 100644 allianceauth/timerboard/migrations/0006_alter_timer_objective_alter_timer_structure_and_more.py diff --git a/allianceauth/locale/en/LC_MESSAGES/django.po b/allianceauth/locale/en/LC_MESSAGES/django.po index 3af9554b..10044dba 100644 --- a/allianceauth/locale/en/LC_MESSAGES/django.po +++ b/allianceauth/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-12 19:15+1000\n" +"POT-Creation-Date: 2024-09-09 13:05+1000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -88,27 +88,31 @@ msgstr "" msgid "Ukrainian" msgstr "" -#: allianceauth/authentication/models.py:96 +#: allianceauth/authentication/models.py:81 +msgid "Polish" +msgstr "" + +#: allianceauth/authentication/models.py:97 #: allianceauth/menu/templates/menu/menu-user.html:42 msgid "Language" msgstr "" -#: allianceauth/authentication/models.py:101 +#: allianceauth/authentication/models.py:102 #: allianceauth/templates/allianceauth/night-toggle.html:6 msgid "Night Mode" msgstr "" -#: allianceauth/authentication/models.py:105 +#: allianceauth/authentication/models.py:106 #: allianceauth/menu/templates/menu/menu-user.html:46 msgid "Theme" msgstr "" -#: allianceauth/authentication/models.py:122 +#: allianceauth/authentication/models.py:123 #, python-format msgid "State changed to: %s" msgstr "" -#: allianceauth/authentication/models.py:123 +#: allianceauth/authentication/models.py:124 #, python-format msgid "Your user's state is now: %(state)s" msgstr "" @@ -120,27 +124,27 @@ msgstr "" msgid "Dashboard" msgstr "" -#: allianceauth/authentication/templates/authentication/dashboard_characters.html:7 +#: allianceauth/authentication/templates/authentication/dashboard_characters.html:5 #: allianceauth/fleetactivitytracking/templates/fleetactivitytracking/fatlinkstatisticscorpview.html:33 #: allianceauth/hrapplications/templates/hrapplications/view.html:54 msgid "Characters" msgstr "" -#: allianceauth/authentication/templates/authentication/dashboard_characters.html:13 -#: allianceauth/authentication/templates/authentication/dashboard_characters.html:14 +#: allianceauth/authentication/templates/authentication/dashboard_characters.html:11 +#: allianceauth/authentication/templates/authentication/dashboard_characters.html:12 #: allianceauth/templates/allianceauth/top-menu-rh-default.html:4 #: allianceauth/templates/allianceauth/top-menu-rh-default.html:6 msgid "Add Character" msgstr "" -#: allianceauth/authentication/templates/authentication/dashboard_characters.html:16 -#: allianceauth/authentication/templates/authentication/dashboard_characters.html:17 +#: allianceauth/authentication/templates/authentication/dashboard_characters.html:14 +#: allianceauth/authentication/templates/authentication/dashboard_characters.html:15 #: allianceauth/templates/allianceauth/top-menu-rh-default.html:10 #: allianceauth/templates/allianceauth/top-menu-rh-default.html:12 msgid "Change Main" msgstr "" -#: allianceauth/authentication/templates/authentication/dashboard_characters.html:24 +#: allianceauth/authentication/templates/authentication/dashboard_characters.html:22 #: allianceauth/fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html:89 #: allianceauth/groupmanagement/templates/groupmanagement/groupmembership.html:23 #: allianceauth/groupmanagement/templates/groupmanagement/groups.html:31 @@ -149,12 +153,12 @@ msgstr "" msgid "Name" msgstr "" -#: allianceauth/authentication/templates/authentication/dashboard_characters.html:25 +#: allianceauth/authentication/templates/authentication/dashboard_characters.html:23 #: allianceauth/fleetactivitytracking/templates/fleetactivitytracking/fatlinkstatisticsview.html:33 msgid "Corp" msgstr "" -#: allianceauth/authentication/templates/authentication/dashboard_characters.html:26 +#: allianceauth/authentication/templates/authentication/dashboard_characters.html:24 #: allianceauth/corputils/templates/corputils/corpstats.html:125 #: allianceauth/hrapplications/templates/hrapplications/view.html:63 msgid "Alliance" @@ -164,7 +168,7 @@ msgstr "" msgid "Membership" msgstr "" -#: allianceauth/authentication/templates/authentication/dashboard_groups.html:8 +#: allianceauth/authentication/templates/authentication/dashboard_groups.html:10 msgid "State:" msgstr "" @@ -395,6 +399,19 @@ msgstr "" msgid "Failed to gather corporation statistics with selected token." msgstr "" +#: allianceauth/custom_css/apps.py:13 allianceauth/custom_css/models.py:36 +#: allianceauth/custom_css/models.py:37 allianceauth/custom_css/models.py:47 +msgid "Custom CSS" +msgstr "" + +#: allianceauth/custom_css/models.py:25 +msgid "Your custom CSS" +msgstr "" + +#: allianceauth/custom_css/models.py:26 +msgid "This CSS will be added to the site after the default CSS." +msgstr "" + #: allianceauth/fleetactivitytracking/auth_hooks.py:10 #: allianceauth/fleetactivitytracking/templates/fleetactivitytracking/characternotexisting.html:10 #: allianceauth/fleetactivitytracking/templates/fleetactivitytracking/fatlinkcreate.html:11 @@ -487,8 +504,8 @@ msgstr "" #: allianceauth/fleetactivitytracking/templates/fleetactivitytracking/fatlinkmodify.html:37 #: allianceauth/fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html:42 -#: allianceauth/optimer/form.py:13 allianceauth/timerboard/form.py:59 -#: allianceauth/timerboard/templates/timerboard/dashboard.timers.html:16 +#: allianceauth/optimer/form.py:13 allianceauth/timerboard/form.py:37 +#: allianceauth/timerboard/templates/timerboard/dashboard.timers.html:17 #: allianceauth/timerboard/templates/timerboard/timertable.html:9 msgid "System" msgstr "" @@ -807,7 +824,7 @@ msgstr "" #: allianceauth/groupmanagement/templates/groupmanagement/audit.html:31 #: allianceauth/optimer/templates/optimer/dashboard.ops.html:15 -#: allianceauth/timerboard/templates/timerboard/dashboard.timers.html:15 +#: allianceauth/timerboard/templates/timerboard/dashboard.timers.html:16 msgid "Type" msgstr "" @@ -899,7 +916,7 @@ msgid "Hidden" msgstr "" #: allianceauth/groupmanagement/templates/groupmanagement/groupmembership.html:45 -#: allianceauth/templates/allianceauth/admin-status/overview.html:19 +#: allianceauth/templates/allianceauth/admin-status/overview.html:16 msgid "Open" msgstr "" @@ -1375,16 +1392,16 @@ msgstr "" msgid "Super User" msgstr "" -#: allianceauth/menu/templates/menu/menu-user.html:68 +#: allianceauth/menu/templates/menu/menu-user.html:70 #: allianceauth/templates/allianceauth/top-menu-admin.html:9 msgid "Admin" msgstr "" -#: allianceauth/menu/templates/menu/menu-user.html:80 +#: allianceauth/menu/templates/menu/menu-user.html:82 msgid "Sign Out" msgstr "" -#: allianceauth/menu/templates/menu/menu-user.html:84 +#: allianceauth/menu/templates/menu/menu-user.html:86 #: allianceauth/templates/allianceauth/top-menu-rh-default.html:17 #: allianceauth/templates/allianceauth/top-menu-rh-default.html:18 msgid "Sign In" @@ -1534,7 +1551,7 @@ msgid "Form Up System" msgstr "" #: allianceauth/optimer/templates/optimer/dashboard.ops.html:17 -#: allianceauth/timerboard/templates/timerboard/dashboard.timers.html:17 +#: allianceauth/timerboard/templates/timerboard/dashboard.timers.html:18 msgid "EVE Time" msgstr "" @@ -1729,17 +1746,17 @@ msgid "" msgstr "" #: allianceauth/services/modules/discord/templates/services/discord/discord_service_ctrl.html:26 -#: allianceauth/services/modules/mumble/templates/services/mumble/mumble_service_ctrl.html:20 +#: allianceauth/services/modules/mumble/templates/services/mumble/mumble_service_ctrl.html:22 msgid "Activate" msgstr "" #: allianceauth/services/modules/discord/templates/services/discord/discord_service_ctrl.html:32 -#: allianceauth/services/modules/mumble/templates/services/mumble/mumble_service_ctrl.html:32 +#: allianceauth/services/modules/mumble/templates/services/mumble/mumble_service_ctrl.html:34 msgid "Reset Password" msgstr "" #: allianceauth/services/modules/discord/templates/services/discord/discord_service_ctrl.html:38 -#: allianceauth/services/modules/mumble/templates/services/mumble/mumble_service_ctrl.html:38 +#: allianceauth/services/modules/mumble/templates/services/mumble/mumble_service_ctrl.html:40 msgid "Deactivate" msgstr "" @@ -1819,12 +1836,12 @@ msgstr "" msgid "Deactivated IPSuite4 account." msgstr "" -#: allianceauth/services/modules/mumble/templates/services/mumble/mumble_service_ctrl.html:26 +#: allianceauth/services/modules/mumble/templates/services/mumble/mumble_service_ctrl.html:28 #: allianceauth/services/templates/services/service_password.html:26 msgid "Set Password" msgstr "" -#: allianceauth/services/modules/mumble/templates/services/mumble/mumble_service_ctrl.html:44 +#: allianceauth/services/modules/mumble/templates/services/mumble/mumble_service_ctrl.html:46 msgid "Connect" msgstr "" @@ -2386,56 +2403,56 @@ msgstr "" msgid "Your Server received an ESI error response code of " msgstr "" -#: allianceauth/templates/allianceauth/admin-status/overview.html:11 +#: allianceauth/templates/allianceauth/admin-status/overview.html:8 msgid "Alliance Auth Notifications" msgstr "" -#: allianceauth/templates/allianceauth/admin-status/overview.html:21 +#: allianceauth/templates/allianceauth/admin-status/overview.html:18 msgid "Closed" msgstr "" -#: allianceauth/templates/allianceauth/admin-status/overview.html:27 +#: allianceauth/templates/allianceauth/admin-status/overview.html:24 msgid "No notifications at this time" msgstr "" -#: allianceauth/templates/allianceauth/admin-status/overview.html:36 +#: allianceauth/templates/allianceauth/admin-status/overview.html:33 msgid "Powered by GitLab" msgstr "" -#: allianceauth/templates/allianceauth/admin-status/overview.html:42 +#: allianceauth/templates/allianceauth/admin-status/overview.html:39 msgid "Support Discord" msgstr "" -#: allianceauth/templates/allianceauth/admin-status/overview.html:59 -#: allianceauth/templates/allianceauth/admin-status/overview.html:63 +#: allianceauth/templates/allianceauth/admin-status/overview.html:53 +#: allianceauth/templates/allianceauth/admin-status/overview.html:57 msgid "Software Version" msgstr "" -#: allianceauth/templates/allianceauth/admin-status/overview.html:66 +#: allianceauth/templates/allianceauth/admin-status/overview.html:60 msgid "Current" msgstr "" -#: allianceauth/templates/allianceauth/admin-status/overview.html:73 +#: allianceauth/templates/allianceauth/admin-status/overview.html:67 msgid "Latest Stable" msgstr "" -#: allianceauth/templates/allianceauth/admin-status/overview.html:78 +#: allianceauth/templates/allianceauth/admin-status/overview.html:72 msgid "Update available" msgstr "" -#: allianceauth/templates/allianceauth/admin-status/overview.html:86 +#: allianceauth/templates/allianceauth/admin-status/overview.html:80 msgid "Latest Pre-Release" msgstr "" -#: allianceauth/templates/allianceauth/admin-status/overview.html:91 +#: allianceauth/templates/allianceauth/admin-status/overview.html:85 msgid "Pre-Release available" msgstr "" -#: allianceauth/templates/allianceauth/admin-status/overview.html:102 +#: allianceauth/templates/allianceauth/admin-status/overview.html:95 msgid "Task Queue" msgstr "" -#: allianceauth/templates/allianceauth/admin-status/overview.html:107 +#: allianceauth/templates/allianceauth/admin-status/overview.html:100 #, python-format msgid "" "\n" @@ -2444,11 +2461,11 @@ msgid "" " " msgstr "" -#: allianceauth/templates/allianceauth/admin-status/overview.html:123 +#: allianceauth/templates/allianceauth/admin-status/overview.html:116 msgid "running" msgstr "" -#: allianceauth/templates/allianceauth/admin-status/overview.html:124 +#: allianceauth/templates/allianceauth/admin-status/overview.html:117 msgid "queued" msgstr "" @@ -2477,105 +2494,203 @@ msgstr "" msgid "Select Theme" msgstr "" -#: allianceauth/timerboard/form.py:53 -#: allianceauth/timerboard/templates/timerboard/timertable.html:172 -msgid "Other" -msgstr "" - -#: allianceauth/timerboard/form.py:54 -#: allianceauth/timerboard/templates/timerboard/dashboard.timers.html:38 -#: allianceauth/timerboard/templates/timerboard/timertable.html:44 -msgid "Friendly" -msgstr "" - -#: allianceauth/timerboard/form.py:55 -#: allianceauth/timerboard/templates/timerboard/dashboard.timers.html:33 -#: allianceauth/timerboard/templates/timerboard/timertable.html:38 -msgid "Hostile" -msgstr "" - -#: allianceauth/timerboard/form.py:56 -#: allianceauth/timerboard/templates/timerboard/dashboard.timers.html:43 -#: allianceauth/timerboard/templates/timerboard/timertable.html:50 -msgid "Neutral" -msgstr "" - -#: allianceauth/timerboard/form.py:58 -#: allianceauth/timerboard/templates/timerboard/dashboard.timers.html:13 +#: allianceauth/timerboard/form.py:36 +#: allianceauth/timerboard/templates/timerboard/dashboard.timers.html:14 #: allianceauth/timerboard/templates/timerboard/timertable.html:7 msgid "Details" msgstr "" -#: allianceauth/timerboard/form.py:60 +#: allianceauth/timerboard/form.py:38 msgid "Planet/Moon" msgstr "" -#: allianceauth/timerboard/form.py:61 +#: allianceauth/timerboard/form.py:39 msgid "Structure Type" msgstr "" -#: allianceauth/timerboard/form.py:62 +#: allianceauth/timerboard/form.py:40 msgid "Timer Type" msgstr "" -#: allianceauth/timerboard/form.py:63 +#: allianceauth/timerboard/form.py:41 #: allianceauth/timerboard/templates/timerboard/timertable.html:8 msgid "Objective" msgstr "" -#: allianceauth/timerboard/form.py:64 +#: allianceauth/timerboard/form.py:42 msgid "Absolute Timer" msgstr "" -#: allianceauth/timerboard/form.py:65 +#: allianceauth/timerboard/form.py:43 msgid "Date and Time" msgstr "" -#: allianceauth/timerboard/form.py:66 +#: allianceauth/timerboard/form.py:44 msgid "Days Remaining" msgstr "" -#: allianceauth/timerboard/form.py:67 +#: allianceauth/timerboard/form.py:45 msgid "Hours Remaining" msgstr "" -#: allianceauth/timerboard/form.py:69 +#: allianceauth/timerboard/form.py:47 msgid "Minutes Remaining" msgstr "" -#: allianceauth/timerboard/form.py:71 +#: allianceauth/timerboard/form.py:48 msgid "Important" msgstr "" -#: allianceauth/timerboard/form.py:72 +#: allianceauth/timerboard/form.py:49 msgid "Corp-Restricted" msgstr "" +#: allianceauth/timerboard/models.py:13 +#: allianceauth/timerboard/templates/timerboard/dashboard.timers.html:39 +#: allianceauth/timerboard/templates/timerboard/timertable.html:36 +msgid "Friendly" +msgstr "" + #: allianceauth/timerboard/models.py:14 -msgid "Not Specified" +#: allianceauth/timerboard/templates/timerboard/dashboard.timers.html:34 +#: allianceauth/timerboard/templates/timerboard/timertable.html:34 +msgid "Hostile" msgstr "" #: allianceauth/timerboard/models.py:15 -msgid "Shield" -msgstr "" - -#: allianceauth/timerboard/models.py:16 -msgid "Armor" -msgstr "" - -#: allianceauth/timerboard/models.py:17 -msgid "Hull" +#: allianceauth/timerboard/templates/timerboard/dashboard.timers.html:44 +#: allianceauth/timerboard/templates/timerboard/timertable.html:38 +msgid "Neutral" msgstr "" #: allianceauth/timerboard/models.py:18 -msgid "Final" +#: allianceauth/timerboard/templates/timerboard/timertable.html:48 +msgid "POCO" msgstr "" #: allianceauth/timerboard/models.py:19 -msgid "Anchoring" +#: allianceauth/timerboard/templates/timerboard/timertable.html:50 +msgid "Orbital Skyhook" msgstr "" #: allianceauth/timerboard/models.py:20 +#: allianceauth/timerboard/templates/timerboard/timertable.html:52 +msgid "I-HUB" +msgstr "" + +#: allianceauth/timerboard/models.py:21 +#: allianceauth/timerboard/templates/timerboard/timertable.html:54 +msgid "TCU" +msgstr "" + +#: allianceauth/timerboard/models.py:22 +#: allianceauth/timerboard/templates/timerboard/timertable.html:56 +msgid "POS [S]" +msgstr "" + +#: allianceauth/timerboard/models.py:23 +#: allianceauth/timerboard/templates/timerboard/timertable.html:58 +msgid "POS [M]" +msgstr "" + +#: allianceauth/timerboard/models.py:24 +#: allianceauth/timerboard/templates/timerboard/timertable.html:60 +msgid "POS [L]" +msgstr "" + +#: allianceauth/timerboard/models.py:25 +#: allianceauth/timerboard/templates/timerboard/timertable.html:62 +msgid "Astrahus" +msgstr "" + +#: allianceauth/timerboard/models.py:26 +#: allianceauth/timerboard/templates/timerboard/timertable.html:64 +msgid "Fortizar" +msgstr "" + +#: allianceauth/timerboard/models.py:27 +#: allianceauth/timerboard/templates/timerboard/timertable.html:66 +msgid "Keepstar" +msgstr "" + +#: allianceauth/timerboard/models.py:28 +#: allianceauth/timerboard/templates/timerboard/timertable.html:68 +msgid "Raitaru" +msgstr "" + +#: allianceauth/timerboard/models.py:29 +#: allianceauth/timerboard/templates/timerboard/timertable.html:70 +msgid "Azbel" +msgstr "" + +#: allianceauth/timerboard/models.py:30 +#: allianceauth/timerboard/templates/timerboard/timertable.html:72 +msgid "Sotiyo" +msgstr "" + +#: allianceauth/timerboard/models.py:31 +#: allianceauth/timerboard/templates/timerboard/timertable.html:74 +msgid "Athanor" +msgstr "" + +#: allianceauth/timerboard/models.py:32 +#: allianceauth/timerboard/templates/timerboard/timertable.html:76 +msgid "Tatara" +msgstr "" + +#: allianceauth/timerboard/models.py:33 +msgid "Pharolux Cyno Beacon" +msgstr "" + +#: allianceauth/timerboard/models.py:34 +msgid "Tenebrex Cyno Jammer" +msgstr "" + +#: allianceauth/timerboard/models.py:35 +#: allianceauth/timerboard/templates/timerboard/timertable.html:82 +msgid "Ansiblex Jump Gate" +msgstr "" + +#: allianceauth/timerboard/models.py:36 +#: allianceauth/timerboard/templates/timerboard/timertable.html:84 +msgid "Moon Mining Cycle" +msgstr "" + +#: allianceauth/timerboard/models.py:37 +#: allianceauth/timerboard/templates/timerboard/timertable.html:86 +msgid "Metenox Moon Drill" +msgstr "" + +#: allianceauth/timerboard/models.py:38 +#: allianceauth/timerboard/templates/timerboard/timertable.html:88 +msgid "Other" +msgstr "" + +#: allianceauth/timerboard/models.py:45 +msgid "Not Specified" +msgstr "" + +#: allianceauth/timerboard/models.py:46 +msgid "Shield" +msgstr "" + +#: allianceauth/timerboard/models.py:47 +msgid "Armor" +msgstr "" + +#: allianceauth/timerboard/models.py:48 +msgid "Hull" +msgstr "" + +#: allianceauth/timerboard/models.py:49 +msgid "Final" +msgstr "" + +#: allianceauth/timerboard/models.py:50 +msgid "Anchoring" +msgstr "" + +#: allianceauth/timerboard/models.py:51 msgid "Unanchoring" msgstr "" @@ -2584,7 +2699,7 @@ msgstr "" msgid "Upcoming Timers" msgstr "" -#: allianceauth/timerboard/templates/timerboard/dashboard.timers.html:14 +#: allianceauth/timerboard/templates/timerboard/dashboard.timers.html:15 msgid "Timer" msgstr "" @@ -2628,78 +2743,14 @@ msgstr "" msgid "Structure" msgstr "" -#: allianceauth/timerboard/templates/timerboard/timertable.html:64 -msgid "POCO" -msgstr "" - -#: allianceauth/timerboard/templates/timerboard/timertable.html:70 -msgid "I-HUB" -msgstr "" - -#: allianceauth/timerboard/templates/timerboard/timertable.html:76 -msgid "TCU" -msgstr "" - -#: allianceauth/timerboard/templates/timerboard/timertable.html:82 -msgid "POS [S]" -msgstr "" - -#: allianceauth/timerboard/templates/timerboard/timertable.html:88 -msgid "POS [M]" -msgstr "" - -#: allianceauth/timerboard/templates/timerboard/timertable.html:94 -msgid "POS [L]" -msgstr "" - -#: allianceauth/timerboard/templates/timerboard/timertable.html:100 -msgid "Astrahus" -msgstr "" - -#: allianceauth/timerboard/templates/timerboard/timertable.html:106 -msgid "Fortizar" -msgstr "" - -#: allianceauth/timerboard/templates/timerboard/timertable.html:112 -msgid "Keepstar" -msgstr "" - -#: allianceauth/timerboard/templates/timerboard/timertable.html:118 -msgid "Raitaru" -msgstr "" - -#: allianceauth/timerboard/templates/timerboard/timertable.html:124 -msgid "Azbel" -msgstr "" - -#: allianceauth/timerboard/templates/timerboard/timertable.html:130 -msgid "Sotiyo" -msgstr "" - -#: allianceauth/timerboard/templates/timerboard/timertable.html:136 -msgid "Athanor" -msgstr "" - -#: allianceauth/timerboard/templates/timerboard/timertable.html:142 -msgid "Tatara" -msgstr "" - -#: allianceauth/timerboard/templates/timerboard/timertable.html:148 +#: allianceauth/timerboard/templates/timerboard/timertable.html:78 msgid "Cyno Beacon" msgstr "" -#: allianceauth/timerboard/templates/timerboard/timertable.html:154 +#: allianceauth/timerboard/templates/timerboard/timertable.html:80 msgid "Cyno Jammer" msgstr "" -#: allianceauth/timerboard/templates/timerboard/timertable.html:160 -msgid "Ansiblex Jump Gate" -msgstr "" - -#: allianceauth/timerboard/templates/timerboard/timertable.html:166 -msgid "Moon Mining Cycle" -msgstr "" - #: allianceauth/timerboard/templates/timerboard/view.html:9 msgid "Structure Timer Management" msgstr "" diff --git a/allianceauth/timerboard/form.py b/allianceauth/timerboard/form.py index e42cc10c..52aab92d 100644 --- a/allianceauth/timerboard/form.py +++ b/allianceauth/timerboard/form.py @@ -1,11 +1,12 @@ -import logging import datetime +import logging + from django import forms -from django.utils import timezone from django.core.validators import MaxValueValidator, MinValueValidator +from django.utils import timezone from django.utils.translation import gettext_lazy as _ -from .models import Timer, TimerType +from .models import Timer logger = logging.getLogger(__name__) @@ -32,54 +33,28 @@ class TimerForm(forms.ModelForm): kwargs.update({'initial': initial}) super().__init__(*args, **kwargs) - structure_choices = [('POCO', 'POCO'), - ('I-HUB', 'I-HUB'), - ('TCU', 'TCU'), - ('POS[S]', 'POS[S]'), - ('POS[M]', 'POS[M]'), - ('POS[L]', 'POS[L]'), - ('Astrahus', 'Astrahus'), - ('Fortizar', 'Fortizar'), - ('Keepstar', 'Keepstar'), - ('Raitaru', 'Raitaru'), - ('Azbel', 'Azbel'), - ('Sotiyo', 'Sotiyo'), - ('Athanor', 'Athanor'), - ('Tatara', 'Tatara'), - ('Pharolux Cyno Beacon', 'Pharolux Cyno Beacon'), - ('Tenebrex Cyno Jammer', 'Tenebrex Cyno Jammer'), - ('Ansiblex Jump Gate', 'Ansiblex Jump Gate'), - ('Moon Mining Cycle', 'Moon Mining Cycle'), - (_('Other'), _('Other'))] - objective_choices = [('Friendly', _('Friendly')), - ('Hostile', _('Hostile')), - ('Neutral', _('Neutral'))] - details = forms.CharField(max_length=254, required=True, label=_('Details')) system = forms.CharField(max_length=254, required=True, label=_("System")) planet_moon = forms.CharField(max_length=254, label=_("Planet/Moon"), required=False, initial="") - 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")) + structure = forms.ChoiceField(choices=Timer.Structure.choices, required=True, label=_("Structure Type")) + timer_type = forms.ChoiceField(choices=Timer.TimerType.choices, label=_("Timer Type")) + objective = forms.ChoiceField(choices=Timer.Objective.choices, required=True, label=_("Objective")) absolute_checkbox = forms.BooleanField(label=_("Absolute Timer"), required=False, initial=False) absolute_time = forms.CharField(required=False,label=_("Date and Time")) days_left = forms.IntegerField(required=False, label=_("Days Remaining"), validators=[MinValueValidator(0)]) hours_left = forms.IntegerField(required=False, label=_("Hours Remaining"), validators=[MinValueValidator(0), MaxValueValidator(23)]) - minutes_left = forms.IntegerField(required=False, label=_("Minutes Remaining"), - validators=[MinValueValidator(0), MaxValueValidator(59)]) + minutes_left = forms.IntegerField(required=False, label=_("Minutes Remaining"), validators=[MinValueValidator(0), MaxValueValidator(59)]) important = forms.BooleanField(label=_("Important"), required=False) corp_timer = forms.BooleanField(label=_("Corp-Restricted"), required=False) - def save(self, commit=True): timer = super().save(commit=False) # Get character character = self.user.profile.main_character corporation = character.corporation - logger.debug("Determined timer save request on behalf " - "of character {} corporation {}".format(character, corporation)) + logger.debug(f"Determined timer save request on behalf of character {character} corporation {corporation}") days_left = self.cleaned_data['days_left'] hours_left = self.cleaned_data['hours_left'] diff --git a/allianceauth/timerboard/migrations/0006_alter_timer_objective_alter_timer_structure_and_more.py b/allianceauth/timerboard/migrations/0006_alter_timer_objective_alter_timer_structure_and_more.py new file mode 100644 index 00000000..a6ff915b --- /dev/null +++ b/allianceauth/timerboard/migrations/0006_alter_timer_objective_alter_timer_structure_and_more.py @@ -0,0 +1,28 @@ +# Generated by Django 4.2 on 2024-09-09 03:45 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('timerboard', '0005_alter_timer_planet_moon'), + ] + + operations = [ + migrations.AlterField( + model_name='timer', + name='objective', + field=models.CharField(choices=[('Friendly', 'Friendly'), ('Hostile', 'Hostile'), ('Neutral', 'Neutral')], default='Neutral', max_length=254), + ), + migrations.AlterField( + model_name='timer', + name='structure', + field=models.CharField(choices=[('POCO', 'POCO'), ('Orbital Skyhook', 'Orbital Skyhook'), ('I-HUB', 'I-HUB'), ('TCU', 'TCU'), ('POS[S]', 'POS [S]'), ('POS[M]', 'POS [M]'), ('POS[L]', 'POS [L]'), ('Astrahus', 'Astrahus'), ('Fortizar', 'Fortizar'), ('Keepstar', 'Keepstar'), ('Raitaru', 'Raitaru'), ('Azbel', 'Azbel'), ('Sotiyo', 'Sotiyo'), ('Athanor', 'Athanor'), ('Tatara', 'Tatara'), ('Pharolux Cyno Beacon', 'Pharolux Cyno Beacon'), ('Tenebrex Cyno Jammer', 'Tenebrex Cyno Jammer'), ('Ansiblex Jump Gate', 'Ansiblex Jump Gate'), ('Moon Mining Cycle', 'Moon Mining Cycle'), ('Metenox Moon Drill', 'Metenox Moon Drill'), ('Other', 'Other')], default='Other', max_length=254), + ), + migrations.AlterField( + 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'), ('ABANDONED', 'Abandoned')], default='UNSPECIFIED', max_length=254), + ), + ] diff --git a/allianceauth/timerboard/models.py b/allianceauth/timerboard/models.py index bceafa29..d4127c9b 100644 --- a/allianceauth/timerboard/models.py +++ b/allianceauth/timerboard/models.py @@ -6,34 +6,63 @@ from allianceauth.eveonline.models import EveCharacter 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 Meta: - ordering = ['eve_time'] + 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", _("I-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", _("Pharolux Cyno Beacon") + TENEBREX = "Tenebrex Cyno Jammer", _("Tenebrex Cyno Jammer") + ANSIBLEX = "Ansiblex Jump Gate", _("Ansiblex Jump Gate") + 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") 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, default="") - timer_type = models.CharField( - max_length=254, - choices=TimerType.choices, - default=TimerType.UNSPECIFIED, - ) - objective = models.CharField(max_length=254, 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) @@ -41,5 +70,8 @@ class Timer(models.Model): corp_timer = models.BooleanField(default=False) user = models.ForeignKey(User, null=True, on_delete=models.SET_NULL) - def __str__(self): + def __str__(self) -> str: return str(self.system) + ' ' + str(self.details) + + class Meta: + ordering = ['eve_time'] diff --git a/allianceauth/timerboard/templates/timerboard/dashboard.timers.html b/allianceauth/timerboard/templates/timerboard/dashboard.timers.html index 4b6d9a5a..f22bc26e 100644 --- a/allianceauth/timerboard/templates/timerboard/dashboard.timers.html +++ b/allianceauth/timerboard/templates/timerboard/dashboard.timers.html @@ -40,7 +40,7 @@ {% endif %} {% if timer.objective == "Neutral" %} -
+
{% translate "Neutral" %}
{% endif %} diff --git a/allianceauth/timerboard/templates/timerboard/timertable.html b/allianceauth/timerboard/templates/timerboard/timertable.html index 3fbef666..c1d5c818 100644 --- a/allianceauth/timerboard/templates/timerboard/timertable.html +++ b/allianceauth/timerboard/templates/timerboard/timertable.html @@ -18,174 +18,85 @@ {% for timer in timers %} - {% if timer.important == True %} - - {% else %} - - {% endif %} + {{ timer.details }} {% if timer.timer_type != 'UNSPECIFIED' %} -
({{ timer.get_timer_type_display }}) +
+ ({{ timer.get_timer_type_display }}) {% endif %} {% if timer.objective == "Hostile" %} -
- {% translate "Hostile" %} -
- {% endif %} - - {% if timer.objective == "Friendly" %} -
- {% translate "Friendly" %} -
- {% endif %} - - {% if timer.objective == "Neutral" %} -
- {% translate "Neutral" %} -
+
{% translate "Hostile" %}
+ {% elif timer.objective == "Friendly" %} +
{% translate "Friendly" %}
+ {% elif timer.objective == "Neutral" %} +
{% translate "Neutral" %}
{% endif %} - - {{ timer.system }} {{ timer.planet_moon }} - + {{ timer.system }} {{ timer.planet_moon }} {% if timer.structure == "POCO" %} -
- {% translate "POCO" %} -
- {% endif %} - - {% if timer.structure == "I-HUB" %} -
- {% translate "I-HUB" %} -
- {% endif %} - - {% if timer.structure == "TCU" %} -
- {% translate "TCU" %} -
- {% endif %} - - {% if timer.structure == "POS[S]" %} -
- {% translate "POS [S]" %} -
- {% endif %} - - {% if timer.structure == "POS[M]" %} -
- {% translate "POS [M]" %} -
- {% endif %} - - {% if timer.structure == "POS[L]" %} -
- {% translate "POS [L]" %} -
- {% endif %} - - {% if timer.structure == "Citadel[M]" or timer.structure == "Astrahus" %} -
- {% translate "Astrahus" %} -
- {% endif %} - - {% if timer.structure == "Citadel[L]" or timer.structure == "Fortizar" %} -
- {% translate "Fortizar" %} -
- {% endif %} - - {% if timer.structure == "Citadel[XL]" or timer.structure == "Keepstar" %} -
- {% translate "Keepstar" %} -
- {% endif %} - - {% if timer.structure == "Engineering Complex[M]" or timer.structure == "Raitaru" %} -
- {% translate "Raitaru" %} -
- {% endif %} - - {% if timer.structure == "Engineering Complex[L]" or timer.structure == "Azbel" %} -
- {% translate "Azbel" %} -
- {% endif %} - - {% if timer.structure == "Engineering Complex[XL]" or timer.structure == "Sotiyo" %} -
- {% translate "Sotiyo" %} -
- {% endif %} - - {% if timer.structure == "Refinery[M]" or timer.structure == "Athanor" %} -
- {% translate "Athanor" %} -
- {% endif %} - - {% if timer.structure == "Refinery[L]" or timer.structure == "Tatara"%} -
- {% translate "Tatara" %} -
- {% endif %} - - {% if timer.structure == "Cyno Beacon" or timer.structure == "Pharolux Cyno Beacon" %} -
- {% translate "Cyno Beacon" %} -
- {% endif %} - - {% if timer.structure == "Cyno Jammer" or timer.structure == "Tenebrex Cyno Jammer" %} -
- {% translate "Cyno Jammer" %} -
- {% endif %} - - {% if timer.structure == "Jump Gate" or timer.structure == "Ansiblex Jump Gate" %} -
- {% translate "Ansiblex Jump Gate" %} -
- {% endif %} - - {% if timer.structure == "Moon Mining Cycle" %} -
- {% translate "Moon Mining Cycle" %} -
- {% endif %} - - {% if timer.structure == "Other" %} -
- {% translate "Other" %} -
+
{% translate "POCO" %}
+ {% elif timer.structure == "Orbital Skyhook" %} +
{% translate "Orbital Skyhook" %}
+ {% elif timer.structure == "I-HUB" %} +
{% translate "I-HUB" %}
+ {% elif timer.structure == "TCU" %} {% comment %} Pending Removal {% endcomment %} +
{% translate "TCU" %}
+ {% elif timer.structure == "POS[S]" %} +
{% translate "POS [S]" %}
+ {% elif timer.structure == "POS[M]" %} +
{% translate "POS [M]" %}
+ {% elif timer.structure == "POS[L]" %} +
{% translate "POS [L]" %}
+ {% elif timer.structure == "Citadel[M]" or timer.structure == "Astrahus" %} +
{% translate "Astrahus" %}
+ {% elif timer.structure == "Citadel[L]" or timer.structure == "Fortizar" %} +
{% translate "Fortizar" %}
+ {% elif timer.structure == "Citadel[XL]" or timer.structure == "Keepstar" %} +
{% translate "Keepstar" %}
+ {% elif timer.structure == "Engineering Complex[M]" or timer.structure == "Raitaru" %} +
{% translate "Raitaru" %}
+ {% elif timer.structure == "Engineering Complex[L]" or timer.structure == "Azbel" %} +
{% translate "Azbel" %}
+ {% elif timer.structure == "Engineering Complex[XL]" or timer.structure == "Sotiyo" %} +
{% translate "Sotiyo" %}
+ {% elif timer.structure == "Refinery[M]" or timer.structure == "Athanor" %} +
{% translate "Athanor" %}
+ {% elif timer.structure == "Refinery[L]" or timer.structure == "Tatara" %} +
{% translate "Tatara" %}
+ {% elif timer.structure == "Cyno Beacon" or timer.structure == "Pharolux Cyno Beacon" %} +
{% translate "Cyno Beacon" %}
+ {% elif timer.structure == "Cyno Jammer" or timer.structure == "Tenebrex Cyno Jammer" %} +
{% translate "Cyno Jammer" %}
+ {% elif timer.structure == "Jump Gate" or timer.structure == "Ansiblex Jump Gate" %} +
{% translate "Ansiblex Jump Gate" %}
+ {% elif timer.structure == "Moon Mining Cycle" %} +
{% translate "Moon Mining Cycle" %}
+ {% elif timer.structure == "Metenox Moon Drill" %} +
{% translate "Metenox Moon Drill" %}
+ {% elif timer.structure == "Other" %} +
{% translate "Other" %}
{% endif %} - - {{ timer.eve_time | date:"Y-m-d H:i" }} - + {{ timer.eve_time | date:"Y-m-d H:i" }}
- - {{ timer.eve_character.character_name }} - + {{ timer.eve_character.character_name }} {% if perms.auth.timer_management %} diff --git a/allianceauth/timerboard/tests.py b/allianceauth/timerboard/tests.py index 715f3d61..26e7ef00 100644 --- a/allianceauth/timerboard/tests.py +++ b/allianceauth/timerboard/tests.py @@ -167,8 +167,8 @@ class TimerboardViewsTestCase(WebTest): form['details'] = 'details' form['system'] = 'jita' form['planet_moon'] = '4-4' - form['structure'] = TimerForm.structure_choices[0][0] - form['objective'] = TimerForm.objective_choices[0][0] + form['structure'] = Timer.Structure.choices[0][0] + form['objective'] = Timer.Objective.choices[0][0] form['days_left'] = 1 form['hours_left'] = 2 form['minutes_left'] = 3 @@ -206,8 +206,8 @@ class TimerboardViewsTestCase(WebTest): form['details'] = 'detailsUNIQUE' form['system'] = 'jita' form['planet_moon'] = '4-4' - form['structure'] = TimerForm.structure_choices[0][0] - form['objective'] = TimerForm.objective_choices[0][0] + form['structure'] = Timer.Structure.choices[0][0] + form['objective'] = Timer.Objective.choices[0][0] form['days_left'] = 1 form['hours_left'] = 2 form['minutes_left'] = 3