aa-sov-timer 4.0.3__tar.gz → 4.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/PKG-INFO +5 -5
  2. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/README.md +4 -4
  3. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/__init__.py +2 -2
  4. aa_sov_timer-4.2.0/sovtimer/constants.py +21 -0
  5. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/locale/cs_CZ/LC_MESSAGES/django.po +14 -14
  6. aa_sov_timer-4.2.0/sovtimer/locale/de/LC_MESSAGES/django.mo +0 -0
  7. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/locale/de/LC_MESSAGES/django.po +17 -17
  8. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/locale/django.pot +15 -15
  9. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/locale/es/LC_MESSAGES/django.po +14 -14
  10. aa_sov_timer-4.2.0/sovtimer/locale/fr_FR/LC_MESSAGES/django.mo +0 -0
  11. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/locale/fr_FR/LC_MESSAGES/django.po +17 -17
  12. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/locale/it_IT/LC_MESSAGES/django.po +14 -14
  13. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/locale/ja/LC_MESSAGES/django.po +14 -14
  14. aa_sov_timer-4.2.0/sovtimer/locale/ko_KR/LC_MESSAGES/django.mo +0 -0
  15. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/locale/ko_KR/LC_MESSAGES/django.po +17 -17
  16. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/locale/nl_NL/LC_MESSAGES/django.po +14 -14
  17. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/locale/pl_PL/LC_MESSAGES/django.po +14 -14
  18. aa_sov_timer-4.2.0/sovtimer/locale/ru/LC_MESSAGES/django.mo +0 -0
  19. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/locale/ru/LC_MESSAGES/django.po +17 -17
  20. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/locale/sk/LC_MESSAGES/django.po +14 -14
  21. aa_sov_timer-4.2.0/sovtimer/locale/uk/LC_MESSAGES/django.mo +0 -0
  22. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/locale/uk/LC_MESSAGES/django.po +18 -18
  23. aa_sov_timer-4.2.0/sovtimer/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  24. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/locale/zh_Hans/LC_MESSAGES/django.po +16 -16
  25. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/management/commands/sovtimer_load_initial_data.py +2 -2
  26. aa_sov_timer-4.2.0/sovtimer/migrations/0002_remove_sovereigntystructure_structure_type_id.py +17 -0
  27. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/models.py +76 -15
  28. aa_sov_timer-4.2.0/sovtimer/providers/__init__.py +3 -0
  29. aa_sov_timer-4.2.0/sovtimer/providers/applogger.py +44 -0
  30. aa_sov_timer-4.2.0/sovtimer/providers/esi.py +233 -0
  31. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/static/sovtimer/js/aa-sov-timer.js +1 -1
  32. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/tasks.py +91 -62
  33. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/templates/sovtimer/partials/common/spinner.html +1 -1
  34. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/tests/__init__.py +2 -1
  35. aa_sov_timer-4.2.0/sovtimer/tests/test_models.py +611 -0
  36. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/tests/test_providers.py +178 -185
  37. aa_sov_timer-4.2.0/sovtimer/tests/test_tasks.py +871 -0
  38. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/urls.py +2 -2
  39. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/views.py +2 -3
  40. aa_sov_timer-4.0.3/sovtimer/constants.py +0 -7
  41. aa_sov_timer-4.0.3/sovtimer/locale/de/LC_MESSAGES/django.mo +0 -0
  42. aa_sov_timer-4.0.3/sovtimer/locale/fr_FR/LC_MESSAGES/django.mo +0 -0
  43. aa_sov_timer-4.0.3/sovtimer/locale/ko_KR/LC_MESSAGES/django.mo +0 -0
  44. aa_sov_timer-4.0.3/sovtimer/locale/ru/LC_MESSAGES/django.mo +0 -0
  45. aa_sov_timer-4.0.3/sovtimer/locale/uk/LC_MESSAGES/django.mo +0 -0
  46. aa_sov_timer-4.0.3/sovtimer/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  47. aa_sov_timer-4.0.3/sovtimer/providers.py +0 -217
  48. aa_sov_timer-4.0.3/sovtimer/tests/test_models.py +0 -340
  49. aa_sov_timer-4.0.3/sovtimer/tests/test_tasks.py +0 -386
  50. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/.gitignore +0 -0
  51. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/LICENSE +0 -0
  52. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/pyproject.toml +2 -2
  53. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/app_settings.py +0 -0
  54. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/apps.py +0 -0
  55. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/auth_hooks.py +0 -0
  56. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/locale/.gitkeep +0 -0
  57. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
  58. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/locale/es/LC_MESSAGES/django.mo +0 -0
  59. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/locale/it_IT/LC_MESSAGES/django.mo +0 -0
  60. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/locale/ja/LC_MESSAGES/django.mo +0 -0
  61. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/locale/nl_NL/LC_MESSAGES/django.mo +0 -0
  62. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
  63. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/locale/sk/LC_MESSAGES/django.mo +0 -0
  64. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/management/commands/__init__.py +0 -0
  65. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/migrations/0001_initial.py +0 -0
  66. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/migrations/0001_initialize.py +0 -0
  67. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/migrations/0002_aasovtimercampaigns_aasovtimerstructures.py +0 -0
  68. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/migrations/0003_auto_20201113_1033.py +0 -0
  69. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/migrations/0004_auto_20201113_1856.py +0 -0
  70. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/migrations/0005_auto_20201114_0720.py +0 -0
  71. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/migrations/0006_rename_models.py +0 -0
  72. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/migrations/0007_cleanup_models.py +0 -0
  73. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/migrations/0008_fix_campaign_attackers_score.py +0 -0
  74. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/migrations/0009_alter_campaign_options_and_more.py +0 -0
  75. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/migrations/0010_alter_campaign_event_type.py +0 -0
  76. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/migrations/0011_alliance_alter_campaign_event_type_and_more.py +0 -0
  77. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/migrations/__init__.py +0 -0
  78. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/static/sovtimer/css/aa-sov-timer.css +0 -0
  79. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/static/sovtimer/css/aa-sov-timer.min.css +0 -0
  80. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/static/sovtimer/css/aa-sov-timer.min.css.map +0 -0
  81. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/static/sovtimer/font/materialicons/v143/MaterialIcons-Regular.woff2 +0 -0
  82. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/static/sovtimer/font/materialicons/v143/README.md +0 -0
  83. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/static/sovtimer/images/zkillboard.png +0 -0
  84. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/static/sovtimer/js/aa-sov-timer.min.js +0 -0
  85. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/static/sovtimer/js/aa-sov-timer.min.js.map +0 -0
  86. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/templates/sovtimer/base.html +0 -0
  87. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/templates/sovtimer/bundles/aa-sov-timer-css.html +0 -0
  88. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/templates/sovtimer/bundles/aa-sov-timer-js.html +0 -0
  89. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/templates/sovtimer/dashboard.html +0 -0
  90. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/templates/sovtimer/partials/dashboard/table.html +0 -0
  91. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/templates/sovtimer/partials/footer/app-translation-footer.html +0 -0
  92. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/tests/test_app_settings.py +0 -0
  93. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/tests/test_auth_hooks.py +0 -0
  94. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/tests/test_user_agent.py +0 -0
  95. {aa_sov_timer-4.0.3 → aa_sov_timer-4.2.0}/sovtimer/tests/test_views.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aa-sov-timer
