aa-killtracker 0.12.0__py3-none-any.whl → 0.12.1__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: aa-killtracker
3
- Version: 0.12.0
3
+ Version: 0.12.1
4
4
  Summary: "An app for running killmail trackers with Alliance Auth and Discord.
5
5
  Author-email: Erik Kalkoken <kalkoken87@gmail.com>
6
6
  Requires-Python: >=3.8
@@ -1,16 +1,13 @@
1
- killtracker/__init__.py,sha256=rN_L84Ny3bM-BPti6K-pxbhxAvFd2DI2bWc8bZwfhZE,356
2
- killtracker/admin.py,sha256=g8AOLOHvFwKKdiL7JXqI0yPDHfql2bazg3QYsJqkhCk,19343
1
+ killtracker/__init__.py,sha256=V4m-5KJOKyodZ4W8yOfYnVSdPSXA-9ROan6IGpI_Axs,356
2
+ killtracker/admin.py,sha256=CHudWND2slzqCt046xdf2lzhFaAuEsNKiF7ptaXm1wQ,13696
3
3
  killtracker/app_settings.py,sha256=4Hzd2BhOoNTZ5RakJ_Hd4PMQPdLSyKN2SE-dIs_iaBY,2839
4
4
  killtracker/apps.py,sha256=CfmDvqVXmoy6sumpjXKldhSlJt5xDiQW3XLBfCqH3-c,307
5
- killtracker/auth_hooks.py,sha256=dXZDf6H5mlaTpCTshrVELSSYpZKG_6HajAELSo_3zF8,208
6
- killtracker/constants.py,sha256=uLxHiCErOm4sXJZ28Z-YZa1T1cnkwjX8mxZkn82U-jQ,602
5
+ killtracker/constants.py,sha256=W7-VARE3B4_sdzV_9k7qunUzlxTcdSAeSp_ZJVnbUhw,2514
7
6
  killtracker/exceptions.py,sha256=aFY6qxQOta1V-qvgKp19Cgy6M16O7Si8moc2205OsX0,846
8
7
  killtracker/forms.py,sha256=BqJYcAQ9jbZxTkDsHxrxj0qKKTIGIW0mShbBYdCDlaA,5182
9
- killtracker/managers.py,sha256=55sfsbYcld6uAFvkuxTLqAtlJDGlp8ANiogLaovkQSg,4602
8
+ killtracker/managers.py,sha256=JCrfc3yrKD4uHCfIzPu7y2HF-VIJm1yskdc-CFEf7V4,4390
10
9
  killtracker/providers.py,sha256=smkZe_rKHkZeWFzJ0RhIhJVcbrZUpLYR5fKCge-dpXY,348
11
10
  killtracker/tasks.py,sha256=u_ZAOEeFZWW6qpWcB0HCzgbN0VjA1ZZDHdKPJGHKl0U,7884
12
- killtracker/urls.py,sha256=Kj8hMl93jfc7BE4f3ANW6cYp4UZgqrne4MtANn0vClw,436
13
- killtracker/views.py,sha256=WqAPnmujY_jhSK0txh55NswD2qWgU2R-OiKa-6lmBaQ,901
14
11
  killtracker/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
12
  killtracker/core/discord_messages.py,sha256=mOKiMWq-3WnaSUFbfgVmlkAedGTZ7OWcVxLp7n58-Z0,14132
16
13
  killtracker/core/killmails.py,sha256=ahppV9_MPi-0uPVo1brQflu9h5osK_uLzWwxLa7KveM,19734
@@ -20,6 +17,7 @@ killtracker/migrations/0001_squashed_all.py,sha256=KXwOcRayjGGGmleg7-aTcXeIi-92M
20
17
  killtracker/migrations/0002_fix_webhook_notes_field.py,sha256=c_Uymy3K_NSwuZzoKZ2ub-YRgT0VKIVe6bhhcrvfu5Q,494
21
18
  killtracker/migrations/0002_tracker_require_attackers_weapon_groups_and_more.py,sha256=zLBGMxzxha4cq9SX3yKuJA6y7yGQJ7B0TB3G9MtUfFI,1184
