aa-intel-tool 1.1.3__py3-none-any.whl → 2.0.0b1__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_intel_tool/__init__.py +1 -6
- aa_intel_tool/app_settings.py +32 -1
- aa_intel_tool/auth_hooks.py +1 -1
- aa_intel_tool/constants.py +0 -13
- aa_intel_tool/locale/de/LC_MESSAGES/django.po +141 -139
- aa_intel_tool/locale/django.pot +140 -138
- aa_intel_tool/locale/es/LC_MESSAGES/django.mo +0 -0
- aa_intel_tool/locale/es/LC_MESSAGES/django.po +148 -144
- aa_intel_tool/locale/fr_FR/LC_MESSAGES/django.mo +0 -0
- aa_intel_tool/locale/fr_FR/LC_MESSAGES/django.po +149 -145
- aa_intel_tool/locale/it_IT/LC_MESSAGES/django.po +141 -139
- aa_intel_tool/locale/ja/LC_MESSAGES/django.po +141 -139
- aa_intel_tool/locale/ko_KR/LC_MESSAGES/django.po +142 -140
- aa_intel_tool/locale/ru/LC_MESSAGES/django.mo +0 -0
- aa_intel_tool/locale/ru/LC_MESSAGES/django.po +144 -151
- aa_intel_tool/locale/uk/LC_MESSAGES/django.po +141 -139
- aa_intel_tool/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
- aa_intel_tool/locale/zh_Hans/LC_MESSAGES/django.po +149 -147
- aa_intel_tool/management/commands/aa_intel_tool_load_eve_types.py +1 -1
- aa_intel_tool/parser/module/chatlist.py +17 -7
- aa_intel_tool/parser/module/dscan.py +36 -33
- aa_intel_tool/parser/module/fleetcomp.py +11 -5
- aa_intel_tool/static/aa_intel_tool/css/aa-intel-tool.css +7 -147
- aa_intel_tool/static/aa_intel_tool/css/aa-intel-tool.min.css +1 -1
- aa_intel_tool/static/aa_intel_tool/css/aa-intel-tool.min.css.map +1 -1
- aa_intel_tool/static/aa_intel_tool/javascript/aa-intel-tool-chatscan-highlight.js +11 -11
- aa_intel_tool/static/aa_intel_tool/javascript/aa-intel-tool-chatscan.js +24 -24
- aa_intel_tool/static/aa_intel_tool/javascript/aa-intel-tool-chatscan.min.js +1 -1
- aa_intel_tool/static/aa_intel_tool/javascript/aa-intel-tool-chatscan.min.js.map +1 -1
- aa_intel_tool/static/aa_intel_tool/javascript/aa-intel-tool-dscan-highlight.js +12 -12
- aa_intel_tool/static/aa_intel_tool/javascript/aa-intel-tool-dscan.js +49 -49
- aa_intel_tool/static/aa_intel_tool/javascript/aa-intel-tool-dscan.min.js +1 -1
- aa_intel_tool/static/aa_intel_tool/javascript/aa-intel-tool-dscan.min.js.map +1 -1
- aa_intel_tool/static/aa_intel_tool/javascript/aa-intel-tool-fleetcomposition-highlight.js +12 -12
- aa_intel_tool/static/aa_intel_tool/javascript/aa-intel-tool-fleetcomposition.js +18 -18
- aa_intel_tool/static/aa_intel_tool/javascript/aa-intel-tool-fleetcomposition.min.js +1 -1
- aa_intel_tool/static/aa_intel_tool/javascript/aa-intel-tool-fleetcomposition.min.js.map +1 -1
- aa_intel_tool/static/aa_intel_tool/javascript/aa-intel-tool-scan-result-common.js +85 -170
- aa_intel_tool/static/aa_intel_tool/javascript/aa-intel-tool-scan-result-common.min.js +1 -1
- aa_intel_tool/static/aa_intel_tool/javascript/aa-intel-tool-scan-result-common.min.js.map +1 -1
- aa_intel_tool/static/aa_intel_tool/javascript/aa-intel-tool.js +1 -1
- aa_intel_tool/static/aa_intel_tool/javascript/aa-intel-tool.min.js +1 -1
- aa_intel_tool/static/aa_intel_tool/javascript/aa-intel-tool.min.js.map +1 -1
- aa_intel_tool/templates/aa_intel_tool/base.html +9 -4
- aa_intel_tool/templates/aa_intel_tool/bundles/aa-intel-tool-chatscan-js.html +1 -1
- aa_intel_tool/templates/aa_intel_tool/bundles/aa-intel-tool-css.html +1 -2
- aa_intel_tool/templates/aa_intel_tool/bundles/aa-intel-tool-dscan-js.html +1 -1
- aa_intel_tool/templates/aa_intel_tool/bundles/aa-intel-tool-fleetcomp-js.html +1 -1
- aa_intel_tool/templates/aa_intel_tool/bundles/aa-intel-tool-js.html +1 -1
- aa_intel_tool/templates/aa_intel_tool/partials/body/scan-retention-note.html +1 -1
- aa_intel_tool/templates/aa_intel_tool/partials/footer/app-translation-footer.html +1 -1
- aa_intel_tool/templates/aa_intel_tool/partials/index/form.html +21 -22
- aa_intel_tool/templates/aa_intel_tool/partials/scan/buttons.html +6 -5
- aa_intel_tool/templates/aa_intel_tool/partials/scan/chatlist/alliances.html +7 -7
- aa_intel_tool/templates/aa_intel_tool/partials/scan/chatlist/corporations.html +7 -7
- aa_intel_tool/templates/aa_intel_tool/partials/scan/chatlist/pilots.html +7 -7
- aa_intel_tool/templates/aa_intel_tool/partials/scan/dscan/interesting-on-grid/items.html +7 -7
- aa_intel_tool/templates/aa_intel_tool/partials/scan/dscan/interesting-on-grid.html +2 -2
- aa_intel_tool/templates/aa_intel_tool/partials/scan/dscan/ships-breakdown/ship-classes.html +7 -7
- aa_intel_tool/templates/aa_intel_tool/partials/scan/dscan/ships-breakdown/ship-types.html +7 -7
- aa_intel_tool/templates/aa_intel_tool/partials/scan/dscan/ships-breakdown.html +1 -1
- aa_intel_tool/templates/aa_intel_tool/partials/scan/dscan/system-information.html +2 -2
- aa_intel_tool/templates/aa_intel_tool/partials/scan/evetime.html +1 -1
- aa_intel_tool/templates/aa_intel_tool/partials/scan/fleetcomp/fleet-details/pilots.html +6 -6
- aa_intel_tool/templates/aa_intel_tool/partials/scan/fleetcomp/fleet-details.html +1 -1
- aa_intel_tool/templates/aa_intel_tool/partials/scan/fleetcomp/participation.html +1 -1
- aa_intel_tool/templates/aa_intel_tool/views/index.html +4 -9
- aa_intel_tool/templates/aa_intel_tool/views/scan/chatlist.html +2 -2
- aa_intel_tool/templates/aa_intel_tool/views/scan/dscan.html +2 -2
- aa_intel_tool/templates/aa_intel_tool/views/scan/fleetcomp.html +2 -2
- aa_intel_tool/tests/test_access.py +24 -13
- aa_intel_tool/tests/test_auth_hooks.py +18 -12
- aa_intel_tool/tests/test_parser.py +1 -1
- aa_intel_tool/tests/test_templatetags.py +2 -3
- aa_intel_tool/tests/utils.py +14 -0
- aa_intel_tool/views/general.py +3 -1
- {aa_intel_tool-1.1.3.dist-info → aa_intel_tool-2.0.0b1.dist-info}/METADATA +31 -33
- {aa_intel_tool-1.1.3.dist-info → aa_intel_tool-2.0.0b1.dist-info}/RECORD +81 -84
- {aa_intel_tool-1.1.3.dist-info → aa_intel_tool-2.0.0b1.dist-info}/WHEEL +1 -1
- aa_intel_tool/static/aa_intel_tool/css/aa-bootstrap-fix.css +0 -13
- aa_intel_tool/static/aa_intel_tool/css/aa-bootstrap-fix.min.css +0 -2
- aa_intel_tool/static/aa_intel_tool/css/aa-bootstrap-fix.min.css.map +0 -1
- /aa_intel_tool/templatetags/{inteltool_versioned_static.py → aa_intel_tool.py} +0 -0
- {aa_intel_tool-1.1.3.dist-info → aa_intel_tool-2.0.0b1.dist-info}/licenses/LICENSE +0 -0
|
@@ -41,9 +41,10 @@ def _get_character_info(scan_data: list) -> QuerySet[EveCharacter]:
|
|
|
41
41
|
:rtype:
|
|
42
42
|
"""
|
|
43
43
|
|
|
44
|
+
fetch_from_eveuniverse = False
|
|
45
|
+
|
|
44
46
|
# Check if we have to bother Eve Universe or if we have all characters already
|
|
45
47
|
# Excluding corporation_id=1000001 (Doomheim) to force an update here …
|
|
46
|
-
fetch_from_eveuniverse = False
|
|
47
48
|
try:
|
|
48
49
|
eve_characters = EveCharacter.objects.filter(
|
|
49
50
|
character_name__in=scan_data
|
|
@@ -54,6 +55,7 @@ def _get_character_info(scan_data: list) -> QuerySet[EveCharacter]:
|
|
|
54
55
|
if len(scan_data) != eve_characters.count():
|
|
55
56
|
fetch_from_eveuniverse = True
|
|
56
57
|
|
|
58
|
+
# Fetch the character information from Eve Universe if needed
|
|
57
59
|
if fetch_from_eveuniverse:
|
|
58
60
|
try:
|
|
59
61
|
eve_character_ids = (
|
|
@@ -111,6 +113,7 @@ def _parse_alliance_info(
|
|
|
111
113
|
:rtype:
|
|
112
114
|
"""
|
|
113
115
|
|
|
116
|
+
# Build alliance info dict
|
|
114
117
|
if eve_character.alliance_id is None:
|
|
115
118
|
alliance_info = _get_unaffiliated_alliance_info()
|
|
116
119
|
else:
|
|
@@ -151,6 +154,7 @@ def _parse_corporation_info(
|
|
|
151
154
|
"logo": eve_character.corporation_logo_url_32,
|
|
152
155
|
}
|
|
153
156
|
|
|
157
|
+
# Add eve links if requested
|
|
154
158
|
if with_evelinks:
|
|
155
159
|
corporation_info["dotlan"] = dotlan.corporation_url(
|
|
156
160
|
name=eve_character.corporation_name
|
|
@@ -159,6 +163,7 @@ def _parse_corporation_info(
|
|
|
159
163
|
eve_id=eve_character.corporation_id
|
|
160
164
|
)
|
|
161
165
|
|
|
166
|
+
# Add alliance info if requested
|
|
162
167
|
if with_alliance_info:
|
|
163
168
|
corporation_info["alliance"] = _parse_alliance_info(
|
|
164
169
|
eve_character=eve_character, with_evelinks=with_evelinks
|
|
@@ -208,17 +213,21 @@ def _parse_chatscan_data(eve_characters: QuerySet[EveCharacter]) -> dict:
|
|
|
208
213
|
corporation_info = {}
|
|
209
214
|
character_info = {}
|
|
210
215
|
|
|
216
|
+
# Loop through the characters
|
|
211
217
|
for eve_character in eve_characters:
|
|
212
218
|
eve_character__alliance_name = "Unaffiliated"
|
|
213
219
|
|
|
220
|
+
# If the character is in an alliance, use the alliance name
|
|
214
221
|
if eve_character.alliance_name is not None:
|
|
215
222
|
eve_character__alliance_name = eve_character.alliance_name
|
|
216
223
|
|
|
217
|
-
|
|
218
|
-
counter
|
|
224
|
+
counter[eve_character__alliance_name] = (
|
|
225
|
+
counter.get(eve_character__alliance_name, 0) + 1
|
|
226
|
+
)
|
|
219
227
|
|
|
220
|
-
|
|
221
|
-
counter
|
|
228
|
+
counter[eve_character.corporation_name] = (
|
|
229
|
+
counter.get(eve_character.corporation_name, 0) + 1
|
|
230
|
+
)
|
|
222
231
|
|
|
223
232
|
# Alliance Info
|
|
224
233
|
if eve_character__alliance_name not in alliance_info:
|
|
@@ -238,12 +247,10 @@ def _parse_chatscan_data(eve_characters: QuerySet[EveCharacter]) -> dict:
|
|
|
238
247
|
)
|
|
239
248
|
|
|
240
249
|
# Update the counter
|
|
241
|
-
counter[eve_character__alliance_name] += 1
|
|
242
250
|
alliance_info[eve_character__alliance_name]["count"] = counter[
|
|
243
251
|
eve_character__alliance_name
|
|
244
252
|
]
|
|
245
253
|
|
|
246
|
-
counter[eve_character.corporation_name] += 1
|
|
247
254
|
corporation_info[eve_character.corporation_name]["count"] = counter[
|
|
248
255
|
eve_character.corporation_name
|
|
249
256
|
]
|
|
@@ -273,12 +280,14 @@ def parse(
|
|
|
273
280
|
|
|
274
281
|
message = _("The chat list module is currently disabled.")
|
|
275
282
|
|
|
283
|
+
# Only parse the chat scan if the module is enabled
|
|
276
284
|
if AppSettings.INTELTOOL_ENABLE_MODULE_CHATSCAN is True:
|
|
277
285
|
logger.debug(msg=f"{len(scan_data)} name(s) to work through …")
|
|
278
286
|
|
|
279
287
|
pilots_in_scan = len(scan_data)
|
|
280
288
|
max_allowed_pilots = AppSettings.INTELTOOL_CHATSCAN_MAX_PILOTS
|
|
281
289
|
|
|
290
|
+
# Check if the number of pilots in the scan exceeds the maximum allowed number
|
|
282
291
|
if 0 < max_allowed_pilots < pilots_in_scan and ignore_limit is False:
|
|
283
292
|
logger.debug(
|
|
284
293
|
msg=(
|
|
@@ -287,6 +296,7 @@ def parse(
|
|
|
287
296
|
)
|
|
288
297
|
)
|
|
289
298
|
|
|
299
|
+
# Throw a tantrum
|
|
290
300
|
raise ParserError(
|
|
291
301
|
message=ngettext(
|
|
292
302
|
singular=f"Chat scans are currently limited to a maximum of {max_allowed_pilots} pilot per scan. Your list of pilots exceeds this limit.", # pylint: disable=line-too-long
|
|
@@ -20,7 +20,11 @@ from eveuniverse.models import EveType
|
|
|
20
20
|
|
|
21
21
|
# AA Intel Tool
|
|
22
22
|
from aa_intel_tool import __title__
|
|
23
|
-
from aa_intel_tool.app_settings import
|
|
23
|
+
from aa_intel_tool.app_settings import (
|
|
24
|
+
AdditionalEveCategoryId,
|
|
25
|
+
AppSettings,
|
|
26
|
+
UpwellStructureId,
|
|
27
|
+
)
|
|
24
28
|
from aa_intel_tool.exceptions import ParserError
|
|
25
29
|
from aa_intel_tool.helper.data_structure import dict_to_list
|
|
26
30
|
from aa_intel_tool.models import Scan, ScanData
|
|
@@ -44,9 +48,11 @@ def _is_on_grid(distance: str) -> bool:
|
|
|
44
48
|
REGEX_PATTERN,
|
|
45
49
|
)
|
|
46
50
|
|
|
51
|
+
# Check if we have a distance
|
|
47
52
|
if re.search(pattern=REGEX_PATTERN["localised_on_grid"], string=distance):
|
|
48
53
|
distance_sanitised = int(re.sub(pattern=r"[^0-9]", repl="", string=distance))
|
|
49
54
|
|
|
55
|
+
# Check if the distance is within the grid size
|
|
50
56
|
if distance_sanitised <= AppSettings.INTELTOOL_DSCAN_GRID_SIZE:
|
|
51
57
|
return True
|
|
52
58
|
|
|
@@ -102,6 +108,7 @@ def _get_ships(eve_types: QuerySet, counter: dict) -> dict:
|
|
|
102
108
|
eve_group__eve_category_id__exact=EveCategoryId.SHIP
|
|
103
109
|
)
|
|
104
110
|
|
|
111
|
+
# Loop through all ships types
|
|
105
112
|
for eve_type in eve_types_ships:
|
|
106
113
|
# Info for "All Ships" table
|
|
107
114
|
if eve_type[0] in counter["all"]:
|
|
@@ -160,6 +167,7 @@ def _get_upwell_structures_on_grid(
|
|
|
160
167
|
|
|
161
168
|
upwell_structures = {}
|
|
162
169
|
|
|
170
|
+
# Loop through all Upwell structures
|
|
163
171
|
for eve_type in eve_types_structures:
|
|
164
172
|
if eve_type[0] in counter["ongrid"]:
|
|
165
173
|
if eve_type[1] not in upwell_structures:
|
|
@@ -167,7 +175,10 @@ def _get_upwell_structures_on_grid(
|
|
|
167
175
|
upwell_structures[eve_type[1]]["count"] = counter["ongrid"][eve_type[0]]
|
|
168
176
|
|
|
169
177
|
# If it is an Ansiblex Jump Gate, add the destination system
|
|
170
|
-
if
|
|
178
|
+
if (
|
|
179
|
+
eve_type[0] == UpwellStructureId.ANSIBLEX_JUMP_GATE
|
|
180
|
+
and ansiblex_destination
|
|
181
|
+
):
|
|
171
182
|
upwell_structures[eve_type[1]][
|
|
172
183
|
"name"
|
|
173
184
|
] += f" » {ansiblex_destination}"
|
|
@@ -187,17 +198,13 @@ def _get_deployables_on_grid(eve_types: QuerySet, counter: dict) -> list:
|
|
|
187
198
|
:rtype:
|
|
188
199
|
"""
|
|
189
200
|
|
|
190
|
-
# AA Intel Tool
|
|
191
|
-
from aa_intel_tool.constants import ( # pylint: disable=import-outside-toplevel
|
|
192
|
-
AdditionalEveCategoryId,
|
|
193
|
-
)
|
|
194
|
-
|
|
195
201
|
eve_types_deployables = eve_types.filter(
|
|
196
202
|
eve_group__eve_category_id__exact=AdditionalEveCategoryId.DEPLOYABLE
|
|
197
203
|
)
|
|
198
204
|
|
|
199
205
|
deployables = {}
|
|
200
206
|
|
|
207
|
+
# Loop through all deployables
|
|
201
208
|
for eve_type in eve_types_deployables:
|
|
202
209
|
if eve_type[0] in counter["ongrid"]:
|
|
203
210
|
if eve_type[1] not in deployables:
|
|
@@ -219,17 +226,13 @@ def _get_starbases_on_grid(eve_types: QuerySet, counter: dict) -> list:
|
|
|
219
226
|
:rtype:
|
|
220
227
|
"""
|
|
221
228
|
|
|
222
|
-
# AA Intel Tool
|
|
223
|
-
from aa_intel_tool.constants import ( # pylint: disable=import-outside-toplevel
|
|
224
|
-
AdditionalEveCategoryId,
|
|
225
|
-
)
|
|
226
|
-
|
|
227
229
|
eve_types_starbase = eve_types.filter(
|
|
228
230
|
eve_group__eve_category_id__exact=AdditionalEveCategoryId.STARBASE
|
|
229
231
|
)
|
|
230
232
|
|
|
231
233
|
starbases = {}
|
|
232
234
|
|
|
235
|
+
# Loop through all starbases
|
|
233
236
|
for eve_type in eve_types_starbase:
|
|
234
237
|
if eve_type[0] in counter["ongrid"]:
|
|
235
238
|
if eve_type[1] not in starbases:
|
|
@@ -241,7 +244,7 @@ def _get_starbases_on_grid(eve_types: QuerySet, counter: dict) -> list:
|
|
|
241
244
|
|
|
242
245
|
def _get_ansiblex_jumpgate_destination(ansiblex_name: str) -> str:
|
|
243
246
|
"""
|
|
244
|
-
Get the Ansiblex Jump Gate
|
|
247
|
+
Get the Ansiblex Jump Gate destination system
|
|
245
248
|
|
|
246
249
|
:param ansiblex_name:
|
|
247
250
|
:type ansiblex_name:
|
|
@@ -268,7 +271,6 @@ def _get_scan_details(scan_data: list) -> tuple:
|
|
|
268
271
|
ansiblex_destination = None
|
|
269
272
|
counter = {"all": {}, "ongrid": {}, "offgrid": {}, "type": {}}
|
|
270
273
|
eve_ids = {"all": [], "ongrid": [], "offgrid": []}
|
|
271
|
-
# dscan_lines = []
|
|
272
274
|
|
|
273
275
|
# Let's split this list up
|
|
274
276
|
#
|
|
@@ -276,35 +278,31 @@ def _get_scan_details(scan_data: list) -> tuple:
|
|
|
276
278
|
# line[1] => Name
|
|
277
279
|
# line[2] => Ship Class / Structure Type
|
|
278
280
|
# line[3] => Distance
|
|
281
|
+
#
|
|
282
|
+
# Loop through all lines
|
|
279
283
|
for entry in scan_data:
|
|
280
284
|
line = re.split(pattern=r"\t+", string=entry.rstrip("\t"))
|
|
281
285
|
entry_id = int(line[0])
|
|
282
286
|
|
|
283
|
-
|
|
284
|
-
counter["all"][entry_id] = 0
|
|
287
|
+
counter["all"][entry_id] = counter["all"].get(entry_id, 0) + 1
|
|
285
288
|
|
|
289
|
+
# Check if the entry is "on grid" or not
|
|
286
290
|
if _is_on_grid(line[3]):
|
|
287
|
-
|
|
288
|
-
counter["ongrid"][entry_id] = 0
|
|
291
|
+
counter["ongrid"][entry_id] = counter["ongrid"].get(entry_id, 0) + 1
|
|
289
292
|
|
|
290
|
-
# If
|
|
291
|
-
if entry_id ==
|
|
293
|
+
# If it is an Ansiblex Jump Gate, get its destination system
|
|
294
|
+
if entry_id == UpwellStructureId.ANSIBLEX_JUMP_GATE:
|
|
292
295
|
ansiblex_destination = _get_ansiblex_jumpgate_destination(
|
|
293
296
|
ansiblex_name=line[1]
|
|
294
297
|
)
|
|
295
298
|
|
|
296
|
-
counter["ongrid"][entry_id] += 1
|
|
297
299
|
eve_ids["ongrid"].append(entry_id)
|
|
298
300
|
else:
|
|
299
|
-
|
|
300
|
-
counter["offgrid"][entry_id] = 0
|
|
301
|
+
counter["offgrid"][entry_id] = counter["offgrid"].get(entry_id, 0) + 1
|
|
301
302
|
|
|
302
|
-
counter["offgrid"][entry_id] += 1
|
|
303
303
|
eve_ids["offgrid"].append(entry_id)
|
|
304
304
|
|
|
305
|
-
counter["all"][entry_id] += 1
|
|
306
305
|
eve_ids["all"].append(entry_id)
|
|
307
|
-
# dscan_lines.append([entry_id, line[1], line[2], line[3]])
|
|
308
306
|
|
|
309
307
|
return ansiblex_destination, counter, eve_ids
|
|
310
308
|
|
|
@@ -321,9 +319,14 @@ def parse(scan_data: list) -> Scan:
|
|
|
321
319
|
|
|
322
320
|
message = _("The D-Scan module is currently disabled.")
|
|
323
321
|
|
|
322
|
+
# Only parse the D-Scan when the module is enabled
|
|
324
323
|
if AppSettings.INTELTOOL_ENABLE_MODULE_DSCAN is True:
|
|
325
324
|
parsed_data = {}
|
|
326
|
-
|
|
325
|
+
(
|
|
326
|
+
ansiblex_destination, # pylint: disable=unused-variable
|
|
327
|
+
counter,
|
|
328
|
+
eve_ids,
|
|
329
|
+
) = _get_scan_details(scan_data=scan_data)
|
|
327
330
|
|
|
328
331
|
eve_types = EveType.objects.bulk_get_or_create_esi(
|
|
329
332
|
ids=set(eve_ids["all"]), include_children=True
|
|
@@ -334,19 +337,19 @@ def parse(scan_data: list) -> Scan:
|
|
|
334
337
|
upwell_structures = _get_upwell_structures_on_grid(
|
|
335
338
|
eve_types=eve_types,
|
|
336
339
|
counter=counter,
|
|
337
|
-
ansiblex_destination=ansiblex_destination,
|
|
340
|
+
# ansiblex_destination=ansiblex_destination,
|
|
338
341
|
)
|
|
339
342
|
deployables = _get_deployables_on_grid(eve_types=eve_types, counter=counter)
|
|
340
343
|
starbases = _get_starbases_on_grid(eve_types=eve_types, counter=counter)
|
|
341
344
|
|
|
342
|
-
# Add "ships all" to parsed data when available
|
|
345
|
+
# Add "ships all" to the parsed data when available
|
|
343
346
|
if ships["all"]:
|
|
344
347
|
parsed_data["all"] = {
|
|
345
348
|
"section": ScanData.Section.SHIPLIST,
|
|
346
349
|
"data": ships["all"],
|
|
347
350
|
}
|
|
348
351
|
|
|
349
|
-
# Add "ships on grid" to parsed data when available
|
|
352
|
+
# Add "ships on grid" to the parsed data when available
|
|
350
353
|
if ships["ongrid"]:
|
|
351
354
|
parsed_data["ongrid"] = {
|
|
352
355
|
"section": ScanData.Section.SHIPLIST_ON_GRID,
|
|
@@ -360,21 +363,21 @@ def parse(scan_data: list) -> Scan:
|
|
|
360
363
|
"data": ships["offgrid"],
|
|
361
364
|
}
|
|
362
365
|
|
|
363
|
-
# Add "ship types" to parsed data when available
|
|
366
|
+
# Add "ship types" to the parsed data when available
|
|
364
367
|
if ships["types"]:
|
|
365
368
|
parsed_data["shiptypes"] = {
|
|
366
369
|
"section": ScanData.Section.SHIPTYPES,
|
|
367
370
|
"data": ships["types"],
|
|
368
371
|
}
|
|
369
372
|
|
|
370
|
-
# Add "Upwell structures on grid" to parsed data when available
|
|
373
|
+
# Add "Upwell structures on grid" to the parsed data when available
|
|
371
374
|
if upwell_structures:
|
|
372
375
|
parsed_data["sructures_on_grid"] = {
|
|
373
376
|
"section": ScanData.Section.STRUCTURES_ON_GRID,
|
|
374
377
|
"data": upwell_structures,
|
|
375
378
|
}
|
|
376
379
|
|
|
377
|
-
# Add "deployables on grid" to parsed data when available
|
|
380
|
+
# Add "deployables on grid" to the parsed data when available
|
|
378
381
|
if deployables:
|
|
379
382
|
parsed_data["deployables"] = {
|
|
380
383
|
"section": ScanData.Section.DEPLOYABLES_ON_GRID,
|
|
@@ -39,19 +39,21 @@ def _get_fleet_composition(pilots: dict, ships: dict) -> dict:
|
|
|
39
39
|
:rtype:
|
|
40
40
|
"""
|
|
41
41
|
|
|
42
|
-
#
|
|
42
|
+
# Get ship class IDs
|
|
43
43
|
ship_class_ids = (
|
|
44
44
|
EveEntity.objects.fetch_by_names_esi(names=ships["class"], update=True)
|
|
45
45
|
.filter(category=EveEntity.CATEGORY_INVENTORY_TYPE)
|
|
46
46
|
.values_list("id", flat=True)
|
|
47
47
|
)
|
|
48
48
|
|
|
49
|
+
# Get ship class details
|
|
49
50
|
ship_class_details = EveType.objects.bulk_get_or_create_esi(
|
|
50
51
|
ids=set(ship_class_ids), include_children=True
|
|
51
52
|
).values_list("id", "name", "eve_group__id", "eve_group__name", named=True)
|
|
52
53
|
|
|
54
|
+
# Loop through ship classes
|
|
53
55
|
for ship_class in ship_class_details:
|
|
54
|
-
#
|
|
56
|
+
# Build ship class dict
|
|
55
57
|
ships["class"][ship_class.name]["id"] = ship_class.id
|
|
56
58
|
ships["class"][ship_class.name]["name"] = ship_class.name
|
|
57
59
|
ships["class"][ship_class.name]["type_id"] = ship_class.eve_group__id
|
|
@@ -60,18 +62,21 @@ def _get_fleet_composition(pilots: dict, ships: dict) -> dict:
|
|
|
60
62
|
type_id=ship_class.id, size=32
|
|
61
63
|
)
|
|
62
64
|
|
|
63
|
-
#
|
|
65
|
+
# Build ship type dict
|
|
64
66
|
ships["type"][ship_class.eve_group__name]["id"] = ship_class.eve_group__id
|
|
65
67
|
ships["type"][ship_class.eve_group__name]["name"] = ship_class.eve_group__name
|
|
66
68
|
|
|
67
69
|
# Pilots
|
|
68
70
|
pilot_details = _get_character_info(scan_data=list(set(pilots)))
|
|
69
71
|
|
|
72
|
+
# Loop through pilots
|
|
70
73
|
for pilot in pilot_details:
|
|
74
|
+
# Get ship class details for a pilot
|
|
71
75
|
pilot__ship_class = ship_class_details.filter(
|
|
72
76
|
name=pilots[pilot.character_name]["ship"]
|
|
73
77
|
).get()
|
|
74
78
|
|
|
79
|
+
# Build pilots dict
|
|
75
80
|
pilots[pilot.character_name]["id"] = pilot.character_id
|
|
76
81
|
pilots[pilot.character_name]["portrait"] = pilot.portrait_url_32
|
|
77
82
|
pilots[pilot.character_name]["evewho"] = evewho.character_url(
|
|
@@ -102,9 +107,9 @@ def parse(scan_data: list) -> Scan:
|
|
|
102
107
|
|
|
103
108
|
message = _("The fleet composition module is currently disabled.")
|
|
104
109
|
|
|
110
|
+
# Only parse fleet composition when the module is enabled
|
|
105
111
|
if AppSettings.INTELTOOL_ENABLE_MODULE_FLEETCOMP is True:
|
|
106
112
|
parsed_data = {}
|
|
107
|
-
# pilots = {"list": [], "flying": {}}
|
|
108
113
|
pilots = {}
|
|
109
114
|
ships = {"type": {}, "class": {}}
|
|
110
115
|
lines = []
|
|
@@ -124,7 +129,6 @@ def parse(scan_data: list) -> Scan:
|
|
|
124
129
|
if len(line) == 6:
|
|
125
130
|
line.append("")
|
|
126
131
|
|
|
127
|
-
# pilots["list"].append(line[0])
|
|
128
132
|
pilots[line[0]] = {
|
|
129
133
|
"name": line[0],
|
|
130
134
|
"solarsystem": line[1],
|
|
@@ -148,6 +152,8 @@ def parse(scan_data: list) -> Scan:
|
|
|
148
152
|
fleet_composition = _get_fleet_composition(pilots=pilots, ships=ships)
|
|
149
153
|
|
|
150
154
|
participation = None
|
|
155
|
+
|
|
156
|
+
# Check if chat scan module is enabled
|
|
151
157
|
if AppSettings.INTELTOOL_ENABLE_MODULE_CHATSCAN is True:
|
|
152
158
|
participation = parse_pilots(
|
|
153
159
|
scan_data=list(set(pilots)),
|
|
@@ -1,43 +1,25 @@
|
|
|
1
1
|
@media all {
|
|
2
|
-
.aa-intel-tool .aa-intel-scan-evetime {
|
|
3
|
-
margin: 1.5rem 0;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
2
|
.aa-intel-tool .aa-intel-scan-page-buttons ul li {
|
|
7
3
|
display: block;
|
|
8
4
|
float: left;
|
|
9
5
|
width: 150px;
|
|
10
6
|
}
|
|
11
7
|
|
|
12
|
-
.aa-intel-tool .aa-intel-scan-page-buttons ul li > a {
|
|
13
|
-
padding: 0;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
.aa-intel-tool .aa-intel-scan-page-buttons {
|
|
17
|
-
margin-bottom: 1.5rem;
|
|
18
|
-
margin-top: 1rem;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
8
|
.aa-intel-tool .aa-intel-scan-page-buttons button {
|
|
22
9
|
position: relative;
|
|
23
10
|
width: 100%;
|
|
24
11
|
}
|
|
25
12
|
|
|
26
13
|
.aa-intel-tool .aa-intel-copy-result {
|
|
27
|
-
width:
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
.aa-intel-tool .paste-explanation {
|
|
31
|
-
margin-bottom: 2rem;
|
|
14
|
+
max-width: 310px;
|
|
32
15
|
}
|
|
33
16
|
|
|
34
17
|
.aa-intel-tool .paste-explanation ul {
|
|
35
18
|
list-style-type: none;
|
|
36
|
-
padding: 0;
|
|
37
19
|
}
|
|
38
20
|
|
|
39
21
|
.aa-intel-tool .paste-explanation li > small {
|
|
40
|
-
color:
|
|
22
|
+
color: var(--bs-gray);
|
|
41
23
|
}
|
|
42
24
|
|
|
43
25
|
.aa-intel-tool td.data-align-right {
|
|
@@ -45,9 +27,7 @@
|
|
|
45
27
|
}
|
|
46
28
|
|
|
47
29
|
.aa-intel-tool .aa-intel-section-header {
|
|
48
|
-
border-bottom: 1px solid
|
|
49
|
-
margin-bottom: 2rem;
|
|
50
|
-
margin-top: 2rem;
|
|
30
|
+
border-bottom: 1px solid var(--bs-gray-200);
|
|
51
31
|
}
|
|
52
32
|
|
|
53
33
|
.aa-intel-tool .aa-intel-section-header .aa-intel-section-title {
|
|
@@ -66,10 +46,6 @@
|
|
|
66
46
|
.aa-intel-tool .aa-intel-corporation-information-wrapper,
|
|
67
47
|
.aa-intel-tool .aa-intel-pilot-information-wrapper {
|
|
68
48
|
display: inline-block;
|
|
69
|
-
vertical-align: top;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
.aa-intel-tool .aa-intel-alliance-id-1 .aa-intel-alliance-information-wrapper {
|
|
73
49
|
vertical-align: inherit;
|
|
74
50
|
}
|
|
75
51
|
|
|
@@ -86,26 +62,16 @@
|
|
|
86
62
|
/* Highlighting
|
|
87
63
|
------------------------------------------------------------------------------------- */
|
|
88
64
|
@media all {
|
|
89
|
-
.aa-intel-tool .aa-intel-highlight,
|
|
90
|
-
.aa-intel-tool .aa-intel-highlight-sticky {
|
|
91
|
-
background-color: rgba(255 255 255 / 50%);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
65
|
.aa-intel-tool .aa-intel-highlight td:first-child,
|
|
95
66
|
.aa-intel-tool .aa-intel-highlight-sticky td:first-child {
|
|
96
|
-
border-left: 1px solid
|
|
97
|
-
|
|
98
|
-
padding-left: 4px;
|
|
67
|
+
border-left: 1px solid var(--bs-red);
|
|
68
|
+
padding-left: 3px;
|
|
99
69
|
}
|
|
100
70
|
}
|
|
101
71
|
|
|
102
72
|
/* Form
|
|
103
73
|
------------------------------------------------------------------------------------- */
|
|
104
74
|
@media all {
|
|
105
|
-
.aa-intel-tool .form-submit-area div:first-child {
|
|
106
|
-
margin-bottom: 15px;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
75
|
.aa-intel-tool .aa-intel-form-submitted-info {
|
|
110
76
|
display: none;
|
|
111
77
|
}
|
|
@@ -127,24 +93,11 @@
|
|
|
127
93
|
width: 100%;
|
|
128
94
|
}
|
|
129
95
|
|
|
130
|
-
.aa-intel-tool .dataTable tr.even {
|
|
131
|
-
background-color: rgba(236 240 241 / 35%);
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
.template-dark-mode .aa-intel-tool .dataTable tr.even {
|
|
135
|
-
background-color: rgba(236 240 241 / 5%);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
96
|
.aa-intel-tool .dataTable tbody tr:hover,
|
|
139
97
|
.aa-intel-tool .dataTable tbody tr.aa-intel-highlight,
|
|
140
98
|
.aa-intel-tool .dataTable tbody tr.aa-intel-highlight-sticky {
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
.template-dark-mode .aa-intel-tool .dataTable tbody tr:hover,
|
|
145
|
-
.template-dark-mode .aa-intel-tool .dataTable tbody tr.aa-intel-highlight,
|
|
146
|
-
.template-dark-mode .aa-intel-tool .dataTable tbody tr.aa-intel-highlight-sticky {
|
|
147
|
-
background-color: rgba(236 240 241 / 10%);
|
|
99
|
+
--bs-table-bg-type: var(--bs-table-hover-bg);
|
|
100
|
+
--bs-table-color-type: var(--bs-table-striped-color);
|
|
148
101
|
}
|
|
149
102
|
|
|
150
103
|
.aa-intel-tool .table-aa-intel tbody > tr > td {
|
|
@@ -179,100 +132,7 @@
|
|
|
179
132
|
text-overflow: ellipsis;
|
|
180
133
|
}
|
|
181
134
|
|
|
182
|
-
.aa-intel-tool td.fix-eve-image-position > span:first-child {
|
|
183
|
-
position: relative;
|
|
184
|
-
transform: translateY(16%);
|
|
185
|
-
}
|
|
186
|
-
|
|
187
135
|
.aa-intel-tool td.fix-eve-image-position > span.alliance-id-1 {
|
|
188
136
|
transform: none;
|
|
189
137
|
}
|
|
190
|
-
|
|
191
|
-
.aa-intel-tool .table-local-scan-alliances,
|
|
192
|
-
.aa-intel-tool .table-local-scan-corporations,
|
|
193
|
-
.aa-intel-tool .table-local-scan-pilots,
|
|
194
|
-
.aa-intel-tool .table-dscan-ship-classes,
|
|
195
|
-
.aa-intel-tool .table-dscan-ship-types,
|
|
196
|
-
.aa-intel-tool .aa-intel-empty-table-info {
|
|
197
|
-
display: none;
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
/* Callouts
|
|
202
|
-
*
|
|
203
|
-
* Not quite alerts, but custom and helpful notes for folks reading the docs.
|
|
204
|
-
* Requires a base and modifier class.
|
|
205
|
-
------------------------------------------------------------------------------------- */
|
|
206
|
-
@media all {
|
|
207
|
-
/* Common styles for all types */
|
|
208
|
-
.aa-intel-tool .bs-callout {
|
|
209
|
-
border: 1px solid rgb(238 238 238);
|
|
210
|
-
border-left-width: 5px;
|
|
211
|
-
border-radius: 3px;
|
|
212
|
-
margin: 20px 0;
|
|
213
|
-
padding: 20px;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
.aa-intel-tool .bs-callout h4 {
|
|
217
|
-
margin-bottom: 5px;
|
|
218
|
-
margin-top: 0;
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
.aa-intel-tool .bs-callout p:last-child {
|
|
222
|
-
margin-bottom: 0;
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
.aa-intel-tool .bs-callout code {
|
|
226
|
-
border-radius: 3px;
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
/* Variations */
|
|
230
|
-
.aa-intel-tool .bs-callout-danger {
|
|
231
|
-
border-left-color: rgb(206 72 68);
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
.aa-intel-tool .bs-callout-danger h4 {
|
|
235
|
-
color: rgb(206 72 68);
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
.aa-intel-tool .bs-callout-warning {
|
|
239
|
-
border-left-color: rgb(170 103 8);
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
.aa-intel-tool .bs-callout-warning h4 {
|
|
243
|
-
color: rgb(170 103 8);
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
.aa-intel-tool .bs-callout-info {
|
|
247
|
-
border-left-color: rgb(27 128 158);
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
.aa-intel-tool .bs-callout-info h4 {
|
|
251
|
-
color: rgb(27 128 158);
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
/* Scan rows
|
|
256
|
-
------------------------------------------------------------------------------------- */
|
|
257
|
-
@media all {
|
|
258
|
-
#aa-intel-dscan-row-system-information,
|
|
259
|
-
#aa-intel-dscan-row-interesting-on-grid,
|
|
260
|
-
#aa-intel-dscan-row-interesting-on-grid > .col-aa-intel {
|
|
261
|
-
display: none;
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
/* Footer
|
|
266
|
-
------------------------------------------------------------------------------------- */
|
|
267
|
-
@media all {
|
|
268
|
-
.aa-intel-tool .aa-intel-tool-footer {
|
|
269
|
-
border-top: 1px solid rgb(236 240 241);
|
|
270
|
-
font-size: 85%;
|
|
271
|
-
margin-top: 1rem;
|
|
272
|
-
padding-top: 1rem;
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
.template-dark-mode .aa-intel-tool .aa-intel-tool-footer {
|
|
276
|
-
border-color: rgb(70 69 69);
|
|
277
|
-
}
|
|
278
138
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
@media all{.aa-intel-tool .aa-intel-scan-
|
|
1
|
+
@media all{.aa-intel-tool .aa-intel-scan-page-buttons ul li{display:block;float:left;width:150px}.aa-intel-tool .aa-intel-scan-page-buttons button{position:relative;width:100%}.aa-intel-tool .aa-intel-copy-result{max-width:310px}.aa-intel-tool .paste-explanation ul{list-style-type:none}.aa-intel-tool .paste-explanation li>small{color:var(--bs-gray)}.aa-intel-tool td.data-align-right{text-align:right}.aa-intel-tool .aa-intel-section-header{border-bottom:1px solid var(--bs-gray-200)}.aa-intel-tool .aa-intel-section-header .aa-intel-section-title{font-size:1.25em}.aa-intel-tool .aa-intel-alliance-logo-wrapper,.aa-intel-tool .aa-intel-corporation-logo-wrapper,.aa-intel-tool .aa-intel-pilot-avatar-wrapper,.aa-intel-tool .aa-intel-ship-image-wrapper{display:inline-block;margin-right:.5rem}.aa-intel-tool .aa-intel-alliance-information-wrapper,.aa-intel-tool .aa-intel-corporation-information-wrapper,.aa-intel-tool .aa-intel-pilot-information-wrapper{display:inline-block;vertical-align:inherit}.aa-intel-tool .aa-intel-alliance-links-wrapper,.aa-intel-tool .aa-intel-alliance-name-wrapper,.aa-intel-tool .aa-intel-corporation-links-wrapper,.aa-intel-tool .aa-intel-corporation-name-wrapper,.aa-intel-tool .aa-intel-pilot-links-wrapper,.aa-intel-tool .aa-intel-pilot-name-wrapper,.aa-intel-tool form.is-submitting .aa-intel-form-submitted-info{display:block}.aa-intel-tool .aa-intel-highlight td:first-child,.aa-intel-tool .aa-intel-highlight-sticky td:first-child{border-left:1px solid var(--bs-red);padding-left:3px}.aa-intel-tool .aa-intel-form-submitted-info{display:none}.aa-intel-tool div.dataTables_wrapper div.dataTables_info{padding-top:8px;white-space:initial}.aa-intel-tool .dataTables_wrapper table.dataTable{width:100%}.aa-intel-tool .dataTable tbody tr.aa-intel-highlight,.aa-intel-tool .dataTable tbody tr.aa-intel-highlight-sticky,.aa-intel-tool .dataTable tbody tr:hover{--bs-table-bg-type:var(--bs-table-hover-bg);--bs-table-color-type:var(--bs-table-striped-color)}.aa-intel-tool .table-aa-intel tbody>tr>td{vertical-align:middle}.aa-intel-tool .table-no-images>tbody>tr>td{padding-bottom:12px;padding-top:11px}.aa-intel-tool .table-sortable>tbody>tr>.table-data-count{padding-right:1rem;text-align:right}.aa-intel-tool td.text-ellipsis{max-width:50px;white-space:nowrap}.aa-intel-alliance-information-wrapper,.aa-intel-corporation-information-wrapper,.aa-intel-pilot-information-wrapper{max-width:calc(100% - 35px)}.aa-intel-alliance-name-wrapper,.aa-intel-corporation-name-wrapper,.aa-intel-pilot-name-wrapper{overflow:hidden;text-overflow:ellipsis}.aa-intel-tool td.fix-eve-image-position>span.alliance-id-1{transform:none}}
|
|
2
2
|
/*# sourceMappingURL=aa-intel-tool.min.css.map */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["aa-intel-tool.css"],"names":[],"mappings":"AAAA,A,WACI,
|
|
1
|
+
{"version":3,"sources":["aa-intel-tool.css"],"names":[],"mappings":"AAAA,A,WACI,gD,CACI,a,CACA,U,CACA,W,CAGJ,iD,CACI,iB,CACA,U,CAGJ,oC,CACI,e,CAGJ,oC,CACI,oB,CAGJ,0C,CACI,oB,CAGJ,kC,CACI,gB,CAGJ,uC,CACI,0C,CAGJ,+D,CACI,gB,CAGJ,8C,CACA,iD,CACA,6C,CACA,2C,CACI,oB,CACA,kB,CAGJ,qD,CACA,wD,CACA,kD,CACI,oB,CACA,sB,CAIJ,+C,CADA,8C,CAGA,kD,CADA,iD,CAGA,4C,CADA,2C,CAuBA,+D,CArBI,a,CAOJ,iD,CACA,wD,CACI,mC,CACA,gB,CAOJ,4C,CACI,Y,CAWJ,yD,CACI,e,CACA,mB,CAGJ,kD,CACI,U,CAIJ,qD,CACA,4D,CAFA,wC,CAGI,2C,CACA,mD,CAGJ,0C,CACI,qB,CAGJ,2C,CACI,mB,CACA,gB,CAGJ,yD,CACI,kB,CACA,gB,CAGJ,+B,CACI,c,CACA,kB,CAGJ,sC,CACA,yC,CACA,mC,CACI,2B,CAGJ,+B,CACA,kC,CACA,4B,CACI,e,CACA,sB,CAGJ,2D,CACI,gB","file":"aa-intel-tool.css","sourcesContent":["@media all {\n .aa-intel-tool .aa-intel-scan-page-buttons ul li {\n display: block;\n float: left;\n width: 150px;\n }\n\n .aa-intel-tool .aa-intel-scan-page-buttons button {\n position: relative;\n width: 100%;\n }\n\n .aa-intel-tool .aa-intel-copy-result {\n max-width: 310px;\n }\n\n .aa-intel-tool .paste-explanation ul {\n list-style-type: none;\n }\n\n .aa-intel-tool .paste-explanation li > small {\n color: var(--bs-gray);\n }\n\n .aa-intel-tool td.data-align-right {\n text-align: right;\n }\n\n .aa-intel-tool .aa-intel-section-header {\n border-bottom: 1px solid var(--bs-gray-200);\n }\n\n .aa-intel-tool .aa-intel-section-header .aa-intel-section-title {\n font-size: 1.25em;\n }\n\n .aa-intel-tool .aa-intel-alliance-logo-wrapper,\n .aa-intel-tool .aa-intel-corporation-logo-wrapper,\n .aa-intel-tool .aa-intel-pilot-avatar-wrapper,\n .aa-intel-tool .aa-intel-ship-image-wrapper {\n display: inline-block;\n margin-right: 0.5rem;\n }\n\n .aa-intel-tool .aa-intel-alliance-information-wrapper,\n .aa-intel-tool .aa-intel-corporation-information-wrapper,\n .aa-intel-tool .aa-intel-pilot-information-wrapper {\n display: inline-block;\n vertical-align: inherit;\n }\n\n .aa-intel-tool .aa-intel-alliance-name-wrapper,\n .aa-intel-tool .aa-intel-alliance-links-wrapper,\n .aa-intel-tool .aa-intel-corporation-name-wrapper,\n .aa-intel-tool .aa-intel-corporation-links-wrapper,\n .aa-intel-tool .aa-intel-pilot-name-wrapper,\n .aa-intel-tool .aa-intel-pilot-links-wrapper {\n display: block;\n }\n}\n\n/* Highlighting\n------------------------------------------------------------------------------------- */\n@media all {\n .aa-intel-tool .aa-intel-highlight td:first-child,\n .aa-intel-tool .aa-intel-highlight-sticky td:first-child {\n border-left: 1px solid var(--bs-red);\n padding-left: 3px;\n }\n}\n\n/* Form\n------------------------------------------------------------------------------------- */\n@media all {\n .aa-intel-tool .aa-intel-form-submitted-info {\n display: none;\n }\n\n .aa-intel-tool form.is-submitting .aa-intel-form-submitted-info {\n display: block;\n }\n}\n\n/* Data Tables\n------------------------------------------------------------------------------------- */\n@media all {\n .aa-intel-tool div.dataTables_wrapper div.dataTables_info {\n padding-top: 8px;\n white-space: initial;\n }\n\n .aa-intel-tool .dataTables_wrapper table.dataTable {\n width: 100%;\n }\n\n .aa-intel-tool .dataTable tbody tr:hover,\n .aa-intel-tool .dataTable tbody tr.aa-intel-highlight,\n .aa-intel-tool .dataTable tbody tr.aa-intel-highlight-sticky {\n --bs-table-bg-type: var(--bs-table-hover-bg);\n --bs-table-color-type: var(--bs-table-striped-color);\n }\n\n .aa-intel-tool .table-aa-intel tbody > tr > td {\n vertical-align: middle;\n }\n\n .aa-intel-tool .table-no-images > tbody > tr > td {\n padding-bottom: 12px;\n padding-top: 11px;\n }\n\n .aa-intel-tool .table-sortable > tbody > tr > .table-data-count {\n padding-right: 1rem;\n text-align: right;\n }\n\n .aa-intel-tool td.text-ellipsis {\n max-width: 50px;\n white-space: nowrap;\n }\n\n .aa-intel-alliance-information-wrapper,\n .aa-intel-corporation-information-wrapper,\n .aa-intel-pilot-information-wrapper {\n max-width: calc(100% - 35px);\n }\n\n .aa-intel-alliance-name-wrapper,\n .aa-intel-corporation-name-wrapper,\n .aa-intel-pilot-name-wrapper {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .aa-intel-tool td.fix-eve-image-position > span.alliance-id-1 {\n transform: none;\n }\n}\n"]}
|