3
- Version: 4.0.3
3
+ Version: 4.2.0
4
4
  Summary: Sov Campaign Timer for Alliance Auth
5
5
  Project-URL: Changelog, https://github.com/ppfeufer/aa-sov-timer/blob/master/CHANGELOG.md
6
6
  Project-URL: Codecov, https://codecov.io/gh/ppfeufer/aa-sov-timer
@@ -804,7 +804,7 @@ Make sure you're in the virtual environment (venv) of your Alliance Auth install
804
804
  Then install the latest version:
805
805
 
806
806
  ```shell
807
- pip install aa-sov-timer==4.0.3
807
+ pip install aa-sov-timer==4.2.0
808
808
  ```
809
809
 
810
810
  #### Step 2: Update Your AA Settings<a name="step-2-update-your-aa-settings"></a>
@@ -882,7 +882,7 @@ Once you have completed all previous steps, restart your AA supervisor service t
882
882
  Add the app to your `conf/requirements.txt`:
883
883
 
884
884
  ```text
885
- aa-sov-timer==4.0.3
885
+ aa-sov-timer==4.2.0
886
886
  ```
887
887
 
888
888
  #### Step 2: Update Your AA Settings<a name="step-2-update-your-aa-settings-1"></a>
@@ -979,7 +979,7 @@ Then run the following commands from your AA project directory (the one that
979
979
  contains `manage.py`).
980
980
 
981
981
  ```shell
982
- pip install aa-sov-timer==4.0.3
982
+ pip install aa-sov-timer==4.2.0
983
983
 
984
984
  python manage.py collectstatic
985
985
  python manage.py migrate
@@ -992,7 +992,7 @@ Finally, restart your AA supervisor service.
992
992
  To update your existing installation of AA Sovereignty Timer, all you need to do is to update the respective line in your `conf/requirements.txt` file to the latest version.
993
993
 
994
994
  ```text