22
19
  killtracker/migrations/0003_add_state_clauses.py,sha256=J0AwRYrmiSAmkpui-p637k_aVa404ED2nvw_mVEsY7g,1663
20
+ killtracker/migrations/0003_optimize_tracker_form.py,sha256=Q_5ArFB1mxCShgoV3CwpSAgP7DM2xR9Vr_fo92MozH0,3623
23
21
  killtracker/migrations/0004_django4_update.py,sha256=fOgbzWr6gMZWYr9Q-Ozg9mHxeUxY1VhuqBvyXv60pAg,7542
24
22
  killtracker/migrations/0005_add_final_blow_clause_and_more.py,sha256=XvaXUChQkcARcP-o8xTQ1inbc5l9IiAmUXuWY1UqzGQ,15550
25
23
  killtracker/migrations/0006_evetypeplus.py,sha256=SpaxJKA5mwnELVtUPFmDcp5Ws1CVono5Fzn2ZuiTZfg,569
@@ -27,28 +25,28 @@ killtracker/migrations/0007_restructure_killsmails.py,sha256=_FAUJUM4mpRm8-C8Ogl
27
25
  killtracker/migrations/0008_copy_data_to_new_structure.py,sha256=Dgw1jxbei8g8vYYD0LzgH3FKgwRaakelwnFVZv_VXMU,2372
28
26
  killtracker/migrations/0009_remove_old_models.py,sha256=bDIz0hywpFKbHYhdXFXzra5D6mo9yCFg27MVFrTaUNY,1291
29
27
  killtracker/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
- killtracker/models/__init__.py,sha256=EK3rc2y-CqnHgCSPidzUxLnstPRA992oSurKG4-ZrnU,195
28
+ killtracker/models/__init__.py,sha256=WL6VD9MK7EsZot_RLPz0nX8WxJkp7RtQpw_mYpnVqu8,188
31
29
  killtracker/models/killmails.py,sha256=CCdrHkwUSoTOGqavG-TpMxDRleF9UEacOTui8v3-VT8,5181
32
- killtracker/models/trackers.py,sha256=odnoB2Vs5ctO8cQh5ST2pqV2yGqR03tg1n_3Mp8SK1c,34766
30
+ killtracker/models/trackers.py,sha256=2ShkcH8CPix0EszHg-jxZZaJSM5iZUfjPWBEPxIPoOw,28791
31
+ killtracker/models/webhooks.py,sha256=hh1mYE4pBU26YFawkv1z-j4uyX8aT25B0crOTsocSSY,8268
33
32
  killtracker/static/killtracker/killtracker_logo.png,sha256=3jc9zmYHqP60Np5piP5RfkX0_II-315DNjZ4FRGbqKc,74625
34
33
  killtracker/static/killtracker/zkb_icon.png,sha256=wuVfgyTbTs9qS4KGbDAH3Q9KVPgHqYV5eaVrjEmTjsE,328
35
- killtracker/templates/admin/killtracker/tracker/change_form.html,sha256=b-0N19QjQRa_T-lypJk_Bs7Ry8dj3In-xlj1l1IzGMo,519
36
34
  killtracker/templates/admin/killtracker/tracker/killmail_test.html,sha256=TI2ON8qf9pW4rX6G7pT990ZadkipwncQgGUC0FPcWQY,649
37
- killtracker/templates/admin/killtracker/tracker/toogle_npc_button.html,sha256=oCtzMJ_exQp23s-gloxVTE_HfGaDdl3eZFPGM6tku34,701
38
35
  killtracker/tests/__init__.py,sha256=CEt5qqp6ptDrx1lwuA6epZ5bzh1CwUJYXeMZqWK9jT0,278
39
- killtracker/tests/test_admin.py,sha256=C6iYFfRn5p78M0ZwgOriRfNJ2OVae1E3y_SNLg0P7-0,11439
36
+ killtracker/tests/test_admin.py,sha256=Yj3CQ2ZaOq0PnsP6X_cC6iZEJ9gPdna6Oyx84G2-Fmg,5642
40
37
  killtracker/tests/test_admin_2.py,sha256=rP0EscM9qUil_ZuXute3R8TQY2P5XSjmxHLbziCGcVw,1140
