aa-captrack 1.0.0__tar.gz

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 (49) hide show
  1. aa_captrack-1.0.0/LICENSE +21 -0
  2. aa_captrack-1.0.0/MANIFEST.in +6 -0
  3. aa_captrack-1.0.0/PKG-INFO +217 -0
  4. aa_captrack-1.0.0/README.md +183 -0
  5. aa_captrack-1.0.0/aa_captrack.egg-info/PKG-INFO +217 -0
  6. aa_captrack-1.0.0/aa_captrack.egg-info/SOURCES.txt +47 -0
  7. aa_captrack-1.0.0/aa_captrack.egg-info/dependency_links.txt +1 -0
  8. aa_captrack-1.0.0/aa_captrack.egg-info/requires.txt +3 -0
  9. aa_captrack-1.0.0/aa_captrack.egg-info/top_level.txt +2 -0
  10. aa_captrack-1.0.0/captrack/__init__.py +1 -0
  11. aa_captrack-1.0.0/captrack/admin.py +154 -0
  12. aa_captrack-1.0.0/captrack/apps.py +19 -0
  13. aa_captrack-1.0.0/captrack/constants.py +1 -0
  14. aa_captrack-1.0.0/captrack/helpers.py +18 -0
  15. aa_captrack-1.0.0/captrack/hooks.py +38 -0
  16. aa_captrack-1.0.0/captrack/migrations/0001_initial.py +55 -0
  17. aa_captrack-1.0.0/captrack/migrations/0002_alter_captracksettings_options.py +17 -0
  18. aa_captrack-1.0.0/captrack/migrations/0003_alter_captracksettings_options.py +17 -0
  19. aa_captrack-1.0.0/captrack/migrations/0004_update_basic_access_permission_name.py +28 -0
  20. aa_captrack-1.0.0/captrack/migrations/0005_capwatchlist_alert_snoozed_until_and_more.py +28 -0
  21. aa_captrack-1.0.0/captrack/migrations/__init__.py +0 -0
  22. aa_captrack-1.0.0/captrack/models.py +117 -0
  23. aa_captrack-1.0.0/captrack/services.py +205 -0
  24. aa_captrack-1.0.0/captrack/tasks.py +226 -0
  25. aa_captrack-1.0.0/captrack/templates/captrack/dashboard .bak +245 -0
  26. aa_captrack-1.0.0/captrack/templates/captrack/dashboard.html +263 -0
  27. aa_captrack-1.0.0/captrack/urls.py +8 -0
  28. aa_captrack-1.0.0/captrack/utils/__init__.py +1 -0
  29. aa_captrack-1.0.0/captrack/utils/discord.py +224 -0
  30. aa_captrack-1.0.0/captrack/views.py +146 -0
  31. aa_captrack-1.0.0/images/admin-settings.jpg +0 -0
  32. aa_captrack-1.0.0/images/admin.jpg +0 -0
  33. aa_captrack-1.0.0/images/collapsed.jpg +0 -0
  34. aa_captrack-1.0.0/images/discord-critical.jpg +0 -0
  35. aa_captrack-1.0.0/images/overview.jpg +0 -0
  36. aa_captrack-1.0.0/images/snoozed.jpg +0 -0
  37. aa_captrack-1.0.0/pyproject.toml +3 -0
  38. aa_captrack-1.0.0/setup.cfg +4 -0
  39. aa_captrack-1.0.0/setup.py +38 -0
  40. aa_captrack-1.0.0/testproj/__init__.py +0 -0
  41. aa_captrack-1.0.0/testproj/apps.py +28 -0
  42. aa_captrack-1.0.0/testproj/manage.py +22 -0
  43. aa_captrack-1.0.0/testproj/models-mock.py +96 -0
  44. aa_captrack-1.0.0/testproj/settings.py +130 -0
  45. aa_captrack-1.0.0/testproj/testproj/__init__.py +0 -0
  46. aa_captrack-1.0.0/testproj/testproj/asgi.py +16 -0
  47. aa_captrack-1.0.0/testproj/testproj/settings.py +115 -0
  48. aa_captrack-1.0.0/testproj/testproj/urls.py +22 -0
  49. aa_captrack-1.0.0/testproj/testproj/wsgi.py +16 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Stephen Swindlehurst
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,6 @@
1
+ include README.md
2
+ include LICENSE
3
+ recursive-include images *.jpg *.png *.gif
4
+ recursive-include captrack/templates *
5
+ recursive-include captrack/static *
6
+ recursive-include captrack/migrations *.py
@@ -0,0 +1,217 @@
1
+ Metadata-Version: 2.4
2
+ Name: aa-captrack
3
+ Version: 1.0.0
4
+ Summary: Capital ship movement early warning plugin for AllianceAuth
5
+ Home-page: https://github.com/SteveTh3Piirate/aa-captrack
6
+ Author: Stephen Swindlehurst
7
+ License: MIT
8
+ Project-URL: Source, https://github.com/SteveTh3Piirate/aa-captrack
9
+ Project-URL: Issues, https://github.com/SteveTh3Piirate/aa-captrack/issues
10
+ Classifier: Framework :: Django
11
+ Classifier: Framework :: Django :: 4.2
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3 :: Only
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Requires-Python: >=3.10
18
+ Description-Content-Type: text/markdown
19
+ License-File: LICENSE
20
+ Requires-Dist: allianceauth>=4.0
21
+ Requires-Dist: allianceauth-corptools>=2.15.2
22
+ Requires-Dist: requests>=2.0
23
+ Dynamic: author
24
+ Dynamic: classifier
25
+ Dynamic: description
26
+ Dynamic: description-content-type
27
+ Dynamic: home-page
28
+ Dynamic: license
29
+ Dynamic: license-file
30
+ Dynamic: project-url
31
+ Dynamic: requires-dist
32
+ Dynamic: requires-python
33
+ Dynamic: summary
34
+
35
+ # aa-captrack
36
+
37
+ AllianceAuth plugin for tracking and alerting on capital ship activity
38
+
39
+ Version: **v1.0.0**
40
+ Status: **Stable Baseline**
41
+
42
+ ## Overview
43
+
44
+ `aa-captrack` is an AllianceAuth plugin designed to monitor capital ship activity across characters and accounts, providing:
45
+
46
+ - Real-time dashboard visibility
47
+ - Threshold-based alerting
48
+ - Discord notifications
49
+ - Per-pilot snoozing
50
+ - Clear separation between tracked, alerting, and informational states
51
+
52
+ The plugin prioritises operational clarity and avoids unnecessary alert noise.
53
+
54
+ ## Capital Tracking Logic
55
+
56
+ | Ship Class | Behavior |
57
+ |-----------|---------|
58
+ | Titans | Always alerting |
59
+ | Supercarriers | Always alerting |
60
+ | Dreadnoughts | Alert when ≥ threshold (default: 5) under same main |
61
+ | Lancer Dreads | Alert when ≥ threshold |
62
+ | Carriers | Alert when ≥ threshold |
63
+ | Force Auxiliaries | Alert when ≥ threshold |
64
+ | Capital Industrials | Tracked only (no alerts) |
65
+
66
+ Threshold logic is applied consistently across:
67
+ - Dashboard
68
+ - Discord alerts
69
+ - Background tasks
70
+
71
+ ## Dashboard
72
+
73
+ - Collapsible cards with rotating chevrons
74
+ - Clear separation of:
75
+ - Critical
76
+ - Alerting
77
+ - Informational
78
+ - Optional display of unclassified ships
79
+ - Configurable refresh interval
80
+ - Optional remembered collapse state per user
81
+
82
+ ## Discord Integration
83
+
84
+ - Discord alerts include **only alerting ships**
85
+ - Separate webhooks for:
86
+ - Critical alerts
87
+ - Standard alerts
88
+ - Configurable ping behavior (roles / policy)
89
+ - Optional inclusion of:
90
+ - System
91
+ - Region
92
+ - Dashboard link
93
+
94
+ ## Snoozing
95
+
96
+ - Snoozing is **per pilot** (by design)
97
+ - Supports multiple durations (e.g. 1h / 6h / 24h)
98
+ - Snoozed pilots are excluded from:
99
+ - Dashboard alerts
100
+ - Discord notifications
101
+
102
+ ## Permissions
103
+
104
+ | Permission | Description |
105
+ |----------|-------------|
106
+ | `captrack.basic_access` | View dashboard |
107
+ | `captrack.admin_access` | Configure settings |
108
+
109
+ ## Installation
110
+
111
+ 1. Install the plugin:
112
+
113
+ pip install aa-captrack
114
+
115
+ 2. Add to `INSTALLED_APPS`:
116
+
117
+ 1. INSTALLED_APPS += ["captrack"]
118
+
119
+ 3. Run migrations:
120
+
121
+ python manage.py migrate captrack
122
+
123
+ 4. Collect static files:
124
+
125
+ 5. Restart AllianceAuth services.
126
+
127
+ ## Configuration
128
+
129
+ Configuration is managed via the AllianceAuth Admin Panel:
130
+
131
+ Admin → Captrack → CapTrack Settings
132
+
133
+ Only **one settings row** is expected.
134
+
135
+ ### Configurable Options Include
136
+
137
+ - Enabled / disabled state
138
+ - Tracked group IDs
139
+ - Industrial group IDs
140
+ - Alert thresholds per ship class
141
+ - Discord webhook URLs
142
+ - Discord ping policy
143
+ - Dashboard behavior options
144
+ - Snooze durations
145
+ - Display preferences
146
+
147
+ ## Data Model Notes
148
+
149
+ - Capital activity is grouped by **main character**
150
+ - Industrials are tracked but do not generate alerts
151
+ - Alert logic is centralized in:
152
+ - `services.py`
153
+ - `views.py`
154
+ - `tasks.py`
155
+
156
+ ## Compatibility
157
+
158
+ - AllianceAuth: 4.x
159
+ - Django: 4.2
160
+ - Database:
161
+ - MySQL / MariaDB (recommended)
162
+ - SQLite (development only)
163
+
164
+ ## Versioning Policy
165
+
166
+ - **v1.0.0**: Stable baseline
167
+ - Future versions will:
168
+ - Avoid destructive migrations
169
+ - Prefer additive schema changes
170
+ - Be tested against existing installs
171
+
172
+ ## Screenshots
173
+
174
+ > Screenshots are placeholders and may change as the UI evolves.
175
+
176
+ ### Dashboard — Overview
177
+
178
+ ![Dashboard Overview](https://raw.githubusercontent.com/SteveTh3Piirate/aa-captrack/refs/heads/master/images/overview.jpg)
179
+
180
+ Displays all tracked capital activity grouped by main character, with clear visual separation between critical, alerting, and informational states.
181
+
182
+ ---
183
+
184
+ ### Dashboard — Collapsed / Expanded States
185
+
186
+ ![Dashboard Collapsed](https://raw.githubusercontent.com/SteveTh3Piirate/aa-captrack/refs/heads/master/images/collapsed.jpg)
187
+
188
+ Cards can be collapsed to reduce noise. Collapse state can optionally be remembered per user.
189
+
190
+ ---
191
+
192
+ ### Dashboard — Snoozed Pilots
193
+
194
+ ![Dashboard Snoozed](https://raw.githubusercontent.com/SteveTh3Piirate/aa-captrack/refs/heads/master/images/snoozed.jpg)
195
+
196
+ Pilots can be snoozed individually to suppress alerts and notifications for a configurable duration.
197
+
198
+ ---
199
+
200
+ ### Admin — CapTrack Settings
201
+
202
+ ![Admin Settings](https://raw.githubusercontent.com/SteveTh3Piirate/aa-captrack/refs/heads/master/images/admin-settings.jpg)
203
+
204
+ All configuration is managed through a single settings entry in the AllianceAuth admin panel.
205
+
206
+ ---
207
+
208
+ ### Discord — Critical Alert Example
209
+
210
+ ![Discord Critical Alert](https://raw.githubusercontent.com/SteveTh3Piirate/aa-captrack/refs/heads/master/images/discord-critical.jpg)
211
+
212
+ Critical alerts (Titans, Supercarriers) are always sent immediately.
213
+
214
+
215
+ ## License
216
+
217
+ MIT License
@@ -0,0 +1,183 @@
1
+ # aa-captrack
2
+
3
+ AllianceAuth plugin for tracking and alerting on capital ship activity
4
+
5
+ Version: **v1.0.0**
6
+ Status: **Stable Baseline**
7
+
8
+ ## Overview
9
+
10
+ `aa-captrack` is an AllianceAuth plugin designed to monitor capital ship activity across characters and accounts, providing:
11
+
12
+ - Real-time dashboard visibility
13
+ - Threshold-based alerting
14
+ - Discord notifications
15
+ - Per-pilot snoozing
16
+ - Clear separation between tracked, alerting, and informational states
17
+
18
+ The plugin prioritises operational clarity and avoids unnecessary alert noise.
19
+
20
+ ## Capital Tracking Logic
21
+
22
+ | Ship Class | Behavior |
23
+ |-----------|---------|
24
+ | Titans | Always alerting |
25
+ | Supercarriers | Always alerting |
26
+ | Dreadnoughts | Alert when ≥ threshold (default: 5) under same main |
27
+ | Lancer Dreads | Alert when ≥ threshold |
28
+ | Carriers | Alert when ≥ threshold |
29
+ | Force Auxiliaries | Alert when ≥ threshold |
30
+ | Capital Industrials | Tracked only (no alerts) |
31
+
32
+ Threshold logic is applied consistently across:
33
+ - Dashboard
34
+ - Discord alerts
35
+ - Background tasks
36
+
37
+ ## Dashboard
38
+
39
+ - Collapsible cards with rotating chevrons
40
+ - Clear separation of:
41
+ - Critical
42
+ - Alerting
43
+ - Informational
44
+ - Optional display of unclassified ships
45
+ - Configurable refresh interval
46
+ - Optional remembered collapse state per user
47
+
48
+ ## Discord Integration
49
+
50
+ - Discord alerts include **only alerting ships**
51
+ - Separate webhooks for:
52
+ - Critical alerts
53
+ - Standard alerts
54
+ - Configurable ping behavior (roles / policy)
55
+ - Optional inclusion of:
56
+ - System
57
+ - Region
58
+ - Dashboard link
59
+
60
+ ## Snoozing
61
+
62
+ - Snoozing is **per pilot** (by design)
63
+ - Supports multiple durations (e.g. 1h / 6h / 24h)
64
+ - Snoozed pilots are excluded from:
65
+ - Dashboard alerts
66
+ - Discord notifications
67
+
68
+ ## Permissions
69
+
70
+ | Permission | Description |
71
+ |----------|-------------|
72
+ | `captrack.basic_access` | View dashboard |
73
+ | `captrack.admin_access` | Configure settings |
74
+
75
+ ## Installation
76
+
77
+ 1. Install the plugin:
78
+
79
+ pip install aa-captrack
80
+
81
+ 2. Add to `INSTALLED_APPS`:
82
+
83
+ 1. INSTALLED_APPS += ["captrack"]
84
+
85
+ 3. Run migrations:
86
+
87
+ python manage.py migrate captrack
88
+
89
+ 4. Collect static files:
90
+
91
+ 5. Restart AllianceAuth services.
92
+
93
+ ## Configuration
94
+
95
+ Configuration is managed via the AllianceAuth Admin Panel:
96
+
97
+ Admin → Captrack → CapTrack Settings
98
+
99
+ Only **one settings row** is expected.
100
+
101
+ ### Configurable Options Include
102
+
103
+ - Enabled / disabled state
104
+ - Tracked group IDs
105
+ - Industrial group IDs
106
+ - Alert thresholds per ship class
107
+ - Discord webhook URLs
108
+ - Discord ping policy
109
+ - Dashboard behavior options
110
+ - Snooze durations
111
+ - Display preferences
112
+
113
+ ## Data Model Notes
114
+
115
+ - Capital activity is grouped by **main character**
116
+ - Industrials are tracked but do not generate alerts
117
+ - Alert logic is centralized in:
118
+ - `services.py`
119
+ - `views.py`
120
+ - `tasks.py`
121
+
122
+ ## Compatibility
123
+
124
+ - AllianceAuth: 4.x
125
+ - Django: 4.2
126
+ - Database:
127
+ - MySQL / MariaDB (recommended)
128
+ - SQLite (development only)
129
+
130
+ ## Versioning Policy
131
+
132
+ - **v1.0.0**: Stable baseline
133
+ - Future versions will:
134
+ - Avoid destructive migrations
135
+ - Prefer additive schema changes
136
+ - Be tested against existing installs
137
+
138
+ ## Screenshots
139
+
140
+ > Screenshots are placeholders and may change as the UI evolves.
141
+
142
+ ### Dashboard — Overview
143
+
144
+ ![Dashboard Overview](https://raw.githubusercontent.com/SteveTh3Piirate/aa-captrack/refs/heads/master/images/overview.jpg)
145
+
146
+ Displays all tracked capital activity grouped by main character, with clear visual separation between critical, alerting, and informational states.
147
+
148
+ ---
149
+
150
+ ### Dashboard — Collapsed / Expanded States
151
+
152
+ ![Dashboard Collapsed](https://raw.githubusercontent.com/SteveTh3Piirate/aa-captrack/refs/heads/master/images/collapsed.jpg)
153
+
154
+ Cards can be collapsed to reduce noise. Collapse state can optionally be remembered per user.
155
+
156
+ ---
157
+
158
+ ### Dashboard — Snoozed Pilots
159
+
160
+ ![Dashboard Snoozed](https://raw.githubusercontent.com/SteveTh3Piirate/aa-captrack/refs/heads/master/images/snoozed.jpg)
161
+
162
+ Pilots can be snoozed individually to suppress alerts and notifications for a configurable duration.
163
+
164
+ ---
165
+
166
+ ### Admin — CapTrack Settings
167
+
168
+ ![Admin Settings](https://raw.githubusercontent.com/SteveTh3Piirate/aa-captrack/refs/heads/master/images/admin-settings.jpg)
169
+
170
+ All configuration is managed through a single settings entry in the AllianceAuth admin panel.
171
+
172
+ ---
173
+
174
+ ### Discord — Critical Alert Example
175
+
176
+ ![Discord Critical Alert](https://raw.githubusercontent.com/SteveTh3Piirate/aa-captrack/refs/heads/master/images/discord-critical.jpg)
177
+
178
+ Critical alerts (Titans, Supercarriers) are always sent immediately.
179
+
180
+
181
+ ## License
182
+
183
+ MIT License
@@ -0,0 +1,217 @@
1
+ Metadata-Version: 2.4
2
+ Name: aa-captrack
3
+ Version: 1.0.0
4
+ Summary: Capital ship movement early warning plugin for AllianceAuth
5
+ Home-page: https://github.com/SteveTh3Piirate/aa-captrack
6
+ Author: Stephen Swindlehurst
7
+ License: MIT
8
+ Project-URL: Source, https://github.com/SteveTh3Piirate/aa-captrack
9
+ Project-URL: Issues, https://github.com/SteveTh3Piirate/aa-captrack/issues
10
+ Classifier: Framework :: Django
11
+ Classifier: Framework :: Django :: 4.2
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3 :: Only
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Requires-Python: >=3.10
18
+ Description-Content-Type: text/markdown
19
+ License-File: LICENSE
20
+ Requires-Dist: allianceauth>=4.0
21
+ Requires-Dist: allianceauth-corptools>=2.15.2
22
+ Requires-Dist: requests>=2.0
23
+ Dynamic: author
24
+ Dynamic: classifier
25
+ Dynamic: description
26
+ Dynamic: description-content-type
27
+ Dynamic: home-page
28
+ Dynamic: license
29
+ Dynamic: license-file
30
+ Dynamic: project-url
31
+ Dynamic: requires-dist
32
+ Dynamic: requires-python
33
+ Dynamic: summary
34
+
35
+ # aa-captrack
36
+
37
+ AllianceAuth plugin for tracking and alerting on capital ship activity
38
+
39
+ Version: **v1.0.0**
40
+ Status: **Stable Baseline**
41
+
42
+ ## Overview
43
+
44
+ `aa-captrack` is an AllianceAuth plugin designed to monitor capital ship activity across characters and accounts, providing:
45
+
46
+ - Real-time dashboard visibility
47
+ - Threshold-based alerting
48
+ - Discord notifications
49
+ - Per-pilot snoozing
50
+ - Clear separation between tracked, alerting, and informational states
51
+
52
+ The plugin prioritises operational clarity and avoids unnecessary alert noise.
53
+
54
+ ## Capital Tracking Logic
55
+
56
+ | Ship Class | Behavior |
57
+ |-----------|---------|
58
+ | Titans | Always alerting |
59
+ | Supercarriers | Always alerting |
60
+ | Dreadnoughts | Alert when ≥ threshold (default: 5) under same main |
61
+ | Lancer Dreads | Alert when ≥ threshold |
62
+ | Carriers | Alert when ≥ threshold |
63
+ | Force Auxiliaries | Alert when ≥ threshold |
64
+ | Capital Industrials | Tracked only (no alerts) |
65
+
66
+ Threshold logic is applied consistently across:
67
+ - Dashboard
68
+ - Discord alerts
69
+ - Background tasks
70
+
71
+ ## Dashboard
72
+
73
+ - Collapsible cards with rotating chevrons
74
+ - Clear separation of:
75
+ - Critical
76
+ - Alerting
77
+ - Informational
78
+ - Optional display of unclassified ships
79
+ - Configurable refresh interval
80
+ - Optional remembered collapse state per user
81
+
82
+ ## Discord Integration
83
+
84
+ - Discord alerts include **only alerting ships**
85
+ - Separate webhooks for:
86
+ - Critical alerts
87
+ - Standard alerts
88
+ - Configurable ping behavior (roles / policy)
89
+ - Optional inclusion of:
90
+ - System
91
+ - Region
92
+ - Dashboard link
93
+
94
+ ## Snoozing
95
+
96
+ - Snoozing is **per pilot** (by design)
97
+ - Supports multiple durations (e.g. 1h / 6h / 24h)
98
+ - Snoozed pilots are excluded from:
99
+ - Dashboard alerts
100
+ - Discord notifications
101
+
102
+ ## Permissions
103
+
104
+ | Permission | Description |
105
+ |----------|-------------|
106
+ | `captrack.basic_access` | View dashboard |
107
+ | `captrack.admin_access` | Configure settings |
108
+
109
+ ## Installation
110
+
111
+ 1. Install the plugin:
112
+
113
+ pip install aa-captrack
114
+
115
+ 2. Add to `INSTALLED_APPS`:
116
+
117
+ 1. INSTALLED_APPS += ["captrack"]
118
+
119
+ 3. Run migrations:
120
+
121
+ python manage.py migrate captrack
122
+
123
+ 4. Collect static files:
124
+
125
+ 5. Restart AllianceAuth services.
126
+
127
+ ## Configuration
128
+
129
+ Configuration is managed via the AllianceAuth Admin Panel:
130
+
131
+ Admin → Captrack → CapTrack Settings
132
+
133
+ Only **one settings row** is expected.
134
+
135
+ ### Configurable Options Include
136
+
137
+ - Enabled / disabled state
138
+ - Tracked group IDs
139
+ - Industrial group IDs
140
+ - Alert thresholds per ship class
141
+ - Discord webhook URLs
142
+ - Discord ping policy
143
+ - Dashboard behavior options
144
+ - Snooze durations
145
+ - Display preferences
146
+
147
+ ## Data Model Notes
148
+
149
+ - Capital activity is grouped by **main character**
150
+ - Industrials are tracked but do not generate alerts
151
+ - Alert logic is centralized in:
152
+ - `services.py`
153
+ - `views.py`
154
+ - `tasks.py`
155
+
156
+ ## Compatibility
157
+
158
+ - AllianceAuth: 4.x
159
+ - Django: 4.2
160
+ - Database:
161
+ - MySQL / MariaDB (recommended)
162
+ - SQLite (development only)
163
+
164
+ ## Versioning Policy
165
+
166
+ - **v1.0.0**: Stable baseline
167
+ - Future versions will:
168
+ - Avoid destructive migrations
169
+ - Prefer additive schema changes
170
+ - Be tested against existing installs
171
+
172
+ ## Screenshots
173
+
174
+ > Screenshots are placeholders and may change as the UI evolves.
175
+
176
+ ### Dashboard — Overview
177
+
178
+ ![Dashboard Overview](https://raw.githubusercontent.com/SteveTh3Piirate/aa-captrack/refs/heads/master/images/overview.jpg)
179
+
180
+ Displays all tracked capital activity grouped by main character, with clear visual separation between critical, alerting, and informational states.
181
+
182
+ ---
183
+
184
+ ### Dashboard — Collapsed / Expanded States
185
+
186
+ ![Dashboard Collapsed](https://raw.githubusercontent.com/SteveTh3Piirate/aa-captrack/refs/heads/master/images/collapsed.jpg)
187
+
188
+ Cards can be collapsed to reduce noise. Collapse state can optionally be remembered per user.
189
+
190
+ ---
191
+
192
+ ### Dashboard — Snoozed Pilots
193
+
194
+ ![Dashboard Snoozed](https://raw.githubusercontent.com/SteveTh3Piirate/aa-captrack/refs/heads/master/images/snoozed.jpg)
195
+
196
+ Pilots can be snoozed individually to suppress alerts and notifications for a configurable duration.
197
+
198
+ ---
199
+
200
+ ### Admin — CapTrack Settings
201
+
202
+ ![Admin Settings](https://raw.githubusercontent.com/SteveTh3Piirate/aa-captrack/refs/heads/master/images/admin-settings.jpg)
203
+
204
+ All configuration is managed through a single settings entry in the AllianceAuth admin panel.
205
+
206
+ ---
207
+
208
+ ### Discord — Critical Alert Example
209
+
210
+ ![Discord Critical Alert](https://raw.githubusercontent.com/SteveTh3Piirate/aa-captrack/refs/heads/master/images/discord-critical.jpg)
211
+
212
+ Critical alerts (Titans, Supercarriers) are always sent immediately.
213
+
214
+
215
+ ## License
216
+
217
+ MIT License
@@ -0,0 +1,47 @@
1
+ LICENSE
2
+ MANIFEST.in
3
+ README.md
4
+ pyproject.toml
5
+ setup.py
6
+ aa_captrack.egg-info/PKG-INFO
7
+ aa_captrack.egg-info/SOURCES.txt
8
+ aa_captrack.egg-info/dependency_links.txt
9
+ aa_captrack.egg-info/requires.txt
10
+ aa_captrack.egg-info/top_level.txt
11
+ captrack/__init__.py
12
+ captrack/admin.py
13
+ captrack/apps.py
14
+ captrack/constants.py
15
+ captrack/helpers.py
16
+ captrack/hooks.py
17
+ captrack/models.py
18
+ captrack/services.py
19
+ captrack/tasks.py
20
+ captrack/urls.py
21
+ captrack/views.py
22
+ captrack/migrations/0001_initial.py
23
+ captrack/migrations/0002_alter_captracksettings_options.py
24
+ captrack/migrations/0003_alter_captracksettings_options.py
25
+ captrack/migrations/0004_update_basic_access_permission_name.py
26
+ captrack/migrations/0005_capwatchlist_alert_snoozed_until_and_more.py
27
+ captrack/migrations/__init__.py
28
+ captrack/templates/captrack/dashboard .bak
29
+ captrack/templates/captrack/dashboard.html
30
+ captrack/utils/__init__.py
31
+ captrack/utils/discord.py
32
+ images/admin-settings.jpg
33
+ images/admin.jpg
34
+ images/collapsed.jpg
35
+ images/discord-critical.jpg
36
+ images/overview.jpg
37
+ images/snoozed.jpg
38
+ testproj/__init__.py
39
+ testproj/apps.py
40
+ testproj/manage.py
41
+ testproj/models-mock.py
42
+ testproj/settings.py
43
+ testproj/testproj/__init__.py
44
+ testproj/testproj/asgi.py
45
+ testproj/testproj/settings.py
46
+ testproj/testproj/urls.py
47
+ testproj/testproj/wsgi.py
@@ -0,0 +1,3 @@
1
+ allianceauth>=4.0
2
+ allianceauth-corptools>=2.15.2
3
+ requests>=2.0
@@ -0,0 +1,2 @@
1
+ captrack
2
+ testproj
@@ -0,0 +1 @@
1
+ default_app_config = "captrack.apps.CapTrackConfig"