995
- aa-sov-timer==4.0.3
995
+ aa-sov-timer==4.2.0
996
996
  ```
997
997
 
998
998
  Now rebuild your containers and restart them:
@@ -90,7 +90,7 @@ Make sure you're in the virtual environment (venv) of your Alliance Auth install
90
90
  Then install the latest version:
91
91
 
92
92
  ```shell
93
- pip install aa-sov-timer==4.0.3
93
+ pip install aa-sov-timer==4.2.0
94
94
  ```
95
95
 
96
96
  #### Step 2: Update Your AA Settings<a name="step-2-update-your-aa-settings"></a>
@@ -168,7 +168,7 @@ Once you have completed all previous steps, restart your AA supervisor service t
168
168
  Add the app to your `conf/requirements.txt`:
169
169
 
170
170
  ```text
171
- aa-sov-timer==4.0.3
171
+ aa-sov-timer==4.2.0
172
172
  ```
173
173
 
174
174
  #### Step 2: Update Your AA Settings<a name="step-2-update-your-aa-settings-1"></a>
@@ -265,7 +265,7 @@ Then run the following commands from your AA project directory (the one that
265
265
  contains `manage.py`).
266
266
 
267
267
  ```shell
268
- pip install aa-sov-timer==4.0.3
268
+ pip install aa-sov-timer==4.2.0
269
269
 
270
270
  python manage.py collectstatic
271
271
  python manage.py migrate
@@ -278,7 +278,7 @@ Finally, restart your AA supervisor service.
278
278
  To update your existing installation of AA Sovereignty Timer, all you need to do is to update the respective line in your `conf/requirements.txt` file to the latest version.
279
279
 
280
280
  ```text
281
- aa-sov-timer==4.0.3
281
+ aa-sov-timer==4.2.0
282
282
  ```
283
283
 
284
284
  Now rebuild your containers and restart them:
@@ -5,11 +5,11 @@ App init
5
5
  # Django
6
6
  from django.utils.translation import gettext_lazy as _
7
7
 
8
- __version__ = "4.0.3"
8
+ __version__ = "4.2.0"
9
9
  __title__ = "Sovereignty Timer"
10
10
  __title_translated__ = _("Sovereignty Timer")
11
11
 
12
- __esi_compatibility_date__ = "2025-11-06"
12
+ __esi_compatibility_date__ = "2026-05-19"
13
13
 
14
14
  __package_name__ = "aa-sov-timer"
15
15
  __app_name__ = "sovtimer"
@@ -0,0 +1,21 @@
1
+ """
2
+ Our constants
3
+ """
4
+
5
+
6
+ class Constants:
7
+ """
8
+ Constants we use throughout the app
9
+ """
10
+
11
+ # Prefix used for all internal URLs within the application.
12
+ # This ensures that internal URLs are easily distinguishable.
13
+ INTERNAL_URL_PREFIX = "-"
14
+
15
+ TASK_PRIORITY = 6
16
+ TASK_RUN_TTL = 600 # Stop after 10 minutes
17
+ TASK_ESI_MAX_RETRIES = 5
18
+ TASK_DEFAULT_RETRY_DELAY = 180 # Retry after 3 minutes
19
+
20
+ TASK_STRUCTURE_CACHE_KEY = "sov_structures_task_run"
21
+ TASK_STRUCTURE_CACHE_TTL = 300
@@ -6,7 +6,7 @@ msgid ""
6
6
  msgstr ""
7
7
  "Project-Id-Version: AA Sov Timer 2.2.1\n"
8
8
  "Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-sov-timer/issues\n"
9
- "POT-Creation-Date: 2026-05-06 10:06+0200\n"
9
+ "POT-Creation-Date: 2026-06-02 18:21+0200\n"
10
10
  "PO-Revision-Date: 2024-07-10 14:26+0000\n"
11
11
  "Last-Translator: Dadas Aideron <dadas.aideron@gmail.com>\n"
12
12
  "Language-Team: Czech <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-sov-timer/cs/>\n"
@@ -17,46 +17,46 @@ msgstr ""
17
17
  "Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
18
18
  "X-Generator: Weblate 5.6.2\n"
19
19
 
20
- #: sovtimer/__init__.py:10 sovtimer/models.py:35
20
+ #: sovtimer/__init__.py:10 sovtimer/models.py:43
21
21
  #: sovtimer/templates/sovtimer/base.html:7
22
22
  #: sovtimer/templates/sovtimer/base.html:11
23
23
  msgid "Sovereignty Timer"
24
24
  msgstr ""
25
25
 