41
38
  killtracker/tests/test_exceptions.py,sha256=wheTwm0JOBqYVI-DJM4KK2usFAZT1Q-O52VMOnSAz8Y,326
42
- killtracker/tests/test_integration.py,sha256=zCzhXZro1BrJZPisr7lBfSmHUSg4lao1LUXW40wdea8,3155
43
- killtracker/tests/test_tasks.py,sha256=Mfh0eRN1-MizRjfqWJKgqJebzN1Xs2TlLRuPz5F9-CA,13929
39
+ killtracker/tests/test_integration.py,sha256=8ISULhhkvymFJ2DHgl3Xpr8CihXBuUpESI_4NB23Bz4,3155
40
+ killtracker/tests/test_tasks.py,sha256=ZDoCUBd-1kSOKrvSeTrlDaSGFmzHieT5ef0iBz6nr2I,13929
44
41
  killtracker/tests/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
42
  killtracker/tests/core/test_discord_messages_1.py,sha256=dXEj36ejOtf1t6E9gM1GgpOHd77NIxDVlNf4rOrPzxc,3054
46
43
  killtracker/tests/core/test_discord_messages_2.py,sha256=Dm1hzJOg3E_yfkGaU0dbvjucmm5pVjjclOmfO7NDapI,4743
47
44
  killtracker/tests/core/test_killmails.py,sha256=mZzeED2rd2vXHdV5NmPxC0Wt8qkvNz6OX3l046BnEi8,11647
48
45
  killtracker/tests/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
46
  killtracker/tests/models/test_killmails.py,sha256=qSEClhyrqmvsU2P1DiCUonfnl5NDUu50aReQIsCz9CQ,8233
50
- killtracker/tests/models/test_trackers_1.py,sha256=vrtr4JqhRpRLPXH7e8tGd5x9MtqUtExLYxpuel6l7-E,35140
51
- killtracker/tests/models/test_trackers_2.py,sha256=8-yfmeVLST7UuSMY0Fn43PEie14fRnmcA4F3L1Brm3Q,10517
47
+ killtracker/tests/models/test_trackers_1.py,sha256=KgpoEE7IrfRGe1UMTA7geFb-sOWkU8Ulo5iJrgA_LKw,35211
48
+ killtracker/tests/models/test_trackers_2.py,sha256=ry4Bb3ab3OTC7Df9hTow1UuKwXULpDrF_qhbGCV8uPo,5373
49
+ killtracker/tests/models/test_webhook.py,sha256=E4BgmQw9mI5ZenV6ncYHbBonlEeWvvdilAS8IKFkbjw,5246
52
50
  killtracker/tests/testdata/__init__.py,sha256=9aQhf8V-DseZMWjJ_QMXOba6CypoHFSVpYRZEUh-oFc,212
53
51
  killtracker/tests/testdata/create_eveuniverse.py,sha256=Ewr5OBiQwjK1kwDCRh3A3f0Z-CCPi8Gp8dpsPgVAU4A,966
54
52
  killtracker/tests/testdata/evealliances.json,sha256=i6udrtUnWQjn71Iw17WWz9Eb1fdGUNhI1UYLt0hZHog,307
@@ -61,7 +59,7 @@ killtracker/tests/testdata/killmails.json,sha256=HKfpXQJ_ikymBSewh4wWixYpLwC3kNB
61
59
  killtracker/tests/testdata/load_eveuniverse.py,sha256=FitVc12E_ob56ezK5Y1q07Kbyc7N8poHiCNaLRGU4Jg,388
62
60
  killtracker/tools/drop_tables_killtracker.sql,sha256=fJrGY23NKRunpYC3hI-klFkWub4sBuhfP8TaT__zjPg,1726
63
61
  killtracker/tools/generate_conditions_text.py,sha256=CiXBtaH2KY6JHpuxNlGmxLI6GsvxKKBX5xhXsSz3Rno,768
