aa-ledger 1.0.4__py3-none-any.whl → 2.0.0__py3-none-any.whl
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_ledger-1.0.4.dist-info → aa_ledger-2.0.0.dist-info}/METADATA +5 -6
- aa_ledger-2.0.0.dist-info/RECORD +267 -0
- ledger/__init__.py +2 -2
- ledger/admin.py +23 -18
- ledger/api/__init__.py +23 -7
- ledger/api/{ledger/admin.py → admin.py} +25 -31
- ledger/api/alliance.py +755 -0
- ledger/api/character.py +786 -0
- ledger/api/corporation.py +1141 -0
- ledger/api/{helpers.py → helpers/core.py} +33 -33
- ledger/api/helpers/icons.py +372 -0
- ledger/api/helpers/planetary_helper.py +354 -0
- ledger/api/planetary.py +354 -0
- ledger/api/schema.py +240 -15
- ledger/app_settings.py +11 -27
- ledger/auth_hooks.py +2 -2
- ledger/constants.py +50 -177
- ledger/decorators.py +2 -46
- ledger/forms.py +133 -39
- ledger/helpers/billboard.py +194 -144
- ledger/helpers/cache.py +105 -0
- ledger/helpers/discord.py +2 -4
- ledger/helpers/eveonline.py +160 -0
- ledger/helpers/ledger_data.py +23 -0
- ledger/helpers/ref_type.py +53 -78
- ledger/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
- ledger/locale/cs_CZ/LC_MESSAGES/django.po +349 -193
- ledger/locale/de/LC_MESSAGES/django.mo +0 -0
- ledger/locale/de/LC_MESSAGES/django.po +528 -379
- ledger/locale/django.pot +721 -546
- ledger/locale/es/LC_MESSAGES/django.mo +0 -0
- ledger/locale/es/LC_MESSAGES/django.po +349 -194
- ledger/locale/fr_FR/LC_MESSAGES/django.mo +0 -0
- ledger/locale/fr_FR/LC_MESSAGES/django.po +349 -193
- ledger/locale/it_IT/LC_MESSAGES/django.mo +0 -0
- ledger/locale/it_IT/LC_MESSAGES/django.po +349 -193
- ledger/locale/ja/LC_MESSAGES/django.mo +0 -0
- ledger/locale/ja/LC_MESSAGES/django.po +348 -193
- ledger/locale/ko_KR/LC_MESSAGES/django.mo +0 -0
- ledger/locale/ko_KR/LC_MESSAGES/django.po +349 -193
- ledger/locale/nl_NL/LC_MESSAGES/django.mo +0 -0
- ledger/locale/nl_NL/LC_MESSAGES/django.po +349 -193
- ledger/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
- ledger/locale/pl_PL/LC_MESSAGES/django.po +350 -193
- ledger/locale/ru/LC_MESSAGES/django.mo +0 -0
- ledger/locale/ru/LC_MESSAGES/django.po +348 -193
- ledger/locale/sk/LC_MESSAGES/django.mo +0 -0
- ledger/locale/sk/LC_MESSAGES/django.po +348 -193
- ledger/locale/uk/LC_MESSAGES/django.mo +0 -0
- ledger/locale/uk/LC_MESSAGES/django.po +348 -193
- ledger/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
- ledger/locale/zh_Hans/LC_MESSAGES/django.po +348 -193
- ledger/managers/character_audit_manager.py +28 -20
- ledger/managers/character_journal_manager.py +185 -357
- ledger/managers/character_mining_manager.py +52 -26
- ledger/managers/character_planetary_manager.py +178 -136
- ledger/managers/corporation_audit_manager.py +36 -27
- ledger/managers/corporation_journal_manager.py +92 -56
- ledger/managers/general_manager.py +8 -7
- ledger/migrations/0018_remove_characterplanet_ledger_char_planet__58a5b6_idx_and_more.py +44 -0
- ledger/migrations/0019_rename_characteraudit_characterowner_and_more.py +48 -0
- ledger/models/__init__.py +5 -11
- ledger/models/characteraudit.py +101 -109
- ledger/models/corporationaudit.py +94 -49
- ledger/models/general.py +105 -211
- ledger/models/helpers/update_manager.py +302 -0
- ledger/models/planetary.py +60 -205
- ledger/providers.py +101 -0
- ledger/static/ledger/css/{ledger.css → aa-ledger.css} +54 -28
- ledger/static/ledger/js/aa-ledger.js +124 -0
- ledger/static/ledger/js/charts.js +25 -1
- ledger/static/ledger/js/view-alliance-ledger.js +383 -0
- ledger/static/ledger/js/view-character-ledger.js +388 -0
- ledger/static/ledger/js/view-corporation-ledger.js +402 -0
- ledger/static/ledger/js/view-planetary.js +492 -0
- ledger/static/ledger/libs/amCharts/5.14.4/js/flow.js +2 -0
- ledger/static/ledger/libs/amCharts/5.14.4/js/index.js +2 -0
- ledger/static/ledger/libs/amCharts/5.14.4/js/percent.js +2 -0
- ledger/static/ledger/libs/amCharts/5.14.4/js/themes/Animated.js +2 -0
- ledger/static/ledger/libs/amCharts/5.14.4/js/themes/Dark.js +2 -0
- ledger/static/ledger/libs/amCharts/5.14.4/js/xy.js +2 -0
- ledger/static/ledger/libs/datatables/2.3.5/css/dataTables.bootstrap5.css +610 -0
- ledger/static/ledger/libs/datatables/2.3.5/js/dataTables.bootstrap5.js +122 -0
- ledger/static/ledger/libs/datatables/2.3.5/js/dataTables.js +14127 -0
- ledger/static/ledger/libs/datatables/Extensions/ColumnControl/1.1.1/css/columnControl.bootstrap5.css +516 -0
- ledger/static/ledger/libs/datatables/Extensions/ColumnControl/1.1.1/css/columnControl.dataTables.css +529 -0
- ledger/static/ledger/libs/datatables/Extensions/ColumnControl/1.1.1/js/columnControl.bootstrap5.js +73 -0
- ledger/static/ledger/libs/datatables/Extensions/ColumnControl/1.1.1/js/dataTables.columnControl.js +3090 -0
- ledger/static/ledger/libs/datatables/Extensions/FixedHeader/4.0.4/css/fixedHeader.bootstrap5.css +20 -0
- ledger/static/ledger/libs/datatables/Extensions/FixedHeader/4.0.4/js/dataTables.fixedHeader.js +1203 -0
- ledger/static/ledger/libs/datatables/Extensions/FixedHeader/4.0.4/js/fixedHeader.bootstrap5.js +59 -0
- ledger/tasks.py +157 -141
- ledger/templates/ledger/base.html +59 -21
- ledger/templates/ledger/bundles/aa-ledger-css.html +3 -0
- ledger/templates/ledger/bundles/aa-ledger-js.html +3 -0
- ledger/templates/ledger/bundles/view-alliance-ledger-js.html +14 -0
- ledger/templates/ledger/bundles/view-character-ledger-js.html +15 -0
- ledger/templates/ledger/bundles/view-character-planetary-css.html +3 -0
- ledger/templates/ledger/bundles/view-character-planetary-js.html +4 -0
- ledger/templates/ledger/bundles/view-corporation-ledger-js.html +15 -0
- ledger/templates/ledger/partials/modal/confirm.html +0 -1
- ledger/templates/ledger/partials/modal/request-accept-delete-alliance.html +38 -0
- ledger/templates/ledger/partials/modal/request-accept-delete-character.html +38 -0
- ledger/templates/ledger/partials/modal/request-accept-delete-corporation.html +38 -0
- ledger/templates/ledger/partials/modal/request-accept-switch-notification.html +38 -0
- ledger/templates/ledger/partials/modal/request-view-alliance-details.html +26 -0
- ledger/templates/ledger/partials/modal/request-view-character-details.html +26 -0
- ledger/templates/ledger/partials/modal/request-view-corporation-details.html +26 -0
- ledger/templates/ledger/partials/modal/request-view-extractor.html +32 -0
- ledger/templates/ledger/partials/modal/request-view-factory.html +31 -0
- ledger/templates/ledger/partials/{menu → navigation}/administration.html +8 -0
- ledger/templates/ledger/partials/{menu → navigation}/navigation.html +2 -2
- ledger/templates/ledger/partials/{administration → view-alliance-administration}/alliance_corporations.html +3 -3
- ledger/templates/ledger/partials/view-alliance-administration/dashboard.html +81 -0
- ledger/templates/ledger/partials/view-alliance-ledger/alliance-billboard.html +25 -0
- ledger/templates/ledger/partials/view-alliance-ledger/alliance-ledger-details.html +21 -0
- ledger/templates/ledger/partials/view-alliance-ledger/alliance-table.html +24 -0
- ledger/templates/ledger/partials/view-alliance-ledger/information/daily.html +18 -0
- ledger/templates/ledger/partials/view-alliance-ledger/information/hourly.html +18 -0
- ledger/templates/ledger/partials/view-alliance-ledger/information/summary.html +19 -0
- ledger/templates/ledger/partials/{administration → view-character-administration}/character.html +1 -9
- ledger/templates/ledger/partials/{administration → view-character-administration}/dashboard.html +0 -34
- ledger/templates/ledger/partials/view-character-ledger/character-billboard.html +25 -0
- ledger/templates/ledger/partials/view-character-ledger/character-ledger-details.html +21 -0
- ledger/templates/ledger/partials/view-character-ledger/character-table.html +25 -0
- ledger/templates/ledger/partials/view-character-ledger/information/daily.html +18 -0
- ledger/templates/ledger/partials/view-character-ledger/information/hourly.html +18 -0
- ledger/templates/ledger/partials/view-character-ledger/information/summary.html +19 -0
- ledger/templates/ledger/partials/view-character-planetary/extractor-table.html +24 -0
- ledger/templates/ledger/partials/view-character-planetary/factory-table.html +24 -0
- ledger/templates/ledger/partials/view-character-planetary/planetary-table.html +22 -0
- ledger/templates/ledger/partials/view-character-planetary/storage-table.html +23 -0
- ledger/templates/ledger/partials/{administration → view-corporation-administration}/corporation.html +5 -13
- ledger/templates/ledger/partials/{administration → view-corporation-administration}/corporation_characters.html +1 -1
- ledger/templates/ledger/partials/view-corporation-administration/dashboard.html +81 -0
- ledger/templates/ledger/partials/view-corporation-ledger/corporation-billboard.html +25 -0
- ledger/templates/ledger/partials/view-corporation-ledger/corporation-ledger-details.html +21 -0
- ledger/templates/ledger/partials/view-corporation-ledger/corporation-table.html +26 -0
- ledger/templates/ledger/partials/view-corporation-ledger/information/daily.html +18 -0
- ledger/templates/ledger/partials/view-corporation-ledger/information/hourly.html +18 -0
- ledger/templates/ledger/partials/view-corporation-ledger/information/summary.html +19 -0
- ledger/templates/ledger/view-administration.html +62 -0
- ledger/templates/ledger/view-alliance-administration.html +49 -0
- ledger/templates/ledger/view-alliance-ledger.html +72 -0
- ledger/templates/ledger/view-alliance-overview.html +131 -0
- ledger/templates/ledger/view-character-administration.html +42 -0
- ledger/templates/ledger/view-character-ledger.html +73 -0
- ledger/templates/ledger/view-character-overview.html +135 -0
- ledger/templates/ledger/view-character-planetary-overview.html +135 -0
- ledger/templates/ledger/view-character-planetary.html +73 -0
- ledger/templates/ledger/view-corporation-administration.html +42 -0
- ledger/templates/ledger/view-corporation-ledger.html +73 -0
- ledger/templates/ledger/view-corporation-overview.html +131 -0
- ledger/templatetags/ledger.py +3 -5
- ledger/tests/__init__.py +187 -0
- ledger/tests/test_admin.py +164 -68
- ledger/tests/test_auth_hook.py +31 -13
- ledger/tests/test_decarators.py +14 -79
- ledger/tests/test_discord_installed.py +0 -1
- ledger/tests/test_helpers/test_ledger_data.py +19 -0
- ledger/tests/test_managers/test_character_audit_manager.py +111 -69
- ledger/tests/test_managers/test_character_journal_manager.py +48 -208
- ledger/tests/test_managers/test_character_mining_manager.py +37 -16
- ledger/tests/test_managers/test_corporation_division_manager.py +66 -28
- ledger/tests/test_managers/test_corporation_journal_manager.py +39 -42
- ledger/tests/test_managers/test_general_manager.py +78 -18
- ledger/tests/test_managers/test_planetary_manager.py +73 -32
- ledger/tests/test_models/test_characteraudit.py +58 -74
- ledger/tests/test_models/test_characterminingledger.py +20 -26
- ledger/tests/test_models/test_characterwalletjournal.py +10 -33
- ledger/tests/test_models/test_corporationaudit.py +41 -35
- ledger/tests/test_models/test_corporationwalletjournal.py +35 -32
- ledger/tests/test_models/test_general.py +44 -11
- ledger/tests/test_models/test_planetary.py +14 -80
- ledger/tests/test_templatetags.py +2 -7
- ledger/tests/test_views/corporation/test_add_corp.py +16 -35
- ledger/tests/test_views/corporation/test_delete_corporation.py +66 -42
- ledger/tests/test_views/test_access.py +512 -545
- ledger/tests/test_views/test_add_ally.py +57 -46
- ledger/tests/test_views/test_add_char.py +21 -33
- ledger/tests/test_views/test_delete_character.py +24 -21
- ledger/tests/testdata/README_ESI_STUB.md +430 -0
- ledger/tests/testdata/esi_stub_openapi.py +511 -0
- ledger/tests/testdata/integrations/__init__.py +0 -0
- ledger/tests/testdata/{load_eveuniverse.py → integrations/eveuniverse.py} +0 -1
- ledger/tests/testdata/integrations/planetary.py +13 -0
- ledger/tests/testdata/json/factory.json +281 -0
- ledger/tests/testdata/json/inactive.json +281 -0
- ledger/tests/testdata/json/pins.json +175 -272
- ledger/tests/testdata/json/route.json +95 -528
- ledger/tests/testdata/test_esi_stub.py +468 -0
- ledger/tests/testdata/utils.py +601 -0
- ledger/thirdparty/charlink_hook.py +60 -30
- ledger/urls.py +0 -135
- ledger/views/alliance/add_ally.py +2 -4
- ledger/views/alliance/alliance_ledger.py +64 -147
- ledger/views/character/add_char.py +8 -10
- ledger/views/character/character_ledger.py +60 -126
- ledger/views/character/planetary.py +5 -98
- ledger/views/corporation/add_corp.py +10 -12
- ledger/views/corporation/corporation_ledger.py +65 -327
- ledger/views/index.py +92 -30
- aa_ledger-1.0.4.dist-info/RECORD +0 -236
- ledger/api/api_helper/planetary_helper.py +0 -107
- ledger/api/ledger/__init__.py +0 -7
- ledger/api/ledger/planetary.py +0 -231
- ledger/helpers/alliance.py +0 -317
- ledger/helpers/character.py +0 -251
- ledger/helpers/core.py +0 -665
- ledger/helpers/corporation.py +0 -427
- ledger/helpers/data_exporter.py +0 -452
- ledger/static/ledger/js/planetary-confirm.js +0 -66
- ledger/static/ledger/js/planetary.js +0 -143
- ledger/templates/ledger/admin.html +0 -43
- ledger/templates/ledger/allyledger/admin/alliance_administration.html +0 -46
- ledger/templates/ledger/allyledger/admin/alliance_overview.html +0 -108
- ledger/templates/ledger/allyledger/alliance_ledger.html +0 -86
- ledger/templates/ledger/bundles/character-ledger-bundles.html +0 -66
- ledger/templates/ledger/bundles/corporation-ledger-bundles.html +0 -75
- ledger/templates/ledger/bundles/ledger-bundles.html +0 -23
- ledger/templates/ledger/bundles/ledger-css.html +0 -3
- ledger/templates/ledger/bundles/planetary-bundles.html +0 -50
- ledger/templates/ledger/bundles/table-css.html +0 -3
- ledger/templates/ledger/charledger/admin/character_administration.html +0 -39
- ledger/templates/ledger/charledger/admin/character_overview.html +0 -106
- ledger/templates/ledger/charledger/character_ledger.html +0 -94
- ledger/templates/ledger/charledger/planetary/admin/planetary_overview.html +0 -123
- ledger/templates/ledger/charledger/planetary/planetary_ledger.html +0 -54
- ledger/templates/ledger/corpledger/admin/corporation_administration.html +0 -39
- ledger/templates/ledger/corpledger/admin/corporation_overview.html +0 -108
- ledger/templates/ledger/corpledger/corporation_ledger.html +0 -129
- ledger/templates/ledger/data-export.html +0 -78
- ledger/templates/ledger/error.html +0 -31
- ledger/templates/ledger/partials/form/error-message.html +0 -1
- ledger/templates/ledger/partials/information/daily.html +0 -56
- ledger/templates/ledger/partials/information/day.html +0 -48
- ledger/templates/ledger/partials/information/error.html +0 -8
- ledger/templates/ledger/partials/information/hourly.html +0 -53
- ledger/templates/ledger/partials/information/summary.html +0 -88
- ledger/templates/ledger/partials/information/view_character_content.html +0 -35
- ledger/templates/ledger/partials/modal/switchalarm_confirm.html +0 -39
- ledger/templates/ledger/partials/modal/view_extractor.html +0 -48
- ledger/templates/ledger/partials/modal/view_factory.html +0 -123
- ledger/templates/ledger/partials/table/char-ledger.html +0 -85
- ledger/templates/ledger/partials/table/corp-ledger.html +0 -66
- ledger/templates/ledger/partials/table/planetary.html +0 -18
- ledger/templates/ledger/partials/thirdparty/billboard.html +0 -22
- ledger/templates/ledger/partials/view/card.html +0 -160
- ledger/templates/ledger/permission.html +0 -2
- ledger/tests/test_helpers/test_billboard.py +0 -11
- ledger/tests/test_helpers/test_data_exporter.py +0 -207
- ledger/tests/test_tasks.py +0 -282
- ledger/tests/test_view_helpers/test_core.py +0 -47
- ledger/tests/test_views/corporation/test_corporation.py +0 -267
- ledger/tests/test_views/test_planetary.py +0 -137
- ledger/tests/testdata/esi_stub.py +0 -109
- ledger/tests/testdata/esi_stub_migration.py +0 -80
- ledger/tests/testdata/generate_characteraudit.py +0 -106
- ledger/tests/testdata/generate_corporationaudit.py +0 -74
- ledger/tests/testdata/generate_events.py +0 -31
- ledger/tests/testdata/generate_miningledger.py +0 -13
- ledger/tests/testdata/generate_planets.py +0 -48
- ledger/tests/testdata/generate_walletjournal.py +0 -42
- ledger/tests/testdata/json/czarno-pins.json +0 -240
- ledger/tests/testdata/json/czarno-routes.json +0 -165
- ledger/tests/testdata/json/pins2.json +0 -538
- {aa_ledger-1.0.4.dist-info → aa_ledger-2.0.0.dist-info}/WHEEL +0 -0
- {aa_ledger-1.0.4.dist-info → aa_ledger-2.0.0.dist-info}/licenses/LICENSE +0 -0
- /ledger/{tests/test_view_helpers → api/helpers}/__init__.py +0 -0
- /ledger/templates/ledger/bundles/{ally-administration-bundles.html → view-alliance-administration-js.html} +0 -0
- /ledger/templates/ledger/bundles/{char-administration-bundles.html → view-character-administration-js.html} +0 -0
- /ledger/templates/ledger/bundles/{corp-administration-bundles.html → view-corporation-administration-js.html} +0 -0
- /ledger/templates/ledger/partials/{administration → view-alliance-administration}/alliance.html +0 -0
- /ledger/tests/testdata/{esi.json → esi_test_data.json} +0 -0
- /ledger/tests/testdata/{allianceauth.json → integrations/allianceauth.json} +0 -0
- /ledger/tests/testdata/{load_allianceauth.py → integrations/allianceauth.py} +0 -0
- /ledger/tests/testdata/{eveentity.json → integrations/eveentity.json} +0 -0
- /ledger/tests/testdata/{load_eveentity.py → integrations/eveentity.py} +0 -0
- /ledger/tests/testdata/{eveuniverse.json → integrations/eveuniverse.json} +0 -0
- /ledger/tests/testdata/{planetary.json → integrations/planetary.json} +0 -0
|
@@ -6,39 +6,37 @@ Character Audit
|
|
|
6
6
|
from django.contrib import messages
|
|
7
7
|
from django.contrib.auth.decorators import login_required, permission_required
|
|
8
8
|
from django.shortcuts import redirect
|
|
9
|
-
from django.utils.translation import gettext_lazy as
|
|
9
|
+
from django.utils.translation import gettext_lazy as _
|
|
10
10
|
|
|
11
11
|
# Alliance Auth
|
|
12
12
|
from allianceauth.eveonline.models import EveCharacter
|
|
13
13
|
from allianceauth.services.hooks import get_extension_logger
|
|
14
14
|
from esi.decorators import token_required
|
|
15
15
|
|
|
16
|
-
# Alliance Auth (External Libs)
|
|
17
|
-
from app_utils.logging import LoggerAddTag
|
|
18
|
-
|
|
19
16
|
# AA Ledger
|
|
20
17
|
from ledger import __title__, tasks
|
|
21
|
-
from ledger.models.characteraudit import
|
|
18
|
+
from ledger.models.characteraudit import CharacterOwner
|
|
19
|
+
from ledger.providers import AppLogger
|
|
22
20
|
|
|
23
|
-
logger =
|
|
21
|
+
logger = AppLogger(get_extension_logger(__name__), __title__)
|
|
24
22
|
|
|
25
23
|
|
|
26
24
|
@login_required
|
|
27
|
-
@token_required(scopes=
|
|
25
|
+
@token_required(scopes=CharacterOwner.get_esi_scopes())
|
|
28
26
|
@permission_required("ledger.basic_access")
|
|
29
27
|
def add_char(request, token):
|
|
30
|
-
char
|
|
28
|
+
char = CharacterOwner.objects.update_or_create(
|
|
31
29
|
eve_character=EveCharacter.objects.get_character_by_id(token.character_id),
|
|
32
30
|
defaults={
|
|
33
31
|
"active": True,
|
|
34
32
|
"character_name": token.character_name,
|
|
35
33
|
},
|
|
36
|
-
)
|
|
34
|
+
)[0]
|
|
37
35
|
tasks.update_character.apply_async(
|
|
38
36
|
args=[char.pk], kwargs={"force_refresh": True}, priority=6
|
|
39
37
|
)
|
|
40
38
|
|
|
41
|
-
msg =
|
|
39
|
+
msg = _("{character_name} successfully added/updated to Ledger").format(
|
|
42
40
|
character_name=char.eve_character.character_name,
|
|
43
41
|
)
|
|
44
42
|
messages.info(request, msg)
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"""PvE Views"""
|
|
2
2
|
|
|
3
3
|
# Standard Library
|
|
4
|
-
import json
|
|
5
4
|
from http import HTTPStatus
|
|
6
5
|
|
|
7
6
|
# Django
|
|
@@ -10,146 +9,83 @@ from django.contrib.auth.decorators import login_required, permission_required
|
|
|
10
9
|
from django.core.handlers.wsgi import WSGIRequest
|
|
11
10
|
from django.http import JsonResponse
|
|
12
11
|
from django.shortcuts import redirect, render
|
|
13
|
-
from django.
|
|
12
|
+
from django.urls import reverse
|
|
13
|
+
from django.utils import timezone
|
|
14
|
+
from django.utils.translation import gettext_lazy as _
|
|
14
15
|
from django.views.decorators.http import require_POST
|
|
15
16
|
|
|
16
17
|
# Alliance Auth
|
|
17
18
|
from allianceauth.eveonline.models import EveCharacter
|
|
18
19
|
from allianceauth.services.hooks import get_extension_logger
|
|
19
20
|
|
|
20
|
-
# Alliance Auth (External Libs)
|
|
21
|
-
from app_utils.logging import LoggerAddTag
|
|
22
|
-
|
|
23
21
|
# AA Ledger
|
|
24
|
-
from ledger import __title__
|
|
25
|
-
from ledger.api.helpers import
|
|
26
|
-
from ledger.
|
|
27
|
-
from ledger.
|
|
28
|
-
from ledger.models.characteraudit import CharacterAudit, CharacterWalletJournalEntry
|
|
22
|
+
from ledger import __title__, forms
|
|
23
|
+
from ledger.api.helpers.core import get_characterowner_or_none
|
|
24
|
+
from ledger.models.characteraudit import CharacterOwner
|
|
25
|
+
from ledger.providers import AppLogger
|
|
29
26
|
|
|
30
|
-
logger =
|
|
27
|
+
logger = AppLogger(get_extension_logger(__name__), __title__)
|
|
31
28
|
|
|
32
29
|
|
|
33
30
|
@login_required
|
|
34
31
|
@permission_required("ledger.basic_access")
|
|
35
|
-
# pylint: disable=too-many-positional-arguments
|
|
36
32
|
def character_ledger(
|
|
37
33
|
request: WSGIRequest,
|
|
38
34
|
character_id: int,
|
|
39
35
|
year=None,
|
|
40
36
|
month=None,
|
|
41
37
|
day=None,
|
|
42
|
-
section=None,
|
|
43
38
|
):
|
|
44
39
|
"""
|
|
45
40
|
Character Ledger
|
|
46
41
|
"""
|
|
47
|
-
perms
|
|
48
|
-
|
|
49
|
-
if not perms:
|
|
50
|
-
msg = _("Permission Denied")
|
|
51
|
-
messages.error(request, msg)
|
|
52
|
-
context = {
|
|
53
|
-
"error": msg,
|
|
54
|
-
"character_id": character_id,
|
|
55
|
-
"disabled": True,
|
|
56
|
-
}
|
|
57
|
-
context = add_info_to_context(request, context)
|
|
58
|
-
return render(
|
|
59
|
-
request, "ledger/charledger/character_ledger.html", context=context
|
|
60
|
-
)
|
|
61
|
-
|
|
62
|
-
character_data = CharacterData(
|
|
63
|
-
request=request,
|
|
64
|
-
character=character,
|
|
65
|
-
year=year,
|
|
66
|
-
month=month,
|
|
67
|
-
day=day,
|
|
68
|
-
section=section,
|
|
69
|
-
)
|
|
42
|
+
perms = get_characterowner_or_none(request, character_id)[0]
|
|
70
43
|
|
|
71
|
-
|
|
72
|
-
ledger = character_data.generate_ledger_data()
|
|
73
|
-
|
|
74
|
-
context = {
|
|
75
|
-
"title": f"Character Ledger - {character.eve_character.character_name}",
|
|
44
|
+
kwargs = {
|
|
76
45
|
"character_id": character_id,
|
|
77
|
-
"billboard": json.dumps(character_data.billboard.dict.asdict()),
|
|
78
|
-
"ledger": ledger,
|
|
79
|
-
"years": CharacterWalletJournalEntry.objects.filter(
|
|
80
|
-
character__in=character_data.characters
|
|
81
|
-
)
|
|
82
|
-
.exclude(date__year__isnull=True)
|
|
83
|
-
.values_list("date__year", flat=True)
|
|
84
|
-
.order_by("-date__year")
|
|
85
|
-
.distinct(),
|
|
86
|
-
"totals": character_data.calculate_totals(ledger),
|
|
87
|
-
"view": character_data.create_view_data(
|
|
88
|
-
viewname="character_details",
|
|
89
|
-
character_id=character_id,
|
|
90
|
-
section="summary",
|
|
91
|
-
),
|
|
92
|
-
"is_old_ess": character_data.is_old_ess,
|
|
93
46
|
}
|
|
94
|
-
# Add additional information to the context
|
|
95
|
-
context = add_info_to_context(request, context)
|
|
96
|
-
|
|
97
|
-
return render(request, "ledger/charledger/character_ledger.html", context=context)
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
@login_required
|
|
101
|
-
@permission_required("ledger.basic_access")
|
|
102
|
-
# pylint: disable=too-many-positional-arguments
|
|
103
|
-
def character_details(
|
|
104
|
-
request, character_id, year=None, month=None, day=None, section=None
|
|
105
|
-
):
|
|
106
|
-
"""
|
|
107
|
-
Character Details
|
|
108
|
-
"""
|
|
109
|
-
perms, character = get_character_or_none(request, character_id)
|
|
110
47
|
|
|
111
48
|
# pylint: disable=duplicate-code
|
|
112
|
-
if
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
)
|
|
133
|
-
|
|
134
|
-
character_data = CharacterData(request, character, year, month, day, section)
|
|
135
|
-
|
|
136
|
-
journal, mining = character_data.filter_character_journal(character)
|
|
137
|
-
amounts = character_data._create_character_details(journal, mining)
|
|
138
|
-
details = character_data._add_average_details(request, amounts, day)
|
|
49
|
+
if request.POST:
|
|
50
|
+
year = request.POST.get("year") or None
|
|
51
|
+
month = request.POST.get("month") or None
|
|
52
|
+
day = request.POST.get("day") or None
|
|
53
|
+
# Ensure that if only day is provided, month is also provided
|
|
54
|
+
if day is not None and month is None:
|
|
55
|
+
month = timezone.now().month
|
|
56
|
+
|
|
57
|
+
if year is not None:
|
|
58
|
+
kwargs["year"] = year
|
|
59
|
+
if month is not None:
|
|
60
|
+
kwargs["month"] = month
|
|
61
|
+
if day is not None:
|
|
62
|
+
kwargs["day"] = day
|
|
63
|
+
|
|
64
|
+
# Redirect to the same view with updated parameters
|
|
65
|
+
if request.POST:
|
|
66
|
+
return redirect("ledger:character_ledger", **kwargs)
|
|
67
|
+
|
|
68
|
+
ledger_url = reverse("ledger:api:get_character_ledger", kwargs=kwargs)
|
|
139
69
|
|
|
140
70
|
context = {
|
|
141
|
-
"title":
|
|
142
|
-
"
|
|
143
|
-
"
|
|
144
|
-
"
|
|
71
|
+
"title": "Character Ledger",
|
|
72
|
+
"character_id": character_id,
|
|
73
|
+
"ledger_url": ledger_url,
|
|
74
|
+
"forms": {
|
|
75
|
+
"character_dropdown": forms.CharacterDropdownForm(
|
|
76
|
+
character_id=character_id,
|
|
77
|
+
year=year,
|
|
78
|
+
month=month,
|
|
79
|
+
day=day,
|
|
80
|
+
),
|
|
81
|
+
},
|
|
145
82
|
}
|
|
146
|
-
context = add_info_to_context(request, context)
|
|
147
83
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
context=context
|
|
152
|
-
)
|
|
84
|
+
if not perms:
|
|
85
|
+
msg = _("Permission Denied")
|
|
86
|
+
messages.error(request, msg)
|
|
87
|
+
return render(request, "ledger/view-character-ledger.html", context=context)
|
|
88
|
+
return render(request, "ledger/view-character-ledger.html", context=context)
|
|
153
89
|
|
|
154
90
|
|
|
155
91
|
@login_required
|
|
@@ -161,11 +97,10 @@ def character_overview(request):
|
|
|
161
97
|
|
|
162
98
|
context = {
|
|
163
99
|
"title": "Character Overview",
|
|
100
|
+
"year": timezone.now().year,
|
|
101
|
+
"month": timezone.now().month,
|
|
164
102
|
}
|
|
165
|
-
|
|
166
|
-
return render(
|
|
167
|
-
request, "ledger/charledger/admin/character_overview.html", context=context
|
|
168
|
-
)
|
|
103
|
+
return render(request, "ledger/view-character-overview.html", context=context)
|
|
169
104
|
|
|
170
105
|
|
|
171
106
|
@login_required
|
|
@@ -177,36 +112,35 @@ def character_administration(request, character_id=None):
|
|
|
177
112
|
if character_id is None:
|
|
178
113
|
character_id = request.user.profile.main_character.character_id
|
|
179
114
|
|
|
180
|
-
perms, character =
|
|
115
|
+
perms, character = get_characterowner_or_none(request, character_id)
|
|
181
116
|
|
|
182
117
|
if not perms:
|
|
183
118
|
msg = _("Permission Denied")
|
|
184
119
|
messages.error(request, msg)
|
|
185
120
|
return redirect("ledger:index")
|
|
186
121
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
characters = CharacterAudit.objects.filter(
|
|
190
|
-
eve_character__character_id__in=linked_characters_ids
|
|
122
|
+
characters = CharacterOwner.objects.filter(
|
|
123
|
+
eve_character__character_id__in=character.alt_ids
|
|
191
124
|
).order_by("eve_character__character_name")
|
|
192
125
|
characters_ids = characters.values_list("eve_character__character_id", flat=True)
|
|
193
126
|
|
|
194
127
|
missing_characters = (
|
|
195
|
-
EveCharacter.objects.filter(character_id__in=
|
|
128
|
+
EveCharacter.objects.filter(character_id__in=character.alt_ids)
|
|
196
129
|
.exclude(character_id__in=characters_ids)
|
|
197
130
|
.order_by("character_name")
|
|
198
131
|
)
|
|
199
132
|
|
|
200
133
|
context = {
|
|
201
|
-
"character_id": character_id,
|
|
202
134
|
"title": "Character Administration",
|
|
135
|
+
"character_id": character_id,
|
|
136
|
+
"year": timezone.now().year,
|
|
137
|
+
"month": timezone.now().month,
|
|
203
138
|
"characters": characters,
|
|
204
139
|
"missing_characters": missing_characters,
|
|
205
140
|
}
|
|
206
|
-
context = add_info_to_context(request, context)
|
|
207
141
|
return render(
|
|
208
142
|
request,
|
|
209
|
-
"ledger/
|
|
143
|
+
"ledger/view-character-administration.html",
|
|
210
144
|
context=context,
|
|
211
145
|
)
|
|
212
146
|
|
|
@@ -218,7 +152,7 @@ def character_delete(request, character_id):
|
|
|
218
152
|
"""
|
|
219
153
|
Character Delete
|
|
220
154
|
"""
|
|
221
|
-
perms =
|
|
155
|
+
perms = get_characterowner_or_none(request, character_id)[0]
|
|
222
156
|
if not perms:
|
|
223
157
|
msg = _("Permission Denied")
|
|
224
158
|
return JsonResponse(
|
|
@@ -226,8 +160,8 @@ def character_delete(request, character_id):
|
|
|
226
160
|
)
|
|
227
161
|
|
|
228
162
|
try:
|
|
229
|
-
audit =
|
|
230
|
-
except
|
|
163
|
+
audit = CharacterOwner.objects.get(eve_character__character_id=character_id)
|
|
164
|
+
except CharacterOwner.DoesNotExist:
|
|
231
165
|
msg = _("Character not found")
|
|
232
166
|
return JsonResponse(
|
|
233
167
|
{"success": False, "message": msg}, status=HTTPStatus.NOT_FOUND, safe=False
|
|
@@ -2,38 +2,25 @@
|
|
|
2
2
|
Planetary Audit
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
|
-
# Standard Library
|
|
6
|
-
from http import HTTPStatus
|
|
7
|
-
|
|
8
5
|
# Django
|
|
9
6
|
from django.contrib.auth.decorators import login_required, permission_required
|
|
10
|
-
from django.db.models import Q
|
|
11
|
-
from django.http import JsonResponse
|
|
12
7
|
from django.shortcuts import redirect, render
|
|
13
8
|
from django.utils.translation import gettext_lazy as _
|
|
14
|
-
from django.views.decorators.http import require_POST
|
|
15
9
|
|
|
16
10
|
# Alliance Auth
|
|
17
11
|
from allianceauth.services.hooks import get_extension_logger
|
|
18
12
|
|
|
19
|
-
# Alliance Auth (External Libs)
|
|
20
|
-
from app_utils.logging import LoggerAddTag
|
|
21
|
-
|
|
22
13
|
# AA Ledger
|
|
23
|
-
from ledger import __title__
|
|
24
|
-
from ledger.
|
|
25
|
-
from ledger.helpers.core import add_info_to_context
|
|
26
|
-
from ledger.models.planetary import CharacterPlanetDetails
|
|
14
|
+
from ledger import __title__
|
|
15
|
+
from ledger.providers import AppLogger
|
|
27
16
|
|
|
28
|
-
logger =
|
|
17
|
+
logger = AppLogger(get_extension_logger(__name__), __title__)
|
|
29
18
|
|
|
30
19
|
|
|
31
20
|
@login_required
|
|
32
21
|
@permission_required("ledger.basic_access")
|
|
33
22
|
def planetary_ledger_index(request):
|
|
34
23
|
"""Character Ledger Index View"""
|
|
35
|
-
context = {}
|
|
36
|
-
context = add_info_to_context(request, context)
|
|
37
24
|
return redirect(
|
|
38
25
|
"ledger:planetary_ledger", request.user.profile.main_character.character_id
|
|
39
26
|
)
|
|
@@ -48,14 +35,8 @@ def planetary_ledger(request, character_id=None):
|
|
|
48
35
|
context = {
|
|
49
36
|
"title": "Planetary Ledger",
|
|
50
37
|
"character_id": character_id,
|
|
51
|
-
"forms": {
|
|
52
|
-
"confirm": forms.ConfirmForm(),
|
|
53
|
-
},
|
|
54
38
|
}
|
|
55
|
-
|
|
56
|
-
return render(
|
|
57
|
-
request, "ledger/charledger/planetary/planetary_ledger.html", context=context
|
|
58
|
-
)
|
|
39
|
+
return render(request, "ledger/view-character-planetary.html", context=context)
|
|
59
40
|
|
|
60
41
|
|
|
61
42
|
@login_required
|
|
@@ -68,82 +49,8 @@ def planetary_overview(request):
|
|
|
68
49
|
context = {
|
|
69
50
|
"title": "Planetary Overview",
|
|
70
51
|
}
|
|
71
|
-
context = add_info_to_context(request, context)
|
|
72
|
-
|
|
73
52
|
return render(
|
|
74
53
|
request,
|
|
75
|
-
"ledger/
|
|
54
|
+
"ledger/view-character-planetary-overview.html",
|
|
76
55
|
context=context,
|
|
77
56
|
)
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
@login_required
|
|
81
|
-
@permission_required("ledger.basic_access")
|
|
82
|
-
@require_POST
|
|
83
|
-
def switch_alarm(request):
|
|
84
|
-
# Check Permission
|
|
85
|
-
form = forms.ConfirmForm(request.POST)
|
|
86
|
-
|
|
87
|
-
if form.is_valid():
|
|
88
|
-
is_all = False
|
|
89
|
-
character_id = int(form.cleaned_data["character_id"])
|
|
90
|
-
planet_id = int(form.cleaned_data["planet_id"])
|
|
91
|
-
|
|
92
|
-
if character_id == 0: # pylint: disable=duplicate-code
|
|
93
|
-
character_id = request.user.profile.main_character.character_id
|
|
94
|
-
is_all = True
|
|
95
|
-
|
|
96
|
-
perm, character = get_character_or_none(
|
|
97
|
-
request, character_id
|
|
98
|
-
) # pylint: disable=duplicate-code
|
|
99
|
-
|
|
100
|
-
if not perm:
|
|
101
|
-
msg = _("Permission Denied")
|
|
102
|
-
return JsonResponse(
|
|
103
|
-
{"success": True, "message": msg},
|
|
104
|
-
status=HTTPStatus.FORBIDDEN,
|
|
105
|
-
safe=False,
|
|
106
|
-
)
|
|
107
|
-
|
|
108
|
-
if is_all:
|
|
109
|
-
characters = character.alts.values_list("character_id", flat=True)
|
|
110
|
-
else:
|
|
111
|
-
characters = [character_id]
|
|
112
|
-
|
|
113
|
-
filters = Q(planet__character__eve_character__character_id__in=characters)
|
|
114
|
-
if planet_id != 0:
|
|
115
|
-
filters &= Q(planet__planet__id=planet_id)
|
|
116
|
-
try:
|
|
117
|
-
planets = CharacterPlanetDetails.objects.filter(filters)
|
|
118
|
-
|
|
119
|
-
if planets.exists():
|
|
120
|
-
# Determine the majority state
|
|
121
|
-
on_count = planets.filter(notification=True).count()
|
|
122
|
-
off_count = planets.filter(notification=False).count()
|
|
123
|
-
majority_state = on_count > off_count
|
|
124
|
-
|
|
125
|
-
# Set all to the opposite of the majority state
|
|
126
|
-
for p in planets:
|
|
127
|
-
p.notification = not majority_state
|
|
128
|
-
p.save()
|
|
129
|
-
|
|
130
|
-
msg = _("All alarms successfully switched")
|
|
131
|
-
else:
|
|
132
|
-
raise CharacterPlanetDetails.DoesNotExist
|
|
133
|
-
|
|
134
|
-
except CharacterPlanetDetails.DoesNotExist:
|
|
135
|
-
msg = _("Planet/s not found")
|
|
136
|
-
return JsonResponse(
|
|
137
|
-
{"success": True, "message": msg},
|
|
138
|
-
status=HTTPStatus.NOT_FOUND,
|
|
139
|
-
safe=False,
|
|
140
|
-
)
|
|
141
|
-
|
|
142
|
-
return JsonResponse(
|
|
143
|
-
{"success": True, "message": msg}, status=HTTPStatus.OK, safe=False
|
|
144
|
-
)
|
|
145
|
-
|
|
146
|
-
msg = "Invalid Form"
|
|
147
|
-
return JsonResponse(
|
|
148
|
-
{"success": False, "message": msg}, status=HTTPStatus.BAD_REQUEST, safe=False
|
|
149
|
-
)
|
|
@@ -7,39 +7,37 @@ from django.contrib import messages
|
|
|
7
7
|
from django.contrib.auth.decorators import login_required, permission_required
|
|
8
8
|
from django.http import HttpResponse
|
|
9
9
|
from django.shortcuts import get_object_or_404, redirect
|
|
10
|
-
from django.utils.translation import gettext_lazy as
|
|
10
|
+
from django.utils.translation import gettext_lazy as _
|
|
11
11
|
|
|
12
12
|
# Alliance Auth
|
|
13
13
|
from allianceauth.eveonline.models import EveCharacter, EveCorporationInfo
|
|
14
14
|
from allianceauth.services.hooks import get_extension_logger
|
|
15
15
|
from esi.decorators import token_required
|
|
16
16
|
|
|
17
|
-
# Alliance Auth (External Libs)
|
|
18
|
-
from app_utils.logging import LoggerAddTag
|
|
19
|
-
|
|
20
17
|
# AA Ledger
|
|
21
18
|
from ledger import __title__, tasks
|
|
22
|
-
from ledger.models.corporationaudit import
|
|
19
|
+
from ledger.models.corporationaudit import CorporationOwner
|
|
20
|
+
from ledger.providers import AppLogger
|
|
23
21
|
|
|
24
|
-
logger =
|
|
22
|
+
logger = AppLogger(get_extension_logger(__name__), __title__)
|
|
25
23
|
|
|
26
24
|
|
|
27
25
|
@login_required
|
|
28
|
-
@token_required(scopes=
|
|
26
|
+
@token_required(scopes=CorporationOwner.get_esi_scopes())
|
|
29
27
|
@permission_required(["ledger.manage_access"])
|
|
30
28
|
def add_corp(request, token) -> HttpResponse:
|
|
31
29
|
char = get_object_or_404(EveCharacter, character_id=token.character_id)
|
|
32
|
-
eve_corp
|
|
30
|
+
eve_corp = EveCorporationInfo.objects.get_or_create(
|
|
33
31
|
corporation_id=char.corporation_id,
|
|
34
32
|
defaults={
|
|
35
33
|
"member_count": 0,
|
|
36
34
|
"corporation_ticker": char.corporation_ticker,
|
|
37
35
|
"corporation_name": char.corporation_name,
|
|
38
36
|
},
|
|
39
|
-
)
|
|
37
|
+
)[0]
|
|
40
38
|
|
|
41
|
-
corp =
|
|
42
|
-
|
|
39
|
+
corp = CorporationOwner.objects.update_or_create(
|
|
40
|
+
eve_corporation=eve_corp,
|
|
43
41
|
defaults={
|
|
44
42
|
"corporation_name": eve_corp.corporation_name,
|
|
45
43
|
},
|
|
@@ -48,7 +46,7 @@ def add_corp(request, token) -> HttpResponse:
|
|
|
48
46
|
tasks.update_corporation.apply_async(
|
|
49
47
|
args=[corp.pk], kwargs={"force_refresh": True}, priority=6
|
|
50
48
|
)
|
|
51
|
-
msg =
|
|
49
|
+
msg = _("{corporation_name} successfully added/updated to Ledger").format(
|
|
52
50
|
corporation_name=corp.corporation_name,
|
|
53
51
|
)
|
|
54
52
|
messages.info(request, msg)
|