26
- #: sovtimer/models.py:38
26
+ #: sovtimer/models.py:46
27
27
  msgid "Can access the Sovereignty Timer module"
28
28
  msgstr ""
29
29
 
30
- #: sovtimer/models.py:56
30
+ #: sovtimer/models.py:64
31
31
  msgid "Alliance"
32
32
  msgstr ""
33
33
 
34
- #: sovtimer/models.py:57
34
+ #: sovtimer/models.py:65
35
35
  msgid "Alliances"
36
36
  msgstr ""
37
37
 
38
- #: sovtimer/models.py:153
38
+ #: sovtimer/models.py:161
39
39
  msgid "Sovereignty structure"
40
40
  msgstr ""
41
41
 
42
- #: sovtimer/models.py:154
42
+ #: sovtimer/models.py:162
43
43
  msgid "Sovereignty structures"
44
44
  msgstr ""
45
45
 
46
- #: sovtimer/models.py:194
46
+ #: sovtimer/models.py:242
47
47
  msgid "Sov Hub defense"
48
48
  msgstr ""
49
49
 
50
- #: sovtimer/models.py:222
50
+ #: sovtimer/models.py:270
51
51
  msgid "Sovereignty campaign"
52
52
  msgstr ""
53
53
 
54
- #: sovtimer/models.py:223
54
+ #: sovtimer/models.py:271
55
55
  msgid "Sovereignty campaigns"
56
56
  msgstr ""
57
57
 
58
58
  #: sovtimer/templates/sovtimer/partials/common/spinner.html:8
59
- msgid "Loading …"
59
+ msgid "Loading…"
60
60
  msgstr ""
61
61
 
62
62
  #: sovtimer/templates/sovtimer/partials/dashboard/table.html:6
@@ -123,14 +123,14 @@ msgstr "Chceš pomoc s překladem této aplikace do tvého jazyka, nebo vylepši
123
123
  msgid "Join our team of translators!"
124
124
  msgstr "Připoj se k našemu týmu překladatelů!"
125
125
 
126
- #: sovtimer/views.py:148
126
+ #: sovtimer/views.py:147
127
127
  msgid "Defenders making progress"
128
128
  msgstr ""
129
129
 
130
- #: sovtimer/views.py:152
130
+ #: sovtimer/views.py:151
131
131
  msgid "Attackers making progress"
132
132
  msgstr ""
133
133
 
134
- #: sovtimer/views.py:156
134
+ #: sovtimer/views.py:155
135
135
  msgid "Neither side has made any progress yet"
136
136
  msgstr ""
@@ -6,8 +6,8 @@ msgid ""
6
6
  msgstr ""
7
7
  "Project-Id-Version: AA Sov Timer 2.2.1\n"
8
8
  "Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-sov-timer/issues\n"
9
- "POT-Creation-Date: 2026-05-06 10:06+0200\n"
10
- "PO-Revision-Date: 2026-02-27 10:17+0000\n"
9
+ "POT-Creation-Date: 2026-06-02 18:21+0200\n"
10
+ "PO-Revision-Date: 2026-05-19 14:58+0000\n"
11
11
  "Last-Translator: Peter Pfeufer <info@ppfeufer.de>\n"
12
12
  "Language-Team: German <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-sov-timer/de/>\n"
13
13
  "Language: de\n"
@@ -15,49 +15,49 @@ msgstr ""
15
15
  "Content-Type: text/plain; charset=UTF-8\n"
16
16
  "Content-Transfer-Encoding: 8bit\n"
17
17
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
18
- "X-Generator: Weblate 5.16\n"
18
+ "X-Generator: Weblate 2026.5\n"
19
19
 
20
- #: sovtimer/__init__.py:10 sovtimer/models.py:35
20
+ #: sovtimer/__init__.py:10 sovtimer/models.py:43
21
21
  #: sovtimer/templates/sovtimer/base.html:7
22
22
  #: sovtimer/templates/sovtimer/base.html:11
23
23
  msgid "Sovereignty Timer"
24
24
  msgstr "Souveränitäts-Timer"
25
25
 
26
- #: sovtimer/models.py:38
26
+ #: sovtimer/models.py:46
27
27
  msgid "Can access the Sovereignty Timer module"
28
28
  msgstr "Kann das Souveränitäts-Timer Modul nutzen"
29
29
 
30
- #: sovtimer/models.py:56
30
+ #: sovtimer/models.py:64
31
31
  msgid "Alliance"
32
32
  msgstr "Allianz"
33
33
 
34
- #: sovtimer/models.py:57
34
+ #: sovtimer/models.py:65
35
35
  msgid "Alliances"
36
36
  msgstr "Allianzen"
37
37
 
