aa-intel-tool 0.0.1a5__py3-none-any.whl → 0.0.1a6__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/admin.py CHANGED
@@ -4,6 +4,11 @@ Django admin integration
4
4
 
5
5
  # Django
6
6
  from django.contrib import admin
7
+ from django.utils import html, safestring
8
+ from django.utils.translation import gettext_lazy as _
9
+
10
+ # Alliance Auth (External Libs)
11
+ from app_utils.urls import reverse_absolute
7
12
 
8
13
  # AA Intel Tool
9
14
  from aa_intel_tool.models import Scan
@@ -16,7 +21,8 @@ class BaseReadOnlyAdminMixin:
16
21
 
17
22
  actions = None # Removes the default delete action.
18
23
 
19
- def has_add_permission(self, request): # pylint: disable=unused-argument
24
+ @staticmethod
25
+ def has_add_permission(request): # pylint: disable=unused-argument
20
26
  """
21
27
  Has "add" permissions
22
28
 
@@ -28,9 +34,8 @@ class BaseReadOnlyAdminMixin:
28
34
 
29
35
  return False
30
36
 
31
- def has_change_permission(
32
- self, request, obj=None # pylint: disable=unused-argument
33
- ):
37
+ @staticmethod
38
+ def has_change_permission(request, obj=None): # pylint: disable=unused-argument
34
39
  """
35
40
  Has "change" permissions
36
41
 
@@ -44,9 +49,8 @@ class BaseReadOnlyAdminMixin:
44
49
 
45
50
  return False
46
51
 
47
- def has_delete_permission(
48
- self, request, obj=None # pylint: disable=unused-argument
49
- ):
52
+ @staticmethod
53
+ def has_delete_permission(request, obj=None): # pylint: disable=unused-argument
50
54
  """
51
55
  Has "delete" permissions
52
56
 
@@ -67,4 +71,38 @@ class ScanAdmin(BaseReadOnlyAdminMixin, admin.ModelAdmin):
67
71
  Scan Admin
68
72
  """
69
73
 
70
- list_display = ("hash", "created")
74
+ list_display = ("hash", "scan_type", "created")
75
+ fields = ("_scan_type", "_raw_data")
76
+
77
+ @admin.display(description=_("Scan type"))
78
+ def _scan_type(self, obj) -> str:
79
+ """
80
+ Add link to open the scan in a new browser tab
81
+
82
+ :param obj:
83
+ :type obj:
84
+ :return:
85
+ :rtype:
86
+ """
87
+ intel_type = obj.get_scan_type_display()
88
+ scan_link = reverse_absolute(
89
+ viewname="aa_intel_tool:intel_tool_scan", args=[obj.hash]
90
+ )
91
+ link_text = _("Open in a new browser tab")
92
+
93
+ return safestring.mark_safe(
94
+ f'{intel_type} (<a href="{scan_link}" target="_blank" rel="noreferer noopener">{link_text}</a>)'
95
+ )
96
+
97
+ @admin.display(description=_("RAW data"))
98
+ def _raw_data(self, obj) -> str:
99
+ """
100
+ Format the output properly
101
+
102
+ :param obj:
103
+ :type obj:
104
+ :return:
105
+ :rtype:
106
+ """
107
+
108
+ return html.format_html("<pre>{}</pre>", obj.raw_data)
@@ -0,0 +1,94 @@
1
+ # Generated by Django 4.0.10 on 2023-08-12 19:27
2
+
3
+ # Django
4
+ from django.db import migrations, models
5
+
6
+
7
+ class Migration(migrations.Migration):
8
+ dependencies = [
9
+ ("aa_intel_tool", "0004_alter_scandata_section"),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.AlterModelOptions(
14
+ name="scan",
15
+ options={
16
+ "default_permissions": (),
17
+ "verbose_name": "Scan",
18
+ "verbose_name_plural": "Scans",
19
+ },
20
+ ),
21
+ migrations.AlterModelOptions(
22
+ name="scandata",
23
+ options={
24
+ "default_permissions": (),
25
+ "verbose_name": "Scan data",
26
+ "verbose_name_plural": "Scan data",
27
+ },
28
+ ),
29
+ migrations.AlterField(
30
+ model_name="scan",
31
+ name="created",
32
+ field=models.DateTimeField(
33
+ auto_now_add=True, db_index=True, verbose_name="Creation date/time"
34
+ ),
35
+ ),
36
+ migrations.AlterField(
37
+ model_name="scan",
38
+ name="hash",
39
+ field=models.CharField(
40
+ editable=False,
41
+ max_length=30,
42
+ primary_key=True,
43
+ serialize=False,
44
+ unique=True,
45
+ verbose_name="Scan hash",
46
+ ),
47
+ ),
48
+ migrations.AlterField(
49
+ model_name="scan",
50
+ name="raw_data",
51
+ field=models.TextField(verbose_name="Scan RAW data"),
52
+ ),
53
+ migrations.AlterField(
54
+ model_name="scan",
55
+ name="scan_type",
56
+ field=models.CharField(
57
+ choices=[
58
+ ("invalid", "Invalid scan data"),
59
+ ("dscan", "D-Scan"),
60
+ ("fleetcomp", "Fleet Composition"),
61
+ ("chatlist", "Chat List"),
62
+ ],
63
+ default="invalid",
64
+ max_length=9,
65
+ verbose_name="Scan type",
66
+ ),
67
+ ),
68
+ migrations.AlterField(
69
+ model_name="scandata",
70
+ name="processed_data",
71
+ field=models.JSONField(default=dict, verbose_name="Processed scan data"),
72
+ ),
73
+ migrations.AlterField(
74
+ model_name="scandata",
75
+ name="section",
76
+ field=models.CharField(
77
+ choices=[
78
+ ("invalid", "Invalid scan data"),
79
+ ("pilotlist", "Pilot list"),
80
+ ("corporationlist", "Corporation list"),
81
+ ("alliancelist", "Alliance list"),
82
+ ("shiptypes", "Ship types"),
83
+ ("shiplist", "Ship list"),
84
+ ("shiplist_on_grid", "Ship list (on grid)"),
85
+ ("shiplist_off_grid", "Ship list (off grid)"),
86
+ ("structures_on_grid", "Structures (on grid)"),
87
+ ("deployables_on_grid", "Deployables (on grid)"),
88
+ ],
89
+ default="invalid",
90
+ max_length=19,
91
+ verbose_name="Scan section",
92
+ ),
93
+ ),
94
+ ]
aa_intel_tool/models.py CHANGED
@@ -28,22 +28,22 @@ class Scan(models.Model):
28
28
  editable=False,
