aa-structures 2.16.0__py3-none-any.whl → 3.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.
Files changed (27) hide show
  1. {aa_structures-2.16.0.dist-info → aa_structures-3.0.0.dist-info}/METADATA +5 -4
  2. {aa_structures-2.16.0.dist-info → aa_structures-3.0.0.dist-info}/RECORD +27 -26
  3. {aa_structures-2.16.0.dist-info → aa_structures-3.0.0.dist-info}/WHEEL +1 -1
  4. structures/__init__.py +1 -1
  5. structures/core/notification_embeds/corporate_embeds.py +58 -0
  6. structures/core/notification_embeds/main.py +8 -2
  7. structures/core/notification_types.py +86 -76
  8. structures/core/serializers.py +6 -6
  9. structures/migrations/0009_add_project_goal_notifications.py +152 -0
  10. structures/models/owners.py +1 -1
  11. structures/static/structures/js/public.js +9 -3
  12. structures/static/structures/js/structures.js +5 -1
  13. structures/templates/structures/base.html +39 -6
  14. structures/templates/structures/modals/poco_details.html +15 -15
  15. structures/templates/structures/modals/starbase_detail.html +19 -20
  16. structures/templates/structures/modals/structure_details.html +19 -21
  17. structures/templates/structures/partials/menu.html +2 -2
  18. structures/templates/structures/public.html +28 -34
  19. structures/templates/structures/statistics.html +11 -19
  20. structures/templates/structures/structures.html +89 -99
  21. structures/templates/structures/templatetags/list_asset.html +7 -5
  22. structures/templates/structures/templatetags/list_item.html +3 -3
  23. structures/templates/structures/templatetags/list_tax_item.html +3 -3
  24. structures/templates/structures/templatetags/list_title.html +1 -1
  25. structures/tests/testdata/entities.json +30 -0
  26. structures/tests/testdata/generate_notifications.py +1 -1
  27. {aa_structures-2.16.0.dist-info → aa_structures-3.0.0.dist-info/licenses}/LICENSE +0 -0
