aa-sov-timer 2.6.2__tar.gz → 3.0.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 (130) hide show
  1. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/.gitignore +3 -0
  2. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/PKG-INFO +18 -14
  3. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/README.md +9 -9
  4. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/pyproject.toml +11 -4
  5. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/__init__.py +5 -3
  6. aa_sov_timer-3.0.0/sovtimer/apps.py +22 -0
  7. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/auth_hooks.py +7 -6
  8. aa_sov_timer-3.0.0/sovtimer/constants.py +7 -0
  9. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/locale/cs_CZ/LC_MESSAGES/django.po +40 -53
  10. aa_sov_timer-3.0.0/sovtimer/locale/de/LC_MESSAGES/django.mo +0 -0
  11. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/locale/de/LC_MESSAGES/django.po +77 -68
  12. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/locale/django.pot +43 -56
  13. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/locale/es/LC_MESSAGES/django.po +78 -69
  14. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/locale/fr_FR/LC_MESSAGES/django.po +72 -66
  15. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/locale/it_IT/LC_MESSAGES/django.po +43 -53
  16. aa_sov_timer-3.0.0/sovtimer/locale/ja/LC_MESSAGES/django.mo +0 -0
  17. aa_sov_timer-3.0.0/sovtimer/locale/ja/LC_MESSAGES/django.po +164 -0
  18. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/locale/ko_KR/LC_MESSAGES/django.po +80 -74
  19. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/locale/nl_NL/LC_MESSAGES/django.po +40 -53
  20. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/locale/pl_PL/LC_MESSAGES/django.po +45 -58
  21. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/locale/ru/LC_MESSAGES/django.po +78 -72
  22. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/locale/sk/LC_MESSAGES/django.po +40 -53
  23. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/locale/uk/LC_MESSAGES/django.mo +0 -0
  24. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/locale/uk/LC_MESSAGES/django.po +74 -68
  25. aa_sov_timer-3.0.0/sovtimer/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  26. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/locale/zh_Hans/LC_MESSAGES/django.po +59 -65
  27. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/management/commands/sovtimer_load_initial_data.py +2 -2
  28. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/models.py +58 -21
  29. aa_sov_timer-3.0.0/sovtimer/providers.py +25 -0
  30. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/static/sovtimer/css/aa-sov-timer.css +23 -8
  31. aa_sov_timer-3.0.0/sovtimer/static/sovtimer/css/aa-sov-timer.min.css +2 -0
  32. aa_sov_timer-3.0.0/sovtimer/static/sovtimer/css/aa-sov-timer.min.css.map +1 -0
  33. aa_sov_timer-3.0.0/sovtimer/static/sovtimer/js/aa-sov-timer.js +263 -0
  34. aa_sov_timer-3.0.0/sovtimer/static/sovtimer/js/aa-sov-timer.min.js +2 -0
  35. aa_sov_timer-3.0.0/sovtimer/static/sovtimer/js/aa-sov-timer.min.js.map +1 -0
  36. aa_sov_timer-3.0.0/sovtimer/static/sovtimer/libs/DataTables/2.3.4/dataTables.bootstrap5.css +610 -0
  37. aa_sov_timer-3.0.0/sovtimer/static/sovtimer/libs/DataTables/2.3.4/dataTables.bootstrap5.js +123 -0
  38. aa_sov_timer-3.0.0/sovtimer/static/sovtimer/libs/DataTables/2.3.4/dataTables.bootstrap5.min.css +8 -0
  39. aa_sov_timer-3.0.0/sovtimer/static/sovtimer/libs/DataTables/2.3.4/dataTables.bootstrap5.min.css.map +1 -0
  40. aa_sov_timer-3.0.0/sovtimer/static/sovtimer/libs/DataTables/2.3.4/dataTables.bootstrap5.min.js +6 -0
  41. aa_sov_timer-3.0.0/sovtimer/static/sovtimer/libs/DataTables/2.3.4/dataTables.bootstrap5.min.js.map +1 -0
  42. aa_sov_timer-3.0.0/sovtimer/static/sovtimer/libs/DataTables/2.3.4/datatables.min.js +10 -0
  43. aa_sov_timer-3.0.0/sovtimer/static/sovtimer/libs/DataTables/2.3.4/datatables.min.js.map +1 -0
  44. aa_sov_timer-3.0.0/sovtimer/static/sovtimer/libs/DataTables/Extensions/ColumnControl/1.1.1/css/columnControl.bootstrap5.css +516 -0
  45. aa_sov_timer-3.0.0/sovtimer/static/sovtimer/libs/DataTables/Extensions/ColumnControl/1.1.1/css/columnControl.bootstrap5.min.css +2 -0
  46. aa_sov_timer-3.0.0/sovtimer/static/sovtimer/libs/DataTables/Extensions/ColumnControl/1.1.1/css/columnControl.bootstrap5.min.css.map +1 -0
  47. aa_sov_timer-3.0.0/sovtimer/static/sovtimer/libs/DataTables/Extensions/ColumnControl/1.1.1/js/columnControl.bootstrap5.js +73 -0
  48. aa_sov_timer-3.0.0/sovtimer/static/sovtimer/libs/DataTables/Extensions/ColumnControl/1.1.1/js/columnControl.bootstrap5.min.js +6 -0
  49. aa_sov_timer-3.0.0/sovtimer/static/sovtimer/libs/DataTables/Extensions/ColumnControl/1.1.1/js/columnControl.bootstrap5.min.js.map +1 -0
  50. aa_sov_timer-3.0.0/sovtimer/static/sovtimer/libs/DataTables/Extensions/ColumnControl/1.1.1/js/dataTables.columnControl.js +3091 -0
  51. aa_sov_timer-3.0.0/sovtimer/static/sovtimer/libs/DataTables/Extensions/ColumnControl/1.1.1/js/dataTables.columnControl.min.js +10 -0
  52. aa_sov_timer-3.0.0/sovtimer/static/sovtimer/libs/DataTables/Extensions/ColumnControl/1.1.1/js/dataTables.columnControl.min.js.map +1 -0
  53. aa_sov_timer-3.0.0/sovtimer/static/sovtimer/libs/DataTables/Extensions/FixedHeader/4.0.4/css/fixedHeader.bootstrap5.css +20 -0
  54. aa_sov_timer-3.0.0/sovtimer/static/sovtimer/libs/DataTables/Extensions/FixedHeader/4.0.4/css/fixedHeader.bootstrap5.min.css +2 -0
  55. aa_sov_timer-3.0.0/sovtimer/static/sovtimer/libs/DataTables/Extensions/FixedHeader/4.0.4/css/fixedHeader.bootstrap5.min.css.map +1 -0
  56. aa_sov_timer-3.0.0/sovtimer/static/sovtimer/libs/DataTables/Extensions/FixedHeader/4.0.4/js/dataTables.fixedHeader.js +1203 -0
  57. aa_sov_timer-3.0.0/sovtimer/static/sovtimer/libs/DataTables/Extensions/FixedHeader/4.0.4/js/dataTables.fixedHeader.min.js +6 -0
  58. aa_sov_timer-3.0.0/sovtimer/static/sovtimer/libs/DataTables/Extensions/FixedHeader/4.0.4/js/dataTables.fixedHeader.min.js.map +1 -0
  59. aa_sov_timer-3.0.0/sovtimer/static/sovtimer/libs/DataTables/Extensions/FixedHeader/4.0.4/js/fixedHeader.bootstrap5.js +59 -0
  60. aa_sov_timer-3.0.0/sovtimer/static/sovtimer/libs/DataTables/Extensions/FixedHeader/4.0.4/js/fixedHeader.bootstrap5.min.js +6 -0
  61. aa_sov_timer-3.0.0/sovtimer/static/sovtimer/libs/DataTables/Extensions/FixedHeader/4.0.4/js/fixedHeader.bootstrap5.min.js.map +1 -0
  62. aa_sov_timer-3.0.0/sovtimer/tasks.py +258 -0
  63. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/templates/sovtimer/base.html +28 -0
  64. aa_sov_timer-3.0.0/sovtimer/templates/sovtimer/bundles/datatables-2-css.html +11 -0
  65. aa_sov_timer-3.0.0/sovtimer/templates/sovtimer/bundles/datatables-2-js.html +14 -0
  66. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/templates/sovtimer/dashboard.html +2 -16
  67. aa_sov_timer-3.0.0/sovtimer/templates/sovtimer/partials/common/spinner.html +9 -0
  68. aa_sov_timer-3.0.0/sovtimer/templates/sovtimer/partials/dashboard/table.html +85 -0
  69. aa_sov_timer-3.0.0/sovtimer/tests/__init__.py +41 -0
  70. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/tests/fixtures/sovtimer.json +30 -9
  71. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/tests/test_ajax_calls.py +54 -26
  72. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/tests/test_app_settings.py +3 -2
  73. aa_sov_timer-3.0.0/sovtimer/tests/test_model_campaign.py +100 -0
  74. aa_sov_timer-3.0.0/sovtimer/tests/test_model_sovereignty_structures.py +100 -0
  75. aa_sov_timer-3.0.0/sovtimer/tests/test_tasks.py +601 -0
  76. aa_sov_timer-3.0.0/sovtimer/tests/test_user_agent.py +89 -0
  77. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/urls.py +1 -1
  78. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/views.py +3 -3
  79. aa_sov_timer-2.6.2/sovtimer/apps.py +0 -20
  80. aa_sov_timer-2.6.2/sovtimer/constants.py +0 -6
  81. aa_sov_timer-2.6.2/sovtimer/locale/de/LC_MESSAGES/django.mo +0 -0
  82. aa_sov_timer-2.6.2/sovtimer/locale/ja/LC_MESSAGES/django.mo +0 -0
  83. aa_sov_timer-2.6.2/sovtimer/locale/ja/LC_MESSAGES/django.po +0 -156
  84. aa_sov_timer-2.6.2/sovtimer/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  85. aa_sov_timer-2.6.2/sovtimer/providers.py +0 -14
  86. aa_sov_timer-2.6.2/sovtimer/static/sovtimer/css/aa-sov-timer.min.css +0 -2
  87. aa_sov_timer-2.6.2/sovtimer/static/sovtimer/css/aa-sov-timer.min.css.map +0 -1
  88. aa_sov_timer-2.6.2/sovtimer/static/sovtimer/js/aa-sov-timer.js +0 -308
  89. aa_sov_timer-2.6.2/sovtimer/static/sovtimer/js/aa-sov-timer.min.js +0 -2
  90. aa_sov_timer-2.6.2/sovtimer/static/sovtimer/js/aa-sov-timer.min.js.map +0 -1
  91. aa_sov_timer-2.6.2/sovtimer/tasks.py +0 -273
  92. aa_sov_timer-2.6.2/sovtimer/templates/sovtimer/partials/dashboard/table.html +0 -41
  93. aa_sov_timer-2.6.2/sovtimer/tests/__init__.py +0 -3
  94. aa_sov_timer-2.6.2/sovtimer/tests/test_user_agent.py +0 -40
  95. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/LICENSE +0 -0
  96. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/app_settings.py +0 -0
  97. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/locale/.gitkeep +0 -0
  98. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
  99. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/locale/es/LC_MESSAGES/django.mo +0 -0
  100. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/locale/fr_FR/LC_MESSAGES/django.mo +0 -0
  101. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/locale/it_IT/LC_MESSAGES/django.mo +0 -0
  102. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/locale/ko_KR/LC_MESSAGES/django.mo +0 -0
  103. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/locale/nl_NL/LC_MESSAGES/django.mo +0 -0
  104. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
  105. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/locale/ru/LC_MESSAGES/django.mo +0 -0
  106. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/locale/sk/LC_MESSAGES/django.mo +0 -0
  107. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/management/commands/__init__.py +0 -0
  108. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/migrations/0001_initial.py +0 -0
  109. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/migrations/0002_aasovtimercampaigns_aasovtimerstructures.py +0 -0
  110. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/migrations/0003_auto_20201113_1033.py +0 -0
  111. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/migrations/0004_auto_20201113_1856.py +0 -0
  112. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/migrations/0005_auto_20201114_0720.py +0 -0
  113. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/migrations/0006_rename_models.py +0 -0
  114. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/migrations/0007_cleanup_models.py +0 -0
  115. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/migrations/0008_fix_campaign_attackers_score.py +0 -0
  116. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/migrations/0009_alter_campaign_options_and_more.py +0 -0
  117. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/migrations/0010_alter_campaign_event_type.py +0 -0
  118. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/migrations/__init__.py +0 -0
  119. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/static/sovtimer/font/materialicons/v143/MaterialIcons-Regular.woff2 +0 -0
  120. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/static/sovtimer/font/materialicons/v143/README.md +0 -0
  121. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/static/sovtimer/images/zkillboard.png +0 -0
  122. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/templates/sovtimer/bundles/aa-sov-timer-css.html +0 -0
  123. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/templates/sovtimer/bundles/aa-sov-timer-js.html +0 -0
  124. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/templates/sovtimer/partials/footer/app-translation-footer.html +0 -0
  125. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/tests/fixtures/allianceauth.json +0 -0
  126. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/tests/fixtures/load_allianceauth.py +0 -0
  127. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/tests/fixtures/load_sovtimer.py +0 -0
  128. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/tests/fixtures/utils.py +0 -0
  129. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/tests/test_integration.py +0 -0
  130. {aa_sov_timer-2.6.2 → aa_sov_timer-3.0.0}/sovtimer/tests/utils.py +0 -0
