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
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
{% extends 'ledger/base.html' %}
|
|
2
|
+
{% load i18n %}
|
|
3
|
+
|
|
4
|
+
{% block page_template_title %}
|
|
5
|
+
{{ title }}
|
|
6
|
+
{% endblock page_template_title %}
|
|
7
|
+
|
|
8
|
+
{% block page_topic %}
|
|
9
|
+
<h1 class="page-header text-center">
|
|
10
|
+
{{ title }}
|
|
11
|
+
</h1>
|
|
12
|
+
{% endblock page_topic %}
|
|
13
|
+
|
|
14
|
+
{% block aaledger_header %}
|
|
15
|
+
<div class="card">
|
|
16
|
+
<div class="card-header bg-primary rounded d-flex align-items-center">
|
|
17
|
+
<h3 class="text-white">{% translate "Planetary Overview" %}</h3>
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
{% endblock %}
|
|
21
|
+
|
|
22
|
+
{% block ledger_block %}
|
|
23
|
+
<div class="card card-body mt-2 rounded">
|
|
24
|
+
<div class="table-responsive">
|
|
25
|
+
<table class="table table-striped table-hover w-100" id="overview-table">
|
|
26
|
+
<thead>
|
|
27
|
+
<th class="col-portrait" style="width: 10%;"></th>
|
|
28
|
+
<th class="col-user" style="width: 20%;">Character</th>
|
|
29
|
+
<th class="col-group" style="width: 20%;">Corporation</th>
|
|
30
|
+
<th class="col-actions" style="width: 10%;">{% trans "Actions" %}</th>
|
|
31
|
+
</thead>
|
|
32
|
+
<tbody></tbody>
|
|
33
|
+
</table>
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
{% endblock %}
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
{% block extra_css %}
|
|
40
|
+
{% include 'bundles/datatables-2-css-bs5.html' %}
|
|
41
|
+
{% include 'bundles/datatables-2-columncontrol-css-bs5.html' %}
|
|
42
|
+
{% include 'ledger/bundles/aa-ledger-css.html' %}
|
|
43
|
+
{% endblock %}
|
|
44
|
+
|
|
45
|
+
{% block extra_javascript %}
|
|
46
|
+
{% include 'ledger/bundles/aa-ledger-js.html' %}
|
|
47
|
+
{% include 'bundles/datatables-2-js-bs5.html' %}
|
|
48
|
+
{% include 'bundles/datatables-2-columncontrol-js-bs5.html' %}
|
|
49
|
+
<script type="application/javascript">
|
|
50
|
+
/* global aaLedgerSettings, aaLedgerSettingsOverride, _bootstrapTooltip, fetchGet, bootstrap, DataTable*/
|
|
51
|
+
$(document).ready(() => {
|
|
52
|
+
/**
|
|
53
|
+
* Overview :: Urls
|
|
54
|
+
*/
|
|
55
|
+
const AdminUrl = "{% url 'ledger:api:get_planetary_overview' %}"
|
|
56
|
+
const PlanetaryOverviewUrl = "{% url 'ledger:planetary_ledger' character_id=1337 %}"
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Table :: IDs
|
|
60
|
+
*/
|
|
61
|
+
const overviewTable = $('#overview-table');
|
|
62
|
+
|
|
63
|
+
fetchGet({
|
|
64
|
+
url: AdminUrl,
|
|
65
|
+
})
|
|
66
|
+
.then((data) => {
|
|
67
|
+
if (data) {
|
|
68
|
+
/**
|
|
69
|
+
* DataTable for Corporation Overview Table
|
|
70
|
+
* @type {*|jQuery}
|
|
71
|
+
*/
|
|
72
|
+
const overviewDataTable = new DataTable(overviewTable, {
|
|
73
|
+
data: Object.values(data[0].character),
|
|
74
|
+
language: aaLedgerSettings.dataTables.language,
|
|
75
|
+
layout: aaLedgerSettings.dataTables.layout,
|
|
76
|
+
ordering: aaLedgerSettings.dataTables.ordering,
|
|
77
|
+
columnControl: aaLedgerSettings.dataTables.columnControl,
|
|
78
|
+
order: [[1, 'asc']],
|
|
79
|
+
columns: [
|
|
80
|
+
{
|
|
81
|
+
data: 'character_id'
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
data: 'character_name'
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
data: 'corporation_name'
|
|
88
|
+
},
|
|
89
|
+
],
|
|
90
|
+
columnDefs: [
|
|
91
|
+
{
|
|
92
|
+
targets: 0,
|
|
93
|
+
render: function (data, type, row) {
|
|
94
|
+
return '<img src="https://images.evetech.net/characters/' + row.character_id + '/portrait?size=32" class="rounded-circle" title="' + row.character_name + '" height="30" data-tooltip-toggle="char-tooltip" data-bs-placement="top">';
|
|
95
|
+
},
|
|
96
|
+
columnControl: [
|
|
97
|
+
{target: 0, content: []},
|
|
98
|
+
{target: 1, content: []}
|
|
99
|
+
]
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
targets: 3,
|
|
103
|
+
columnControl: [
|
|
104
|
+
{target: 0, content: []},
|
|
105
|
+
{target: 1, content: []}
|
|
106
|
+
],
|
|
107
|
+
render: function (data, type, row) {
|
|
108
|
+
var OverviewUrl = PlanetaryOverviewUrl.replace('1337', row.character_id);
|
|
109
|
+
return `<a href="${OverviewUrl}">
|
|
110
|
+
<button class="btn btn-primary btn-sm"
|
|
111
|
+
title="{% trans "Show" %}"
|
|
112
|
+
data-bs-tooltip="aa-ledger"
|
|
113
|
+
data-bs-placement="left"
|
|
114
|
+
>
|
|
115
|
+
<i class="fa-solid fa-eye"></i>
|
|
116
|
+
</button>
|
|
117
|
+
</a>`;
|
|
118
|
+
},
|
|
119
|
+
}
|
|
120
|
+
],
|
|
121
|
+
initComplete: function() {
|
|
122
|
+
_bootstrapTooltip({selector: '#overview-table'});
|
|
123
|
+
},
|
|
124
|
+
drawCallback: function() {
|
|
125
|
+
_bootstrapTooltip({selector: '#overview-table'});
|
|
126
|
+
}
|
|
127
|
+
})
|
|
128
|
+
}
|
|
129
|
+
})
|
|
130
|
+
.catch((error) => {
|
|
131
|
+
console.error('Error fetching Character Ledger data:', error);
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
</script>
|
|
135
|
+
{% endblock %}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
{% extends 'ledger/base.html' %}
|
|
2
|
+
{% load i18n %}
|
|
3
|
+
{% load sri %}
|
|
4
|
+
|
|
5
|
+
{% block page_template_title %}
|
|
6
|
+
{{ title }}
|
|
7
|
+
{% endblock page_template_title %}
|
|
8
|
+
|
|
9
|
+
{% block page_topic %}
|
|
10
|
+
<h1 class="page-header text-center">
|
|
11
|
+
{{ title }}
|
|
12
|
+
</h1>
|
|
13
|
+
{% endblock page_topic %}
|
|
14
|
+
|
|
15
|
+
{% block aaledger_header %}
|
|
16
|
+
<div class="card">
|
|
17
|
+
<div class="card-header bg-primary rounded d-flex align-items-center">
|
|
18
|
+
<h3>{% translate "Planetary Details" %} </h3>
|
|
19
|
+
<div class="ms-auto">
|
|
20
|
+
<a class="nav-link py-0" href="{% url 'ledger:planetary_overview' %}">
|
|
21
|
+
<span class="btn btn-secondary">{% translate 'Planetary Overview' %}</span>
|
|
22
|
+
</a>
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
{% endblock %}
|
|
27
|
+
|
|
28
|
+
{% block ledger_block %}
|
|
29
|
+
{% include 'ledger/partials/view-character-planetary/planetary-table.html' %}
|
|
30
|
+
{% endblock %}
|
|
31
|
+
|
|
32
|
+
{% block extra_css %}
|
|
33
|
+
{% include 'bundles/datatables-2-css-bs5.html' %}
|
|
34
|
+
{% include 'bundles/datatables-2-columncontrol-css-bs5.html' %}
|
|
35
|
+
{% include 'ledger/bundles/aa-ledger-css.html' %}
|
|
36
|
+
{% include 'ledger/bundles/view-character-planetary-css.html' %}
|
|
37
|
+
{% endblock %}
|
|
38
|
+
|
|
39
|
+
{% block extra_javascript %}
|
|
40
|
+
<script>
|
|
41
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
42
|
+
const singleViewParms = urlParams.get('single');
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Override settings for aaLedger
|
|
46
|
+
*/
|
|
47
|
+
const aaLedgerSettingsOverride = {
|
|
48
|
+
characterPk: '{{ character_id }}',
|
|
49
|
+
updateInterval: '{{ update_interval }}',
|
|
50
|
+
url: {
|
|
51
|
+
Planetary: '{% url "ledger:api:get_planetarydetails" character_id=character_id planet_id=0 %}',
|
|
52
|
+
},
|
|
53
|
+
translations: {
|
|
54
|
+
confirmSwitchAlarm: '{% translate "Are you sure to Switch Notification" %}',
|
|
55
|
+
buttonSwitchAlarm: '{% translate "Switch Notification" %}',
|
|
56
|
+
notificationActivated: '{% translate "Notification Activated" %}',
|
|
57
|
+
notificationDeactivated: '{% translate "Notification Deactivated" %}',
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
// Construct the planetaryUrl with the 'main' parameter
|
|
62
|
+
if (singleViewParms) {
|
|
63
|
+
aaLedgerSettings.url.Planetary += '?single=' + singleViewParms;
|
|
64
|
+
}
|
|
65
|
+
</script>
|
|
66
|
+
{% include 'ledger/partials/modal/request-accept-switch-notification.html' %}
|
|
67
|
+
{% include 'ledger/partials/modal/request-view-factory.html' %}
|
|
68
|
+
{% include 'ledger/partials/modal/request-view-extractor.html' %}
|
|
69
|
+
{% include 'ledger/bundles/aa-ledger-js.html' %}
|
|
70
|
+
{% include 'bundles/datatables-2-js-bs5.html' %}
|
|
71
|
+
{% include 'bundles/datatables-2-columncontrol-js-bs5.html' %}
|
|
72
|
+
{% include 'ledger/bundles/view-character-planetary-js.html' %}
|
|
73
|
+
{% endblock %}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{% extends 'ledger/base.html' %}
|
|
2
|
+
{% load i18n %}
|
|
3
|
+
|
|
4
|
+
{% block page_template_title %}
|
|
5
|
+
{{ title }}
|
|
6
|
+
{% endblock page_template_title %}
|
|
7
|
+
|
|
8
|
+
{% block page_topic %}
|
|
9
|
+
<h1 class="page-header text-center">
|
|
10
|
+
{{ title }}
|
|
11
|
+
</h1>
|
|
12
|
+
{% endblock page_topic %}
|
|
13
|
+
|
|
14
|
+
{% block aaledger_header %}
|
|
15
|
+
<div class="card">
|
|
16
|
+
<div class="card-header bg-primary rounded d-flex align-items-center">
|
|
17
|
+
<h3 class="me-3">{% translate "Administration" %}</h3>
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
{% endblock %}
|
|
21
|
+
|
|
22
|
+
{% block ledger_block %}
|
|
23
|
+
<!-- Corporation Administration -->
|
|
24
|
+
<div class="card card-corporation-administration mt-2 rounded">
|
|
25
|
+
<div class="card-body">
|
|
26
|
+
<div class="row">
|
|
27
|
+
<div class="col-lg-6 col-md-12">
|
|
28
|
+
{% include 'ledger/partials/view-corporation-administration/dashboard.html' %}
|
|
29
|
+
</div>
|
|
30
|
+
<div class="col-lg-6 col-md-12">
|
|
31
|
+
{% include 'ledger/partials/view-corporation-administration/corporation.html' %}
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|
|
34
|
+
{% include 'ledger/partials/view-corporation-administration/corporation_characters.html' %}
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
37
|
+
{% endblock %}
|
|
38
|
+
|
|
39
|
+
{% block extra_javascript %}
|
|
40
|
+
{% include 'bundles/datatables-js-bs5.html' %}
|
|
41
|
+
{% include 'ledger/bundles/view-corporation-administration-js.html' %}
|
|
42
|
+
{% endblock %}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
{% extends 'ledger/base.html' %}
|
|
2
|
+
{% load i18n %}
|
|
3
|
+
|
|
4
|
+
{% block page_template_title %}
|
|
5
|
+
{{ title }}
|
|
6
|
+
{% endblock page_template_title %}
|
|
7
|
+
|
|
8
|
+
{% block page_topic %}
|
|
9
|
+
<h1 class="page-header text-center">
|
|
10
|
+
{{ title }}
|
|
11
|
+
</h1>
|
|
12
|
+
{% endblock page_topic %}
|
|
13
|
+
|
|
14
|
+
{% block aaledger_header %}
|
|
15
|
+
<div class="card">
|
|
16
|
+
<div class="card-header bg-primary rounded d-flex align-items-center">
|
|
17
|
+
<h3 class="me-3">{% translate "Corporation Ledger" %}</h3>
|
|
18
|
+
<div id="dropdown corporation-ledger-dropdown-buttons me-2" class="d-flex">
|
|
19
|
+
{% if forms.corporation_dropdown %}
|
|
20
|
+
<div class="me-2">
|
|
21
|
+
<form id="corporation-ledger-dropdown-form" method="post" href="{% url 'ledger:corporation_ledger' corporation_id=corporation_id %}" class="d-flex">
|
|
22
|
+
{% csrf_token %}
|
|
23
|
+
{{ forms.corporation_dropdown.division }}
|
|
24
|
+
{{ forms.corporation_dropdown.year }}
|
|
25
|
+
{{ forms.corporation_dropdown.month }}
|
|
26
|
+
{{ forms.corporation_dropdown.day }}
|
|
27
|
+
<button id="corporation-ledger-submit" type="submit" class="btn btn-success">{% translate "Submit" %}</button>
|
|
28
|
+
</form>
|
|
29
|
+
</div>
|
|
30
|
+
{% endif %}
|
|
31
|
+
</div>
|
|
32
|
+
<div class="ms-auto">
|
|
33
|
+
<a class="btn btn-secondary me-2 administration" href="{% url 'ledger:corporation_administration' corporation_id=corporation_id %}" class="administration">{% translate 'Administration' %}{% if issues %} <span class="badge bg-warning">{{ issues }}</span>{% endif %}</a>
|
|
34
|
+
<a href="{% url 'ledger:corporation_overview' %}" class="overview"><button class="btn btn-secondary overview">{% translate 'Account Overview' %}</button></a>
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
{% endblock %}
|
|
39
|
+
|
|
40
|
+
{% block ledger_block %}
|
|
41
|
+
{% include 'ledger/partials/view-corporation-ledger/corporation-table.html' %}
|
|
42
|
+
{% include 'ledger/partials/view-corporation-ledger/corporation-billboard.html' %}
|
|
43
|
+
{% endblock %}
|
|
44
|
+
|
|
45
|
+
{% block extra_css %}
|
|
46
|
+
{% include 'bundles/datatables-2-css-bs5.html' %}
|
|
47
|
+
{% include 'bundles/datatables-2-columncontrol-css-bs5.html' %}
|
|
48
|
+
{% include 'ledger/bundles/aa-ledger-css.html' %}
|
|
49
|
+
{% endblock %}
|
|
50
|
+
|
|
51
|
+
{% block extra_javascript %}
|
|
52
|
+
<script>
|
|
53
|
+
/**
|
|
54
|
+
* Override settings for aaLedger
|
|
55
|
+
*/
|
|
56
|
+
const aaLedgerSettingsOverride = {
|
|
57
|
+
corporationPk: '{{ corporation_id }}',
|
|
58
|
+
url: {
|
|
59
|
+
CorporationLedger: "{{ ledger_url }}",
|
|
60
|
+
},
|
|
61
|
+
translations: {
|
|
62
|
+
ledgerTable: {
|
|
63
|
+
summary: "{% translate 'Summary' %}"
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
</script>
|
|
68
|
+
{% include 'ledger/partials/modal/request-view-corporation-details.html' %}
|
|
69
|
+
{% include 'ledger/bundles/aa-ledger-js.html' %}
|
|
70
|
+
{% include 'bundles/datatables-2-js-bs5.html' %}
|
|
71
|
+
{% include 'bundles/datatables-2-columncontrol-js-bs5.html' %}
|
|
72
|
+
{% include 'ledger/bundles/view-corporation-ledger-js.html' %}
|
|
73
|
+
{% endblock extra_javascript %}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
{% extends 'ledger/base.html' %}
|
|
2
|
+
{% load i18n %}
|
|
3
|
+
|
|
4
|
+
{% block page_template_title %}
|
|
5
|
+
{{ title }}
|
|
6
|
+
{% endblock page_template_title %}
|
|
7
|
+
|
|
8
|
+
{% block page_topic %}
|
|
9
|
+
<h1 class="page-header text-center">
|
|
10
|
+
{{ title }}
|
|
11
|
+
</h1>
|
|
12
|
+
{% endblock page_topic %}
|
|
13
|
+
|
|
14
|
+
{% block aaledger_header %}
|
|
15
|
+
<div class="card">
|
|
16
|
+
<div class="card-header bg-primary rounded d-flex align-items-center">
|
|
17
|
+
<h3 class="text-white">{% translate "Corporation Overview" %}</h3>
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
{% endblock %}
|
|
21
|
+
|
|
22
|
+
{% block ledger_block %}
|
|
23
|
+
<div class="card card-body mt-2 rounded">
|
|
24
|
+
<div class="table-responsive">
|
|
25
|
+
<table class="table table-striped table-hover w-100" id="overview-table">
|
|
26
|
+
<thead>
|
|
27
|
+
<th class="w-auto"></th>
|
|
28
|
+
<th class="w-auto">{% translate "Corporation" %}</th>
|
|
29
|
+
<th class="w-auto">{% translate "Actions" %}</th>
|
|
30
|
+
</thead>
|
|
31
|
+
<tbody></tbody>
|
|
32
|
+
</table>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
{% endblock %}
|
|
36
|
+
|
|
37
|
+
{% block extra_css %}
|
|
38
|
+
{% include 'bundles/datatables-2-css-bs5.html' %}
|
|
39
|
+
{% include 'bundles/datatables-2-columncontrol-css-bs5.html' %}
|
|
40
|
+
{% include 'ledger/bundles/aa-ledger-css.html' %}
|
|
41
|
+
{% endblock %}
|
|
42
|
+
|
|
43
|
+
{% block extra_javascript %}
|
|
44
|
+
{% include 'ledger/bundles/aa-ledger-js.html' %}
|
|
45
|
+
{% include 'bundles/datatables-2-js-bs5.html' %}
|
|
46
|
+
{% include 'bundles/datatables-2-columncontrol-js-bs5.html' %}
|
|
47
|
+
<script type="application/javascript">
|
|
48
|
+
/* global aaLedgerSettings, aaLedgerSettingsOverride, _bootstrapTooltip, fetchGet, bootstrap, DataTable*/
|
|
49
|
+
$(document).ready(() => {
|
|
50
|
+
/**
|
|
51
|
+
* Overview :: Urls
|
|
52
|
+
*/
|
|
53
|
+
const AdminUrl = "{% url 'ledger:api:get_corporation_overview' %}"
|
|
54
|
+
const CorporationOverviewUrl = "{% url 'ledger:corporation_ledger' corporation_id=1337 year=year month=month %}"
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Table :: IDs
|
|
58
|
+
*/
|
|
59
|
+
const overviewTable = $('#overview-table');
|
|
60
|
+
|
|
61
|
+
fetchGet({
|
|
62
|
+
url: AdminUrl,
|
|
63
|
+
})
|
|
64
|
+
.then((data) => {
|
|
65
|
+
if (data) {
|
|
66
|
+
/**
|
|
67
|
+
* DataTable for Corporation Overview Table
|
|
68
|
+
* @type {*|jQuery}
|
|
69
|
+
*/
|
|
70
|
+
const overviewDataTable = new DataTable(overviewTable, {
|
|
71
|
+
data: Object.values(data[0].corporation),
|
|
72
|
+
language: aaLedgerSettings.dataTables.language,
|
|
73
|
+
layout: aaLedgerSettings.dataTables.layout,
|
|
74
|
+
ordering: aaLedgerSettings.dataTables.ordering,
|
|
75
|
+
columnControl: aaLedgerSettings.dataTables.columnControl,
|
|
76
|
+
order: [[1, 'asc']],
|
|
77
|
+
columns: [
|
|
78
|
+
{
|
|
79
|
+
data: 'corporation_id'
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
data: 'corporation_name'
|
|
83
|
+
}
|
|
84
|
+
],
|
|
85
|
+
columnDefs: [
|
|
86
|
+
{
|
|
87
|
+
targets: 0,
|
|
88
|
+
render: function (data, type, row) {
|
|
89
|
+
return '<img src="https://images.evetech.net/corporations/' + row.corporation_id + '/logo?size=32" class="rounded-circle" title="' + row.corporation_name + '" height="30" data-tooltip-toggle="corp-tooltip" data-bs-placement="top">';
|
|
90
|
+
},
|
|
91
|
+
columnControl: [
|
|
92
|
+
{target: 0, content: []},
|
|
93
|
+
{target: 1, content: []}
|
|
94
|
+
]
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
targets: 2,
|
|
98
|
+
className: 'text-end',
|
|
99
|
+
columnControl: [
|
|
100
|
+
{target: 0, content: []},
|
|
101
|
+
{target: 1, content: []}
|
|
102
|
+
],
|
|
103
|
+
render: function (data, type, row) {
|
|
104
|
+
var OverviewUrl = CorporationOverviewUrl.replace('1337', row.corporation_id);
|
|
105
|
+
return `<a href="${OverviewUrl}">
|
|
106
|
+
<button class="btn btn-primary btn-sm"
|
|
107
|
+
title="{% trans "Show" %}"
|
|
108
|
+
data-bs-tooltip="aa-ledger"
|
|
109
|
+
data-bs-placement="left"
|
|
110
|
+
>
|
|
111
|
+
<i class="fa-solid fa-eye"></i>
|
|
112
|
+
</button>
|
|
113
|
+
</a>`;
|
|
114
|
+
},
|
|
115
|
+
}
|
|
116
|
+
],
|
|
117
|
+
initComplete: function() {
|
|
118
|
+
_bootstrapTooltip({selector: '#overview-table'});
|
|
119
|
+
},
|
|
120
|
+
drawCallback: function() {
|
|
121
|
+
_bootstrapTooltip({selector: '#overview-table'});
|
|
122
|
+
}
|
|
123
|
+
})
|
|
124
|
+
}
|
|
125
|
+
})
|
|
126
|
+
.catch((error) => {
|
|
127
|
+
console.error('Error fetching Character Ledger data:', error);
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
</script>
|
|
131
|
+
{% endblock %}
|
ledger/templatetags/ledger.py
CHANGED
|
@@ -4,18 +4,16 @@ import calendar
|
|
|
4
4
|
# Django
|
|
5
5
|
from django.template.defaultfilters import register
|
|
6
6
|
from django.utils import timezone
|
|
7
|
-
from django.utils.translation import
|
|
7
|
+
from django.utils.translation import gettext_lazy as _
|
|
8
8
|
|
|
9
9
|
# Alliance Auth
|
|
10
10
|
from allianceauth.services.hooks import get_extension_logger
|
|
11
11
|
|
|
12
|
-
# Alliance Auth (External Libs)
|
|
13
|
-
from app_utils.logging import LoggerAddTag
|
|
14
|
-
|
|
15
12
|
# AA Ledger
|
|
16
13
|
from ledger import __title__, __version__
|
|
14
|
+
from ledger.providers import AppLogger
|
|
17
15
|
|
|
18
|
-
logger =
|
|
16
|
+
logger = AppLogger(get_extension_logger(__name__), __title__)
|
|
19
17
|
|
|
20
18
|
|
|
21
19
|
@register.filter
|
ledger/tests/__init__.py
CHANGED
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
# Standard Library
|
|
2
|
+
import socket
|
|
3
|
+
from unittest.mock import Mock
|
|
4
|
+
|
|
5
|
+
# Django
|
|
6
|
+
from django.contrib.messages.middleware import MessageMiddleware
|
|
7
|
+
from django.contrib.sessions.middleware import SessionMiddleware
|
|
8
|
+
from django.core.handlers.wsgi import WSGIRequest
|
|
9
|
+
from django.test import RequestFactory, TestCase
|
|
10
|
+
from django.urls import reverse
|
|
11
|
+
|
|
12
|
+
# AA Ledger
|
|
13
|
+
from ledger.tests.testdata.integrations.allianceauth import load_allianceauth
|
|
14
|
+
from ledger.tests.testdata.integrations.eveentity import load_eveentity
|
|
15
|
+
from ledger.tests.testdata.integrations.eveuniverse import load_eveuniverse
|
|
16
|
+
from ledger.tests.testdata.utils import create_user_from_evecharacter
|
|
17
|
+
from ledger.views.alliance.add_ally import add_ally
|
|
18
|
+
from ledger.views.character.add_char import add_char
|
|
19
|
+
from ledger.views.corporation.add_corp import add_corp
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class SocketAccessError(Exception):
|
|
23
|
+
"""Error raised when a test script accesses the network"""
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class NoSocketsTestCase(TestCase):
|
|
27
|
+
"""Variation of Django's TestCase class that prevents any network use.
|
|
28
|
+
|
|
29
|
+
Example:
|
|
30
|
+
|
|
31
|
+
.. code-block:: python
|
|
32
|
+
|
|
33
|
+
class TestMyStuff(BaseTestCase):
|
|
34
|
+
def test_should_do_what_i_need(self): ...
|
|
35
|
+
|
|
36
|
+
"""
|
|
37
|
+
|
|
38
|
+
@classmethod
|
|
39
|
+
def setUpClass(cls):
|
|
40
|
+
cls.socket_original = socket.socket
|
|
41
|
+
socket.socket = cls.guard
|
|
42
|
+
return super().setUpClass()
|
|
43
|
+
|
|
44
|
+
@classmethod
|
|
45
|
+
def tearDownClass(cls):
|
|
46
|
+
socket.socket = cls.socket_original
|
|
47
|
+
return super().tearDownClass()
|
|
48
|
+
|
|
49
|
+
@staticmethod
|
|
50
|
+
def guard(*args, **kwargs):
|
|
51
|
+
raise SocketAccessError("Attempted to access network")
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
class LedgerTestCase(NoSocketsTestCase):
|
|
55
|
+
"""
|
|
56
|
+
Preloaded Testcase class for Ledger tests without Network access.
|
|
57
|
+
|
|
58
|
+
Pre-Load:
|
|
59
|
+
* Alliance Auth Characters, Corporation, Alliance Data
|
|
60
|
+
* Eve Universe Data
|
|
61
|
+
* Eve Entity Data
|
|
62
|
+
* Taken User IDs: 1001, 1002, 1003, 1004, 1005
|
|
63
|
+
|
|
64
|
+
Available Request Factory:
|
|
65
|
+
`self.factory`
|
|
66
|
+
|
|
67
|
+
Available test users:
|
|
68
|
+
* `user` User with standard Ledger access.
|
|
69
|
+
* 'ledger.basic_access' Permission
|
|
70
|
+
* Character ID 1001
|
|
71
|
+
* Corporation ID 2001
|
|
72
|
+
* Alliance ID 3001
|
|
73
|
+
* `user2` Second user with standard Ledger access.
|
|
74
|
+
* 'ledger.basic_access' Permission
|
|
75
|
+
* Character ID 1002
|
|
76
|
+
* Corporation ID 2002
|
|
77
|
+
* Alliance ID 3002
|
|
78
|
+
* `superuser` Superuser.
|
|
79
|
+
* Access to whole Application
|
|
80
|
+
* Character ID 1003
|
|
81
|
+
* `manage_own_user` User with manage own corporation access.
|
|
82
|
+
* 'ledger.basic_access' Permission
|
|
83
|
+
* 'ledger.advanced_access' Permission
|
|
84
|
+
* 'ledger.corp_audit_manager' Permission
|
|
85
|
+
* 'ledger.manage_access' Permission
|
|
86
|
+
* Character ID 1004
|
|
87
|
+
* Corporation ID 2001
|
|
88
|
+
* Alliance ID 3001
|
|
89
|
+
* `manage_user` User with manage corporations access.
|
|
90
|
+
* 'ledger.basic_access' Permission
|
|
91
|
+
* 'ledger.advanced_access' Permission
|
|
92
|
+
* 'ledger.corp_audit_admin_manager' Permission
|
|
93
|
+
* 'ledger.manage_access' Permission
|
|
94
|
+
* Character ID 1005
|
|
95
|
+
* Corporation ID 2001
|
|
96
|
+
* Alliance ID 3001
|
|
97
|
+
|
|
98
|
+
Example:
|
|
99
|
+
.. code-block:: python
|
|
100
|
+
|
|
101
|
+
class TestMyLedgerStuff(LedgerTestCase):
|
|
102
|
+
def test_should_do_what_i_need(self):
|
|
103
|
+
user = self.user
|
|
104
|
+
"""
|
|
105
|
+
|
|
106
|
+
@classmethod
|
|
107
|
+
def setUpClass(cls):
|
|
108
|
+
super().setUpClass()
|
|
109
|
+
# Initialize Alliance Auth test data
|
|
110
|
+
load_allianceauth()
|
|
111
|
+
load_eveuniverse()
|
|
112
|
+
load_eveentity()
|
|
113
|
+
|
|
114
|
+
# Request Factory
|
|
115
|
+
cls.factory = RequestFactory()
|
|
116
|
+
|
|
117
|
+
# User with Standard Access - Corporation 2001
|
|
118
|
+
cls.user, cls.user_character = create_user_from_evecharacter(
|
|
119
|
+
character_id=1001,
|
|
120
|
+
permissions=["ledger.basic_access"],
|
|
121
|
+
)
|
|
122
|
+
# User with Standard Access - Corporation 2002
|
|
123
|
+
cls.user2, cls.user2_character = create_user_from_evecharacter(
|
|
124
|
+
character_id=1002,
|
|
125
|
+
permissions=["ledger.basic_access"],
|
|
126
|
+
)
|
|
127
|
+
# User with Superuser Access - Corporation 2003
|
|
128
|
+
cls.superuser, cls.superuser_character = create_user_from_evecharacter(
|
|
129
|
+
character_id=1003,
|
|
130
|
+
permissions=[],
|
|
131
|
+
)
|
|
132
|
+
cls.superuser.is_superuser = True
|
|
133
|
+
cls.superuser.save()
|
|
134
|
+
# User with Manage Own Corporation Access - Corporation 2001
|
|
135
|
+
cls.manage_own_user, cls.manage_own_character = create_user_from_evecharacter(
|
|
136
|
+
character_id=1004,
|
|
137
|
+
permissions=[
|
|
138
|
+
"ledger.basic_access",
|
|
139
|
+
"ledger.advanced_access",
|
|
140
|
+
"ledger.corp_audit_manager",
|
|
141
|
+
"ledger.manage_access",
|
|
142
|
+
],
|
|
143
|
+
)
|
|
144
|
+
# User with Manage Corporations Access - Corporation 2001
|
|
145
|
+
cls.manage_user, cls.manage_character = create_user_from_evecharacter(
|
|
146
|
+
character_id=1005,
|
|
147
|
+
permissions=[
|
|
148
|
+
"ledger.basic_access",
|
|
149
|
+
"ledger.advanced_access",
|
|
150
|
+
"ledger.corp_audit_admin_manager",
|
|
151
|
+
"ledger.manage_access",
|
|
152
|
+
],
|
|
153
|
+
)
|
|
154
|
+
|
|
155
|
+
def _add_character(self, user, token):
|
|
156
|
+
request = self.factory.get(reverse("ledger:add_char"))
|
|
157
|
+
request.user = user
|
|
158
|
+
request.token = token
|
|
159
|
+
middleware = SessionMiddleware(Mock())
|
|
160
|
+
middleware.process_request(request)
|
|
161
|
+
orig_view = add_char.__wrapped__.__wrapped__.__wrapped__
|
|
162
|
+
return orig_view(request, token)
|
|
163
|
+
|
|
164
|
+
def _add_corporation(self, user, token):
|
|
165
|
+
request = self.factory.get(reverse("ledger:add_corp"))
|
|
166
|
+
request.user = user
|
|
167
|
+
request.token = token
|
|
168
|
+
middleware = SessionMiddleware(Mock())
|
|
169
|
+
middleware.process_request(request)
|
|
170
|
+
orig_view = add_corp.__wrapped__.__wrapped__.__wrapped__
|
|
171
|
+
return orig_view(request, token)
|
|
172
|
+
|
|
173
|
+
def _add_alliance(self, user, token):
|
|
174
|
+
request = self.factory.get(reverse("ledger:add_ally"))
|
|
175
|
+
request.user = user
|
|
176
|
+
request.token = token
|
|
177
|
+
middleware = SessionMiddleware(Mock())
|
|
178
|
+
middleware.process_request(request)
|
|
179
|
+
orig_view = add_ally.__wrapped__.__wrapped__.__wrapped__
|
|
180
|
+
return orig_view(request, token)
|
|
181
|
+
|
|
182
|
+
def _middleware_process_request(self, request: WSGIRequest):
|
|
183
|
+
"""Helper method to process middleware for a request."""
|
|
184
|
+
session_middleware = SessionMiddleware(Mock())
|
|
185
|
+
session_middleware.process_request(request)
|
|
186
|
+
message_middleware = MessageMiddleware(Mock())
|
|
187
|
+
message_middleware.process_request(request)
|