@@ -0,0 +1,152 @@
1
+ # Generated by Django 4.2.16 on 2024-11-05 14:05
2
+
3
+ import multiselectfield.db.fields
4
+
5
+ from django.db import migrations
6
+
7
+
8
+ class Migration(migrations.Migration):
9
+
10
+ dependencies = [
11
+ ("structures", "0008_add_notificationtypes_skyhook_metenox"),
12
+ ]
13
+
14
+ operations = [
15
+ migrations.AlterField(
16
+ model_name="webhook",
17
+ name="notification_types",
18
+ field=multiselectfield.db.fields.MultiSelectField(
19
+ choices=[
20
+ ("BillOutOfMoneyMsg", "Bill out of money"),
21
+ ("CorpAllBillMsg", "Corp alliance billing message"),
22
+ (
23
+ "InfrastructureHubBillAboutToExpire",
24
+ "I-HUB bill about to expire",
25
+ ),
26
+ ("IHubDestroyedByBillFailure", "I_HUB destroyed by bill failure"),
27
+ ("CharAppAcceptMsg", "Character joins corporation"),
28
+ ("CorpAppInvitedMsg", "Character invited to join corporation"),
29
+ ("CorpAppNewMsg", "Character submitted application"),
30
+ ("CharAppRejectMsg", "Corp application rejected message"),
31
+ (
32
+ "CorpAppRejectCustomMsg",
33
+ "Corp application rejected custom message",
34
+ ),
35
+ ("CharAppWithdrawMsg", "Character withdrew application"),
36
+ ("CharLeftCorpMsg", "Character leaves corporation"),
37
+ ("CorporationGoalClosed", "Corporation goal closed"),
38
+ ("CorporationGoalCompleted", "Corporation goal completed"),
39
+ ("CorporationGoalCreated", "Corporation goal created"),
40
+ (
41
+ "MoonminingAutomaticFracture",
42
+ "Moon mining automatic fracture triggered",
43
+ ),
44
+ (
45
+ "MoonminingExtractionCancelled",
46
+ "Moon mining extraction cancelled",
47
+ ),
48
+ ("MoonminingExtractionFinished", "Moon mining extraction finished"),
49
+ ("MoonminingExtractionStarted", "Moon mining extraction started"),
50
+ ("MoonminingLaserFired", "Moonmining laser fired"),
51
+ ("SkyhookDeployed", "Skyhook deployed"),
52
+ ("SkyhookDestroyed", "Skyhook destroyed"),
53
+ ("SkyhookLostShields", "Skyhook lost shields"),
54
+ ("SkyhookOnline", "Skyhook online"),
55
+ ("SkyhookUnderAttack", "Skyhook under attack"),
56
+ ("OrbitalAttacked", "Customs office attacked"),
57
+ ("OrbitalReinforced", "Customs office reinforced"),
58
+ ("SovAllClaimAquiredMsg", "Sovereignty claim acknowledgment"),
59
+ ("SovAllClaimLostMsg", "Sovereignty lost"),
60
+ ("AllAnchoringMsg", "Structure anchoring in alliance space"),
61
+ ("EntosisCaptureStarted", "Sovereignty entosis capture started"),
62
+ ("SovStructureDestroyed", "Sovereignty structure destroyed"),
63
+ ("SovStructureReinforced", "Sovereignty structure reinforced"),
64
+ (
65
+ "SovCommandNodeEventStarted",
66
+ "Sovereignty command node event started",
67
+ ),
68
+ ("TowerAlertMsg", "Starbase attacked"),
69
+ ("TowerRefueledExtra", "Starbase refueled (BETA)"),
70
+ ("TowerReinforcedExtra", "Starbase reinforced (BETA)"),
71
+ ("TowerResourceAlertMsg", "Starbase fuel alert"),
72
+ ("OwnershipTransferred", "Upwell structure ownership transferred"),
73
+ ("StructureAnchoring", "Upwell structure anchoring"),
74
+ ("StructureDestroyed", "Upwell structure destroyed"),
75
+ ("StructureFuelAlert", "Upwell structure fuel alert"),
76
+ ("StructureJumpFuelAlert", "Upwell structure jump fuel alert"),
77
+ ("StructureLostArmor", "Upwell structure lost armor"),
78
+ ("StructureLostShields", "Upwell structure lost shields"),
79
+ ("StructureLowReagentsAlert", "Structure low reagents alert"),
80
+ ("StructureNoReagentsAlert", "Structure no reagents alert"),
81
+ ("StructureOnline", "Upwell structure went online"),
82
+ ("StructureRefueledExtra", "Upwell structure refueled"),
83
+ (
84
+ "StructuresReinforcementChanged",
85
+ "Upwell structure reinforcement time changed",
86
+ ),
87
+ (
88
+ "StructureServicesOffline",
89
+ "Upwell structure services went offline",
90
+ ),
91
+ ("StructureUnanchoring", "Upwell structure unanchoring"),
92
+ ("StructureUnderAttack", "Upwell structure is under attack"),
93
+ ("StructureWentHighPower", "Upwell structure went high power"),
94
+ ("StructureWentLowPower", "Upwell structure went low power"),
95
+ ("AcceptedAlly", "War accepted ally"),
96
+ (
97
+ "AllWarCorpJoinedAllianceMsg",
98
+ "Alliance war corporation joined alliance message",
99
+ ),
100
+ ("AllWarSurrenderMsg", "Alliance war surrender message"),
101
+ ("AllyJoinedWarAggressorMsg", "War ally joined aggressor"),
102
+ ("AllyJoinedWarAllyMsg", "War ally joined ally"),
103
+ ("AllyJoinedWarDefenderMsg", "War ally joined defender"),
104
+ ("CorpWarSurrenderMsg", "War party surrendered"),
105
+ ("CorpBecameWarEligible", "War corporation became eligible"),
106
+ ("CorpNoLongerWarEligible", "War corporation no longer eligible"),
107
+ ("DeclareWar", "War declared"),
108
+ ("WarHQRemovedFromSpace", "War HQ removed from space"),
109
+ ("WarInvalid", "War invalid"),
110
+ (
111
+ "MercOfferedNegotiationMsg",
112
+ "War mercenary offered negotiation message",
113
+ ),
114
+ ("MercOfferRetractedMsg", "War mercenary offer retracted message"),
115
+ ("OfferedSurrender", "War offered surrender"),
116
+ ("OfferedToAlly", "War offered to become ally"),
117
+ ("WarAdopted", "War adopted"),
118
+ ("WarDeclared", "War declared"),
119
+ ("WarInherited", "War inherited"),
120
+ ("WarRetractedByConcord", "War retracted by Concord"),
121
+ ("WarSurrenderOfferMsg", "War surrender offered"),
122
+ ],
123
+ default=[
124
+ "OrbitalAttacked",
125
+ "OrbitalReinforced",
126
+ "SkyhookDestroyed",
127
+ "SkyhookLostShields",
128
+ "SkyhookOnline",
129
+ "SkyhookUnderAttack",
130
+ "SovStructureDestroyed",
131
+ "SovStructureReinforced",
132
+ "StructureAnchoring",
133
+ "StructureDestroyed",
134
+ "StructureFuelAlert",
135
+ "StructureLostArmor",
136
+ "StructureLostShields",
137
+ "StructureLowReagentsAlert",
138
+ "StructureNoReagentsAlert",
139
+ "StructureOnline",
140
+ "StructureServicesOffline",
141
+ "StructureUnderAttack",
142
+ "StructureWentHighPower",
143
+ "StructureWentLowPower",
144
+ "TowerAlertMsg",
145
+ "TowerResourceAlertMsg",
146
+ ],
147
+ help_text="Select which type of notifications should be forwarded to this webhook",
148
+ max_length=1544,
149
+ verbose_name="notification types",
150
+ ),
151
+ ),
152
+ ]
@@ -703,7 +703,7 @@ class Owner(models.Model):
703
703
 