64
- aa_killtracker-0.12.0.dist-info/LICENSE,sha256=XZiwB_S_40_HhnvLg5xvtBb3g1oGjPrk0rpFwk8iInE,1070
65
- aa_killtracker-0.12.0.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
66
- aa_killtracker-0.12.0.dist-info/METADATA,sha256=jToVNcWEp7uWzgs1qv3bSKI08-7AdUMxk-oTtHH8Iws,12484
67
- aa_killtracker-0.12.0.dist-info/RECORD,,
62
+ aa_killtracker-0.12.1.dist-info/LICENSE,sha256=XZiwB_S_40_HhnvLg5xvtBb3g1oGjPrk0rpFwk8iInE,1070
63
+ aa_killtracker-0.12.1.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
64
+ aa_killtracker-0.12.1.dist-info/METADATA,sha256=wi0FJgujuWNYApqjRCeX37PbzxRh6MR8rVatiOXuc2c,12484
65
+ aa_killtracker-0.12.1.dist-info/RECORD,,
killtracker/__init__.py CHANGED
@@ -3,7 +3,7 @@
3
3
  # pylint: disable = invalid-name
4
4
  default_app_config = "killtracker.apps.KillmailsConfig"
5
5
 
6
- __version__ = "0.12.0"
6
+ __version__ = "0.12.1"
7
7
  __title__ = "Killtracker"
8
8
 
9
9
  APP_NAME = "aa-killtracker"
killtracker/admin.py CHANGED
@@ -4,27 +4,16 @@
4
4
 
5
5
 
6
6
  from django.contrib import admin
7
- from django.db.models import Q
8
- from django.db.models.functions import Lower
9
- from django.http import HttpResponse, HttpResponseRedirect
10
- from django.shortcuts import get_object_or_404, render
7
+ from django.http import HttpResponseRedirect
8
+ from django.shortcuts import render
11
9
  from django.utils.safestring import mark_safe
12
- from eveuniverse.models import EveGroup
13
10
 
14
11
  from allianceauth import NAME as site_header
15
- from allianceauth.eveonline.models import EveAllianceInfo, EveCorporationInfo
16
12
 
17
13
  from . import tasks
18
- from .constants import (
19
- SESSION_KEY_TOOGLE_NPC,
20
- SESSION_KEY_USES_NPC,
21
- EveCategoryId,
22
- EveDogmaEffectId,
23
- EveGroupId,
24
- )
25
14
  from .core.killmails import Killmail
26
15
  from .forms import TrackerAdminForm, TrackerAdminKillmailIdForm, field_nice_display
27
- from .models import EveKillmail, EveKillmailAttacker, EveTypePlus, Tracker, Webhook
16
+ from .models import EveKillmail, EveKillmailAttacker, Tracker, Webhook
28
17
 
29
18
 
30
19
  class EveKillmailAttackerInline(admin.TabularInline):
@@ -106,8 +95,11 @@ class TrackerAdmin(admin.ModelAdmin):
106
95
  )
107
96
  ordering = ("name",)
108
97
  actions = ["disable_tracker", "enable_tracker", "reset_color", "run_test_killmail"]