38
- #: sovtimer/models.py:153
38
+ #: sovtimer/models.py:161
39
39
  msgid "Sovereignty structure"
40
40
  msgstr "Souveränitäts-Struktur"
41
41
 
42
- #: sovtimer/models.py:154
42
+ #: sovtimer/models.py:162
43
43
  msgid "Sovereignty structures"
44
44
  msgstr "Souveränitäts-Strukturen"
45
45
 
46
- #: sovtimer/models.py:194
46
+ #: sovtimer/models.py:242
47
47
  msgid "Sov Hub defense"
48
48
  msgstr "Sov Hub Verteidigung"
49
49
 
50
- #: sovtimer/models.py:222
50
+ #: sovtimer/models.py:270
51
51
  msgid "Sovereignty campaign"
52
52
  msgstr "Souveränitäts-Kampagne"
53
53
 
54
- #: sovtimer/models.py:223
54
+ #: sovtimer/models.py:271
55
55
  msgid "Sovereignty campaigns"
56
56
  msgstr "Souveränitäts-Kampagnen"
57
57
 
58
58
  #: sovtimer/templates/sovtimer/partials/common/spinner.html:8
59
- msgid "Loading …"
60
- msgstr "Lade …"
59
+ msgid "Loading…"
60
+ msgstr "Lade…"
61
61
 
62
62
  #: sovtimer/templates/sovtimer/partials/dashboard/table.html:6
63
63
  msgid "Sovereignty campaign list"
@@ -123,15 +123,15 @@ msgstr "Du möchtest helfen diese App in Deine Sprache zu übersetzen oder die b
123
123
  msgid "Join our team of translators!"
124
124
  msgstr "Tritt unserm Team von Übersetzern bei!"
125
125
 
126
- #: sovtimer/views.py:148
126
+ #: sovtimer/views.py:147
127
127
  msgid "Defenders making progress"
128
128
  msgstr "Verteidiger machen Fortschritte"
129
129
 
130
- #: sovtimer/views.py:152
130
+ #: sovtimer/views.py:151
131
131
  msgid "Attackers making progress"
132
132
  msgstr "Angreifer machen Fortschritte"
133
133
 
134
- #: sovtimer/views.py:156
134
+ #: sovtimer/views.py:155
135
135
  msgid "Neither side has made any progress yet"
136
136
  msgstr "Keine Seite hat bisher Fortschritte gemacht"
137
137
 
@@ -6,9 +6,9 @@
6
6
  #, fuzzy
7
7
  msgid ""
8
8
  msgstr ""
9
- "Project-Id-Version: AA Sov Timer 4.0.3\n"
9
+ "Project-Id-Version: AA Sov Timer 4.2.0\n"
10
10
  "Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-sov-timer/issues\n"
11
- "POT-Creation-Date: 2026-05-06 10:06+0200\n"
11
+ "POT-Creation-Date: 2026-06-02 18:21+0200\n"
12
12
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,46 +17,46 @@ msgstr ""
17
17
  "Content-Type: text/plain; charset=UTF-8\n"
18
18
  "Content-Transfer-Encoding: 8bit\n"
19
19
 
20
- #: sovtimer/__init__.py:10 sovtimer/models.py:35
20
+ #: sovtimer/__init__.py:10 sovtimer/models.py:43
21
21
  #: sovtimer/templates/sovtimer/base.html:7
22
22
  #: sovtimer/templates/sovtimer/base.html:11
23
23
  msgid "Sovereignty Timer"
24
24
  msgstr ""
25
25
 
26
- #: sovtimer/models.py:38
26
+ #: sovtimer/models.py:46
27
27
  msgid "Can access the Sovereignty Timer module"
28
28
  msgstr ""
29
29
 
30
- #: sovtimer/models.py:56
30
+ #: sovtimer/models.py:64
31
31
  msgid "Alliance"
32
32
  msgstr ""
33
33
 
34
- #: sovtimer/models.py:57
34
+ #: sovtimer/models.py:65
35
35
  msgid "Alliances"
36
36
  msgstr ""
37
37
 
38
- #: sovtimer/models.py:153
38
+ #: sovtimer/models.py:161
39
39
  msgid "Sovereignty structure"
40
40
  msgstr ""
41
41
 
42
- #: sovtimer/models.py:154
42
+ #: sovtimer/models.py:162
43
43
  msgid "Sovereignty structures"
44
44
  msgstr ""
45
45
 
46
- #: sovtimer/models.py:194
46
+ #: sovtimer/models.py:242
47
47
  msgid "Sov Hub defense"
48
48
  msgstr ""
49
49
 
