aa-sov-timer 2.3.4__tar.gz → 2.4.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 (90) hide show
  1. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/PKG-INFO +3 -11
  2. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/README.md +2 -10
  3. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/__init__.py +1 -1
  4. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/locale/cs_CZ/LC_MESSAGES/django.po +1 -1
  5. aa_sov_timer-2.4.0/sovtimer/locale/de/LC_MESSAGES/django.mo +0 -0
  6. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/locale/de/LC_MESSAGES/django.po +4 -4
  7. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/locale/django.pot +2 -2
  8. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/locale/es/LC_MESSAGES/django.po +1 -1
  9. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/locale/fr_FR/LC_MESSAGES/django.po +1 -1
  10. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/locale/it_IT/LC_MESSAGES/django.po +1 -1
  11. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/locale/ja/LC_MESSAGES/django.po +1 -1
  12. aa_sov_timer-2.4.0/sovtimer/locale/ko_KR/LC_MESSAGES/django.mo +0 -0
  13. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/locale/ko_KR/LC_MESSAGES/django.po +6 -5
  14. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/locale/nl_NL/LC_MESSAGES/django.po +1 -1
  15. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/locale/pl_PL/LC_MESSAGES/django.po +1 -1
  16. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/locale/ru/LC_MESSAGES/django.po +1 -1
  17. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/locale/sk/LC_MESSAGES/django.po +1 -1
  18. aa_sov_timer-2.4.0/sovtimer/locale/uk/LC_MESSAGES/django.mo +0 -0
  19. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/locale/uk/LC_MESSAGES/django.po +27 -42
  20. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  21. aa_sov_timer-2.4.0/sovtimer/templates/sovtimer/bundles/aa-sov-timer-css.html +3 -0
  22. aa_sov_timer-2.4.0/sovtimer/templates/sovtimer/bundles/aa-sov-timer-js.html +3 -0
  23. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/templates/sovtimer/partials/dashboard/table.html +10 -10
  24. aa_sov_timer-2.3.4/sovtimer/helper/static_files.py +0 -43
  25. aa_sov_timer-2.3.4/sovtimer/locale/de/LC_MESSAGES/django.mo +0 -0
  26. aa_sov_timer-2.3.4/sovtimer/locale/ko_KR/LC_MESSAGES/django.mo +0 -0
  27. aa_sov_timer-2.3.4/sovtimer/locale/uk/LC_MESSAGES/django.mo +0 -0
  28. aa_sov_timer-2.3.4/sovtimer/templates/sovtimer/bundles/aa-sov-timer-css.html +0 -3
  29. aa_sov_timer-2.3.4/sovtimer/templates/sovtimer/bundles/aa-sov-timer-js.html +0 -3
  30. aa_sov_timer-2.3.4/sovtimer/templatetags/__init__.py +0 -3
  31. aa_sov_timer-2.3.4/sovtimer/templatetags/sovtimer.py +0 -86
  32. aa_sov_timer-2.3.4/sovtimer/tests/test_templatetags.py +0 -103
  33. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/.gitignore +0 -0
  34. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/LICENSE +0 -0
  35. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/pyproject.toml +0 -0
  36. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/app_settings.py +0 -0
  37. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/apps.py +0 -0
  38. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/auth_hooks.py +0 -0
  39. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/constants.py +0 -0
  40. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/locale/.gitkeep +0 -0
  41. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
  42. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/locale/es/LC_MESSAGES/django.mo +0 -0
  43. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/locale/fr_FR/LC_MESSAGES/django.mo +0 -0
  44. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/locale/it_IT/LC_MESSAGES/django.mo +0 -0
  45. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/locale/ja/LC_MESSAGES/django.mo +0 -0
  46. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/locale/nl_NL/LC_MESSAGES/django.mo +0 -0
  47. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
  48. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/locale/ru/LC_MESSAGES/django.mo +0 -0
  49. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/locale/sk/LC_MESSAGES/django.mo +0 -0
  50. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  51. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/management/commands/__init__.py +0 -0
  52. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/management/commands/sovtimer_load_initial_data.py +0 -0
  53. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/migrations/0001_initial.py +0 -0
  54. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/migrations/0002_aasovtimercampaigns_aasovtimerstructures.py +0 -0
  55. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/migrations/0003_auto_20201113_1033.py +0 -0
  56. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/migrations/0004_auto_20201113_1856.py +0 -0
  57. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/migrations/0005_auto_20201114_0720.py +0 -0
  58. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/migrations/0006_rename_models.py +0 -0
  59. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/migrations/0007_cleanup_models.py +0 -0
  60. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/migrations/0008_fix_campaign_attackers_score.py +0 -0
  61. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/migrations/0009_alter_campaign_options_and_more.py +0 -0
  62. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/migrations/0010_alter_campaign_event_type.py +0 -0
  63. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/migrations/__init__.py +0 -0
  64. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/models.py +0 -0
  65. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/providers.py +0 -0
  66. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/static/sovtimer/css/aa-sov-timer.css +0 -0
  67. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/static/sovtimer/css/aa-sov-timer.min.css +0 -0
  68. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/static/sovtimer/css/aa-sov-timer.min.css.map +0 -0
  69. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/static/sovtimer/font/materialicons/v143/MaterialIcons-Regular.woff2 +0 -0
  70. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/static/sovtimer/font/materialicons/v143/README.md +0 -0
  71. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/static/sovtimer/images/zkillboard.png +0 -0
  72. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/static/sovtimer/js/aa-sov-timer.js +0 -0
  73. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/static/sovtimer/js/aa-sov-timer.min.js +0 -0
  74. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/static/sovtimer/js/aa-sov-timer.min.js.map +0 -0
  75. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/tasks.py +0 -0
  76. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/templates/sovtimer/base.html +0 -0
  77. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/templates/sovtimer/dashboard.html +0 -0
  78. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/templates/sovtimer/partials/footer/app-translation-footer.html +0 -0
  79. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/tests/__init__.py +0 -0
  80. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/tests/fixtures/allianceauth.json +0 -0
  81. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/tests/fixtures/load_allianceauth.py +0 -0
  82. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/tests/fixtures/load_sovtimer.py +0 -0
  83. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/tests/fixtures/sovtimer.json +0 -0
  84. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/tests/fixtures/utils.py +0 -0
  85. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/tests/test_ajax_calls.py +0 -0
  86. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/tests/test_app_settings.py +0 -0
  87. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/tests/test_integration.py +0 -0
  88. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/tests/utils.py +0 -0
  89. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/urls.py +0 -0
  90. {aa_sov_timer-2.3.4 → aa_sov_timer-2.4.0}/sovtimer/views.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aa-sov-timer