109
- autocomplete_fields = ["origin_solar_system"]
110
- filter_horizontal = (
98
+ autocomplete_fields = [
99
+ "origin_solar_system",
100
+ "require_regions",
101
+ "require_constellations",
102
+ "require_solar_systems",
111
103
  "exclude_attacker_alliances",
112
104
  "exclude_attacker_corporations",
113
105
  "require_attacker_alliances",
@@ -116,18 +108,17 @@ class TrackerAdmin(admin.ModelAdmin):
116
108
  "exclude_victim_alliances",
117
109
  "require_victim_corporations",
118
110
  "exclude_victim_corporations",
119
- "exclude_attacker_states",
120
- "require_attacker_states",
121
- "require_victim_states",
122
- "require_regions",
123
- "require_constellations",
124
- "require_solar_systems",
125
- "require_attackers_ship_groups",
126
111
  "require_attackers_ship_types",
112
+ "require_attackers_ship_groups",
127
113
  "require_attackers_weapon_groups",
128
114
  "require_attackers_weapon_types",
129
115
  "require_victim_ship_groups",
130
116
  "require_victim_ship_types",
117
+ ]
118
+ filter_horizontal = (
119
+ "exclude_attacker_states",
120
+ "require_attacker_states",
121
+ "require_victim_states",
131
122
  "ping_groups",
132
123
  )
133
124
  fieldsets = (
@@ -249,25 +240,6 @@ class TrackerAdmin(admin.ModelAdmin):
249
240
  "ping_groups",
250
241
  )
251
242
 
252
- def change_view(
253
- self, request, object_id, form_url="", extra_context=None
254
- ) -> HttpResponse:
255
- extra_context = extra_context or {}
256
- tracker = get_object_or_404(Tracker, pk=object_id)
257
- is_using_npc = (
258
- tracker.require_attackers_ship_types.filter(
259
- eve_group__eve_category_id=EveCategoryId.ENTITY
260
- ).exists()
261
- or tracker.require_attackers_ship_groups.filter(
262
- eve_category_id=EveCategoryId.ENTITY
263
- ).exists()
264
- )
265
- request.session[SESSION_KEY_USES_NPC] = is_using_npc
266
- extra_context["is_using_npc"] = is_using_npc
267
- return super().change_view(
268
- request, object_id, form_url, extra_context=extra_context
269
- )
270
-
271
243
  def _color(self, obj):
272
244
  html = (
273
245
  f'<input type="color" value="{obj.color}" disabled>' if obj.color else "-"
@@ -336,21 +308,21 @@ class TrackerAdmin(admin.ModelAdmin):
336
308
  def _append_field_to_clauses(self, clauses, field, text):
337
309
  clauses.append(f"{field_nice_display(field)} = {text}")
338
310
 
339
- @admin.display(description="Reset color for selected trackers")
311
+ @admin.action(description="Reset color for selected trackers")
340
312
  def reset_color(self, request, queryset):
341
313
  queryset.update(color="")
342
314
 
343
- @admin.display(description="Enable selected trackers")
315
+ @admin.action(description="Enable selected trackers")
344
316
  def enable_tracker(self, request, queryset):
345
317
  queryset.update(is_enabled=True)
346
318
  self.message_user(request, f"{queryset.count()} trackers enabled.")
347
319
 
348
- @admin.display(description="Disable selected trackers")
320
+ @admin.action(description="Disable selected trackers")
349
321
  def disable_tracker(self, request, queryset):
350
322
  queryset.update(is_enabled=False)
351
323
  self.message_user(request, f"{queryset.count()} trackers disabled.")
352
324
 
353
- @admin.display(description="Run test killmail with selected trackers")
325
+ @admin.action(description="Run test killmail with selected trackers")
354
326
  def run_test_killmail(self, request, queryset):
355
327
  if "apply" in request.POST:
356
328
  form = TrackerAdminKillmailIdForm(request.POST)
@@ -399,117 +371,3 @@ class TrackerAdmin(admin.ModelAdmin):
399
371
  "queryset": queryset.order_by("name"),
400
372
  },
401
373
  )