50
- #: sovtimer/models.py:222
50
+ #: sovtimer/models.py:270
51
51
  msgid "Sovereignty campaign"
52
52
  msgstr ""
53
53
 
54
- #: sovtimer/models.py:223
54
+ #: sovtimer/models.py:271
55
55
  msgid "Sovereignty campaigns"
56
56
  msgstr ""
57
57
 
58
58
  #: sovtimer/templates/sovtimer/partials/common/spinner.html:8
59
- msgid "Loading …"
59
+ msgid "Loading…"
60
60
  msgstr ""
61
61
 
62
62
  #: sovtimer/templates/sovtimer/partials/dashboard/table.html:6
@@ -127,14 +127,14 @@ msgstr ""
127
127
  msgid "Join our team of translators!"
128
128
  msgstr ""
129
129
 
130
- #: sovtimer/views.py:148
130
+ #: sovtimer/views.py:147
131
131
  msgid "Defenders making progress"
132
132
  msgstr ""
133
133
 
134
- #: sovtimer/views.py:152
134
+ #: sovtimer/views.py:151
135
135
  msgid "Attackers making progress"
136
136
  msgstr ""
137
137
 
138
- #: sovtimer/views.py:156
138
+ #: sovtimer/views.py:155
139
139
  msgid "Neither side has made any progress yet"
140
140
  msgstr ""
@@ -7,7 +7,7 @@ msgid ""
7
7
  msgstr ""
8
8
  "Project-Id-Version: AA Sov Timer 2.2.1\n"
9
9
  "Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-sov-timer/issues\n"
10
- "POT-Creation-Date: 2026-05-06 10:06+0200\n"
10
+ "POT-Creation-Date: 2026-06-02 18:21+0200\n"
11
11
  "PO-Revision-Date: 2025-07-29 20:18+0000\n"
12
12
  "Last-Translator: Peter Pfeufer <info@ppfeufer.de>\n"
13
13
  "Language-Team: Spanish <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-sov-timer/es/>\n"
@@ -18,54 +18,54 @@ msgstr ""
18
18
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
19
19
  "X-Generator: Weblate 5.12.2\n"
20
20
 
21
- #: sovtimer/__init__.py:10 sovtimer/models.py:35
21
+ #: sovtimer/__init__.py:10 sovtimer/models.py:43
22
22
  #: sovtimer/templates/sovtimer/base.html:7
23
23
  #: sovtimer/templates/sovtimer/base.html:11
24
24
  msgid "Sovereignty Timer"
25
25
  msgstr "Temporizador de Soberanía"
26
26
 
27
- #: sovtimer/models.py:38
27
+ #: sovtimer/models.py:46
28
28
  msgid "Can access the Sovereignty Timer module"
29
29
  msgstr "Puede acceder al modulo temporizador de Soberanía"
30
30
 
31
- #: sovtimer/models.py:56
31
+ #: sovtimer/models.py:64
32
32
  msgid "Alliance"
33
33
  msgstr ""
34
34
 
35
- #: sovtimer/models.py:57
35
+ #: sovtimer/models.py:65
36
36
  msgid "Alliances"
37
37
  msgstr ""
38
38
 
39
- #: sovtimer/models.py:153
39
+ #: sovtimer/models.py:161
40
40
  msgid "Sovereignty structure"
41
41
  msgstr "Temporizador de Soberanía"
42
42
 
43
- #: sovtimer/models.py:154
43
+ #: sovtimer/models.py:162
44
44
  #, fuzzy
45
45
  #| msgid "Sovereignty Timers"
46
46
  msgid "Sovereignty structures"
47
47
  msgstr "Temporizadores de Soberanía"
48
48
 
49
- #: sovtimer/models.py:194
49
+ #: sovtimer/models.py:242
50
50
  #, fuzzy
51
51
  #| msgid "IHub Defense"
52
52
  msgid "Sov Hub defense"
53
53
  msgstr "Defensa del IHub"
54
54
 
55
- #: sovtimer/models.py:222
55
+ #: sovtimer/models.py:270
56
56
  #, fuzzy
57
57
  #| msgid "Sovereignty Campaign List"
58
58
  msgid "Sovereignty campaign"
59
59
  msgstr "Lista de Campañas de Soberanía"
60
60
 
61
- #: sovtimer/models.py:223
61
+ #: sovtimer/models.py:271
62
62
  #, fuzzy
63
63
  #| msgid "Sovereignty Campaign List"
64
64
  msgid "Sovereignty campaigns"
65
65
  msgstr "Lista de Campañas de Soberanía"
66
66
 
67
67
  #: sovtimer/templates/sovtimer/partials/common/spinner.html:8
