aa-sov-timer 4.0.1__tar.gz → 4.0.2__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.
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/PKG-INFO +21 -11
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/README.md +16 -7
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/pyproject.toml +8 -10
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/__init__.py +1 -1
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/locale/cs_CZ/LC_MESSAGES/django.po +1 -1
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/locale/de/LC_MESSAGES/django.po +1 -1
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/locale/django.pot +2 -2
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/locale/es/LC_MESSAGES/django.po +1 -1
- aa_sov_timer-4.0.2/sovtimer/locale/fr_FR/LC_MESSAGES/django.mo +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/locale/fr_FR/LC_MESSAGES/django.po +4 -4
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/locale/it_IT/LC_MESSAGES/django.mo +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/locale/it_IT/LC_MESSAGES/django.po +6 -5
- aa_sov_timer-4.0.2/sovtimer/locale/ja/LC_MESSAGES/django.mo +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/locale/ja/LC_MESSAGES/django.po +4 -4
- aa_sov_timer-4.0.2/sovtimer/locale/ko_KR/LC_MESSAGES/django.mo +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/locale/ko_KR/LC_MESSAGES/django.po +6 -6
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/locale/nl_NL/LC_MESSAGES/django.po +1 -1
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/locale/pl_PL/LC_MESSAGES/django.po +1 -1
- aa_sov_timer-4.0.2/sovtimer/locale/ru/LC_MESSAGES/django.mo +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/locale/ru/LC_MESSAGES/django.po +4 -4
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/locale/sk/LC_MESSAGES/django.po +1 -1
- aa_sov_timer-4.0.2/sovtimer/locale/uk/LC_MESSAGES/django.mo +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/locale/uk/LC_MESSAGES/django.po +8 -8
- aa_sov_timer-4.0.2/sovtimer/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/locale/zh_Hans/LC_MESSAGES/django.po +4 -4
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/providers.py +17 -8
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/tests/test_providers.py +64 -1
- aa_sov_timer-4.0.1/sovtimer/locale/fr_FR/LC_MESSAGES/django.mo +0 -0
- aa_sov_timer-4.0.1/sovtimer/locale/ja/LC_MESSAGES/django.mo +0 -0
- aa_sov_timer-4.0.1/sovtimer/locale/ko_KR/LC_MESSAGES/django.mo +0 -0
- aa_sov_timer-4.0.1/sovtimer/locale/ru/LC_MESSAGES/django.mo +0 -0
- aa_sov_timer-4.0.1/sovtimer/locale/uk/LC_MESSAGES/django.mo +0 -0
- aa_sov_timer-4.0.1/sovtimer/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/.gitignore +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/LICENSE +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/app_settings.py +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/apps.py +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/auth_hooks.py +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/constants.py +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/locale/.gitkeep +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/locale/de/LC_MESSAGES/django.mo +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/locale/es/LC_MESSAGES/django.mo +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/locale/nl_NL/LC_MESSAGES/django.mo +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/locale/sk/LC_MESSAGES/django.mo +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/management/commands/__init__.py +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/management/commands/sovtimer_load_initial_data.py +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/migrations/0001_initial.py +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/migrations/0001_initialize.py +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/migrations/0002_aasovtimercampaigns_aasovtimerstructures.py +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/migrations/0003_auto_20201113_1033.py +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/migrations/0004_auto_20201113_1856.py +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/migrations/0005_auto_20201114_0720.py +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/migrations/0006_rename_models.py +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/migrations/0007_cleanup_models.py +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/migrations/0008_fix_campaign_attackers_score.py +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/migrations/0009_alter_campaign_options_and_more.py +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/migrations/0010_alter_campaign_event_type.py +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/migrations/0011_alliance_alter_campaign_event_type_and_more.py +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/migrations/__init__.py +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/models.py +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/static/sovtimer/css/aa-sov-timer.css +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/static/sovtimer/css/aa-sov-timer.min.css +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/static/sovtimer/css/aa-sov-timer.min.css.map +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/static/sovtimer/font/materialicons/v143/MaterialIcons-Regular.woff2 +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/static/sovtimer/font/materialicons/v143/README.md +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/static/sovtimer/images/zkillboard.png +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/static/sovtimer/js/aa-sov-timer.js +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/static/sovtimer/js/aa-sov-timer.min.js +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/static/sovtimer/js/aa-sov-timer.min.js.map +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/tasks.py +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/templates/sovtimer/base.html +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/templates/sovtimer/bundles/aa-sov-timer-css.html +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/templates/sovtimer/bundles/aa-sov-timer-js.html +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/templates/sovtimer/dashboard.html +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/templates/sovtimer/partials/common/spinner.html +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/templates/sovtimer/partials/dashboard/table.html +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/templates/sovtimer/partials/footer/app-translation-footer.html +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/tests/__init__.py +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/tests/test_app_settings.py +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/tests/test_auth_hooks.py +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/tests/test_models.py +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/tests/test_tasks.py +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/tests/test_user_agent.py +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/tests/test_views.py +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/urls.py +0 -0
- {aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/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
|
+
Version: 4.0.2
|
|
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
|
|
@@ -690,6 +690,7 @@ Keywords: allianceauth,eveonline,sovereignty_timer,timerboard
|
|
|
690
690
|
Classifier: Environment :: Web Environment
|
|
691
691
|
Classifier: Framework :: Django
|
|
692
692
|
Classifier: Framework :: Django :: 4.2
|
|
693
|
+
Classifier: Framework :: Django :: 5.2
|
|
693
694
|
Classifier: Intended Audience :: Developers
|
|
694
695
|
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
|
695
696
|
Classifier: Operating System :: OS Independent
|
|
@@ -702,9 +703,9 @@ Classifier: Programming Language :: Python :: 3.13
|
|
|
702
703
|
Classifier: Topic :: Internet :: WWW/HTTP
|
|
703
704
|
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
|
|
704
705
|
Requires-Python: <3.14,>=3.10
|
|
705
|
-
Requires-Dist: allianceauth
|
|
706
|
-
Requires-Dist: django-esi
|
|
707
|
-
Requires-Dist: django-eveonline-sde>=0.0.
|
|
706
|
+
Requires-Dist: allianceauth>=4.12
|
|
707
|
+
Requires-Dist: django-esi>=8.3.1
|
|
708
|
+
Requires-Dist: django-eveonline-sde>=0.0.1b9
|
|
708
709
|
Provides-Extra: tests-allianceauth-latest
|
|
709
710
|
Requires-Dist: coverage; extra == 'tests-allianceauth-latest'
|
|
710
711
|
Requires-Dist: django-webtest; extra == 'tests-allianceauth-latest'
|
|
@@ -725,6 +726,7 @@ Description-Content-Type: text/markdown
|
|
|
725
726
|
[](https://weblate.ppfeufer.de/engage/alliance-auth-apps/)
|
|
726
727
|
[](https://github.com/ppfeufer/aa-sov-timer/blob/master/CODE_OF_CONDUCT.md)
|
|
727
728
|
[](https://discord.gg/fjnHAmk)
|
|
729
|
+
[](https://gitlab.com/allianceauth/allianceauth)
|
|
728
730
|
|
|
729
731
|
[](https://ko-fi.com/N4N8CL1BY)
|
|
730
732
|
|
|
@@ -802,7 +804,7 @@ Make sure you're in the virtual environment (venv) of your Alliance Auth install
|
|
|
802
804
|
Then install the latest version:
|
|
803
805
|
|
|
804
806
|
```shell
|
|
805
|
-
pip install aa-sov-timer==4.0.
|
|
807
|
+
pip install aa-sov-timer==4.0.2
|
|
806
808
|
```
|
|
807
809
|
|
|
808
810
|
#### Step 2: Update Your AA Settings<a name="step-2-update-your-aa-settings"></a>
|
|
@@ -812,7 +814,7 @@ Configure your AA settings (`local.py`) as follows:
|
|
|
812
814
|
- Modify `INSTALLED_APPS` to include the following entries:
|
|
813
815
|
|
|
814
816
|
```python
|
|
815
|
-
INSTALLED_APPS
|
|
817
|
+
INSTALLED_APPS += [
|
|
816
818
|
# ...
|
|
817
819
|
"eve_sde", # Only if not already added for another app
|
|
818
820
|
"sovtimer",
|
|
@@ -834,11 +836,15 @@ Configure your AA settings (`local.py`) as follows:
|
|
|
834
836
|
}
|
|
835
837
|
|
|
836
838
|
if "eve_sde" in INSTALLED_APPS:
|
|
837
|
-
# Run at 12:00
|
|
839
|
+
# Run at 12:00 each day
|
|
838
840
|
CELERYBEAT_SCHEDULE["EVE SDE :: Check for SDE Updates"] = {
|
|
839
841
|
"task": "eve_sde.tasks.check_for_sde_updates",
|
|
840
842
|
"schedule": crontab(minute="0", hour="12"),
|
|
841
843
|
}
|
|
844
|
+
|
|
845
|
+
# Set the following when you have a bare metal installation, or Docker with a
|
|
846
|
+
# non-standard storage for `myauth`
|
|
847
|
+
ESDE_TASK_SPLIT = True
|
|
842
848
|
```
|
|
843
849
|
|
|
844
850
|
#### Step 3: Finalizing the Installation<a name="step-3-finalizing-the-installation"></a>
|
|
@@ -876,7 +882,7 @@ Once you have completed all previous steps, restart your AA supervisor service t
|
|
|
876
882
|
Add the app to your `conf/requirements.txt`:
|
|
877
883
|
|
|
878
884
|
```text
|
|
879
|
-
aa-sov-timer==4.0.
|
|
885
|
+
aa-sov-timer==4.0.2
|
|
880
886
|
```
|
|
881
887
|
|
|
882
888
|
#### Step 2: Update Your AA Settings<a name="step-2-update-your-aa-settings-1"></a>
|
|
@@ -908,11 +914,15 @@ Configure your AA settings (`conf/local.py`) as follows:
|
|
|
908
914
|
}
|
|
909
915
|
|
|
910
916
|
if "eve_sde" in INSTALLED_APPS:
|
|
911
|
-
# Run at 12:00
|
|
917
|
+
# Run at 12:00 each day
|
|
912
918
|
CELERYBEAT_SCHEDULE["EVE SDE :: Check for SDE Updates"] = {
|
|
913
919
|
"task": "eve_sde.tasks.check_for_sde_updates",
|
|
914
920
|
"schedule": crontab(minute="0", hour="12"),
|
|
915
921
|
}
|
|
922
|
+
|
|
923
|
+
# Set the following when you have a bare metal installation, or Docker with a
|
|
924
|
+
# non-standard storage for `myauth`
|
|
925
|
+
ESDE_TASK_SPLIT = True
|
|
916
926
|
```
|
|
917
927
|
|
|
918
928
|
#### Step 3: Build Auth and Restart Your Containers<a name="step-3-build-auth-and-restart-your-containers"></a>
|
|
@@ -969,7 +979,7 @@ Then run the following commands from your AA project directory (the one that
|
|
|
969
979
|
contains `manage.py`).
|
|
970
980
|
|
|
971
981
|
```shell
|
|
972
|
-
pip install aa-sov-timer==4.0.
|
|
982
|
+
pip install aa-sov-timer==4.0.2
|
|
973
983
|
|
|
974
984
|
python manage.py collectstatic
|
|
975
985
|
python manage.py migrate
|
|
@@ -982,7 +992,7 @@ Finally, restart your AA supervisor service.
|
|
|
982
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.
|
|
983
993
|
|
|
984
994
|
```text
|
|
985
|
-
aa-sov-timer==4.0.
|
|
995
|
+
aa-sov-timer==4.0.2
|
|
986
996
|
```
|
|
987
997
|
|
|
988
998
|
Now rebuild your containers and restart them:
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
[](https://weblate.ppfeufer.de/engage/alliance-auth-apps/)
|
|
13
13
|
[](https://github.com/ppfeufer/aa-sov-timer/blob/master/CODE_OF_CONDUCT.md)
|
|
14
14
|
[](https://discord.gg/fjnHAmk)
|
|
15
|
+
[](https://gitlab.com/allianceauth/allianceauth)
|
|
15
16
|
|
|
16
17
|
[](https://ko-fi.com/N4N8CL1BY)
|
|
17
18
|
|
|
@@ -89,7 +90,7 @@ Make sure you're in the virtual environment (venv) of your Alliance Auth install
|
|
|
89
90
|
Then install the latest version:
|
|
90
91
|
|
|
91
92
|
```shell
|
|
92
|
-
pip install aa-sov-timer==4.0.
|
|
93
|
+
pip install aa-sov-timer==4.0.2
|
|
93
94
|
```
|
|
94
95
|
|
|
95
96
|
#### Step 2: Update Your AA Settings<a name="step-2-update-your-aa-settings"></a>
|
|
@@ -99,7 +100,7 @@ Configure your AA settings (`local.py`) as follows:
|
|
|
99
100
|
- Modify `INSTALLED_APPS` to include the following entries:
|
|
100
101
|
|
|
101
102
|
```python
|
|
102
|
-
INSTALLED_APPS
|
|
103
|
+
INSTALLED_APPS += [
|
|
103
104
|
# ...
|
|
104
105
|
"eve_sde", # Only if not already added for another app
|
|
105
106
|
"sovtimer",
|
|
@@ -121,11 +122,15 @@ Configure your AA settings (`local.py`) as follows:
|
|
|
121
122
|
}
|
|
122
123
|
|
|
123
124
|
if "eve_sde" in INSTALLED_APPS:
|
|
124
|
-
# Run at 12:00
|
|
125
|
+
# Run at 12:00 each day
|
|
125
126
|
CELERYBEAT_SCHEDULE["EVE SDE :: Check for SDE Updates"] = {
|
|
126
127
|
"task": "eve_sde.tasks.check_for_sde_updates",
|
|
127
128
|
"schedule": crontab(minute="0", hour="12"),
|
|
128
129
|
}
|
|
130
|
+
|
|
131
|
+
# Set the following when you have a bare metal installation, or Docker with a
|
|
132
|
+
# non-standard storage for `myauth`
|
|
133
|
+
ESDE_TASK_SPLIT = True
|
|
129
134
|
```
|
|
130
135
|
|
|
131
136
|
#### Step 3: Finalizing the Installation<a name="step-3-finalizing-the-installation"></a>
|
|
@@ -163,7 +168,7 @@ Once you have completed all previous steps, restart your AA supervisor service t
|
|
|
163
168
|
Add the app to your `conf/requirements.txt`:
|
|
164
169
|
|
|
165
170
|
```text
|
|
166
|
-
aa-sov-timer==4.0.
|
|
171
|
+
aa-sov-timer==4.0.2
|
|
167
172
|
```
|
|
168
173
|
|
|
169
174
|
#### Step 2: Update Your AA Settings<a name="step-2-update-your-aa-settings-1"></a>
|
|
@@ -195,11 +200,15 @@ Configure your AA settings (`conf/local.py`) as follows:
|
|
|
195
200
|
}
|
|
196
201
|
|
|
197
202
|
if "eve_sde" in INSTALLED_APPS:
|
|
198
|
-
# Run at 12:00
|
|
203
|
+
# Run at 12:00 each day
|
|
199
204
|
CELERYBEAT_SCHEDULE["EVE SDE :: Check for SDE Updates"] = {
|
|
200
205
|
"task": "eve_sde.tasks.check_for_sde_updates",
|
|
201
206
|
"schedule": crontab(minute="0", hour="12"),
|
|
202
207
|
}
|
|
208
|
+
|
|
209
|
+
# Set the following when you have a bare metal installation, or Docker with a
|
|
210
|
+
# non-standard storage for `myauth`
|
|
211
|
+
ESDE_TASK_SPLIT = True
|
|
203
212
|
```
|
|
204
213
|
|
|
205
214
|
#### Step 3: Build Auth and Restart Your Containers<a name="step-3-build-auth-and-restart-your-containers"></a>
|
|
@@ -256,7 +265,7 @@ Then run the following commands from your AA project directory (the one that
|
|
|
256
265
|
contains `manage.py`).
|
|
257
266
|
|
|
258
267
|
```shell
|
|
259
|
-
pip install aa-sov-timer==4.0.
|
|
268
|
+
pip install aa-sov-timer==4.0.2
|
|
260
269
|
|
|
261
270
|
python manage.py collectstatic
|
|
262
271
|
python manage.py migrate
|
|
@@ -269,7 +278,7 @@ Finally, restart your AA supervisor service.
|
|
|
269
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.
|
|
270
279
|
|
|
271
280
|
```text
|
|
272
|
-
aa-sov-timer==4.0.
|
|
281
|
+
aa-sov-timer==4.0.2
|
|
273
282
|
```
|
|
274
283
|
|
|
275
284
|
Now rebuild your containers and restart them:
|
|
@@ -23,6 +23,7 @@ classifiers = [
|
|
|
23
23
|
"Environment :: Web Environment",
|
|
24
24
|
"Framework :: Django",
|
|
25
25
|
"Framework :: Django :: 4.2",
|
|
26
|
+
"Framework :: Django :: 5.2",
|
|
26
27
|
"Intended Audience :: Developers",
|
|
27
28
|
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
|
|
28
29
|
"Operating System :: OS Independent",
|
|
@@ -39,9 +40,9 @@ dynamic = [
|
|
|
39
40
|
"version",
|
|
40
41
|
]
|
|
41
42
|
dependencies = [
|
|
42
|
-
"allianceauth>=4.12
|
|
43
|
-
"django-esi>=8
|
|
44
|
-
"django-eveonline-sde>=0.0.
|
|
43
|
+
"allianceauth>=4.12",
|
|
44
|
+
"django-esi>=8.3.1",
|
|
45
|
+
"django-eveonline-sde>=0.0.1b9",
|
|
45
46
|
]
|
|
46
47
|
optional-dependencies.tests-allianceauth-latest = [
|
|
47
48
|
"coverage",
|
|
@@ -57,12 +58,9 @@ urls.GitHub = "https://github.com/ppfeufer/aa-sov-timer"
|
|
|
57
58
|
urls.Tracker = "https://github.com/ppfeufer/aa-sov-timer/issues"
|
|
58
59
|
urls.Translation = "https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-sov-timer/"
|
|
59
60
|
|
|
60
|
-
[tool.hatch
|
|
61
|
-
include = [
|
|
61
|
+
[tool.hatch]
|
|
62
|
+
build.include = [
|
|
62
63
|
"/sovtimer",
|
|
63
64
|
]
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
allow-direct-references = true
|
|
67
|
-
[tool.hatch.version]
|
|
68
|
-
path = "sovtimer/__init__.py"
|
|
65
|
+
metadata.allow-direct-references = true
|
|
66
|
+
version.path = "sovtimer/__init__.py"
|
|
@@ -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-
|
|
9
|
+
"POT-Creation-Date: 2026-04-07 19:56+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"
|
|
@@ -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-
|
|
9
|
+
"POT-Creation-Date: 2026-04-07 19:56+0200\n"
|
|
10
10
|
"PO-Revision-Date: 2026-02-27 10:17+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"
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
#, fuzzy
|
|
7
7
|
msgid ""
|
|
8
8
|
msgstr ""
|
|
9
|
-
"Project-Id-Version: AA Sov Timer 4.0.
|
|
9
|
+
"Project-Id-Version: AA Sov Timer 4.0.2\n"
|
|
10
10
|
"Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-sov-timer/issues\n"
|
|
11
|
-
"POT-Creation-Date: 2026-
|
|
11
|
+
"POT-Creation-Date: 2026-04-07 19:56+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: 2026-
|
|
10
|
+
"POT-Creation-Date: 2026-04-07 19:56+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"
|
|
Binary file
|
|
@@ -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-
|
|
17
|
-
"PO-Revision-Date: 2026-
|
|
16
|
+
"POT-Creation-Date: 2026-04-07 19:56+0200\n"
|
|
17
|
+
"PO-Revision-Date: 2026-03-22 19:23+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,7 +22,7 @@ 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.
|
|
25
|
+
"X-Generator: Weblate 5.16.2\n"
|
|
26
26
|
|
|
27
27
|
#: sovtimer/__init__.py:10 sovtimer/models.py:35
|
|
28
28
|
#: sovtimer/templates/sovtimer/base.html:7
|
|
@@ -36,7 +36,7 @@ msgstr "Peut accéder le module Minuterie de souveraineté"
|
|
|
36
36
|
|
|
37
37
|
#: sovtimer/models.py:56
|
|
38
38
|
msgid "Alliance"
|
|
39
|
-
msgstr ""
|
|
39
|
+
msgstr "Alliance"
|
|
40
40
|
|
|
41
41
|
#: sovtimer/models.py:57
|
|
42
42
|
msgid "Alliances"
|
|
Binary file
|
|
@@ -2,26 +2,27 @@
|
|
|
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
4
|
# Peter Pfeufer <info@ppfeufer.de>, 2024.
|
|
5
|
+
# Vlad Cocan <cfvlad@gmail.com>, 2026.
|
|
5
6
|
msgid ""
|
|
6
7
|
msgstr ""
|
|
7
8
|
"Project-Id-Version: AA Sov Timer 2.2.1\n"
|
|
8
9
|
"Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-sov-timer/issues\n"
|
|
9
|
-
"POT-Creation-Date: 2026-
|
|
10
|
-
"PO-Revision-Date:
|
|
11
|
-
"Last-Translator:
|
|
10
|
+
"POT-Creation-Date: 2026-04-07 19:56+0200\n"
|
|
11
|
+
"PO-Revision-Date: 2026-04-07 17:48+0000\n"
|
|
12
|
+
"Last-Translator: Vlad Cocan <cfvlad@gmail.com>\n"
|
|
12
13
|
"Language-Team: Italian <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-sov-timer/it/>\n"
|
|
13
14
|
"Language: it_IT\n"
|
|
14
15
|
"MIME-Version: 1.0\n"
|
|
15
16
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
16
17
|
"Content-Transfer-Encoding: 8bit\n"
|
|
17
18
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
|
18
|
-
"X-Generator: Weblate 5.
|
|
19
|
+
"X-Generator: Weblate 5.16.2\n"
|
|
19
20
|
|
|
20
21
|
#: sovtimer/__init__.py:10 sovtimer/models.py:35
|
|
21
22
|
#: sovtimer/templates/sovtimer/base.html:7
|
|
22
23
|
#: sovtimer/templates/sovtimer/base.html:11
|
|
23
24
|
msgid "Sovereignty Timer"
|
|
24
|
-
msgstr ""
|
|
25
|
+
msgstr "Timer Sovranità"
|
|
25
26
|
|
|
26
27
|
#: sovtimer/models.py:38
|
|
27
28
|
msgid "Can access the Sovereignty Timer module"
|
|
Binary file
|
|
@@ -8,8 +8,8 @@ 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: 2026-
|
|
12
|
-
"PO-Revision-Date: 2026-
|
|
11
|
+
"POT-Creation-Date: 2026-04-07 19:56+0200\n"
|
|
12
|
+
"PO-Revision-Date: 2026-03-22 19:23+0000\n"
|
|
13
13
|
"Last-Translator: Peter Pfeufer <info@ppfeufer.de>\n"
|
|
14
14
|
"Language-Team: Japanese <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-sov-timer/ja/>\n"
|
|
15
15
|
"Language: ja\n"
|
|
@@ -17,7 +17,7 @@ msgstr ""
|
|
|
17
17
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
18
18
|
"Content-Transfer-Encoding: 8bit\n"
|
|
19
19
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
|
20
|
-
"X-Generator: Weblate 5.
|
|
20
|
+
"X-Generator: Weblate 5.16.2\n"
|
|
21
21
|
|
|
22
22
|
#: sovtimer/__init__.py:10 sovtimer/models.py:35
|
|
23
23
|
#: sovtimer/templates/sovtimer/base.html:7
|
|
@@ -31,7 +31,7 @@ msgstr "領有権タイマーのモジュールにアクセス可能です"
|
|
|
31
31
|
|
|
32
32
|
#: sovtimer/models.py:56
|
|
33
33
|
msgid "Alliance"
|
|
34
|
-
msgstr ""
|
|
34
|
+
msgstr "アライアンス"
|
|
35
35
|
|
|
36
36
|
#: sovtimer/models.py:57
|
|
37
37
|
msgid "Alliances"
|
|
Binary file
|
|
@@ -1,7 +1,7 @@
|
|
|
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
|
-
# Peter Pfeufer <info@ppfeufer.de>, 2023, 2024.
|
|
4
|
+
# Peter Pfeufer <info@ppfeufer.de>, 2023, 2024, 2026.
|
|
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.
|
|
@@ -10,16 +10,16 @@ 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: 2026-
|
|
14
|
-
"PO-Revision-Date:
|
|
15
|
-
"Last-Translator:
|
|
13
|
+
"POT-Creation-Date: 2026-04-07 19:56+0200\n"
|
|
14
|
+
"PO-Revision-Date: 2026-03-22 19:23+0000\n"
|
|
15
|
+
"Last-Translator: Peter Pfeufer <info@ppfeufer.de>\n"
|
|
16
16
|
"Language-Team: Korean <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-sov-timer/ko/>\n"
|
|
17
17
|
"Language: ko_KR\n"
|
|
18
18
|
"MIME-Version: 1.0\n"
|
|
19
19
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
20
20
|
"Content-Transfer-Encoding: 8bit\n"
|
|
21
21
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
|
22
|
-
"X-Generator: Weblate 5.
|
|
22
|
+
"X-Generator: Weblate 5.16.2\n"
|
|
23
23
|
|
|
24
24
|
#: sovtimer/__init__.py:10 sovtimer/models.py:35
|
|
25
25
|
#: sovtimer/templates/sovtimer/base.html:7
|
|
@@ -33,7 +33,7 @@ msgstr "소버린티 타이머 모듈에 접근할 수 있는 권한"
|
|
|
33
33
|
|
|
34
34
|
#: sovtimer/models.py:56
|
|
35
35
|
msgid "Alliance"
|
|
36
|
-
msgstr ""
|
|
36
|
+
msgstr "얼라이언스"
|
|
37
37
|
|
|
38
38
|
#: sovtimer/models.py:57
|
|
39
39
|
msgid "Alliances"
|
|
@@ -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-
|
|
9
|
+
"POT-Creation-Date: 2026-04-07 19:56+0200\n"
|
|
10
10
|
"PO-Revision-Date: 2026-02-01 14:23+0000\n"
|
|
11
11
|
"Last-Translator: Peter Pfeufer <info@ppfeufer.de>\n"
|
|
12
12
|
"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: 2026-
|
|
9
|
+
"POT-Creation-Date: 2026-04-07 19:56+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"
|
|
Binary file
|
|
@@ -8,8 +8,8 @@ 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: 2026-
|
|
12
|
-
"PO-Revision-Date: 2026-
|
|
11
|
+
"POT-Creation-Date: 2026-04-07 19:56+0200\n"
|
|
12
|
+
"PO-Revision-Date: 2026-03-22 19:23+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"
|
|
15
15
|
"Language: ru\n"
|
|
@@ -17,7 +17,7 @@ msgstr ""
|
|
|
17
17
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
18
18
|
"Content-Transfer-Encoding: 8bit\n"
|
|
19
19
|
"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.
|
|
20
|
+
"X-Generator: Weblate 5.16.2\n"
|
|
21
21
|
|
|
22
22
|
#: sovtimer/__init__.py:10 sovtimer/models.py:35
|
|
23
23
|
#: sovtimer/templates/sovtimer/base.html:7
|
|
@@ -31,7 +31,7 @@ msgstr "Имеет доступ к модулю 'Таймер суверенит
|
|
|
31
31
|
|
|
32
32
|
#: sovtimer/models.py:56
|
|
33
33
|
msgid "Alliance"
|
|
34
|
-
msgstr ""
|
|
34
|
+
msgstr "Альянс"
|
|
35
35
|
|
|
36
36
|
#: sovtimer/models.py:57
|
|
37
37
|
msgid "Alliances"
|
|
@@ -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-
|
|
10
|
+
"POT-Creation-Date: 2026-04-07 19:56+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"
|
|
Binary file
|
|
@@ -2,15 +2,15 @@
|
|
|
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
4
|
# "Andrii M." <elfleg0las88@gmail.com>, 2023, 2024.
|
|
5
|
-
# Peter Pfeufer <info@ppfeufer.de>, 2023, 2024.
|
|
5
|
+
# Peter Pfeufer <info@ppfeufer.de>, 2023, 2024, 2026.
|
|
6
6
|
# M <skrypets@gmail.com>, 2025.
|
|
7
|
-
# s0k0l -_- <salarysalo@gmail.com>, 2025.
|
|
7
|
+
# s0k0l -_- <salarysalo@gmail.com>, 2025, 2026.
|
|
8
8
|
msgid ""
|
|
9
9
|
msgstr ""
|
|
10
10
|
"Project-Id-Version: AA Sov Timer 2.2.1\n"
|
|
11
11
|
"Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-sov-timer/issues\n"
|
|
12
|
-
"POT-Creation-Date: 2026-
|
|
13
|
-
"PO-Revision-Date:
|
|
12
|
+
"POT-Creation-Date: 2026-04-07 19:56+0200\n"
|
|
13
|
+
"PO-Revision-Date: 2026-03-29 04:01+0000\n"
|
|
14
14
|
"Last-Translator: s0k0l -_- <salarysalo@gmail.com>\n"
|
|
15
15
|
"Language-Team: Ukrainian <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-sov-timer/uk/>\n"
|
|
16
16
|
"Language: uk\n"
|
|
@@ -18,7 +18,7 @@ msgstr ""
|
|
|
18
18
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
19
19
|
"Content-Transfer-Encoding: 8bit\n"
|
|
20
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"
|
|
21
|
-
"X-Generator: Weblate 5.
|
|
21
|
+
"X-Generator: Weblate 5.16.2\n"
|
|
22
22
|
|
|
23
23
|
#: sovtimer/__init__.py:10 sovtimer/models.py:35
|
|
24
24
|
#: sovtimer/templates/sovtimer/base.html:7
|
|
@@ -32,11 +32,11 @@ msgstr "Є доступ до модуля Таймерів Сувереніте
|
|
|
32
32
|
|
|
33
33
|
#: sovtimer/models.py:56
|
|
34
34
|
msgid "Alliance"
|
|
35
|
-
msgstr ""
|
|
35
|
+
msgstr "Аліянс"
|
|
36
36
|
|
|
37
37
|
#: sovtimer/models.py:57
|
|
38
38
|
msgid "Alliances"
|
|
39
|
-
msgstr ""
|
|
39
|
+
msgstr "Ал'янси"
|
|
40
40
|
|
|
41
41
|
#: sovtimer/models.py:153
|
|
42
42
|
msgid "Sovereignty structure"
|
|
@@ -92,7 +92,7 @@ msgstr "Система"
|
|
|
92
92
|
|
|
93
93
|
#: sovtimer/templates/sovtimer/partials/dashboard/table.html:65
|
|
94
94
|
msgid "Constellation"
|
|
95
|
-
msgstr "
|
|
95
|
+
msgstr "Констеляція"
|
|
96
96
|
|
|
97
97
|
#: sovtimer/templates/sovtimer/partials/dashboard/table.html:66
|
|
98
98
|
msgid "Region"
|
|
Binary file
|
|
@@ -7,15 +7,15 @@
|
|
|
7
7
|
# MxdHana <236833425@qq.com>, 2024.
|
|
8
8
|
# SAM_FPS <sam_fps@163.com>, 2024.
|
|
9
9
|
# AKA Patrick <hsc844766246@gmail.com>, 2025.
|
|
10
|
-
# LichenKass <yuanchengwei_sz@163.com>, 2025.
|
|
10
|
+
# LichenKass <yuanchengwei_sz@163.com>, 2025, 2026.
|
|
11
11
|
# nm l <mmttyyluo@gmail.com>, 2026.
|
|
12
12
|
# shkno <l13244536339@163.com>, 2026.
|
|
13
13
|
msgid ""
|
|
14
14
|
msgstr ""
|
|
15
15
|
"Project-Id-Version: AA Sov Timer 2.2.1\n"
|
|
16
16
|
"Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-sov-timer/issues\n"
|
|
17
|
-
"POT-Creation-Date: 2026-
|
|
18
|
-
"PO-Revision-Date: 2026-
|
|
17
|
+
"POT-Creation-Date: 2026-04-07 19:56+0200\n"
|
|
18
|
+
"PO-Revision-Date: 2026-03-06 10:23+0000\n"
|
|
19
19
|
"Last-Translator: Peter Pfeufer <info@ppfeufer.de>\n"
|
|
20
20
|
"Language-Team: Chinese (Simplified Han script) <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-sov-timer/zh_Hans/>\n"
|
|
21
21
|
"Language: zh_Hans\n"
|
|
@@ -23,7 +23,7 @@ msgstr ""
|
|
|
23
23
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
24
24
|
"Content-Transfer-Encoding: 8bit\n"
|
|
25
25
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
|
26
|
-
"X-Generator: Weblate 5.
|
|
26
|
+
"X-Generator: Weblate 5.16.1\n"
|
|
27
27
|
|
|
28
28
|
#: sovtimer/__init__.py:10 sovtimer/models.py:35
|
|
29
29
|
#: sovtimer/templates/sovtimer/base.html:7
|
|
@@ -4,10 +4,11 @@ Providers
|
|
|
4
4
|
|
|
5
5
|
# Standard Library
|
|
6
6
|
import logging
|
|
7
|
+
import typing
|
|
7
8
|
from typing import Any
|
|
8
9
|
|
|
9
10
|
# Third Party
|
|
10
|
-
from aiopenapi3 import ContentTypeError
|
|
11
|
+
from aiopenapi3 import ContentTypeError, RequestError
|
|
11
12
|
from httpx import Response
|
|
12
13
|
|
|
13
14
|
# Alliance Auth
|
|
@@ -24,6 +25,14 @@ from sovtimer import (
|
|
|
24
25
|
__version__,
|
|
25
26
|
)
|
|
26
27
|
|
|
28
|
+
if typing.TYPE_CHECKING:
|
|
29
|
+
# Alliance Auth
|
|
30
|
+
from esi.stubs import (
|
|
31
|
+
AllianceDetail,
|
|
32
|
+
SovereigntyCampaignsGet,
|
|
33
|
+
SovereigntyStructuresGet,
|
|
34
|
+
)
|
|
35
|
+
|
|
27
36
|
# ESI client
|
|
28
37
|
esi = ESIClientProvider(
|
|
29
38
|
# Use the latest compatibility date, see https://esi.evetech.net/meta/compatibility-dates
|
|
@@ -98,7 +107,7 @@ class ESIHandler:
|
|
|
98
107
|
)
|
|
99
108
|
|
|
100
109
|
esi_result = None
|
|
101
|
-
except HTTPClientError as exc:
|
|
110
|
+
except (HTTPClientError, RequestError) as exc:
|
|
102
111
|
logger.error(msg=f"Error while fetching data from ESI: {str(exc)}")
|
|
103
112
|
|
|
104
113
|
esi_result = None
|
|
@@ -108,7 +117,7 @@ class ESIHandler:
|
|
|
108
117
|
@classmethod
|
|
109
118
|
def get_alliances_alliance_id(
|
|
110
119
|
cls, alliance_id: int, force_refresh: bool = False
|
|
111
|
-
) ->
|
|
120
|
+
) -> "AllianceDetail | None":
|
|
112
121
|
"""
|
|
113
122
|
Get alliance information from ESI.
|
|
114
123
|
|
|
@@ -117,7 +126,7 @@ class ESIHandler:
|
|
|
117
126
|
:param force_refresh: Whether to force a refresh of the data from ESI, bypassing any caches.
|
|
118
127
|
:type force_refresh: bool
|
|
119
128
|
:return: Alliance information or None if an error occurred.
|
|
120
|
-
:rtype:
|
|
129
|
+
:rtype: AllianceDetail | None
|
|
121
130
|
"""
|
|
122
131
|
|
|
123
132
|
logger.debug(
|
|
@@ -134,12 +143,12 @@ class ESIHandler:
|
|
|
134
143
|
@classmethod
|
|
135
144
|
def get_sovereignty_campaigns(
|
|
136
145
|
cls, force_refresh: bool = False
|
|
137
|
-
) -> list[
|
|
146
|
+
) -> "list[SovereigntyCampaignsGet] | None":
|
|
138
147
|
"""
|
|
139
148
|
Get sovereignty campaigns from ESI.
|
|
140
149
|
|
|
141
150
|
:return: List of sovereignty campaigns or None if an error occurred.
|
|
142
|
-
:rtype: list[
|
|
151
|
+
:rtype: list[SovereigntyCampaignsGet] | None
|
|
143
152
|
"""
|
|
144
153
|
|
|
145
154
|
logger.debug("Fetching sovereignty campaigns from ESI...")
|
|
@@ -152,12 +161,12 @@ class ESIHandler:
|
|
|
152
161
|
@classmethod
|
|
153
162
|
def get_sovereignty_structures(
|
|
154
163
|
cls, force_refresh: bool = False
|
|
155
|
-
) -> list[
|
|
164
|
+
) -> "list[SovereigntyStructuresGet] | None":
|
|
156
165
|
"""
|
|
157
166
|
Get sovereignty structures from ESI.
|
|
158
167
|
|
|
159
168
|
:return: List of sovereignty structures or None if an error occurred.
|
|
160
|
-
:rtype: list[
|
|
169
|
+
:rtype: list[SovereigntyStructuresGet] | None
|
|
161
170
|
"""
|
|
162
171
|
|
|
163
172
|
logger.debug("Fetching sovereignty structures from ESI...")
|
|
@@ -3,12 +3,16 @@ Test for the providers module.
|
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
5
|
# Standard Library
|
|
6
|
+
import importlib
|
|
6
7
|
import logging
|
|
8
|
+
import sys
|
|
9
|
+
import types
|
|
10
|
+
import typing
|
|
7
11
|
from http import HTTPStatus
|
|
8
12
|
from unittest.mock import MagicMock, patch
|
|
9
13
|
|
|
10
14
|
# Third Party
|
|
11
|
-
from aiopenapi3 import ContentTypeError
|
|
15
|
+
from aiopenapi3 import ContentTypeError, RequestError
|
|
12
16
|
|
|
13
17
|
# Alliance Auth
|
|
14
18
|
from esi.exceptions import HTTPClientError, HTTPNotModified
|
|
@@ -18,6 +22,44 @@ from sovtimer.providers import AppLogger, ESIHandler
|
|
|
18
22
|
from sovtimer.tests import BaseTestCase
|
|
19
23
|
|
|
20
24
|
|
|
25
|
+
class TestTypingTypeCheckingIfCondition(BaseTestCase):
|
|
26
|
+
def test_when_typing_TYPE_CHECKING_true_then_stub_types_are_imported_into_module_namespace(
|
|
27
|
+
self,
|
|
28
|
+
):
|
|
29
|
+
"""
|
|
30
|
+
Test that when `typing.TYPE_CHECKING` is set to `True`, the stub types from `esi.stubs` are imported into the module namespace.
|
|
31
|
+
|
|
32
|
+
:return:
|
|
33
|
+
:rtype:
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
fake_stubs = types.ModuleType("esi.stubs")
|
|
37
|
+
fake_stubs.AllianceDetail = type("AllianceDetail", (), {})
|
|
38
|
+
fake_stubs.SovereigntyCampaignsGet = type("SovereigntyCampaignsGet", (), {})
|
|
39
|
+
fake_stubs.SovereigntyStructuresGet = type("SovereigntyStructuresGet", (), {})
|
|
40
|
+
|
|
41
|
+
original_sys_modules = sys.modules.copy()
|
|
42
|
+
|
|
43
|
+
try:
|
|
44
|
+
sys.modules["esi.stubs"] = fake_stubs
|
|
45
|
+
|
|
46
|
+
with patch.object(typing, "TYPE_CHECKING", True):
|
|
47
|
+
providers = importlib.import_module("sovtimer.providers")
|
|
48
|
+
importlib.reload(providers)
|
|
49
|
+
|
|
50
|
+
self.assertTrue(hasattr(providers, "AllianceDetail"))
|
|
51
|
+
self.assertTrue(hasattr(providers, "SovereigntyCampaignsGet"))
|
|
52
|
+
self.assertTrue(hasattr(providers, "SovereigntyStructuresGet"))
|
|
53
|
+
finally:
|
|
54
|
+
sys.modules.clear()
|
|
55
|
+
sys.modules.update(original_sys_modules)
|
|
56
|
+
|
|
57
|
+
try:
|
|
58
|
+
importlib.reload(importlib.import_module("sovtimer.providers"))
|
|
59
|
+
except Exception:
|
|
60
|
+
pass
|
|
61
|
+
|
|
62
|
+
|
|
21
63
|
class TestESIHandlerResult(BaseTestCase):
|
|
22
64
|
"""
|
|
23
65
|
Test the ESIHandler.result method.
|
|
@@ -97,6 +139,27 @@ class TestESIHandlerResult(BaseTestCase):
|
|
|
97
139
|
self.assertIsNone(response)
|
|
98
140
|
mock_operation.result.assert_called_once()
|
|
99
141
|
|
|
142
|
+
def test_returns_none_when_request_error_occurs(self):
|
|
143
|
+
"""
|
|
144
|
+
Test that an HTTPRequestError exception is raised correctly.
|
|
145
|
+
|
|
146
|
+
:return:
|
|
147
|
+
:rtype:
|
|
148
|
+
"""
|
|
149
|
+
|
|
150
|
+
mock_operation = MagicMock()
|
|
151
|
+
mock_operation.result.side_effect = RequestError(
|
|
152
|
+
operation=mock_operation,
|
|
153
|
+
request=MagicMock(),
|
|
154
|
+
data={},
|
|
155
|
+
parameters={},
|
|
156
|
+
)
|
|
157
|
+
|
|
158
|
+
response = ESIHandler.result(mock_operation)
|
|
159
|
+
|
|
160
|
+
self.assertIsNone(response)
|
|
161
|
+
mock_operation.result.assert_called_once()
|
|
162
|
+
|
|
100
163
|
def test_passes_extra_parameters_to_operation(self):
|
|
101
164
|
"""
|
|
102
165
|
Test that extra parameters are passed correctly to the ESI operation.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/management/commands/sovtimer_load_initial_data.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/migrations/0008_fix_campaign_attackers_score.py
RENAMED
|
File without changes
|
|
File without changes
|
{aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/migrations/0010_alter_campaign_event_type.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/static/sovtimer/css/aa-sov-timer.min.css.map
RENAMED
|
File without changes
|
|
File without changes
|
{aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/static/sovtimer/font/materialicons/v143/README.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/static/sovtimer/js/aa-sov-timer.min.js.map
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/templates/sovtimer/bundles/aa-sov-timer-css.html
RENAMED
|
File without changes
|
{aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/templates/sovtimer/bundles/aa-sov-timer-js.html
RENAMED
|
File without changes
|
|
File without changes
|
{aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/templates/sovtimer/partials/common/spinner.html
RENAMED
|
File without changes
|
{aa_sov_timer-4.0.1 → aa_sov_timer-4.0.2}/sovtimer/templates/sovtimer/partials/dashboard/table.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|