402
-
403
- def formfield_for_manytomany(self, db_field, request, **kwargs):
404
- """overriding this formfield to have sorted lists in the form"""
405
- show_npc_types = request.session.get(
406
- SESSION_KEY_USES_NPC, False
407
- ) or request.session.get(SESSION_KEY_TOOGLE_NPC, False)
408
-
409
- if db_field.name in {
410
- "exclude_attacker_alliances",
411
- "require_attacker_alliances",
412
- "require_victim_alliances",
413
- "exclude_victim_alliances",
414
- }:
415
- kwargs["queryset"] = EveAllianceInfo.objects.order_by(
416
- Lower("alliance_name")
417
- )
418
-
419
- elif db_field.name in {
420
- "exclude_attacker_corporations",
421
- "require_attacker_corporations",
422
- "require_victim_corporations",
423
- "exclude_victim_corporations",
424
- }:
425
- kwargs["queryset"] = EveCorporationInfo.objects.order_by(
426
- Lower("corporation_name")
427
- )
428
-
429
- elif db_field.name == "require_attackers_ship_groups":
430
- qs = EveGroup.objects.filter(
431
- eve_category_id__in=[
432
- EveCategoryId.STRUCTURE,
433
- EveCategoryId.SHIP,
434
- EveCategoryId.FIGHTER,
435
- ],
436
- published=True,
437
- )
438
- if show_npc_types:
439
- qs = (
440
- qs
441
- | EveGroup.objects.filter(
442
- eve_category_id=EveCategoryId.ENTITY
443
- ).filter(eve_types__mass__gt=1, eve_types__volume__gt=1)
444
- ).distinct()
445
- kwargs["queryset"] = qs.order_by(Lower("name"))
446
-
447
- elif db_field.name == "require_attackers_ship_types":
448
- qs = EveTypePlus.objects.filter(
449
- eve_group__eve_category_id__in=[
450
- EveCategoryId.STRUCTURE,
451
- EveCategoryId.SHIP,
452
- EveCategoryId.FIGHTER,
453
- ],
454
- published=True,
455
- )
456
- if show_npc_types:
457
- qs = qs | EveTypePlus.objects.filter(
458
- eve_group__eve_category_id=EveCategoryId.ENTITY,
459
- mass__gt=1,
460
- volume__gt=1,
461
- )
462
- kwargs["queryset"] = qs.order_by(Lower("name"))
463
-
464
- elif db_field.name == "require_attackers_weapon_groups":
465
- qs = EveGroup.objects.filter(
466
- eve_category_id__in=[EveCategoryId.MODULE],
467
- published=True,
468
- eve_types__dogma_effects__eve_dogma_effect_id=EveDogmaEffectId.HI_POWER,
469
- ).distinct()
470
- kwargs["queryset"] = qs.order_by(Lower("name"))
471
-
472
- elif db_field.name == "require_attackers_weapon_types":
473
- qs = EveTypePlus.objects.filter(
474
- eve_group__eve_category_id__in=[EveCategoryId.MODULE],
475
- published=True,
476
- dogma_effects__eve_dogma_effect_id=EveDogmaEffectId.HI_POWER,
477
- )
478
-
479
- kwargs["queryset"] = qs.order_by(Lower("name"))
480
-
481
- elif db_field.name == "require_victim_ship_groups":
482
- kwargs["queryset"] = EveGroup.objects.filter(
483
- (
484
- Q(
485
- eve_category_id__in=[
486
- EveCategoryId.STRUCTURE,
487
- EveCategoryId.SHIP,
488
- EveCategoryId.FIGHTER,
489
- EveCategoryId.DEPLOYABLE,
490
- ]
491
- )
492
- & Q(published=True)
493
- )
494
- | (Q(id=EveGroupId.MINING_DRONE) & Q(published=True))
495
- | Q(id=EveGroupId.ORBITAL_INFRASTRUCTURE)
496
- ).order_by(Lower("name"))
497
-
498
- elif db_field.name == "require_victim_ship_types":
499
- kwargs["queryset"] = EveTypePlus.objects.filter(
500
- (
501
- Q(
502
- eve_group__eve_category_id__in=[
503
- EveCategoryId.STRUCTURE,
504
- EveCategoryId.SHIP,
505
- EveCategoryId.FIGHTER,
506
- EveCategoryId.DEPLOYABLE,
507
- ]
508
- )
509
- & Q(published=True)
510
- )
511
- | (Q(eve_group_id=EveGroupId.MINING_DRONE) & Q(published=True))
512
- | Q(eve_group_id=EveGroupId.ORBITAL_INFRASTRUCTURE)
513
- ).order_by(Lower("name"))
514
-
515
- return super().formfield_for_manytomany(db_field, request, **kwargs)
killtracker/constants.py CHANGED
@@ -1,15 +1,7 @@
1
1
  """Global constants for killtracker."""
2
2
 
3
3
  from enum import IntEnum
4
-
5
- SESSION_KEY_TOOGLE_NPC = "killtracker_toogle_npc"
6
- SESSION_KEY_USES_NPC = "killtracker_uses_npc"
7
-
8
-
9
- class EveDogmaEffectId(IntEnum):
10
- """An Eve dogma effect ID."""
11
-
12
- HI_POWER = 12
4
+ from typing import Set
13
5
 
14
6
 
15
7
  class EveCategoryId(IntEnum):
@@ -31,3 +23,64 @@ class EveGroupId(IntEnum):
31
23
  ORBITAL_INFRASTRUCTURE = 1025
32
24
  PROJECTILE_WEAPON = 55
33
25
  TACTICAL_DESTROYER = 1305