68
- msgid "Loading …"
68
+ msgid "Loading…"
69
69
  msgstr ""
70
70
 
71
71
  #: sovtimer/templates/sovtimer/partials/dashboard/table.html:6
@@ -134,15 +134,15 @@ msgstr "¿Quieres ayudar a traducir esta aplicación a tu idioma o mejorar la tr
134
134
  msgid "Join our team of translators!"
135
135
  msgstr "¡Únete a nuestro equipo de traductores!"
136
136
 
137
- #: sovtimer/views.py:148
137
+ #: sovtimer/views.py:147
138
138
  msgid "Defenders making progress"
139
139
  msgstr "Progreso del Defensor"
140
140
 
141
- #: sovtimer/views.py:152
141
+ #: sovtimer/views.py:151
142
142
  msgid "Attackers making progress"
143
143
  msgstr "Progreso del Atacante"
144
144
 
145
- #: sovtimer/views.py:156
145
+ #: sovtimer/views.py:155
146
146
  msgid "Neither side has made any progress yet"
147
147
  msgstr "Ninguna de las partes ha hecho ningún progreso todavía"
148
148
 
@@ -13,8 +13,8 @@ msgid ""
13
13
  msgstr ""
14
14
  "Project-Id-Version: AA Sov Timer 2.2.1\n"
15
15
  "Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-sov-timer/issues\n"
16
- "POT-Creation-Date: 2026-05-06 10:06+0200\n"
17
- "PO-Revision-Date: 2026-03-22 19:23+0000\n"
16
+ "POT-Creation-Date: 2026-06-02 18:21+0200\n"
17
+ "PO-Revision-Date: 2026-05-19 14:58+0000\n"
18
18
  "Last-Translator: Peter Pfeufer <info@ppfeufer.de>\n"
19
19
  "Language-Team: French <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-sov-timer/fr/>\n"
20
20
  "Language: fr_FR\n"
@@ -22,49 +22,49 @@ msgstr ""
22
22
  "Content-Type: text/plain; charset=UTF-8\n"
23
23
  "Content-Transfer-Encoding: 8bit\n"
24
24
  "Plural-Forms: nplurals=2; plural=n > 1;\n"
25
- "X-Generator: Weblate 5.16.2\n"
25
+ "X-Generator: Weblate 2026.5\n"
26
26
 
27
- #: sovtimer/__init__.py:10 sovtimer/models.py:35
27
+ #: sovtimer/__init__.py:10 sovtimer/models.py:43
28
28
  #: sovtimer/templates/sovtimer/base.html:7
29
29
  #: sovtimer/templates/sovtimer/base.html:11
30
30
  msgid "Sovereignty Timer"
31
31
  msgstr "Minuterie de souveraineté"
32
32
 
33
- #: sovtimer/models.py:38
33
+ #: sovtimer/models.py:46
34
34
  msgid "Can access the Sovereignty Timer module"
35
35
  msgstr "Peut accéder le module Minuterie de souveraineté"
36
36
 
37
- #: sovtimer/models.py:56
37
+ #: sovtimer/models.py:64
38
38
  msgid "Alliance"
39
39
  msgstr "Alliance"
40
40
 
41
- #: sovtimer/models.py:57
41
+ #: sovtimer/models.py:65
42
42
  msgid "Alliances"
43
43
  msgstr ""
44
44
 
45
- #: sovtimer/models.py:153
45
+ #: sovtimer/models.py:161
46
46
  msgid "Sovereignty structure"
47
47
  msgstr "Structure de souveraineté"
48
48
 
49
- #: sovtimer/models.py:154
49
+ #: sovtimer/models.py:162
50
50
  msgid "Sovereignty structures"
51
51
  msgstr "Structures de souveraineté"
52
52
 
53
- #: sovtimer/models.py:194
53
+ #: sovtimer/models.py:242
54
54
  msgid "Sov Hub defense"
55
55
  msgstr "Défense du hub de souveraineté"
56
56
 
57
- #: sovtimer/models.py:222
57
+ #: sovtimer/models.py:270
58
58
  msgid "Sovereignty campaign"
59
59
  msgstr "Campagne de souveraineté"
60
60
 
61
- #: sovtimer/models.py:223
61
+ #: sovtimer/models.py:271
62
62
  msgid "Sovereignty campaigns"
63
63
  msgstr "Campagnes de souveraineté"
64
64
 
65
65
  #: sovtimer/templates/sovtimer/partials/common/spinner.html:8
66
- msgid "Loading …"
67
- msgstr "Chargement …"
66
+ msgid "Loading…"
67
+ msgstr "Chargement…"
68
68
 