29
29
  unique=True,
30
30
  max_length=30,
31
- verbose_name=_("The hash of the scan."),
31
+ verbose_name=_("Scan hash"),
32
32
  )
33
33
 
34
34
  created = models.DateTimeField(
35
35
  auto_now_add=True,
36
36
  db_index=True,
37
- verbose_name=_("Date and time the scan was created."),
37
+ verbose_name=_("Creation date/time"),
38
38
  )
39
39
 
40
- raw_data = models.TextField(verbose_name=_("The original scan data."))
40
+ raw_data = models.TextField(verbose_name=_("Scan RAW data"))
41
41
 
42
42
  scan_type = models.CharField(
43
43
  max_length=9,
44
44
  choices=Type.choices,
45
45
  default=Type.INVALID,
46
- verbose_name=_("The scan type."),
46
+ verbose_name=_("Scan type"),
47
47
  )
48
48
 
49
49
  class Meta: # pylint: disable=too-few-public-methods
@@ -52,8 +52,8 @@ class Scan(models.Model):
52
52
  """
53
53
 
54
54
  default_permissions = ()
55
- verbose_name = _("scan")
56
- verbose_name_plural = _("scans")
55
+ verbose_name = _("Scan")
56
+ verbose_name_plural = _("Scans")
57
57
 
58
58
  def __str__(self) -> str:
59
59
  return str(self.pk)
@@ -132,11 +132,11 @@ class ScanData(models.Model):
132
132
  max_length=19,
133
133
  choices=Section.choices,
134
134
  default=Section.INVALID,
135
- verbose_name=_("The scan section"),
135
+ verbose_name=_("Scan section"),
136
136
  )
137
137
 
138
138
  processed_data = models.JSONField(
139
- default=dict, verbose_name=_("The processed scan section data")
139
+ default=dict, verbose_name=_("Processed scan data")
140
140
  )
141
141
 
142
142
  class Meta: # pylint: disable=too-few-public-methods
@@ -145,5 +145,5 @@ class ScanData(models.Model):
145
145
  """
146
146
 
147
147
  default_permissions = ()
148
- verbose_name = _("scan data")
149
- verbose_name_plural = _("scan data")
148
+ verbose_name = _("Scan data")
149
+ verbose_name_plural = _("Scan data")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: aa-intel-tool
3
- Version: 0.0.1a5
3
+ Version: 0.0.1a6
4
4
  Summary: A simple parser for D-Scans and more for Alliance Auth
5
5
  Project-URL: Homepage, https://github.com/ppfeufer/aa-intel-tool
6
6
  Project-URL: Documentation, https://github.com/ppfeufer/aa-intel-tool/blob/master/README.md
@@ -1,12 +1,12 @@
1
1
  aa_intel_tool/__init__.py,sha256=u6zbS8cbdtUvtSfC1nRmGMXJHAnt4vTQmD6EAjhN_-U,174
2
- aa_intel_tool/admin.py,sha256=AgIfPdtRjZxii3BIMJ5GMXUFx2vhDIG9pxRCLGCGY30,1281
2
+ aa_intel_tool/admin.py,sha256=ytQfm5h58e8BQajvBbs4W2LrJFqx8elVq2pUbFyu4g4,2410
3
3
  aa_intel_tool/app_settings.py,sha256=qoTpu9DY4KQs-MXiwy_rUgJ8VD6n2hFkTRUx3M7zaoc,1412
4
4
  aa_intel_tool/apps.py,sha256=0LcoWtasZy27ywjmV-rC6yJSKUTic_yscf1yyXtMQKg,450