26
+
27
+ BURST_PROJECTORS = 842
28
+ ENERGY_NEUTRALIZER = 71
29
+ ENERGY_NOSFERATU = 68
30
+ ENERGY_WEAPON = 53
31
+ HYBRID_WEAPON = 74
32
+ INTERDICTION_NULLIFIER = 4117
33
+ INTERDICTION_SPHERE_LAUNCHER = 589
34
+ MISSILE_LAUNCHER_BOMB = 862
35
+ MISSILE_LAUNCHER_CRUISE = 506
36
+ MISSILE_LAUNCHER_DEFENDER = 512
37
+ MISSILE_LAUNCHER_HEAVY = 510
38
+ MISSILE_LAUNCHER_HEAVY_ASSAULT = 771
39
+ MISSILE_LAUNCHER_LIGHT = 509
40
+ MISSILE_LAUNCHER_RAPID_HEAVY = 1245
41
+ MISSILE_LAUNCHER_RAPID_LIGHT = 511
42
+ MISSILE_LAUNCHER_RAPID_TORPEDO = 1673
43
+ MISSILE_LAUNCHER_ROCKET = 507
44
+ MISSILE_LAUNCHER_TORPEDO = 508
45
+ MISSILE_LAUNCHER_XL_CRUISE = 1674
46
+ MISSILE_LAUNCHER_XL_TORPEDO = 524
47
+ PRECURSOR_WEAPON = 1986
48
+ SMART_BOMB = 72
49
+ STRIP_MINER = 464
50
+ SUPER_WEAPON = 588
51
+ TITAN_PHENOMENA_GENERATOR = 1815
52
+ VORTON_PROJECTOR = 4060
53
+ WARP_DISRUPT_FIELD_GENERATOR = 899
54
+
55
+ @classmethod
56
+ def weapons(cls) -> Set["EveGroupId"]:
57
+ """Return group IDs for all weapons."""
58
+ return {
59
+ cls.BURST_PROJECTORS,
60
+ cls.ENERGY_NEUTRALIZER,
61
+ cls.ENERGY_NOSFERATU,
62
+ cls.ENERGY_WEAPON,
63
+ cls.HYBRID_WEAPON,
64
+ cls.INTERDICTION_NULLIFIER,
65
+ cls.INTERDICTION_SPHERE_LAUNCHER,
66
+ cls.MISSILE_LAUNCHER_BOMB,
67
+ cls.MISSILE_LAUNCHER_CRUISE,
68
+ cls.MISSILE_LAUNCHER_DEFENDER,
69
+ cls.MISSILE_LAUNCHER_HEAVY,
70
+ cls.MISSILE_LAUNCHER_HEAVY_ASSAULT,
71
+ cls.MISSILE_LAUNCHER_LIGHT,
72
+ cls.MISSILE_LAUNCHER_RAPID_HEAVY,
73
+ cls.MISSILE_LAUNCHER_RAPID_LIGHT,
74
+ cls.MISSILE_LAUNCHER_RAPID_TORPEDO,
75
+ cls.MISSILE_LAUNCHER_ROCKET,
76
+ cls.MISSILE_LAUNCHER_TORPEDO,
77
+ cls.MISSILE_LAUNCHER_XL_CRUISE,
78
+ cls.MISSILE_LAUNCHER_XL_TORPEDO,
79
+ cls.PRECURSOR_WEAPON,
80
+ cls.PROJECTILE_WEAPON,
81
+ cls.SMART_BOMB,
82
+ cls.SUPER_WEAPON,
83
+ cls.TITAN_PHENOMENA_GENERATOR,
84
+ cls.VORTON_PROJECTOR,
85
+ cls.WARP_DISRUPT_FIELD_GENERATOR,
86
+ }
killtracker/managers.py CHANGED
@@ -20,13 +20,6 @@ from .core.killmails import Killmail, _KillmailCharacter
20
20
  logger = LoggerAddTag(get_extension_logger(__name__), __title__)
21
21
 
22
22
 
23
- class EveTypePlusManager(models.Manager):
24
- def get_queryset(self):
25
- """Add join with EveGroup to default queryset."""
26
- qs = super().get_queryset()
27
- return qs.select_related("eve_group")
28
-
29
-
30
23
  class EveKillmailQuerySet(models.QuerySet):