@@ -18,3 +18,6 @@ alliance_auth.sqlite3
18
18
  /sovtimer/locale/en/
19
19
  .esi-compatibility-date
20
20
  .make/myauth-path
21
+
22
+ .esi-compatibility-date
23
+ .make/myauth-path
@@ -1,13 +1,15 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aa-sov-timer
3
- Version: 2.6.2
3
+ Version: 3.0.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
+ Project-URL: Codecov, https://codecov.io/gh/ppfeufer/aa-sov-timer
7
+ Project-URL: Discord, https://discord.gg/fjnHAmk
6
8
  Project-URL: Documentation, https://github.com/ppfeufer/aa-sov-timer/blob/master/README.md
7
- Project-URL: Donations, https://ko-fi.com/ppfeufer
8
- Project-URL: Homepage, https://github.com/ppfeufer/aa-sov-timer
9
- Project-URL: Source, https://github.com/ppfeufer/aa-sov-timer.git
9
+ Project-URL: Donation, https://ko-fi.com/ppfeufer
10
+ Project-URL: GitHub, https://github.com/ppfeufer/aa-sov-timer
10
11
  Project-URL: Tracker, https://github.com/ppfeufer/aa-sov-timer/issues
12
+ Project-URL: Translation, https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-sov-timer/
11
13
  Author-email: Peter Pfeufer <develop@ppfeufer.de>