5
5
  aa_intel_tool/auth_hooks.py,sha256=hqLLe3I0nvvth1K1MNfItzp4OUiftwL7RyACDOgaTDI,1538
6
6
  aa_intel_tool/constants.py,sha256=j4KNu486WPq1DaR1HaUE9LZusw1EDeTgOz5bC64Yy7Y,1471
7
7
  aa_intel_tool/exceptions.py,sha256=1uEreioXqnWR8trgU5RSvj7CZ6GdkaWG-wI5G1pfvqs,693
8
8
  aa_intel_tool/form.py,sha256=zpIigT8Q0XxpS4_izUX7XXxMlcBIuKWWlZcpkNJn4LE,503
9
- aa_intel_tool/models.py,sha256=-hyQFhZSpG9VSezNv2cISCI5N2wEhf6yNWkSC4Rww3o,3753
9
+ aa_intel_tool/models.py,sha256=y5YaRwOFXnBP0lDWk-VYJlaitiTdKhG77qeNQVzVoGA,3693
10
10
  aa_intel_tool/providers.py,sha256=jIo3ErUfshRhwqALHV5I7toZ9p0PWn3ZRQFof_DXnh4,198
11
11
  aa_intel_tool/tasks.py,sha256=lkW1kDJzU8iOINp_tKEL5rG9DM5icvEkyYQUhGrW_hU,1088
12
12
  aa_intel_tool/urls.py,sha256=cncBfnPbJErN9w0qM83ZmtlnMJEolDHLQllU8bvxUa0,720
@@ -27,6 +27,7 @@ aa_intel_tool/migrations/0001_initial.py,sha256=XPiUlXjkRHqgb-_g91_XAzbKIdGW2Fhy
27
27
  aa_intel_tool/migrations/0002_remove_scan_processed_data_scandata.py,sha256=3L5eXOlGcRkXvQuPnEVTW9tOIx2ySjJ8SRNG6oVH_kA,2208
28
28
  aa_intel_tool/migrations/0003_alter_scandata_scan.py,sha256=AX_9prazV-ewLB9l6Eekjjc4N2o5hfcM7yQ8QV2yGwQ,718
29
29
  aa_intel_tool/migrations/0004_alter_scandata_section.py,sha256=tmOTfA3_gX0mn4C78yGg-Y9nyVYTuQFuoNudBBrdK9w,1150
30
+ aa_intel_tool/migrations/0005_alter_scan_options_alter_scandata_options_and_more.py,sha256=sCHsJPxPjHGkkGK_5oE6_DKkrqzup_PtH52poBKTa0o,3106
30
31
  aa_intel_tool/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
32
  aa_intel_tool/parser/__init__.py,sha256=BAFdCEaeC0cmv74ZuZGZJCgJOiliMVBpgdQI63ABJ2U,30
32
33
  aa_intel_tool/parser/general.py,sha256=1hZyS0cOgOK_U3yz8rOaOuoqZLzcXeF1fqeRfjMyKjI,1949
@@ -84,7 +85,7 @@ aa_intel_tool/tests/test-data/fleetcomp.txt,sha256=-ofpfNyKeeWjQIG02ED-FE3sQQhtZ
84
85
  aa_intel_tool/views/__init__.py,sha256=zf5e30BdJ772oDJkQnBfFIi5a7-HEJByUIkv0iz3Kr8,29
85
86
  aa_intel_tool/views/ajax.py,sha256=0X2TIU51jrO6sw7DBlZyjhcX-_HCdP9YErpwiFI4EaM,1030
86
87
  aa_intel_tool/views/general.py,sha256=lftJbTxVlW-cZFg8dQAvtFPP-LDBgORHj9ElXGSGBus,3649
87
- aa_intel_tool-0.0.1a5.dist-info/METADATA,sha256=Z0C2TFpT5dZfavxsNFEIPzHmx3Q7Kdn3VnPSjcIttWE,12098
88
- aa_intel_tool-0.0.1a5.dist-info/WHEEL,sha256=9QBuHhg6FNW7lppboF2vKVbCGTVzsFykgRQjjlajrhA,87
89
- aa_intel_tool-0.0.1a5.dist-info/licenses/LICENSE,sha256=UTib95uJWe2NQIG3TzU8-Hm-eaEZFqv9fqsjNT_xKWU,35151
90
- aa_intel_tool-0.0.1a5.dist-info/RECORD,,
88
+ aa_intel_tool-0.0.1a6.dist-info/METADATA,sha256=RbTU9FOtzLNXx1tSAUybDBzgyhFUymIeQk_idWpX-rw,12098
89
+ aa_intel_tool-0.0.1a6.dist-info/WHEEL,sha256=9QBuHhg6FNW7lppboF2vKVbCGTVzsFykgRQjjlajrhA,87
90
+ aa_intel_tool-0.0.1a6.dist-info/licenses/LICENSE,sha256=UTib95uJWe2NQIG3TzU8-Hm-eaEZFqv9fqsjNT_xKWU,35151
91
+ aa_intel_tool-0.0.1a6.dist-info/RECORD,,