3
- Version: 2.3.4
3
+ Version: 2.4.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: Documentation, https://github.com/ppfeufer/aa-sov-timer/blob/master/README.md
@@ -757,17 +757,9 @@ ______________________________________________________________________
757
757
 
758
758
  ## Installation<a name="installation"></a>
759
759
 
760
- > [!NOTE]
760
+ > [!IMPORTANT]
761
761
  >
762
- > **AA Sov Timer >= 2.0.0 needs at least Alliance Auth v4.0.0!**
763
- >
764
- > Please make sure to update your Alliance Auth instance _before_ you install this
765
- > module or update to the latest version, otherwise an update to Alliance Auth will
766
- > be pulled in unsupervised.
767
- >
768
- > The last version compatible with Alliance Auth v3 is `1.12.3`.
769
-
770
- **Important**: Please make sure you meet all preconditions before you proceed:
762
+ > Please make sure you meet all preconditions before you proceed.
771
763
 
772
764
  - AA Sovereignty Timer is a plugin for Alliance Auth. If you don't have Alliance
773
765
  Auth running already, please install it first before proceeding. (see the official
@@ -47,17 +47,9 @@ ______________________________________________________________________
47
47
 
48
48
  ## Installation<a name="installation"></a>
49
49
 
50
- > [!NOTE]
50
+ > [!IMPORTANT]
51
51
  >
52
- > **AA Sov Timer >= 2.0.0 needs at least Alliance Auth v4.0.0!**
53
- >
54
- > Please make sure to update your Alliance Auth instance _before_ you install this
55
- > module or update to the latest version, otherwise an update to Alliance Auth will
56
- > be pulled in unsupervised.
57
- >
58
- > The last version compatible with Alliance Auth v3 is `1.12.3`.
59
-
60
- **Important**: Please make sure you meet all preconditions before you proceed:
52
+ > Please make sure you meet all preconditions before you proceed.
61
53
 
62
54
  - AA Sovereignty Timer is a plugin for Alliance Auth. If you don't have Alliance
63
55
  Auth running already, please install it first before proceeding. (see the official
@@ -5,5 +5,5 @@ App init
5
5
  # Django
6
6
  from django.utils.translation import gettext_lazy as _
7
7
 
8
- __version__ = "2.3.4"
8
+ __version__ = "2.4.0"
9
9
  __title__ = _("Sovereignty Timers")
@@ -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: 2025-04-09 11:48+0200\n"
9
+ "POT-Creation-Date: 2025-06-03 13:33+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"
@@ -1,13 +1,13 @@
1
1
  # SOME DESCRIPTIVE TITLE.
2
2
  # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
3
  # This file is distributed under the same license as the PACKAGE package.
4
- # "H. Peter Pfeufer" <info@ppfeufer.de>, 2023, 2024.
4
+ # "H. Peter Pfeufer" <info@ppfeufer.de>, 2023, 2024, 2025.
5
5
  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: 2025-04-09 11:48+0200\n"
10
- "PO-Revision-Date: 2024-12-15 10:37+0000\n"
9
+ "POT-Creation-Date: 2025-06-03 13:33+0200\n"
10
+ "PO-Revision-Date: 2025-04-25 14:24+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,7 +15,7 @@ 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.8.4\n"
18
+ "X-Generator: Weblate 5.11\n"
19
19
 
20
20
  #: sovtimer/__init__.py:9
21
21
  msgid "Sovereignty Timers"
@@ -6,9 +6,9 @@
6
6
  #, fuzzy
7
7
  msgid ""
8
8
  msgstr ""
9
- "Project-Id-Version: AA Sov Timer 2.3.4\n"
9
+ "Project-Id-Version: AA Sov Timer 2.4.0\n"
10
10
  "Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-sov-timer/issues\n"
11
- "POT-Creation-Date: 2025-04-09 11:48+0200\n"
11
+ "POT-Creation-Date: 2025-06-03 13:33+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"
@@ -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: 2025-04-09 11:48+0200\n"
10
+ "POT-Creation-Date: 2025-06-03 13:33+0200\n"
11
11
  "PO-Revision-Date: 2024-12-15 10:37+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"
@@ -10,7 +10,7 @@ msgid ""
10
10
  msgstr ""
11
11
  "Project-Id-Version: AA Sov Timer 2.2.1\n"
12
12
  "Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-sov-timer/issues\n"
13
- "POT-Creation-Date: 2025-04-09 11:48+0200\n"
13
+ "POT-Creation-Date: 2025-06-03 13:33+0200\n"
14
14
  "PO-Revision-Date: 2024-12-15 10:37+0000\n"
15
15
  "Last-Translator: Peter Pfeufer <info@ppfeufer.de>\n"
16
16
  "Language-Team: French <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-sov-timer/fr/>\n"
@@ -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: 2025-04-09 11:48+0200\n"
9
+ "POT-Creation-Date: 2025-06-03 13:33+0200\n"
10
10
  "PO-Revision-Date: 2024-12-22 21:15+0000\n"
11
11
  "Last-Translator: Peter Pfeufer <info@ppfeufer.de>\n"
12
12
  "Language-Team: Italian <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-sov-timer/it/>\n"
@@ -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: 2025-04-09 11:48+0200\n"
10
+ "POT-Creation-Date: 2025-06-03 13:33+0200\n"
11
11
  "PO-Revision-Date: 2024-08-06 03:28+0000\n"
12
12
  "Last-Translator: Deleted User <noreply+44@weblate.org>\n"
13
13
  "Language-Team: Japanese <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-sov-timer/ja/>\n"
@@ -5,20 +5,21 @@
5
5
  # Author50CO <tkddlschry@gmail.com>, 2023, 2024.
6
6
  # Mind of the Raven <okanieva@gmail.com>, 2024.
7
7
  # Rodpold Shard <rodpold@gmail.com>, 2024.
8
+ # SiO4 <hohoit0078@gmail.com>, 2025.
8
9
  msgid ""
9
10
  msgstr ""
10
11
  "Project-Id-Version: AA Sov Timer 2.2.1\n"
11
12
  "Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-sov-timer/issues\n"
12
- "POT-Creation-Date: 2025-04-09 11:48+0200\n"
13
- "PO-Revision-Date: 2024-12-15 10:37+0000\n"
14
- "Last-Translator: Peter Pfeufer <info@ppfeufer.de>\n"
13
+ "POT-Creation-Date: 2025-06-03 13:33+0200\n"
14
+ "PO-Revision-Date: 2025-04-28 07:24+0000\n"
15
+ "Last-Translator: SiO4 <hohoit0078@gmail.com>\n"
15
16
  "Language-Team: Korean <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-sov-timer/ko/>\n"
16
17
  "Language: ko_KR\n"
17
18
  "MIME-Version: 1.0\n"
18
19
  "Content-Type: text/plain; charset=UTF-8\n"
19
20
  "Content-Transfer-Encoding: 8bit\n"
20
21
  "Plural-Forms: nplurals=1; plural=0;\n"
21
- "X-Generator: Weblate 5.8.4\n"
22
+ "X-Generator: Weblate 5.11.1\n"
22
23
 
23
24
  #: sovtimer/__init__.py:9
24
25
  msgid "Sovereignty Timers"
@@ -159,7 +160,7 @@ msgstr "이 앱을 번역하거나 기존 번역을 개선하고 싶으신가요
159
160
 
160
161
  #: sovtimer/templates/sovtimer/partials/footer/app-translation-footer.html:8
161
162
  msgid "Join our team of translators!"
162
- msgstr "번역팀에 참여하세요!"
163
+ msgstr "번역가 팀에 참여하세요!"
163
164
 
164
165
  #: sovtimer/views.py:163
165
166
  msgid "Neither side has made any progress yet"
@@ -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: 2025-04-09 11:48+0200\n"
10
+ "POT-Creation-Date: 2025-06-03 13:33+0200\n"
11
11
  "PO-Revision-Date: 2024-05-10 14:12+0000\n"
12
12
  "Last-Translator: Anonymous <noreply@weblate.org>\n"
13
13
  "Language-Team: Dutch <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-sov-timer/nl/>\n"
@@ -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: 2025-04-09 11:48+0200\n"
9
+ "POT-Creation-Date: 2025-06-03 13:33+0200\n"
10
10
  "PO-Revision-Date: 2024-05-10 14:12+0000\n"
11
11
  "Last-Translator: Anonymous <noreply@weblate.org>\n"
12
12
  "Language-Team: Polish <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-sov-timer/pl/>\n"
@@ -8,7 +8,7 @@ msgid ""
8
8
  msgstr ""
9
9
  "Project-Id-Version: AA Sov Timer 2.2.1\n"
10
10
  "Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-sov-timer/issues\n"
11
- "POT-Creation-Date: 2025-04-09 11:48+0200\n"
11
+ "POT-Creation-Date: 2025-06-03 13:33+0200\n"
12
12
  "PO-Revision-Date: 2024-12-15 10:37+0000\n"
13
13
  "Last-Translator: Peter Pfeufer <info@ppfeufer.de>\n"
14
14
  "Language-Team: Russian <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-sov-timer/ru/>\n"
@@ -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: 2025-04-09 11:48+0200\n"
10
+ "POT-Creation-Date: 2025-06-03 13:33+0200\n"
11
11
  "PO-Revision-Date: 2024-05-10 14:12+0000\n"
12
12
  "Last-Translator: Anonymous <noreply@weblate.org>\n"
13
13
  "Language-Team: Slovak <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-sov-timer/sk/>\n"
@@ -4,20 +4,21 @@
4
4
  # "Andrii M." <elfleg0las88@gmail.com>, 2023, 2024.
5
5
  # Peter Pfeufer <info@ppfeufer.de>, 2023, 2024.
6
6
  # M <skrypets@gmail.com>, 2025.
7
+ # s0k0l -_- <salarysalo@gmail.com>, 2025.
7
8
  msgid ""
8
9
  msgstr ""
9
10
  "Project-Id-Version: AA Sov Timer 2.2.1\n"
10
11
  "Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-sov-timer/issues\n"
11
- "POT-Creation-Date: 2025-04-09 11:48+0200\n"
12
- "PO-Revision-Date: 2025-02-24 15:17+0000\n"
13
- "Last-Translator: M <skrypets@gmail.com>\n"
12
+ "POT-Creation-Date: 2025-06-03 13:33+0200\n"
13
+ "PO-Revision-Date: 2025-04-10 07:05+0000\n"
14
+ "Last-Translator: s0k0l -_- <salarysalo@gmail.com>\n"
14
15
  "Language-Team: Ukrainian <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-sov-timer/uk/>\n"
15
16
  "Language: uk\n"
16
17
  "MIME-Version: 1.0\n"
17
18
  "Content-Type: text/plain; charset=UTF-8\n"
18
19
  "Content-Transfer-Encoding: 8bit\n"
19
20
  "Plural-Forms: nplurals=4; plural=n==1 ? 3 : (n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
20
- "X-Generator: Weblate 5.10.1\n"
21
+ "X-Generator: Weblate 5.10.4\n"
21
22
 
22
23
  #: sovtimer/__init__.py:9
23
24
  msgid "Sovereignty Timers"
@@ -34,51 +35,37 @@ msgid "Sovereignty Timer"
34
35
  msgstr "Таймер суверенітету"
35
36
 
36
37
  #: sovtimer/models.py:36
37
- #, fuzzy
38
- #| msgid "Sovereignty Timer"
39
38
  msgid "Can access the Sovereignty Timer module"
40
- msgstr "Таймер суверенітету"
39
+ msgstr "Є доступ до модуля суверенітету"
41
40
 
42
41
  #: sovtimer/models.py:73
43
- #, fuzzy
44
- #| msgid "Sovereignty Timer"
45
42
  msgid "Sovereignty structure"
46
- msgstr "Таймер суверенітету"
43
+ msgstr "Структура суверенітету"
47
44
 
48
45
  #: sovtimer/models.py:74
49
- #, fuzzy
50
- #| msgid "Sovereignty Timers"
51
46
  msgid "Sovereignty structures"
52
- msgstr "Таймера суверенітету"
47
+ msgstr "Структури суверенітету"
53
48
 
54
49
  #: sovtimer/models.py:111
55
- #, fuzzy
56
- #| msgid "IHub Defense"
57
50
  msgid "Sov Hub defense"
58
- msgstr "Захист інфраструктурного хабу"
51
+ msgstr "Захист хабу суверенітету"
59
52
 
60
53
  #: sovtimer/models.py:112
61
- #, fuzzy
62
- #| msgid "TCU Defense"
63
54
  msgid "TCU defense"
64
- msgstr "Захист TCU"
55
+ msgstr "Захист ТКУ"
65
56
 
66
57
  #: sovtimer/models.py:138
67
- #, fuzzy
68
- #| msgid "Sovereignty Timer"
69
58
  msgid "Sovereignty campaign"
70
- msgstr "Таймер суверенітету"
59
+ msgstr "Кампанія суверенітету"
71
60
 
72
61
  #: sovtimer/models.py:139
73
- #, fuzzy
74
- #| msgid "Sovereignty Timers"
75
62
  msgid "Sovereignty campaigns"
76
- msgstr "Таймера суверенітету"
63
+ msgstr "Кампанії суверенітету"
77
64
 
78
65
  #: sovtimer/templates/sovtimer/dashboard.html:15
79
66
  #: sovtimer/templates/sovtimer/partials/dashboard/table.html:27
80
67
  msgid "Type"
81
- msgstr ""
68
+ msgstr "Тип"
82
69
 
83
70
  #: sovtimer/templates/sovtimer/dashboard.html:16
84
71
  #: sovtimer/templates/sovtimer/partials/dashboard/table.html:28
@@ -102,7 +89,7 @@ msgstr "Власник / Захисник"
102
89
 
103
90
  #: sovtimer/templates/sovtimer/dashboard.html:20
104
91
  msgid "Active campaign"
105
- msgstr ""
92
+ msgstr "активна кампанія"
106
93
 
107
94
  #: sovtimer/templates/sovtimer/dashboard.html:21 sovtimer/views.py:161
108
95
  msgid "Yes"
@@ -110,45 +97,43 @@ msgstr "Так"
110
97
 
111
98
  #: sovtimer/templates/sovtimer/dashboard.html:22 sovtimer/views.py:159
112
99
  msgid "No"
113
- msgstr ""
100
+ msgstr "Номер"
114
101
 
115
102
  #: sovtimer/templates/sovtimer/partials/dashboard/table.html:4
116
103
  msgid "The sovereignty timer list is automatically updated every 30 seconds. Progress for any active campaigns will be shown as <i>Previous - Trend - Current</i>."
117
- msgstr ""
104
+ msgstr "Список таймерів суверенітету оновлюється автоматично кожні 30 секунд. Прогрес активних кампаній буде показаний як <i>Попереднє - Тренд - Поточне</i>."
118
105
 
119
106
  #: sovtimer/templates/sovtimer/partials/dashboard/table.html:10
120
- #, fuzzy
121
- #| msgid "Sovereignty Timers"
122
107
  msgid "Sovereignty campaign list"
123
- msgstr "Таймера суверенітету"
108
+ msgstr "Список кампаній суверенітету"
124
109
 
125
110
  #: sovtimer/templates/sovtimer/partials/dashboard/table.html:16
126
111
  msgid "Timers total:"
127
- msgstr ""
112
+ msgstr "Таймерів усього:"
128
113
 
129
114
  #: sovtimer/templates/sovtimer/partials/dashboard/table.html:17
130
115
  msgid "Timers upcoming (< 4hrs):"
131
- msgstr ""
116
+ msgstr "Таймери (< 4 годин):"
132
117
 
133
118
  #: sovtimer/templates/sovtimer/partials/dashboard/table.html:18
134
119
  msgid "Timers active:"
135
- msgstr ""
120
+ msgstr "Активні таймери:"
136
121
 
137
122
  #: sovtimer/templates/sovtimer/partials/dashboard/table.html:32
138
123
  msgid "ADM"
139
- msgstr ""
124
+ msgstr "АДМ"
140
125
 
141
126
  #: sovtimer/templates/sovtimer/partials/dashboard/table.html:33
142
127
  msgid "Start"
143
- msgstr ""
128
+ msgstr "Початок"
144
129
 
145
130
  #: sovtimer/templates/sovtimer/partials/dashboard/table.html:34
146
131
  msgid "Remaining"
147
- msgstr ""
132
+ msgstr "Залишилось"
148
133
 
149
134
  #: sovtimer/templates/sovtimer/partials/dashboard/table.html:35
150
135
  msgid "Progress"
151
- msgstr ""
136
+ msgstr "Прогрес"
152
137
 
153
138
  #: sovtimer/templates/sovtimer/partials/footer/app-translation-footer.html:5
154
139
  msgid "Do you want to help translate this app into your language or improve the existing translation?"
@@ -160,15 +145,15 @@ msgstr "Приєднуйтесь до нашої команди переклад
160
145
 
161
146
  #: sovtimer/views.py:163
162
147
  msgid "Neither side has made any progress yet"
163
- msgstr ""
148
+ msgstr "Жодна з сторін ще не зробила прогресу"
164
149
 
165
150
  #: sovtimer/views.py:171
166
151
  msgid "Defenders making progress"
167
- msgstr ""
152
+ msgstr "Прогрес захисників"
168
153
 
169
154
  #: sovtimer/views.py:179
170
155
  msgid "Attackers making progress"
171
- msgstr ""
156
+ msgstr "Прогрес атакуючих"
172
157
 
173
158
  #~ msgid "No data available in this table"
174
159
  #~ msgstr "Немає даних у цій таблиці"
@@ -10,7 +10,7 @@ msgid ""
10
10
  msgstr ""
11
11
  "Project-Id-Version: AA Sov Timer 2.2.1\n"
12
12
  "Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-sov-timer/issues\n"
13
- "POT-Creation-Date: 2025-04-09 11:48+0200\n"
13
+ "POT-Creation-Date: 2025-06-03 13:33+0200\n"
14
14
  "PO-Revision-Date: 2024-05-15 09:21+0000\n"
15
15
  "Last-Translator: SAM_FPS <sam_fps@163.com>\n"
16
16
  "Language-Team: Chinese (Simplified) <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-sov-timer/zh_Hans/>\n"
@@ -0,0 +1,3 @@
1
+ {% load sri %}
2
+
3
+ {% sri_static "sovtimer/css/aa-sov-timer.min.css" %}
@@ -0,0 +1,3 @@
1
+ {% load sri %}
2
+
3
+ {% sri_static "sovtimer/js/aa-sov-timer.min.js" %}
@@ -1,7 +1,7 @@
1
1
  {% load i18n %}
2
2
 
3
3
  <p class="text-muted">
4
- {% translate 'The sovereignty timer list is automatically updated every 30 seconds. Progress for any active campaigns will be shown as <i>Previous - Trend - Current</i>.' %}
4
+ {% translate "The sovereignty timer list is automatically updated every 30 seconds. Progress for any active campaigns will be shown as <i>Previous - Trend - Current</i>." %}
5
5
  </p>
6
6
 
7
7
  <div class="card card-default">
@@ -24,15 +24,15 @@
24
24
  <table class="table table-striped aa-sovtimer-campaigns" style="width: 100%; border-collapse: collapse !important;">
25
25
  <thead>
26
26
  <tr>
27
- <th class="aa-sovtimer-campaigns-column aa-sovtimer-campaigns-column-type">{% translate 'Type' %}</th>
28
- <th class="aa-sovtimer-campaigns-column aa-sovtimer-campaigns-column-system">{% translate 'System' %}</th>
29
- <th class="aa-sovtimer-campaigns-column aa-sovtimer-campaigns-column-constellation">{% translate 'Constellation' %}</th>
30
- <th class="aa-sovtimer-campaigns-column aa-sovtimer-campaigns-column-region">{% translate 'Region' %}</th>
31
- <th class="aa-sovtimer-campaigns-column aa-sovtimer-campaigns-column-defender">{% translate 'Owner / Defender' %}</th>
32
- <th class="aa-sovtimer-campaigns-column aa-sovtimer-campaigns-column-adm">{% translate 'ADM' %}</th>
33
- <th class="aa-sovtimer-campaigns-column aa-sovtimer-campaigns-column-start-datetime">{% translate 'Start' %}</th>
34
- <th class="aa-sovtimer-campaigns-column aa-sovtimer-campaigns-column-remaining-time">{% translate 'Remaining' %}</th>
35
- <th class="aa-sovtimer-campaigns-column aa-sovtimer-column-campaigns-progress">{% translate 'Progress' %}</th>
27
+ <th class="aa-sovtimer-campaigns-column aa-sovtimer-campaigns-column-type">{% translate "Type" %}</th>
28
+ <th class="aa-sovtimer-campaigns-column aa-sovtimer-campaigns-column-system">{% translate "System" %}</th>
29
+ <th class="aa-sovtimer-campaigns-column aa-sovtimer-campaigns-column-constellation">{% translate "Constellation" %}</th>
30
+ <th class="aa-sovtimer-campaigns-column aa-sovtimer-campaigns-column-region">{% translate "Region" %}</th>
31
+ <th class="aa-sovtimer-campaigns-column aa-sovtimer-campaigns-column-defender">{% translate "Owner / Defender" %}</th>
32
+ <th class="aa-sovtimer-campaigns-column aa-sovtimer-campaigns-column-adm">{% translate "ADM" %}</th>
33
+ <th class="aa-sovtimer-campaigns-column aa-sovtimer-campaigns-column-start-datetime">{% translate "Start" %}</th>
34
+ <th class="aa-sovtimer-campaigns-column aa-sovtimer-campaigns-column-remaining-time">{% translate "Remaining" %}</th>
35
+ <th class="aa-sovtimer-campaigns-column aa-sovtimer-campaigns-column-progress">{% translate "Progress" %}</th>
36
36
  </tr>
37
37
  </thead>
38
38
 
@@ -1,43 +0,0 @@
1
- """
2
- Helper functions for static integrity calculations
3
- """
4
-
5
- # Standard Library
6
- import os
7
- from pathlib import Path
8
-
9
- # Third Party
10
- from sri import Algorithm, calculate_integrity
11
-
12
- # Alliance Auth
13
- from allianceauth.services.hooks import get_extension_logger
14
-
15
- # Alliance Auth (External Libs)
16
- from app_utils.logging import LoggerAddTag
17
-
18
- # AA Sovereignty Timer
19
- # AA Sov Timer
20
- from sovtimer import __title__
21
- from sovtimer.constants import APP_STATIC_DIR
22
-
23
- logger = LoggerAddTag(my_logger=get_extension_logger(__name__), prefix=__title__)
24
-
25
-
26
- def calculate_integrity_hash(relative_file_path: str) -> str:
27
- """
28
- Calculates the integrity hash for a given static file
29
-
30
- :param self:
31
- :type self:
32
- :param relative_file_path: The file path relative to the `{APP_NAME}/{PACKAGE_NAME}/static/{PACKAGE_NAME}` folder
33
- :type relative_file_path: str
34
- :return: The integrity hash
35
- :rtype: str
36
- """
37
-
38
- file_path = os.path.join(APP_STATIC_DIR, relative_file_path)
39
- integrity_hash = calculate_integrity(
40
- path=Path(file_path), algorithm=Algorithm.SHA512
41
- )
42
-
43
- return integrity_hash
@@ -1,3 +0,0 @@
1
- {% load sovtimer %}
2
-
3
- {% sovtimer_static "css/aa-sov-timer.min.css" %}
@@ -1,3 +0,0 @@
1
- {% load sovtimer %}
2
-
3
- {% sovtimer_static "js/aa-sov-timer.min.js" %}
@@ -1,3 +0,0 @@
1
- """
2
- Initialize the template tags
3
- """
@@ -1,86 +0,0 @@
1
- """
2
- Versioned static URLs to break browser caches when changing the app version
3
- """
4
-
5
- # Standard Library
6
- import os
7
-
8
- # Django
9
- from django.template.defaulttags import register
10
- from django.templatetags.static import static
11
- from django.utils.safestring import mark_safe
12
-
13
- # Alliance Auth
14
- from allianceauth.services.hooks import get_extension_logger
15
-
16
- # Alliance Auth (External Libs)
17
- from app_utils.logging import LoggerAddTag
18
-
19
- # AA Sovereignty Timer
20
- from sovtimer import __title__, __version__
21
- from sovtimer.app_settings import debug_enabled
22
- from sovtimer.constants import PACKAGE_NAME
23
- from sovtimer.helper.static_files import calculate_integrity_hash
24
-
25
- logger = LoggerAddTag(my_logger=get_extension_logger(__name__), prefix=__title__)
26
-
27
-
28
- @register.simple_tag
29
- def sovtimer_static(relative_file_path: str, script_type: str = None) -> str | None:
30
- """
31
- Versioned static URL
32
-
33
- :param relative_file_path: The file path relative to the `{APP_NAME}/{PACKAGE_NAME}/static/{PACKAGE_NAME}` folder
34
- :type relative_file_path: str
35
- :param script_type: The script type
36
- :type script_type: str
37
- :return: Versioned static URL
38
- :rtype: str
39
- """
40
-
41
- logger.debug(f"Getting versioned static URL for: {relative_file_path}")
42
-
43
- file_type = os.path.splitext(relative_file_path)[1][1:]
44
-
45
- logger.debug(f"File extension: {file_type}")
46
-
47
- # Only support CSS and JS files
48
- if file_type not in ["css", "js"]:
49
- raise ValueError(f"Unsupported file type: {file_type}")
50
-
51
- static_file_path = os.path.join(PACKAGE_NAME, relative_file_path)
52
- static_url = static(static_file_path)
53
-
54
- # Integrity hash calculation only for non-debug mode
55
- sri_string = (
56
- f' integrity="{calculate_integrity_hash(relative_file_path)}" crossorigin="anonymous"'
57
- if not debug_enabled()
58
- else ""
59
- )
60
-
61
- # Versioned URL for CSS and JS files
62
- # Add version query parameter to break browser caches when changing the app version
63
- # Do not add version query parameter for libs as they are already versioned through their file path
64
- versioned_url = (
65
- static_url
66
- if relative_file_path.startswith("libs/")
67
- else static_url + "?v=" + __version__
68
- )
69
-
70
- return_value = None
71
-
72
- # Return the versioned URL with integrity hash for CSS
73
- if file_type == "css":
74
- return_value = mark_safe(
75
- f'<link rel="stylesheet" href="{versioned_url}"{sri_string}>'
76
- )
77
-
78
- # Return the versioned URL with integrity hash for JS files
79
- if file_type == "js":
80
- js_type = f' type="{script_type}"' if script_type else ""
81
-
82
- return_value = mark_safe(
83
- f'<script{js_type} src="{versioned_url}"{sri_string}></script>'
84
- )
85
-
86
- return return_value
@@ -1,103 +0,0 @@
1
- """
2
- Test for the template tag sovtimer_static
3
- """
4
-
5
- # Django
6
- from django.template import Context, Template
7
- from django.test import TestCase, override_settings
8
-
9
- # AA Sovereignty Timer
10
- from sovtimer import __version__
11
- from sovtimer.constants import PACKAGE_NAME
12
- from sovtimer.helper.static_files import calculate_integrity_hash
13
-
14
-
15
- class TestVersionedStatic(TestCase):
16
- """
17
- Test `sovtimer_static` template tag
18
- """
19
-
20
- @override_settings(DEBUG=False)
21
- def test_versioned_static(self):
22
- """
23
- Test should return the versioned static
24
-
25
- :return:
26
- :rtype:
27
- """
28
-
29
- context = Context(dict_={"version": __version__})
30
- template_to_render = Template(
31
- template_string=(
32
- "{% load sovtimer %}"
33
- "{% sovtimer_static 'css/aa-sov-timer.min.css' %}"
34
- "{% sovtimer_static 'js/aa-sov-timer.min.js' %}"
35
- )
36
- )
37
-
38
- rendered_template = template_to_render.render(context=context)
39
-
40
- expected_static_css_src = (
41
- f'/static/{PACKAGE_NAME}/css/aa-sov-timer.min.css?v={context["version"]}'
42
- )
43
- expected_static_css_src_integrity = calculate_integrity_hash(
44
- "css/aa-sov-timer.min.css"
45
- )
46
- expected_static_js_src = (
47
- f'/static/{PACKAGE_NAME}/js/aa-sov-timer.min.js?v={context["version"]}'
48
- )
49
- expected_static_js_src_integrity = calculate_integrity_hash(
50
- "js/aa-sov-timer.min.js"
51
- )
52
-
53
- self.assertIn(member=expected_static_css_src, container=rendered_template)
54
- self.assertIn(
55
- member=expected_static_css_src_integrity, container=rendered_template
56
- )
57
- self.assertIn(member=expected_static_js_src, container=rendered_template)
58
- self.assertIn(
59
- member=expected_static_js_src_integrity, container=rendered_template
60
- )
61
-
62
- @override_settings(DEBUG=True)
63
- def test_versioned_static_with_debug_enabled(self) -> None:
64
- """
65
- Test versioned static template tag with DEBUG enabled
66
-
67
- :return:
68
- :rtype:
69
- """
70
-
71
- context = Context({"version": __version__})
72
- template_to_render = Template(
73
- template_string=(
74
- "{% load sovtimer %}" "{% sovtimer_static 'css/aa-sov-timer.min.css' %}"
75
- )
76
- )
77
-
78
- rendered_template = template_to_render.render(context=context)
79
-
80
- expected_static_css_src = (
81
- f'/static/{PACKAGE_NAME}/css/aa-sov-timer.min.css?v={context["version"]}'
82
- )
83
-
84
- self.assertIn(member=expected_static_css_src, container=rendered_template)
85
- self.assertNotIn(member="integrity=", container=rendered_template)
86
-
87
- def test_invalid_file_type(self) -> None:
88
- """
89
- Test should raise a ValueError for an invalid file type
90
-
91
- :return:
92
- :rtype:
93
- """
94
-
95
- context = Context({"version": __version__})
96
- template_to_render = Template(
97
- template_string=(
98
- "{% load sovtimer %}" "{% sovtimer_static 'invalid/invalid.txt' %}"
99
- )
100
- )
101
-
102
- with self.assertRaises(ValueError):
103
- template_to_render.render(context=context)
File without changes
File without changes