aa-ledger 1.0.3__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.3.dist-info → aa_ledger-2.0.0.dist-info}/METADATA +6 -6
- aa_ledger-2.0.0.dist-info/RECORD +267 -0
- {aa_ledger-1.0.3.dist-info → aa_ledger-2.0.0.dist-info}/WHEEL +1 -1
- 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 +18 -26
- 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 +717 -553
- 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 +187 -358
- ledger/managers/character_mining_manager.py +64 -30
- ledger/managers/character_planetary_manager.py +185 -138
- ledger/managers/corporation_audit_manager.py +36 -27
- ledger/managers/corporation_journal_manager.py +94 -57
- ledger/managers/general_manager.py +12 -8
- 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 -146
- 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.3.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.3.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
|
@@ -19,14 +19,14 @@ from django.utils import timezone
|
|
|
19
19
|
from allianceauth.services.hooks import get_extension_logger
|
|
20
20
|
|
|
21
21
|
# Alliance Auth (External Libs)
|
|
22
|
-
from app_utils.logging import LoggerAddTag
|
|
23
22
|
from eveuniverse.models import EveSolarSystem, EveType
|
|
24
23
|
|
|
25
24
|
# AA Ledger
|
|
26
25
|
from ledger import __title__
|
|
27
|
-
from ledger.app_settings import LEDGER_PRICE_PERCENTAGE
|
|
26
|
+
from ledger.app_settings import LEDGER_BULK_BATCH_SIZE, LEDGER_PRICE_PERCENTAGE
|
|
28
27
|
from ledger.decorators import log_timing
|
|
29
|
-
from ledger.
|
|
28
|
+
from ledger.models.helpers.update_manager import CharacterUpdateSection
|
|
29
|
+
from ledger.providers import AppLogger, esi
|
|
30
30
|
|
|
31
31
|
if TYPE_CHECKING:
|
|
32
32
|
# Alliance Auth
|
|
@@ -34,11 +34,14 @@ if TYPE_CHECKING:
|
|
|
34
34
|
|
|
35
35
|
# AA Ledger
|
|
36
36
|
from ledger.models.characteraudit import (
|
|
37
|
-
|
|
37
|
+
CharacterMiningLedger as MiningLedgerContext,
|
|
38
|
+
)
|
|
39
|
+
from ledger.models.characteraudit import (
|
|
40
|
+
CharacterOwner,
|
|
38
41
|
)
|
|
39
42
|
from ledger.models.general import UpdateSectionResult
|
|
40
43
|
|
|
41
|
-
logger =
|
|
44
|
+
logger = AppLogger(get_extension_logger(__name__), __title__)
|
|
42
45
|
|
|
43
46
|
|
|
44
47
|
def require_valid_price_percentage(func):
|
|
@@ -52,7 +55,7 @@ def require_valid_price_percentage(func):
|
|
|
52
55
|
return wrapper
|
|
53
56
|
|
|
54
57
|
|
|
55
|
-
class CharacterMiningLedgerEntryQueryset(models.QuerySet):
|
|
58
|
+
class CharacterMiningLedgerEntryQueryset(models.QuerySet["MiningLedgerContext"]):
|
|
56
59
|
@require_valid_price_percentage
|
|
57
60
|
def annotate_pricing(self) -> models.QuerySet:
|
|
58
61
|
"""Annotate price and total columns."""
|
|
@@ -143,46 +146,74 @@ class CharacterMiningLedgerEntryQueryset(models.QuerySet):
|
|
|
143
146
|
)
|
|
144
147
|
|
|
145
148
|
|
|
146
|
-
class
|
|
149
|
+
class CharacterMiningLedgerEntryManager(models.Manager["MiningLedgerContext"]):
|
|
150
|
+
def get_queryset(self) -> CharacterMiningLedgerEntryQueryset:
|
|
151
|
+
return CharacterMiningLedgerEntryQueryset(self.model, using=self._db)
|
|
152
|
+
|
|
153
|
+
@require_valid_price_percentage
|
|
154
|
+
def annotate_pricing(self) -> models.QuerySet:
|
|
155
|
+
"""Annotate price and total columns."""
|
|
156
|
+
return self.get_queryset().annotate_pricing()
|
|
157
|
+
|
|
158
|
+
def annotate_mining(self, with_period: bool = False) -> models.QuerySet:
|
|
159
|
+
"""Annotate mining columns."""
|
|
160
|
+
return self.get_queryset().annotate_mining(with_period=with_period)
|
|
161
|
+
|
|
162
|
+
def aggregate_mining(self):
|
|
163
|
+
"""Aggregate mining amounts."""
|
|
164
|
+
return self.get_queryset().aggregate_mining()
|
|
165
|
+
|
|
166
|
+
def aggregate_amounts_information_modal(
|
|
167
|
+
self, amounts: defaultdict, chars_list: list, filter_date: timezone.datetime
|
|
168
|
+
) -> dict:
|
|
169
|
+
"""Generate data template for the ledger character information view."""
|
|
170
|
+
return self.get_queryset().aggregate_amounts_information_modal(
|
|
171
|
+
amounts, chars_list, filter_date
|
|
172
|
+
)
|
|
173
|
+
|
|
174
|
+
def annotate_billboard(self, chars_list: list) -> models.QuerySet:
|
|
175
|
+
"""Annotate billboard columns."""
|
|
176
|
+
return self.get_queryset().annotate_billboard(chars_list)
|
|
177
|
+
|
|
147
178
|
@log_timing(logger)
|
|
148
179
|
def update_or_create_esi(
|
|
149
|
-
self,
|
|
180
|
+
self, owner: "CharacterOwner", force_refresh: bool = False
|
|
150
181
|
) -> "UpdateSectionResult":
|
|
151
182
|
"""Update or Create a mining ledger entry from ESI data."""
|
|
152
|
-
return
|
|
153
|
-
section=
|
|
183
|
+
return owner.update_manager.update_section_if_changed(
|
|
184
|
+
section=CharacterUpdateSection.MINING_LEDGER,
|
|
154
185
|
fetch_func=self._fetch_esi_data,
|
|
155
186
|
force_refresh=force_refresh,
|
|
156
187
|
)
|
|
157
188
|
|
|
158
189
|
def _fetch_esi_data(
|
|
159
|
-
self,
|
|
190
|
+
self, owner: "CharacterOwner", force_refresh: bool = False
|
|
160
191
|
) -> None:
|
|
161
192
|
"""Fetch mining ledger entries from ESI data."""
|
|
162
193
|
req_scopes = ["esi-industry.read_character_mining.v1"]
|
|
163
|
-
token =
|
|
194
|
+
token = owner.get_token(scopes=req_scopes)
|
|
164
195
|
|
|
165
196
|
# Make the ESI request
|
|
166
197
|
operation = esi.client.Industry.GetCharactersCharacterIdMining(
|
|
167
|
-
character_id=
|
|
198
|
+
character_id=owner.eve_character.character_id,
|
|
168
199
|
token=token,
|
|
169
200
|
)
|
|
170
201
|
|
|
171
202
|
mining_items = operation.results(force_refresh=force_refresh)
|
|
172
203
|
|
|
173
204
|
# Process and update or create mining ledger entries
|
|
174
|
-
self._update_or_create_objs(
|
|
205
|
+
self._update_or_create_objs(owner=owner, objs=mining_items)
|
|
175
206
|
|
|
176
207
|
@transaction.atomic()
|
|
177
208
|
def _update_or_create_objs(
|
|
178
209
|
self,
|
|
179
|
-
|
|
210
|
+
owner: "CharacterOwner",
|
|
180
211
|
objs: list["CharactersCharacterIdMiningGetItem"],
|
|
181
212
|
) -> None:
|
|
182
213
|
"""Update or Create mining ledger entries from objs data."""
|
|
183
214
|
existings_pks = set(
|
|
184
215
|
self.filter(
|
|
185
|
-
character=
|
|
216
|
+
character=owner,
|
|
186
217
|
date__gte=timezone.now() - timezone.timedelta(days=30),
|
|
187
218
|
).values_list("id", flat=True)
|
|
188
219
|
)
|
|
@@ -194,9 +225,9 @@ class CharacterMiningLedgerEntryManagerBase(models.Manager):
|
|
|
194
225
|
for entry in objs:
|
|
195
226
|
type_ids.add(entry.type_id)
|
|
196
227
|
system_ids.add(entry.solar_system_id)
|
|
197
|
-
pk = self.model.create_primary_key(
|
|
228
|
+
pk = self.model.create_primary_key(owner.pk, entry)
|
|
198
229
|
_e = self.model(
|
|
199
|
-
character=
|
|
230
|
+
character=owner,
|
|
200
231
|
id=pk,
|
|
201
232
|
date=entry.date,
|
|
202
233
|
type_id=entry.type_id,
|
|
@@ -213,19 +244,23 @@ class CharacterMiningLedgerEntryManagerBase(models.Manager):
|
|
|
213
244
|
EveSolarSystem.objects.bulk_get_or_create_esi(ids=list(system_ids))
|
|
214
245
|
|
|
215
246
|
if new_events:
|
|
216
|
-
self.bulk_create(
|
|
247
|
+
self.bulk_create(
|
|
248
|
+
new_events, batch_size=LEDGER_BULK_BATCH_SIZE, ignore_conflicts=True
|
|
249
|
+
)
|
|
217
250
|
|
|
218
251
|
if old_events:
|
|
219
|
-
self.bulk_update(
|
|
252
|
+
self.bulk_update(
|
|
253
|
+
old_events, fields=["quantity"], batch_size=LEDGER_BULK_BATCH_SIZE
|
|
254
|
+
)
|
|
220
255
|
|
|
221
|
-
self._update_mining_price(
|
|
256
|
+
self._update_mining_price(owner=owner)
|
|
222
257
|
|
|
223
|
-
def _update_mining_price(self,
|
|
258
|
+
def _update_mining_price(self, owner: "CharacterOwner") -> None:
|
|
224
259
|
"""Update prices for mining ledger entries."""
|
|
225
260
|
# Update EveMarketPrice on a Daily basis
|
|
226
261
|
self.model.update_evemarket_price()
|
|
227
262
|
|
|
228
|
-
mining_ledger =
|
|
263
|
+
mining_ledger = owner.mining_ledger.filter(price_per_unit__isnull=True)
|
|
229
264
|
logger.debug(
|
|
230
265
|
f"Checking {mining_ledger.count()} mining ledger entries for missing prices."
|
|
231
266
|
)
|
|
@@ -238,13 +273,12 @@ class CharacterMiningLedgerEntryManagerBase(models.Manager):
|
|
|
238
273
|
updated_entries.append(entry)
|
|
239
274
|
|
|
240
275
|
if updated_entries:
|
|
241
|
-
self.bulk_update(
|
|
276
|
+
self.bulk_update(
|
|
277
|
+
updated_entries,
|
|
278
|
+
fields=["price_per_unit"],
|
|
279
|
+
batch_size=LEDGER_BULK_BATCH_SIZE,
|
|
280
|
+
)
|
|
242
281
|
|
|
243
282
|
logger.debug(
|
|
244
|
-
f"Updated prices for {len(updated_entries)}({
|
|
283
|
+
f"Updated prices for {len(updated_entries)}({owner.character_name}) mining ledger entries."
|
|
245
284
|
)
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
CharacterMiningLedgerEntryManager = CharacterMiningLedgerEntryManagerBase.from_queryset(
|
|
249
|
-
CharacterMiningLedgerEntryQueryset
|
|
250
|
-
)
|