31
24
  """Custom queryset for EveKillmail"""
32
25
 
@@ -0,0 +1,90 @@
1
+ # Generated by Django 4.0.10 on 2023-10-05 18:56
2
+
3
+ from django.db import migrations, models
4
+
5
+ import killtracker.models.trackers
6
+
7
+
8
+ class Migration(migrations.Migration):
9
+ dependencies = [
10
+ ("eveuniverse", "0010_alter_eveindustryactivityduration_eve_type_and_more"),
11
+ ("killtracker", "0002_tracker_require_attackers_weapon_groups_and_more"),
12
+ ]
13
+
14
+ operations = [
15
+ migrations.DeleteModel(
16
+ name="EveTypePlus",
17
+ ),
18
+ migrations.AlterField(
19
+ model_name="tracker",
20
+ name="require_attackers_ship_groups",
21
+ field=models.ManyToManyField(
22
+ blank=True,
23
+ default=None,
24
+ help_text="Only include killmails where at least one attacker is flying one of these ship groups. ",
25
+ limit_choices_to=killtracker.models.trackers._require_attackers_ship_groups_query,
26
+ related_name="+",
27
+ to="eveuniverse.evegroup",
28
+ ),
29
+ ),
30
+ migrations.AlterField(
31
+ model_name="tracker",
32
+ name="require_attackers_ship_types",
33
+ field=models.ManyToManyField(
34
+ blank=True,
35
+ default=None,
36
+ help_text="Only include killmails where at least one attacker is flying one of these ship types. ",
37
+ limit_choices_to=killtracker.models.trackers._require_attackers_ship_types_query,
38
+ related_name="+",
39
+ to="eveuniverse.evetype",
40
+ ),
41
+ ),
42
+ migrations.AlterField(
43
+ model_name="tracker",
44
+ name="require_attackers_weapon_groups",
45
+ field=models.ManyToManyField(
46
+ blank=True,
47
+ default=None,
48
+ help_text="Only include killmails where at least one attacker is using one of these weapon groups. ",
49
+ limit_choices_to=killtracker.models.trackers._require_attackers_weapon_groups_query,
50
+ related_name="+",
51
+ to="eveuniverse.evegroup",
52
+ ),
53
+ ),
54
+ migrations.AlterField(
55
+ model_name="tracker",
56
+ name="require_attackers_weapon_types",
57
+ field=models.ManyToManyField(
58
+ blank=True,
59
+ default=None,
60
+ help_text="Only include killmails where at least one attacker is using one of these weapon types. ",
61
+ limit_choices_to=killtracker.models.trackers._require_attackers_weapon_types_query,
62
+ related_name="+",
63
+ to="eveuniverse.evetype",
64
+ ),
65
+ ),
66
+ migrations.AlterField(
67
+ model_name="tracker",
68
+ name="require_victim_ship_groups",
69
+ field=models.ManyToManyField(
70
+ blank=True,
71
+ default=None,
72
+ help_text="Only include killmails where victim is flying one of these ship groups. ",
73
+ limit_choices_to=killtracker.models.trackers._require_victim_ship_groups_query,
74
+ related_name="+",
75
+ to="eveuniverse.evegroup",
76
+ ),
77
+ ),
78
+ migrations.AlterField(
79
+ model_name="tracker",
80
+ name="require_victim_ship_types",
81
+ field=models.ManyToManyField(
82
+ blank=True,
83
+ default=None,
84
+ help_text="Only include killmails where victim is flying one of these ship types. ",
85
+ limit_choices_to=killtracker.models.trackers._require_victim_ship_types_query,
86
+ related_name="+",
87
+ to="eveuniverse.evetype",
88
+ ),
89
+ ),
90
+ ]
@@ -1,4 +1,5 @@
1
1
  from .killmails import EveKillmail, EveKillmailAttacker
2
- from .trackers import EveTypePlus, Tracker, Webhook
2
+ from .trackers import Tracker
3
+ from .webhooks import Webhook
3
4
 
4
- __all__ = ["EveKillmail", "EveKillmailAttacker", "EveTypePlus", "Tracker", "Webhook"]
5
+ __all__ = ["EveKillmail", "EveKillmailAttacker", "Tracker", "Webhook"]