12
14
  License: GNU GENERAL PUBLIC LICENSE
13
15
  Version 3, 29 June 2007
@@ -699,13 +701,15 @@ Classifier: Programming Language :: Python :: 3.12
699
701
  Classifier: Programming Language :: Python :: 3.13
700
702
  Classifier: Topic :: Internet :: WWW/HTTP
701
703
  Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
702
- Requires-Python: >=3.10
704
+ Requires-Python: <3.14,>=3.10
703
705
  Requires-Dist: allianceauth-app-utils>=1.25
704
706
  Requires-Dist: allianceauth<5,>=4.9
707
+ Requires-Dist: django-esi<9,>=8
705
708
  Requires-Dist: django-eveuniverse>=1.5.4
706
709
  Provides-Extra: tests-allianceauth-latest
707
710
  Requires-Dist: coverage; extra == 'tests-allianceauth-latest'
708
711
  Requires-Dist: django-webtest; extra == 'tests-allianceauth-latest'
712
+ Requires-Dist: requests-mock; extra == 'tests-allianceauth-latest'
709
713
  Description-Content-Type: text/markdown
710
714
 
711
715
  # AA Sovereignty Timer<a name="aa-sovereignty-timer"></a>
@@ -721,7 +725,7 @@ Description-Content-Type: text/markdown
721
725
  [![codecov](https://codecov.io/gh/ppfeufer/aa-sov-timer/branch/master/graph/badge.svg?token=J9PBF0HM8C "codecov")](https://codecov.io/gh/ppfeufer/aa-sov-timer)
722
726
  [![Translation status](https://weblate.ppfeufer.de/widget/alliance-auth-apps/aa-sov-timer/svg-badge.svg)](https://weblate.ppfeufer.de/engage/alliance-auth-apps/)
723
727
  [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg "Contributor Covenant")](https://github.com/ppfeufer/aa-sov-timer/blob/master/CODE_OF_CONDUCT.md)
724
- [![Discord](https://img.shields.io/discord/790364535294132234?label=discord "Discord")](https://discord.gg/zmh52wnfvM)
728
+ [![Discord](https://img.shields.io/discord/399006117012832262?label=discord)](https://discord.gg/fjnHAmk)
725
729
 
726
730
  [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/N4N8CL1BY)
727
731
 
@@ -734,7 +738,7 @@ ______________________________________________________________________
734
738
  - [Screenshots](#screenshots)
735
739
  - [AA Sov Timer Dashboard](#aa-sov-timer-dashboard)
736
740
  - [Installation](#installation)
737
- - [Bare Metaal Installation](#bare-metaal-installation)
741
+ - [Bare Metal Installation](#bare-metal-installation)
738
742
  - [Step 1: Installing the App](#step-1-installing-the-app)
739
743
  - [Step 2: Update Your AA Settings](#step-2-update-your-aa-settings)
740
744
  - [Step 3: Finalizing the Installation](#step-3-finalizing-the-installation)
@@ -747,7 +751,7 @@ ______________________________________________________________________
747
751
  - [Step 3: Build Auth and Restart Your Containers](#step-3-build-auth-and-restart-your-containers)
748
752
  - [Step 4: Finalizing the Installation](#step-4-finalizing-the-installation)
749
753
  - [Updating](#updating)
750
- - [Bare Metal Installation](#bare-metal-installation)
754
+ - [Bare Metal Installation](#bare-metal-installation-1)
751
755
  - [Docker Installation](#docker-installation-1)
752
756
  - [Common Steps](#common-steps)
753
757
  - [Changelog](#changelog)
@@ -776,7 +780,7 @@ ______________________________________________________________________
776
780
  - AA Sovereignty Timer needs the app [django-eveuniverse](https://gitlab.com/ErikKalkoken/django-eveuniverse)
777
781
  to function. Please make sure it is installed before continuing.
778
782
 
779
- ### Bare Metaal Installation<a name="bare-metaal-installation"></a>
783
+ ### Bare Metal Installation<a name="bare-metal-installation"></a>
780
784
 
781
785
  #### Step 1: Installing the App<a name="step-1-installing-the-app"></a>
782
786
 
@@ -784,7 +788,7 @@ Make sure you're in the virtual environment (venv) of your Alliance Auth install
784
788
  Then install the latest version:
785
789
 
786
790
  ```shell
787
- pip install aa-sov-timer==2.6.2
791
+ pip install aa-sov-timer==3.0.0
788
792
  ```
789
793
 
790
794
  #### Step 2: Update Your AA Settings<a name="step-2-update-your-aa-settings"></a>
@@ -845,7 +849,7 @@ Now your system is updating the sovereignty campaigns every 30 seconds.
845
849
  Add the app to your `conf/requirements.txt`:
846
850
 
847
851
  ```text
848
- aa-sov-timer==2.6.2
852
+ aa-sov-timer==3.0.0
849
853
  ```
850
854
 
851
855
  #### Step 2: Update Your AA Settings<a name="step-2-update-your-aa-settings-1"></a>
@@ -887,7 +891,7 @@ auth sovtimer_load_initial_data
887
891
 
888
892
  ## Updating<a name="updating"></a>
889
893
 
890
- ### Bare Metal Installation<a name="bare-metal-installation"></a>
894
+ ### Bare Metal Installation<a name="bare-metal-installation-1"></a>
891
895
 
892
896
  To update your existing installation of AA Sovereignty Timer, first enable your
893
897
  virtual environment.
@@ -896,7 +900,7 @@ Then run the following commands from your AA project directory (the one that
896
900
  contains `manage.py`).
897
901
 
898
902
  ```shell
899
- pip install aa-sov-timer==2.6.2
903
+ pip install aa-sov-timer==3.0.0
900
904
 
901
905
  python manage.py collectstatic
902
906
  python manage.py migrate
@@ -909,7 +913,7 @@ Finally, restart your AA supervisor service.
909
913
  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.
910
914
 
911
915
  ```text
912
- aa-sov-timer==2.6.2
916
+ aa-sov-timer==3.0.0
913
917
  ```
914
918
 
915
919
  Now rebuild your containers and restart them:
@@ -11,7 +11,7 @@
11
11
  [![codecov](https://codecov.io/gh/ppfeufer/aa-sov-timer/branch/master/graph/badge.svg?token=J9PBF0HM8C "codecov")](https://codecov.io/gh/ppfeufer/aa-sov-timer)
12
12
  [![Translation status](https://weblate.ppfeufer.de/widget/alliance-auth-apps/aa-sov-timer/svg-badge.svg)](https://weblate.ppfeufer.de/engage/alliance-auth-apps/)
13
13
  [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg "Contributor Covenant")](https://github.com/ppfeufer/aa-sov-timer/blob/master/CODE_OF_CONDUCT.md)
14
- [![Discord](https://img.shields.io/discord/790364535294132234?label=discord "Discord")](https://discord.gg/zmh52wnfvM)
14
+ [![Discord](https://img.shields.io/discord/399006117012832262?label=discord)](https://discord.gg/fjnHAmk)
15
15
 
16
16
  [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/N4N8CL1BY)
17
17
 
@@ -24,7 +24,7 @@ ______________________________________________________________________
24
24
  - [Screenshots](#screenshots)
25
25
  - [AA Sov Timer Dashboard](#aa-sov-timer-dashboard)
26
26
  - [Installation](#installation)
27
- - [Bare Metaal Installation](#bare-metaal-installation)
27
+ - [Bare Metal Installation](#bare-metal-installation)
28
28
  - [Step 1: Installing the App](#step-1-installing-the-app)
29
29
  - [Step 2: Update Your AA Settings](#step-2-update-your-aa-settings)
30
30
  - [Step 3: Finalizing the Installation](#step-3-finalizing-the-installation)
@@ -37,7 +37,7 @@ ______________________________________________________________________
37
37
  - [Step 3: Build Auth and Restart Your Containers](#step-3-build-auth-and-restart-your-containers)
38
38
  - [Step 4: Finalizing the Installation](#step-4-finalizing-the-installation)
39
39
  - [Updating](#updating)
40
- - [Bare Metal Installation](#bare-metal-installation)
40
+ - [Bare Metal Installation](#bare-metal-installation-1)
41
41
  - [Docker Installation](#docker-installation-1)
42
42
  - [Common Steps](#common-steps)
43
43
  - [Changelog](#changelog)
@@ -66,7 +66,7 @@ ______________________________________________________________________
66
66
  - AA Sovereignty Timer needs the app [django-eveuniverse](https://gitlab.com/ErikKalkoken/django-eveuniverse)
67
67
  to function. Please make sure it is installed before continuing.
68
68
 
69
- ### Bare Metaal Installation<a name="bare-metaal-installation"></a>
69
+ ### Bare Metal Installation<a name="bare-metal-installation"></a>
70
70
 
71
71
  #### Step 1: Installing the App<a name="step-1-installing-the-app"></a>
72
72
 
@@ -74,7 +74,7 @@ Make sure you're in the virtual environment (venv) of your Alliance Auth install
74
74
  Then install the latest version:
75
75
 
76
76
  ```shell
77
- pip install aa-sov-timer==2.6.2
77
+ pip install aa-sov-timer==3.0.0
78
78
  ```
79
79
 
80
80
  #### Step 2: Update Your AA Settings<a name="step-2-update-your-aa-settings"></a>
@@ -135,7 +135,7 @@ Now your system is updating the sovereignty campaigns every 30 seconds.
135
135
  Add the app to your `conf/requirements.txt`:
136
136
 
137
137
  ```text
138
- aa-sov-timer==2.6.2
138
+ aa-sov-timer==3.0.0
139
139
  ```
140
140
 
141
141
  #### Step 2: Update Your AA Settings<a name="step-2-update-your-aa-settings-1"></a>
@@ -177,7 +177,7 @@ auth sovtimer_load_initial_data
177
177
 
178
178
  ## Updating<a name="updating"></a>
179
179
 
180
- ### Bare Metal Installation<a name="bare-metal-installation"></a>
180
+ ### Bare Metal Installation<a name="bare-metal-installation-1"></a>
181
181
 
182
182
  To update your existing installation of AA Sovereignty Timer, first enable your
183
183
  virtual environment.
@@ -186,7 +186,7 @@ Then run the following commands from your AA project directory (the one that
186
186
  contains `manage.py`).
187
187
 
188
188
  ```shell
189
- pip install aa-sov-timer==2.6.2
189
+ pip install aa-sov-timer==3.0.0
190
190
 
191
191
  python manage.py collectstatic
192
192
  python manage.py migrate
@@ -199,7 +199,7 @@ Finally, restart your AA supervisor service.
199
199
  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.
200
200
 
201
201
  ```text
202
- aa-sov-timer==2.6.2
202
+ aa-sov-timer==3.0.0
203
203
  ```
204
204
 
205
205
  Now rebuild your containers and restart them:
@@ -18,7 +18,7 @@ license = { file = "LICENSE" }
18
18
  authors = [
19
19
  { name = "Peter Pfeufer", email = "develop@ppfeufer.de" },
20
20
  ]
21
- requires-python = ">=3.10"
21
+ requires-python = ">=3.10,<3.14"
22
22
  classifiers = [
23
23
  "Environment :: Web Environment",
24
24
  "Framework :: Django",
@@ -41,18 +41,22 @@ dynamic = [
41
41
  dependencies = [
42
42
  "allianceauth>=4.9,<5",
43
43
  "allianceauth-app-utils>=1.25",
44
+ "django-esi>=8,<9",
44
45
  "django-eveuniverse>=1.5.4",
45
46
  ]
46
47
  optional-dependencies.tests-allianceauth-latest = [
47
48
  "coverage",
48
49
  "django-webtest",
50
+ "requests-mock",
49
51
  ]
50
52
  urls.Changelog = "https://github.com/ppfeufer/aa-sov-timer/blob/master/CHANGELOG.md"
53
+ urls.Codecov = "https://codecov.io/gh/ppfeufer/aa-sov-timer"
54
+ urls.Discord = "https://discord.gg/fjnHAmk"
51
55
  urls.Documentation = "https://github.com/ppfeufer/aa-sov-timer/blob/master/README.md"
52
- urls.Donations = "https://ko-fi.com/ppfeufer"
53
- urls.Homepage = "https://github.com/ppfeufer/aa-sov-timer"
54
- urls.Source = "https://github.com/ppfeufer/aa-sov-timer.git"
56
+ urls.Donation = "https://ko-fi.com/ppfeufer"
57
+ urls.GitHub = "https://github.com/ppfeufer/aa-sov-timer"
55
58
  urls.Tracker = "https://github.com/ppfeufer/aa-sov-timer/issues"
59
+ urls.Translation = "https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-sov-timer/"
56
60
 
57
61
  [tool.hatch.build]
58
62
  include = [
@@ -61,3 +65,6 @@ include = [
61
65
 
62
66
  [tool.hatch.version]
63
67
  path = "sovtimer/__init__.py"
68
+
69
+ [tool.hatch.metadata]
70
+ allow-direct-references = true
@@ -5,12 +5,14 @@ App init
5
5
  # Django
6
6
  from django.utils.translation import gettext_lazy as _
7
7
 
8
- __version__ = "2.6.2"
9
- __title__ = _("Sovereignty Timers")
8
+ __version__ = "3.0.0"
9
+ __title__ = "Sovereignty Timer"
10
+ __title_translated__ = _("Sovereignty Timer")
11
+
12
+ __esi_compatibility_date__ = "2025-11-06"
10
13
 
11
14
  __package_name__ = "aa-sov-timer"
12
15
  __app_name__ = "sovtimer"
13
16
  __app_name_verbose__ = "AA Sovereignty Timer"
14
- __app_name_useragent__ = "AA-Sovereignty-Timer"
15
17
 
16
18
  __github_url__ = f"https://github.com/ppfeufer/{__package_name__}"
@@ -0,0 +1,22 @@
1
+ """
2
+ App config
3
+ """
4
+
5
+ # Django
6
+ from django.apps import AppConfig
7
+ from django.utils.text import format_lazy
8
+
9
+ # AA Sovereignty Timer
10
+ from sovtimer import __title_translated__, __version__
11
+
12
+
13
+ class AaSovtimerConfig(AppConfig):
14
+ """
15
+ Application config
16
+ """
17
+
18
+ name = "sovtimer"
19
+ label = "sovtimer"
20
+ verbose_name = format_lazy(
21
+ "{app_title} v{version}", app_title=__title_translated__, version=__version__
22
+ )
@@ -7,7 +7,7 @@ from allianceauth import hooks
7
7
  from allianceauth.services.hooks import MenuItemHook, UrlHook
8
8
 
9
9
  # AA Sovereignty Timer
10
- from sovtimer import __title__, urls
10
+ from sovtimer import __title_translated__, urls
11
11
 
12
12
 
13
13
  class AaSovtimerMenuItem(MenuItemHook): # pylint: disable=too-few-public-methods
@@ -19,7 +19,7 @@ class AaSovtimerMenuItem(MenuItemHook): # pylint: disable=too-few-public-method
19
19
  # Setup menu entry for sidebar
20
20
  MenuItemHook.__init__(
21
21
  self,
22
- text=__title__,
22
+ text=__title_translated__,
23
23
  classes="fa-regular fa-clock",
24
24
  url_name="sovtimer:dashboard",
25
25
  navactive=["sovtimer:"],
@@ -33,10 +33,11 @@ class AaSovtimerMenuItem(MenuItemHook): # pylint: disable=too-few-public-method
33
33
  :return:
34
34
  """
35
35
 
36
- if request.user.has_perm(perm="sovtimer.basic_access"):
37
- return MenuItemHook.render(self, request=request)
38
-
39
- return ""
36
+ return (
37
+ MenuItemHook.render(self, request=request)
38
+ if request.user.has_perm("sovtimer.basic_access")
39
+ else ""
40
+ )
40
41
 
41
42
 
42
43
  @hooks.register("menu_item_hook")
@@ -0,0 +1,7 @@
1
+ """
2
+ Constants we use throughout the app
3
+ """
4
+
5
+ # Prefix used for all internal URLs within the application.
6
+ # This ensures that internal URLs are easily distinguishable.
7
+ INTERNAL_URL_PREFIX = "-"
@@ -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-10-07 11:47+0200\n"
9
+ "POT-Creation-Date: 2025-11-12 03:15+0100\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,118 +17,105 @@ 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:9
21
- msgid "Sovereignty Timers"
22
- msgstr ""
23
-
24
- #: sovtimer/apps.py:20
25
- #, python-brace-format
26
- msgid "Sovereignty Timer v{__version__}"
27
- msgstr ""
28
-
29
- #: sovtimer/models.py:33 sovtimer/templates/sovtimer/base.html:7
20
+ #: sovtimer/__init__.py:10 sovtimer/models.py:37
21
+ #: sovtimer/templates/sovtimer/base.html:7
30
22
  #: sovtimer/templates/sovtimer/base.html:11
31
23
  msgid "Sovereignty Timer"
32
24
  msgstr ""
33
25
 
34
- #: sovtimer/models.py:36
26
+ #: sovtimer/models.py:40
35
27
  msgid "Can access the Sovereignty Timer module"
36
28
  msgstr ""
37
29
 
38
- #: sovtimer/models.py:73
30
+ #: sovtimer/models.py:77
39
31
  msgid "Sovereignty structure"
40
32
  msgstr ""
41
33
 
42
- #: sovtimer/models.py:74
34
+ #: sovtimer/models.py:78
43
35
  msgid "Sovereignty structures"
44
36
  msgstr ""
45
37
 
46
- #: sovtimer/models.py:111
38
+ #: sovtimer/models.py:135
47
39
  msgid "Sov Hub defense"
48
40
  msgstr ""
49
41
 
50
- #: sovtimer/models.py:112
42
+ #: sovtimer/models.py:136
51
43
  msgid "TCU defense"
52
44
  msgstr ""
53
45
 
54
- #: sovtimer/models.py:138
46
+ #: sovtimer/models.py:162
55
47
  msgid "Sovereignty campaign"
56
48
  msgstr ""
57
49
 
58
- #: sovtimer/models.py:139
50
+ #: sovtimer/models.py:163
59
51
  msgid "Sovereignty campaigns"
60
52
  msgstr ""
61
53
 
62
- #: sovtimer/templates/sovtimer/dashboard.html:15
63
- #: sovtimer/templates/sovtimer/partials/dashboard/table.html:25
64
- msgid "Type"
54
+ #: sovtimer/templates/sovtimer/dashboard.html:15 sovtimer/views.py:163
55
+ msgid "Yes"
65
56
  msgstr ""
66
57
 
67
- #: sovtimer/templates/sovtimer/dashboard.html:16
68
- #: sovtimer/templates/sovtimer/partials/dashboard/table.html:26
69
- msgid "System"
58
+ #: sovtimer/templates/sovtimer/dashboard.html:16 sovtimer/views.py:161
59
+ msgid "No"
70
60
  msgstr ""
71
61
 
72
- #: sovtimer/templates/sovtimer/dashboard.html:17
73
- #: sovtimer/templates/sovtimer/partials/dashboard/table.html:27
74
- msgid "Constellation"
62
+ #: sovtimer/templates/sovtimer/partials/common/spinner.html:8
63
+ msgid "Loading …"
75
64
  msgstr ""
76
65
 
77
- #: sovtimer/templates/sovtimer/dashboard.html:18
78
- #: sovtimer/templates/sovtimer/partials/dashboard/table.html:28
79
- msgid "Region"
66
+ #: sovtimer/templates/sovtimer/partials/dashboard/table.html:6
67
+ msgid "Sovereignty campaign list"
80
68
  msgstr ""
81
69
 
82
- #: sovtimer/templates/sovtimer/dashboard.html:19
83
- #: sovtimer/templates/sovtimer/partials/dashboard/table.html:29
84
- msgid "Owner / Defender"
70
+ #: sovtimer/templates/sovtimer/partials/dashboard/table.html:16
71
+ msgid "Total"
85
72
  msgstr ""
86
73
 
87
- #: sovtimer/templates/sovtimer/dashboard.html:20
88
- msgid "Active campaign"
74
+ #: sovtimer/templates/sovtimer/partials/dashboard/table.html:30
75
+ msgid "Upcoming"
89
76
  msgstr ""
90
77
 
91
- #: sovtimer/templates/sovtimer/dashboard.html:21 sovtimer/views.py:163
92
- msgid "Yes"
78
+ #: sovtimer/templates/sovtimer/partials/dashboard/table.html:31
79
+ msgid "< 4hrs"
93
80
  msgstr ""
94
81
 
95
- #: sovtimer/templates/sovtimer/dashboard.html:22 sovtimer/views.py:161
96
- msgid "No"
82
+ #: sovtimer/templates/sovtimer/partials/dashboard/table.html:45
83
+ msgid "Active"
97
84
  msgstr ""
98
85
 
99
- #: sovtimer/templates/sovtimer/partials/dashboard/table.html:6
100
- msgid "Sovereignty campaign list"
86
+ #: sovtimer/templates/sovtimer/partials/dashboard/table.html:57
87
+ msgid "The campaign list is automatically updated every 30 seconds. Progress for any active campaigns will be shown as <i>Previous - Trend - Current</i>."
101
88
  msgstr ""
102
89
 
103
- #: sovtimer/templates/sovtimer/partials/dashboard/table.html:12
104
- msgid "Total campaigns:"
90
+ #: sovtimer/templates/sovtimer/partials/dashboard/table.html:64
91
+ msgid "System"
105
92
  msgstr ""
106
93
 
107
- #: sovtimer/templates/sovtimer/partials/dashboard/table.html:13
108
- msgid "Upcoming campaigns (< 4hrs):"
94
+ #: sovtimer/templates/sovtimer/partials/dashboard/table.html:65
95
+ msgid "Constellation"
109
96
  msgstr ""
110
97
 
111
- #: sovtimer/templates/sovtimer/partials/dashboard/table.html:14
112
- msgid "Active campaigns:"
98
+ #: sovtimer/templates/sovtimer/partials/dashboard/table.html:66
99
+ msgid "Region"
113
100
  msgstr ""
114
101
 
115
- #: sovtimer/templates/sovtimer/partials/dashboard/table.html:18
116
- msgid "The campaign list is automatically updated every 30 seconds. Progress for any active campaigns will be shown as <i>Previous - Trend - Current</i>."
102
+ #: sovtimer/templates/sovtimer/partials/dashboard/table.html:67
103
+ msgid "Owner / Defender"
117
104
  msgstr ""
118
105
 
119
- #: sovtimer/templates/sovtimer/partials/dashboard/table.html:30
106
+ #: sovtimer/templates/sovtimer/partials/dashboard/table.html:68
120
107
  msgid "ADM"
121
108
  msgstr ""
122
109
 
123
- #: sovtimer/templates/sovtimer/partials/dashboard/table.html:31
110
+ #: sovtimer/templates/sovtimer/partials/dashboard/table.html:69
124
111
  msgid "Start"
125
112
  msgstr ""
126
113
 
127
- #: sovtimer/templates/sovtimer/partials/dashboard/table.html:32
114
+ #: sovtimer/templates/sovtimer/partials/dashboard/table.html:70
128
115
  msgid "Remaining"
129
116
  msgstr ""
130
117
 
131
- #: sovtimer/templates/sovtimer/partials/dashboard/table.html:33
118
+ #: sovtimer/templates/sovtimer/partials/dashboard/table.html:71
132
119
  msgid "Progress"
133
120
  msgstr ""
134
121