704
704
  s.eve_moon = celestial.eve_object
705
705
  s.save()
706
- logger.info("%s: Resolved moon for Metenox: %d", self, s.name)
706
+ logger.info("%s: Resolved moon for Metenox: %s", self, s.name)
707
707
 
708
708
  def _fetch_custom_offices(self, token: Token) -> bool:
709
709
  """Fetch custom offices from ESI for this owner.
@@ -92,41 +92,47 @@ $(document).ready(function () {
92
92
  {
93
93
  idx: pocos_idx_start,
94
94
  title: filterTitles.constellation,
95
- maxWidth: "11em",
95
+ maxWidth: "10em",
96
96
  },
97
97
  {
98
98
  idx: pocos_idx_start + 1,
99
99
  title: filterTitles.planet_type,
100
+ maxWidth: "10em",
100
101
  },
101
102
  {
102
103
  idx: pocos_idx_start + 2,
103
104
  title: filterTitles.space_type,
105
+ maxWidth: "10em",
104
106
  },
105
107
  {
106
108
  idx: pocos_idx_start + 3,
107
109
  title: filterTitles.region,
110
+ maxWidth: "10em",
108
111
  },
109
112
  {
110
113
  idx: pocos_idx_start + 4,
111
114
  title: filterTitles.solar_system,
115
+ maxWidth: "10em",
112
116
  },
113
117
  {
114
118
  idx: pocos_idx_start + 5,
115
119
  title: filterTitles.corporation,
116
- maxWidth: "11em",
120
+ maxWidth: "10em",
117
121
  },
118
122
  {
119
123
  idx: pocos_idx_start + 6,
120
124
  title: filterTitles.alliance,
121
- maxWidth: "11em",
125
+ maxWidth: "10em",
122
126
  },
123
127
  {
124
128
  idx: pocos_idx_start + 7,
125
129
  title: filterTitles.access,
130
+ maxWidth: "10em",
126
131
  },
127
132
  ],
128
133
  autoSize: false,
129
134
  bootstrap: true,
135
+ bootstrap_version: 5,
130
136
  },
131
137
  });
132
138
  });
@@ -22,7 +22,7 @@ $(document).ready(function () {
22
22
  $('a[href="#' + tabId + '"]').tab("show");
23
23
 
24
24
  /* remember last selected tab */
25
- $('a[data-toggle="tab"]').on("shown.bs.tab", function (e) {
25
+ $('a[data-bs-toggle="tab"]').on("shown.bs.tab", function (e) {
26
26
  const selectedTabId = $(e.target).attr("href").substr(1);
27
27
  setCookie(COOKIE_LAST_TAB_ID, selectedTabId, COOKIE_LAST_TAB_HOURS);
28
28
  });
@@ -155,6 +155,7 @@ $(document).ready(function () {
155
155
  ],
156
156
  autoSize: false,
157
157
  bootstrap: true,
158
+ bootstrap_version: 5,
158
159
  },
159
160
  },
160
161
  });
@@ -242,6 +243,7 @@ $(document).ready(function () {
242
243
  ],
243
244
  autoSize: false,
244
245
  bootstrap: true,
246
+ bootstrap_version: 5,
245
247
  },
246
248
  },
247
249
  });
@@ -328,6 +330,7 @@ $(document).ready(function () {
328
330
  ],
329
331
  autoSize: false,
330
332
  bootstrap: true,
333
+ bootstrap_version: 5,
331
334
  },
332
335
  },
333
336
  });
@@ -455,6 +458,7 @@ $(document).ready(function () {
455
458
  ],
456
459
  autoSize: false,
457
460
  bootstrap: true,
461
+ bootstrap_version: 5,
458
462
  },
459
463
  createdRow: function (row, data, dataIndex) {
460
464
  if (data["is_reinforced"]) {
@@ -1,13 +1,46 @@
1
- {% extends 'allianceauth/base.html' %}
1
+ {% extends 'allianceauth/base-bs5.html' %}
2
2
  {% load i18n %}
3
+ {% load navactive %}
3
4
 
4
5
  {% block page_title %}{% translate "Structures" %}{% endblock %}
5
6
 
7
+ {% block header_nav_brand %}{% translate "Structures" %}{% endblock %}
8
+
9
+ {% block header_nav_collapse_left %}
10
+ {% if perms.structures.view_corporation_structures or perms.structures.view_alliance_structures or perms.structures.view_all_structures %}
11
+ <li class="nav-item">
12
+ <a class="nav-link {% navactive request 'structures:structure_list' %}" href="{% url 'structures:structure_list' %}">
13
+ {% translate 'Structure List' %}
14
+ </a>
15
+ </li>
16
+
17
+ <li class="nav-item">
18
+ <a class="nav-link {% navactive request 'structures:statistics' %}" href="{% url 'structures:statistics' %}">
19
+ {% translate 'Statistics' %}
20
+ </a>
21
+ </li>
22
+ {% endif %}
23
+
24
+
25
+ <li class="nav-item me-auto">
26
+ <a class="nav-link {% navactive request 'structures:public' %}" href="{% url 'structures:public' %}">
27
+ {% translate 'Public' %}
28
+ </a>
29
+ </li>
30
+
31
+ {% endblock header_nav_collapse_left %}
32
+
33
+ {% block header_nav_user_character_control %}
34
+ {% if perms.structures.add_structure_owner %}
35
+ <li class="nav-item">
36
+ <a class="nav-link text-success" href="{% url 'structures:add_structure_owner' %}" title="{% translate 'Add new structure owner or add new sync character to an existing structure owner' %}">
37
+ <i class="fa-solid fa-plus"></i>
38
+ </a>
39
+ </li>
40
+ {% endif %}
41
+ <div class="vr"></div>
42
+ {% endblock header_nav_user_character_control %}
43
+
6
44
  {% block content %}
7
- <br />
8
- <div>
9
- {% include 'structures/partials/menu.html' %}
10
- <h2 class="text-left">{{ page_title }}</h2>
11
45
  {% block details %}{% endblock %}
12
- </div>
13
46
  {% endblock %}
@@ -4,8 +4,8 @@
4
4
  {% load structures %}
5
5
 
6
6
  <div class="modal-header">
7
- <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
8
- <h4 class="modal-title">{{ structure }}</h4>
7
+ <h5 class="modal-title">{{ structure }}</h5>
8
+ <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
9
9
  </div>
10
10
 
11
11
  <div class="modal-body">
@@ -13,27 +13,27 @@
13
13
  <br>
14
14
 
15
15
  <!-- Nav tabs -->
16
- <ul class="nav nav-tabs" role="tablist">
17
- <li role="presentation" class="active">
18
- <a href="#tab-poco-general" aria-controls="modules" role="tab" data-toggle="tab">
16
+ <ul class="nav nav-pills" role="tablist">
17
+ <li class="nav-item" role="presentation">
18
+ <button class="nav-link active" data-bs-target="#tab-poco-general" aria-controls="modules" role="tab" data-bs-toggle="tab">
19
19
  {% translate "General" %}
20
- </a>
20
+ </button>
21
21
  </li>
22
- <li role="presentation">
23
- <a href="#tab-poco-reinforcement" aria-controls="access" role="tab" data-toggle="tab">
24
- {% translate "Reinforcement Time" %}
25
- </a>
22
+ <li class="nav-item" role="presentation">
23
+ <button class="nav-link" data-bs-target="#tab-poco-reinforcement" aria-controls="access" role="tab" data-bs-toggle="tab">
24
+ {% translate "Reinforcement" %}
25
+ </button>
26
26
  </li>
27
- <li role="presentation">
28
- <a href="#tab-poco-settings" aria-controls="settings" role="tab" data-toggle="tab">
29
- {% translate "Tax Rates & Access" %}
30
- </a>
27
+ <li class="nav-item" role="presentation">
28
+ <button class="nav-link" data-bs-target="#tab-poco-settings" aria-controls="settings" role="tab" data-bs-toggle="tab">
29
+ {% translate "Tax & Access" %}
30
+ </button>
31
31
  </li>
32
32
  </ul>
33
33
 
34
34
  <!-- Tab panes -->
35
35
  <div class="tab-content">
36
- <div role="tabpanel" class="tab-pane active" id="tab-poco-general">
36
+ <div role="tabpanel" class="tab-pane show active" id="tab-poco-general">
37
37
  {% include "structures/modals/tab_general_detail.html" %}
38
38
  </div>
39
39
 
@@ -4,8 +4,8 @@
4
4
  {% load structures %}
5
5
 
6
6
  <div class="modal-header">
7
- <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
8
- <h4 class="modal-title">{{structure}}</h4>
7
+ <h5 class="modal-title">{{structure}}</h5>
8
+ <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
9
9
  </div>
10
10
 
11
11
  <div class="modal-body">
@@ -13,37 +13,36 @@
13
13
  <br>
14
14
 
15
15
  <!-- Nav tabs -->
16
- <ul class="nav nav-tabs" role="tablist">
17
- <li role="presentation" class="active">
18
- <a href="#tab-starbase-general" aria-controls="modules" role="tab" data-toggle="tab">
16
+ <ul class="nav nav-pills" role="tablist">
17
+ <li class="nav-item" role="presentation">
18
+ <button class="nav-link active" data-bs-target="#tab-starbase-general" aria-controls="modules" role="tab" data-bs-toggle="tab">
19
19
  {% translate "General" %}
20
- </a>
20
+ </button>
21
21
  </li>
22
- <li role="presentation">
23
- <a href="#tab-starbase-fuel" aria-controls="fuels" role="tab" data-toggle="tab">
22
+ <li class="nav-item" role="presentation">
23
+ <button class="nav-link" data-bs-target="#tab-starbase-fuel" aria-controls="fuels" role="tab" data-bs-toggle="tab">
24
24
  {% translate "Fuel" %} <small>({{ fuel_blocks_count|default:"-"|intcomma }})</small>
25
- </a>
25
+ </button>
26
26
  </li>
27
- <li role="presentation">
28
- <a href="#tab-starbase-modules" aria-controls="modules" role="tab" data-toggle="tab">
27
+ <li class="nav-item" role="presentation">
28
+ <button class="nav-link" data-bs-target="#tab-starbase-modules" aria-controls="modules" role="tab" data-bs-toggle="tab">
29
29
  {% translate "Modules" %} <small>({{ modules_count }})</small>
30
- </a>
30
+ </button>
31
31
  </li>
32
- <li role="presentation">
33
- <a href="#tab-starbase-settings" aria-controls="settings" role="tab" data-toggle="tab">
32
+ <li class="nav-item" role="presentation">
33
+ <button class="nav-link" data-bs-target="#tab-starbase-settings" aria-controls="settings" role="tab" data-bs-toggle="tab">
34
34
  {% translate "Settings" %}
35
- </a>
35
+ </button>
36
36
  </li>
37
- <li role="presentation">
38
- <a href="#tab-starbase-access" aria-controls="access" role="tab" data-toggle="tab">
37
+ <li class="nav-item" role="presentation">
38
+ <button class="nav-link" data-bs-target="#tab-starbase-access" aria-controls="access" role="tab" data-bs-toggle="tab">
39
39
  {% translate "Access" %}
40
- </a>
40
+ </button>
41
41
  </li>
42
42
  </ul>
43
-
44
43
  <!-- Tab panes -->
45
44
  <div class="tab-content">
46
- <div role="tabpanel" class="tab-pane active" id="tab-starbase-general">
45
+ <div role="tabpanel" class="tab-pane show active" id="tab-starbase-general">
47
46
  {% include "structures/modals/tab_general_detail.html" %}
48
47
  </div>
49
48
 
@@ -4,10 +4,8 @@
4
4
  {% load structures %}
5
5
 
6
6
  <div class="modal-header">
7
- <button type="button" class="close" data-dismiss="modal" aria-label="Close">
8
- <span aria-hidden="true">&times;</span>
9
- </button>
10
- <h4 class="modal-title">{{structure.eve_solar_system.name}} - {{structure.name}}</h4>
7
+ <h5 class="modal-title">{{structure.eve_solar_system.name}} - {{structure.name}}</h5>
8
+ <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
11
9
  </div>
12
10
 
13
11
  <div class="modal-body">
@@ -15,38 +13,38 @@
15
13
  <br>
16
14
 
17
15
  <!-- Nav tabs -->
18
- <ul class="nav nav-tabs" role="tablist">
19
- <li role="presentation" class="active">
20
- <a href="#tab-structure-general" aria-controls="modules" role="tab" data-toggle="tab">
16
+ <ul class="nav nav-pills" role="tablist">
17
+ <li class="nav-item" role="presentation">
18
+ <button class="nav-link active" data-bs-target="#tab-structure-general" aria-controls="modules" role="tab" data-bs-toggle="tab">
21
19
  {% translate "General" %}
22
- </a>
20
+ </button>
23
21
  </li>
24
- <li role="presentation">
25
- <a href="#tab-structure-services" aria-controls="fuel" role="tab" data-toggle="tab">
22
+ <li class="nav-item" role="presentation">
23
+ <button class="nav-link" data-bs-target="#tab-structure-services" aria-controls="fuel" role="tab" data-bs-toggle="tab">
26
24
  {% translate "Services" %} <small>({{ services_count|default:"-"|intcomma }})</small>
27
- </a>
25
+ </button>
28
26
  </li>
29
27
 
30
- <li role="presentation">
31
- <a href="#tab-structure-fuel" aria-controls="fuel" role="tab" data-toggle="tab">
28
+ <li class="nav-item" role="presentation">
29
+ <button class="nav-link" data-bs-target="#tab-structure-fuel" aria-controls="fuel" role="tab" data-bs-toggle="tab">
32
30
  {% translate "Fuel" %} <small>({{ fuel_blocks_total|default:"-"|intcomma }})</small>
33
- </a>
31
+ </button>
34
32
  </li>
35
- <li role="presentation">
36
- <a href="#tab-structure-ammo" aria-controls="ammo" role="tab" data-toggle="tab">
33
+ <li class="nav-item" role="presentation">
34
+ <button class="nav-link" data-bs-target="#tab-structure-ammo" aria-controls="ammo" role="tab" data-bs-toggle="tab">
37
35
  {% translate "Ammo" %} <small>({{ ammo_total|default:"-"|intcomma }})</small>
38
- </a>
36
+ </button>
39
37
  </li>
40
- <li role="presentation">
41
- <a href="#tab-structure-modules" aria-controls="modules" role="tab" data-toggle="tab">
38
+ <li class="nav-item" role="presentation">
39
+ <button class="nav-link" data-bs-target="#tab-structure-modules" aria-controls="modules" role="tab" data-bs-toggle="tab">
42
40
  {% translate "Modules" %} <small>({{ modules_count }})</small>
43
- </a>
41
+ </button>
44
42
  </li>
45
43
  </ul>
46
44
 
47
45
  <!-- Tab panes -->
48
46
  <div class="tab-content">
49
- <div role="tabpanel" class="tab-pane active" id="tab-structure-general">
47
+ <div role="tabpanel" class="tab-pane show active" id="tab-structure-general">
50
48
  {% include "structures/modals/tab_general_detail.html" %}
51
49
  </div>
52
50
 
@@ -5,8 +5,8 @@
5
5
  <nav class="navbar navbar-default">
6
6
  <div class="container-fluid">
7
7
  <div class="navbar-header">
8
- <button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
9
- data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
8
+ <button type="button" class="navbar-toggle collapsed" data-bs-toggle="collapse"
9
+ data-bs-target="#bs-example-navbar-collapse-1" aria-expanded="false">
10
10
  <span class="sr-only">{% translate "Toggle navigation" %}</span>
11
11
  <span class="icon-bar"></span>
12
12
  <span class="icon-bar"></span>
@@ -5,44 +5,41 @@
5
5
 
6
6
  {% block details %}
7
7
 
8
- <span class="pull-right">
9
- <form class="form-inline">
10
- <select
11
- class="form-control"
12
- name="character_id"
13
- style="height: auto;"
14
- onchange="this.form.submit()"
15
- title="Character for calculating access and tax">
16
- {% for character in characters %}
17
- <option
18
- value="{{ character.character_id }}"
19
- {% if character.character_id == selected_character.character_id %} selected{% endif %}>
20
- {{ character.character_name }}
21
- </option>
22
- {% endfor %}
23
- </select>
24
- </form>
25
- </span>
26
8
 
27
9
  <!-- Nav tabs -->
28
- <ul id="public-tabs" class="nav nav-tabs" role="tablist">
10
+ <ul class="nav nav-tabs" role="tablist">
29
11
 
30
- <li role="presentation" class="active">
31
- <a href="#pocos" aria-controls="orbitals" role="tab" data-toggle="tab">
12
+ <li role="presentation" class="nav-item me-auto">
13
+ <button class="nav-link active" aria-controls="orbitals" role="tab" data-bs-toggle="tab" data-bs-target="#pocos">
32
14
  {% translate "Customs Offices" %} <small>({{ pocos_count|default:"-" }})</small>
33
- </a>
15
+ </button>
34
16
  </li>
35
17
 
18
+ <li role="presentation" class="nav-item">
19
+ <form class="form-inline">
20
+ <select
21
+ class="form-control"
22
+ name="character_id"
23
+ style="height: auto;"
24
+ onchange="this.form.submit()"
25
+ title="Character for calculating access and tax">
26
+ {% for character in characters %}
27
+ <option
28
+ value="{{ character.character_id }}"
29
+ {% if character.character_id == selected_character.character_id %} selected{% endif %}>
30
+ {{ character.character_name }}
31
+ </option>
32
+ {% endfor %}
33
+ </select>
34
+ </form>
35
+ </li>
36
36
  </ul>
37
37
 
38
- <div class="panel panel-default panel-tabs">
39
- <div class="panel-body">
40
- <div class="tab-content">
41
-
42
- <div role="tabpanel" class="tab-pane active" id="orbitals">
43
- {% include "structures/partials/public/poco_list.html" %}
44
- </div>
38
+ <div class="card card-default card-tabs border-0">
39
+ <div class="card-body tab-content">
45
40
 
41
+ <div role="tabpanel" class="tab-pane show active" id="orbitals">
42
+ {% include "structures/partials/public/poco_list.html" %}
46
43
  </div>
47
44
 
48
45
  <p class="text-muted">
@@ -65,16 +62,13 @@
65
62
  type="application/javascript"
66
63
  src="{% static 'structures/vendor/datatables/plugins/dataTables.rowGroup.min.js' %}">
67
64
  </script>
68
- <script
69
- type="application/javascript"
70
- src="{% static 'structures/vendor/datatables/plugins/filterDropDown.min.js' %}">
71
- </script>
65
+ {% include "bundles/filterdropdown-js.html" %}
72
66
  <script type="application/javascript" src="{% static 'structures/js/global.js' %}"></script>
73
67
  <script type="application/javascript" src="{% static 'structures/js/public.js' %}"></script>
74
68
  {% endblock %}
75
69
 
76
70
  {% block extra_css %}
77
- {% include 'bundles/datatables-css.html' %}
71
+ {% include 'bundles/datatables-css-bs5.html' %}
78
72
 
79
73
  <link
80
74
  rel="stylesheet"