69
69
  #: sovtimer/templates/sovtimer/partials/dashboard/table.html:6
70
70
  msgid "Sovereignty campaign list"
@@ -130,15 +130,15 @@ msgstr "Voulez-vous aider à traduire cette application dans votre langue ou am
130
130
  msgid "Join our team of translators!"
131
131
  msgstr "Rejoignez notre équipe de traducteurs !"
132
132
 
133
- #: sovtimer/views.py:148
133
+ #: sovtimer/views.py:147
134
134
  msgid "Defenders making progress"
135
135
  msgstr "Les défenseurs progressent"
136
136
 
137
- #: sovtimer/views.py:152
137
+ #: sovtimer/views.py:151
138
138
  msgid "Attackers making progress"
139
139
  msgstr "Les attaquants progressent"
140
140
 
141
- #: sovtimer/views.py:156
141
+ #: sovtimer/views.py:155
142
142
  msgid "Neither side has made any progress yet"
143
143
  msgstr "Aucun camp n’a encore fait de progrès."
144
144
 
@@ -7,7 +7,7 @@ msgid ""
7
7
  msgstr ""
8
8
  "Project-Id-Version: AA Sov Timer 2.2.1\n"
9
9
  "Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-sov-timer/issues\n"
10
- "POT-Creation-Date: 2026-05-06 10:06+0200\n"
10
+ "POT-Creation-Date: 2026-06-02 18:21+0200\n"
11
11
  "PO-Revision-Date: 2026-04-07 17:48+0000\n"
12
12
  "Last-Translator: Vlad Cocan <cfvlad@gmail.com>\n"
13
13
  "Language-Team: Italian <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-sov-timer/it/>\n"
@@ -18,46 +18,46 @@ msgstr ""
18
18
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
19
19
  "X-Generator: Weblate 5.16.2\n"
20
20
 
21
- #: sovtimer/__init__.py:10 sovtimer/models.py:35
21
+ #: sovtimer/__init__.py:10 sovtimer/models.py:43
22
22
  #: sovtimer/templates/sovtimer/base.html:7
23
23
  #: sovtimer/templates/sovtimer/base.html:11
24
24
  msgid "Sovereignty Timer"
25
25
  msgstr "Timer Sovranità"
26
26
 
27
- #: sovtimer/models.py:38
27
+ #: sovtimer/models.py:46
28
28
  msgid "Can access the Sovereignty Timer module"
29
29
  msgstr ""
30
30
 
31
- #: sovtimer/models.py:56
31
+ #: sovtimer/models.py:64
32
32
  msgid "Alliance"
33
33
  msgstr ""
34
34
 
35
- #: sovtimer/models.py:57
35
+ #: sovtimer/models.py:65
36
36
  msgid "Alliances"
37
37
  msgstr ""
38
38
 
39
- #: sovtimer/models.py:153
39
+ #: sovtimer/models.py:161
40
40
  msgid "Sovereignty structure"
41
41
  msgstr ""
42
42
 
43
- #: sovtimer/models.py:154
43
+ #: sovtimer/models.py:162
44
44
  msgid "Sovereignty structures"
45
45
  msgstr ""
46
46
 
47
- #: sovtimer/models.py:194
47
+ #: sovtimer/models.py:242
48
48
  msgid "Sov Hub defense"
49
49
  msgstr ""
50
50
 
51
- #: sovtimer/models.py:222
51
+ #: sovtimer/models.py:270
52
52
  msgid "Sovereignty campaign"
53
53
  msgstr ""
54
54
 
55
- #: sovtimer/models.py:223
55
+ #: sovtimer/models.py:271
56
56
  msgid "Sovereignty campaigns"
57
57
  msgstr ""
58
58
 
59
59
  #: sovtimer/templates/sovtimer/partials/common/spinner.html:8
60
- msgid "Loading …"
60
+ msgid "Loading…"
61
61
  msgstr ""
62
62
 
63
63
  #: sovtimer/templates/sovtimer/partials/dashboard/table.html:6
@@ -124,15 +124,15 @@ msgstr ""
124
124
  msgid "Join our team of translators!"
125
125
  msgstr ""
126
126
 
127
- #: sovtimer/views.py:148
127
+ #: sovtimer/views.py:147
128
128
  msgid "Defenders making progress"
129
129
  msgstr ""
130
130
 
131
- #: sovtimer/views.py:152
131
+ #: sovtimer/views.py:151
132
132
  msgid "Attackers making progress"
133
133
  msgstr ""
134
134
 
135
- #: sovtimer/views.py:156
135
+ #: sovtimer/views.py:155
136
136
  msgid "Neither side has made any progress yet"
137
137
  msgstr ""
138
138