aa-fleetfinder 0.1.0a12__py3-none-any.whl → 3.0.0b2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. aa_fleetfinder-3.0.0b2.dist-info/METADATA +820 -0
  2. aa_fleetfinder-3.0.0b2.dist-info/RECORD +86 -0
  3. {aa_fleetfinder-0.1.0a12.dist-info → aa_fleetfinder-3.0.0b2.dist-info}/WHEEL +1 -2
  4. fleetfinder/__init__.py +19 -0
  5. fleetfinder/app_settings.py +20 -0
  6. fleetfinder/apps.py +22 -0
  7. fleetfinder/auth_hooks.py +58 -0
  8. fleetfinder/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
  9. fleetfinder/locale/cs_CZ/LC_MESSAGES/django.po +296 -0
  10. fleetfinder/locale/de/LC_MESSAGES/django.mo +0 -0
  11. fleetfinder/locale/de/LC_MESSAGES/django.po +306 -0
  12. fleetfinder/locale/django.pot +303 -0
  13. fleetfinder/locale/es/LC_MESSAGES/django.mo +0 -0
  14. fleetfinder/locale/es/LC_MESSAGES/django.po +319 -0
  15. fleetfinder/locale/fr_FR/LC_MESSAGES/django.mo +0 -0
  16. fleetfinder/locale/fr_FR/LC_MESSAGES/django.po +314 -0
  17. fleetfinder/locale/it_IT/LC_MESSAGES/django.mo +0 -0
  18. fleetfinder/locale/it_IT/LC_MESSAGES/django.po +294 -0
  19. fleetfinder/locale/ja/LC_MESSAGES/django.mo +0 -0
  20. fleetfinder/locale/ja/LC_MESSAGES/django.po +303 -0
  21. fleetfinder/locale/ko_KR/LC_MESSAGES/django.mo +0 -0
  22. fleetfinder/locale/ko_KR/LC_MESSAGES/django.po +337 -0
  23. fleetfinder/locale/nl_NL/LC_MESSAGES/django.mo +0 -0
  24. fleetfinder/locale/nl_NL/LC_MESSAGES/django.po +294 -0
  25. fleetfinder/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
  26. fleetfinder/locale/pl_PL/LC_MESSAGES/django.po +298 -0
  27. fleetfinder/locale/ru/LC_MESSAGES/django.mo +0 -0
  28. fleetfinder/locale/ru/LC_MESSAGES/django.po +319 -0
  29. fleetfinder/locale/sk/LC_MESSAGES/django.mo +0 -0
  30. fleetfinder/locale/sk/LC_MESSAGES/django.po +294 -0
  31. fleetfinder/locale/uk/LC_MESSAGES/django.mo +0 -0
  32. fleetfinder/locale/uk/LC_MESSAGES/django.po +310 -0
  33. fleetfinder/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  34. fleetfinder/locale/zh_Hans/LC_MESSAGES/django.po +319 -0
  35. fleetfinder/migrations/0001_initial.py +72 -0
  36. fleetfinder/migrations/0002_esi_error_handling_and_verbose_names.py +92 -0
  37. fleetfinder/migrations/0003_alter_fleet_fleet_commander_alter_fleet_groups_and_more.py +46 -0
  38. fleetfinder/migrations/__init__.py +0 -0
  39. fleetfinder/models.py +95 -0
  40. fleetfinder/providers.py +32 -0
  41. fleetfinder/static/fleetfinder/css/fleetfinder.css +31 -0
  42. fleetfinder/static/fleetfinder/css/fleetfinder.min.css +2 -0
  43. fleetfinder/static/fleetfinder/css/fleetfinder.min.css.map +1 -0
  44. fleetfinder/static/fleetfinder/js/fleetfinder-dashboard.js +86 -0
  45. fleetfinder/static/fleetfinder/js/fleetfinder-dashboard.min.js +2 -0
  46. fleetfinder/static/fleetfinder/js/fleetfinder-dashboard.min.js.map +1 -0
  47. fleetfinder/static/fleetfinder/js/fleetfinder-fleet-details.js +154 -0
  48. fleetfinder/static/fleetfinder/js/fleetfinder-fleet-details.min.js +2 -0
  49. fleetfinder/static/fleetfinder/js/fleetfinder-fleet-details.min.js.map +1 -0
  50. fleetfinder/static/fleetfinder/js/fleetfinder.js +23 -0
  51. fleetfinder/static/fleetfinder/js/fleetfinder.min.js +2 -0
  52. fleetfinder/static/fleetfinder/js/fleetfinder.min.js.map +1 -0
  53. fleetfinder/static/fleetfinder/libs/slim-select/2.6.0/css/slimselect.css +477 -0
  54. fleetfinder/static/fleetfinder/libs/slim-select/2.6.0/css/slimselect.min.css +2 -0
  55. fleetfinder/static/fleetfinder/libs/slim-select/2.6.0/css/slimselect.min.css.map +1 -0
  56. fleetfinder/static/fleetfinder/libs/slim-select/2.6.0/js/slimselect.min.js +1 -0
  57. fleetfinder/tasks.py +554 -0
  58. fleetfinder/templates/fleetfinder/base.html +43 -0
  59. fleetfinder/templates/fleetfinder/bundles/css/fleetfinder-css.html +3 -0
  60. fleetfinder/templates/fleetfinder/bundles/css/slim-select-css.html +3 -0
  61. fleetfinder/templates/fleetfinder/bundles/js/fleetfinder-js.html +9 -0
  62. fleetfinder/templates/fleetfinder/bundles/js/slim-select-js.html +3 -0
  63. fleetfinder/templates/fleetfinder/create-fleet.html +42 -0
  64. fleetfinder/templates/fleetfinder/dashboard.html +53 -0
  65. fleetfinder/templates/fleetfinder/edit-fleet.html +42 -0
  66. fleetfinder/templates/fleetfinder/fleet-details.html +102 -0
  67. fleetfinder/templates/fleetfinder/join-fleet.html +68 -0
  68. fleetfinder/templates/fleetfinder/modals/kick-fleet-member.html +46 -0
  69. fleetfinder/templates/fleetfinder/partials/body/form-fleet-details.html +50 -0
  70. fleetfinder/templates/fleetfinder/partials/footer/app-translation-footer.html +11 -0
  71. fleetfinder/templates/fleetfinder/partials/header/header-nav-left.html +9 -0
  72. fleetfinder/templates/fleetfinder/partials/header/header-nav-right.html +18 -0
  73. fleetfinder/templatetags/__init__.py +3 -0
  74. fleetfinder/templatetags/fleetfinder.py +33 -0
  75. fleetfinder/tests/__init__.py +41 -0
  76. fleetfinder/tests/test_access.py +74 -0
  77. fleetfinder/tests/test_auth_hooks.py +79 -0
  78. fleetfinder/tests/test_settings.py +38 -0
  79. fleetfinder/tests/test_tasks.py +1116 -0
  80. fleetfinder/tests/test_templatetags.py +65 -0
  81. fleetfinder/tests/test_user_agent.py +88 -0
  82. fleetfinder/tests/test_views.py +1184 -0
  83. fleetfinder/tests/utils.py +58 -0
  84. fleetfinder/urls.py +45 -0
  85. fleetfinder/views.py +631 -0
  86. aa_fleetfinder-0.1.0a12.dist-info/METADATA +0 -50
  87. aa_fleetfinder-0.1.0a12.dist-info/RECORD +0 -5
  88. aa_fleetfinder-0.1.0a12.dist-info/top_level.txt +0 -1
  89. {aa_fleetfinder-0.1.0a12.dist-info → aa_fleetfinder-3.0.0b2.dist-info/licenses}/LICENSE +0 -0
@@ -0,0 +1,319 @@
1
+ # SOME DESCRIPTIVE TITLE.
2
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
+ # This file is distributed under the same license as the PACKAGE package.
4
+ # Dehao Wu <wudehao2000@163.com>, 2024.
5
+ # Faer Yili <yilifaer@gmail.com>, 2024.
6
+ # SAM_FPS <sam_fps@163.com>, 2024.
7
+ # Peter Pfeufer <info@ppfeufer.de>, 2024, 2025.
8
+ msgid ""
9
+ msgstr ""
10
+ "Project-Id-Version: AA Fleet Finder 2.2.1\n"
11
+ "Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-fleetfinder/issues\n"
12
+ "POT-Creation-Date: 2025-10-22 23:57+0200\n"
13
+ "PO-Revision-Date: 2025-09-16 16:43+0000\n"
14
+ "Last-Translator: Peter Pfeufer <info@ppfeufer.de>\n"
15
+ "Language-Team: Chinese (Simplified Han script) <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-fleetfinder/zh_Hans/>\n"
16
+ "Language: zh_Hans\n"
17
+ "MIME-Version: 1.0\n"
18
+ "Content-Type: text/plain; charset=UTF-8\n"
19
+ "Content-Transfer-Encoding: 8bit\n"
20
+ "Plural-Forms: nplurals=1; plural=0;\n"
21
+ "X-Generator: Weblate 5.13.3\n"
22
+
23
+ #: fleetfinder/__init__.py:10 fleetfinder/models.py:24
24
+ #: fleetfinder/templates/fleetfinder/base.html:7
25
+ #: fleetfinder/templates/fleetfinder/base.html:11
26
+ #: fleetfinder/templates/fleetfinder/create-fleet.html:7
27
+ #: fleetfinder/templates/fleetfinder/edit-fleet.html:7
28
+ #: fleetfinder/templates/fleetfinder/fleet-details.html:7
29
+ #: fleetfinder/templates/fleetfinder/join-fleet.html:7
30
+ msgid "Fleet Finder"
31
+ msgstr "舰队搜寻器"
32
+
33
+ #: fleetfinder/models.py:28
34
+ msgid "Can access the Fleet Finder app"
35
+ msgstr "可以访问舰队搜寻器应用程序"
36
+
37
+ #: fleetfinder/models.py:44
38
+ msgid "FC is not in the registered fleet anymore or fleet is no longer available."
39
+ msgstr "舰队指挥官不在已注册的舰队中或舰队不再可用。"
40
+
41
+ #: fleetfinder/models.py:46
42
+ msgid "Registered fleet seems to be no longer available."
43
+ msgstr "已登记的舰队似乎不再可用。"
44
+
45
+ #: fleetfinder/models.py:47
46
+ msgid "FC is no longer the fleet boss."
47
+ msgstr "舰队指挥官不再是舰队统帅。"
48
+
49
+ #: fleetfinder/models.py:48
50
+ msgid "FC switched to another fleet."
51
+ msgstr "舰队指挥官转到了另一个舰队。"
52
+
53
+ #: fleetfinder/models.py:51 fleetfinder/templates/fleetfinder/dashboard.html:20
54
+ #: fleetfinder/templates/fleetfinder/partials/body/form-fleet-details.html:10
55
+ msgid "Fleet name"
56
+ msgstr "舰队名字"
57
+
58
+ #: fleetfinder/models.py:59 fleetfinder/templates/fleetfinder/dashboard.html:19
59
+ msgid "Fleet commander"
60
+ msgstr "舰队指挥官"
61
+
62
+ #: fleetfinder/models.py:61
63
+ msgid "Creation date and time"
64
+ msgstr "创建日期和时间"
65
+
66
+ #: fleetfinder/models.py:62
67
+ msgid "Fleet MOTD"
68
+ msgstr "舰队置顶信息"
69
+
70
+ #: fleetfinder/models.py:63
71
+ msgid "Free move"
72
+ msgstr "自由移动"
73
+
74
+ #: fleetfinder/models.py:69
75
+ #: fleetfinder/templates/fleetfinder/partials/body/form-fleet-details.html:32
76
+ msgid "Only selected groups will have access to the fleet. If no groups are selected the fleet will be available to all who have access to this module."
77
+ msgstr "只有选定的群组才能进入舰队。如果没有选择群组,舰队将对所有访问此模块的人可用。"
78
+
79
+ #: fleetfinder/models.py:73
80
+ msgid "Group restrictions"
81
+ msgstr "组别限制"
82
+
83
+ #: fleetfinder/models.py:81
84
+ msgid "Last ESI error"
85
+ msgstr "上一次ESI错误"
86
+
87
+ #: fleetfinder/models.py:85
88
+ msgid "Last ESI error time"
89
+ msgstr "最后一次ESI错误时间"
90
+
91
+ #: fleetfinder/models.py:88
92
+ msgid "ESI error count"
93
+ msgstr "ESI错误计数"
94
+
95
+ #: fleetfinder/templates/fleetfinder/create-fleet.html:6
96
+ #: fleetfinder/templates/fleetfinder/create-fleet.html:14
97
+ #: fleetfinder/templates/fleetfinder/partials/header/header-nav-right.html:4
98
+ msgid "Create fleet"
99
+ msgstr "创建舰队"
100
+
101
+ #: fleetfinder/templates/fleetfinder/dashboard.html:10
102
+ msgid "Fleets available to you"
103
+ msgstr "您有权访问的舰队"
104
+
105
+ #: fleetfinder/templates/fleetfinder/dashboard.html:21
106
+ msgid "Created at"
107
+ msgstr "创建于"
108
+
109
+ #: fleetfinder/templates/fleetfinder/dashboard.html:22
110
+ msgid "Join"
111
+ msgstr "加入"
112
+
113
+ #: fleetfinder/templates/fleetfinder/edit-fleet.html:6
114
+ #: fleetfinder/templates/fleetfinder/edit-fleet.html:14
115
+ msgid "Edit fleet"
116
+ msgstr "编辑舰队"
117
+
118
+ #: fleetfinder/templates/fleetfinder/fleet-details.html:7
119
+ msgid "Fleet details"
120
+ msgstr "舰队细节"
121
+
122
+ #: fleetfinder/templates/fleetfinder/fleet-details.html:20
123
+ msgid "Fleet composition"
124
+ msgstr "舰队组成"
125
+
126
+ #: fleetfinder/templates/fleetfinder/fleet-details.html:29
127
+ #: fleetfinder/templates/fleetfinder/fleet-details.html:55
128
+ msgid "Ship class"
129
+ msgstr "舰船等级"
130
+
131
+ #: fleetfinder/templates/fleetfinder/fleet-details.html:30
132
+ msgid "Count"
133
+ msgstr "计数"
134
+
135
+ #: fleetfinder/templates/fleetfinder/fleet-details.html:45
136
+ msgid "Fleet members"
137
+ msgstr "舰队成员"
138
+
139
+ #: fleetfinder/templates/fleetfinder/fleet-details.html:54
140
+ msgid "Name"
141
+ msgstr "名字"
142
+
143
+ #: fleetfinder/templates/fleetfinder/fleet-details.html:56
144
+ msgid "System"
145
+ msgstr "星系"
146
+
147
+ #: fleetfinder/templates/fleetfinder/fleet-details.html:57
148
+ msgid "Action"
149
+ msgstr "行动"
150
+
151
+ #: fleetfinder/templates/fleetfinder/fleet-details.html:80
152
+ #, fuzzy
153
+ #| msgid "Fleet members"
154
+ msgid "Fleet boss"
155
+ msgstr "舰队成员"
156
+
157
+ #: fleetfinder/templates/fleetfinder/fleet-details.html:81
158
+ #: fleetfinder/templates/fleetfinder/modals/kick-fleet-member.html:10
159
+ msgid "Kick member from fleet"
160
+ msgstr ""
161
+
162
+ #: fleetfinder/templates/fleetfinder/fleet-details.html:82
163
+ msgid "An unknown error occurred."
164
+ msgstr ""
165
+
166
+ #: fleetfinder/templates/fleetfinder/join-fleet.html:6 fleetfinder/views.py:195
167
+ msgid "Join fleet"
168
+ msgstr "加入舰队"
169
+
170
+ #: fleetfinder/templates/fleetfinder/join-fleet.html:14
171
+ msgid "Fleet invitation"
172
+ msgstr "舰队邀请"
173
+
174
+ #: fleetfinder/templates/fleetfinder/join-fleet.html:22
175
+ msgid "Please ensure you don't have any CSPA charges set on your characters, as this will prevent fleet invites from being sent."
176
+ msgstr ""
177
+
178
+ #: fleetfinder/templates/fleetfinder/join-fleet.html:24
179
+ #, fuzzy
180
+ #| msgid "Select the characters to invite"
181
+ msgid "You can select multiple characters to invite them all at once."
182
+ msgstr "选择要邀请的角色"
183
+
184
+ #: fleetfinder/templates/fleetfinder/join-fleet.html:28
185
+ msgid "The selected characters will receive a fleet invite in-game, which they can accept to join the fleet."
186
+ msgstr ""
187
+
188
+ #: fleetfinder/templates/fleetfinder/join-fleet.html:35
189
+ #, fuzzy
190
+ #| msgid "Select the characters to invite"
191
+ msgid "Please select the characters you want to invite:"
192
+ msgstr "选择要邀请的角色"
193
+
194
+ #: fleetfinder/templates/fleetfinder/join-fleet.html:45
195
+ msgid "Send fleet invites"
196
+ msgstr "发送舰队邀请"
197
+
198
+ #: fleetfinder/templates/fleetfinder/modals/kick-fleet-member.html:13
199
+ msgid "Close"
200
+ msgstr "关闭"
201
+
202
+ #: fleetfinder/templates/fleetfinder/modals/kick-fleet-member.html:18
203
+ msgid "Are you sure you want to kick this member from the fleet?"
204
+ msgstr ""
205
+
206
+ #: fleetfinder/templates/fleetfinder/modals/kick-fleet-member.html:27
207
+ msgid "Error"
208
+ msgstr ""
209
+
210
+ #: fleetfinder/templates/fleetfinder/modals/kick-fleet-member.html:36
211
+ msgid "Cancel"
212
+ msgstr "取消"
213
+
214
+ #: fleetfinder/templates/fleetfinder/modals/kick-fleet-member.html:41
215
+ msgid "Confirm"
216
+ msgstr "确认"
217
+
218
+ #: fleetfinder/templates/fleetfinder/partials/body/form-fleet-details.html:15
219
+ msgid "Select groups"
220
+ msgstr "选择群组"
221
+
222
+ #: fleetfinder/templates/fleetfinder/partials/body/form-fleet-details.html:46
223
+ msgid "Enable free move"
224
+ msgstr "允许自由行动"
225
+
226
+ #: fleetfinder/templates/fleetfinder/partials/body/form-fleet-details.html:49
227
+ msgid "Submit"
228
+ msgstr "提交"
229
+
230
+ #: fleetfinder/templates/fleetfinder/partials/footer/app-translation-footer.html:5
231
+ msgid "Do you want to help translate this app into your language or improve the existing translation?"
232
+ msgstr "您想帮助将此应用程序翻译成您的母语或改进现有的翻译吗?"
233
+
234
+ #: fleetfinder/templates/fleetfinder/partials/footer/app-translation-footer.html:8
235
+ msgid "Join our team of translators!"
236
+ msgstr "加入我们的翻译团队吧!"
237
+
238
+ #: fleetfinder/templates/fleetfinder/partials/header/header-nav-left.html:6
239
+ msgid "Available fleets"
240
+ msgstr "可用的舰队"
241
+
242
+ #: fleetfinder/views.py:206
243
+ msgid "View fleet details"
244
+ msgstr "查看船队详情"
245
+
246
+ #: fleetfinder/views.py:212
247
+ msgid "Edit fleet advert"
248
+ msgstr "编辑舰队宣传信息"
249
+
250
+ #: fleetfinder/views.py:257
251
+ #, fuzzy, python-brace-format
252
+ #| msgid "<h4>Error!</h4><p>ESI returned the following error: {esi_error_message}</p>"
253
+ msgid "<h4>Error!</h4><p>There was an error creating the fleet: {error_detail}</p>"
254
+ msgstr "<h4>错误!</h4><p>ESI返回如下错误:{esi_error_message}</p>"
255
+
256
+ #: fleetfinder/views.py:297 fleetfinder/views.py:493
257
+ msgid "<h4>Error!</h4><p>Fleet does not exist or is no longer available.</p>"
258
+ msgstr ""
259
+
260
+ #: fleetfinder/views.py:454
261
+ #, fuzzy, python-brace-format
262
+ #| msgid "<h4>Error!</h4><p>ESI returned the following error: {esi_error_message}</p>"
263
+ msgid "<h4>Error!</h4><p>ESI returned the following error: {esi_error}</p>"
264
+ msgstr "<h4>错误!</h4><p>ESI返回如下错误:{esi_error_message}</p>"
265
+
266
+ #: fleetfinder/views.py:465
267
+ #, python-brace-format
268
+ msgid "<h4>Error!</h4><p>There was an error creating the fleet: {ex}</p>"
269
+ msgstr ""
270
+
271
+ #: fleetfinder/views.py:530
272
+ #, python-brace-format
273
+ msgid "Fleet with ID {fleet_id} does not exist."
274
+ msgstr ""
275
+
276
+ #: fleetfinder/views.py:541
277
+ #, python-brace-format
278
+ msgid "Error retrieving fleet composition: {ex}"
279
+ msgstr ""
280
+
281
+ #: fleetfinder/views.py:577
282
+ msgid "Method not allowed"
283
+ msgstr ""
284
+
285
+ #: fleetfinder/views.py:588
286
+ msgid "Member ID required"
287
+ msgstr ""
288
+
289
+ #: fleetfinder/views.py:608
290
+ #, fuzzy
291
+ #| msgid "Fleet invitation"
292
+ msgid "Fleet not found"
293
+ msgstr "舰队邀请"
294
+
295
+ #: fleetfinder/views.py:613
296
+ msgid "Invalid request data"
297
+ msgstr ""
298
+
299
+ #: fleetfinder/views.py:619
300
+ msgid "Member not found in fleet"
301
+ msgstr ""
302
+
303
+ #: fleetfinder/views.py:628
304
+ #, python-brace-format
305
+ msgid "An ESI error occurred: {ex}"
306
+ msgstr ""
307
+
308
+ #, python-brace-format
309
+ #~ msgid "Fleet Finder v{__version__}"
310
+ #~ msgstr "舰队搜寻器v{__version__}"
311
+
312
+ #~ msgid "Details"
313
+ #~ msgstr "细节"
314
+
315
+ #~ msgid "Edit"
316
+ #~ msgstr "编辑"
317
+
318
+ #~ msgid "Toggle navigation"
319
+ #~ msgstr "切换导航"
@@ -0,0 +1,72 @@
1
+ # Generated by Django 4.0.8 on 2023-01-10 17:45
2
+
3
+ # Django
4
+ import django.db.models.deletion
5
+ from django.db import migrations, models
6
+
7
+
8
+ class Migration(migrations.Migration):
9
+ initial = True
10
+
11
+ dependencies = [
12
+ ("eveonline", "0017_alliance_and_corp_names_are_not_unique"),
13
+ ("groupmanagement", "0019_adding_restricted_to_groups"),
14
+ ]
15
+
16
+ operations = [
17
+ migrations.CreateModel(
18
+ name="General",
19
+ fields=[
20
+ (
21
+ "id",
22
+ models.AutoField(
23
+ auto_created=True,
24
+ primary_key=True,
25
+ serialize=False,
26
+ verbose_name="ID",
27
+ ),
28
+ ),
29
+ ],
30
+ options={
31
+ "verbose_name": "Fleet Finder",
32
+ "permissions": (
33
+ ("access_fleetfinder", "Can access the Fleet Finder app"),
34
+ ("manage_fleets", "Can manage fleets"),
35
+ ),
36
+ "managed": False,
37
+ "default_permissions": (),
38
+ },
39
+ ),
40
+ migrations.CreateModel(
41
+ name="Fleet",
42
+ fields=[
43
+ ("fleet_id", models.BigIntegerField(primary_key=True, serialize=False)),
44
+ ("name", models.CharField(default="", max_length=50)),
45
+ ("created_at", models.DateTimeField()),
46
+ ("motd", models.TextField(blank=True, default="")),
47
+ ("is_free_move", models.BooleanField()),
48
+ (
49
+ "fleet_commander",
50
+ models.ForeignKey(
51
+ blank=True,
52
+ default=None,
53
+ null=True,
54
+ on_delete=django.db.models.deletion.SET_NULL,
55
+ related_name="fleetfinder_fleet_commander",
56
+ to="eveonline.evecharacter",
57
+ ),
58
+ ),
59
+ (
60
+ "groups",
61
+ models.ManyToManyField(
62
+ help_text="Groups listed here will be able to join the fleet",
63
+ related_name="fleetfinder_restricted_groups",
64
+ to="groupmanagement.authgroup",
65
+ ),
66
+ ),
67
+ ],
68
+ options={
69
+ "default_permissions": (),
70
+ },
71
+ ),
72
+ ]
@@ -0,0 +1,92 @@
1
+ # Generated by Django 4.0.10 on 2023-06-28 13:38
2
+
3
+ # Django
4
+ import django.db.models.deletion
5
+ from django.db import migrations, models
6
+
7
+
8
+ class Migration(migrations.Migration):
9
+ dependencies = [
10
+ ("groupmanagement", "0019_adding_restricted_to_groups"),
11
+ ("eveonline", "0017_alliance_and_corp_names_are_not_unique"),
12
+ ("fleetfinder", "0001_initial"),
13
+ ]
14
+
15
+ operations = [
16
+ migrations.AddField(
17
+ model_name="fleet",
18
+ name="esi_error_count",
19
+ field=models.IntegerField(default=0, verbose_name="ESI error count"),
20
+ ),
21
+ migrations.AddField(
22
+ model_name="fleet",
23
+ name="last_esi_error",
24
+ field=models.CharField(
25
+ blank=True,
26
+ choices=[
27
+ (
28
+ "NOT_IN_FLEET",
29
+ "FC is not in the registered fleet anymore or fleet is no longer available.",
30
+ ),
31
+ ("NO_FLEET", "Registered fleet seems to be no longer available."),
32
+ ("NOT_FLEETBOSS", "FC is no longer the fleet boss."),
33
+ ("FC_CHANGED_FLEET", "FC switched to another fleet."),
34
+ ],
35
+ default="",
36
+ max_length=16,
37
+ verbose_name="Last ESI error",
38
+ ),
39
+ ),
40
+ migrations.AddField(
41
+ model_name="fleet",
42
+ name="last_esi_error_time",
43
+ field=models.DateTimeField(
44
+ blank=True, default=None, null=True, verbose_name="Last ESI error time"
45
+ ),
46
+ ),
47
+ migrations.AlterField(
48
+ model_name="fleet",
49
+ name="created_at",
50
+ field=models.DateTimeField(verbose_name="Creation date and time"),
51
+ ),
52
+ migrations.AlterField(
53
+ model_name="fleet",
54
+ name="fleet_commander",
55
+ field=models.ForeignKey(
56
+ blank=True,
57
+ default=None,
58
+ null=True,
59
+ on_delete=django.db.models.deletion.SET_NULL,
60
+ related_name="fleetfinder_fleet_commander",
61
+ to="eveonline.evecharacter",
62
+ verbose_name="Fleet Commander",
63
+ ),
64
+ ),
65
+ migrations.AlterField(
66
+ model_name="fleet",
67
+ name="groups",
68
+ field=models.ManyToManyField(
69
+ help_text="Groups listed here will be able to join the fleet",
70
+ related_name="fleetfinder_restricted_groups",
71
+ to="groupmanagement.authgroup",
72
+ verbose_name="Group restrictions",
73
+ ),
74
+ ),
75
+ migrations.AlterField(
76
+ model_name="fleet",
77
+ name="is_free_move",
78
+ field=models.BooleanField(verbose_name="Free move"),
79
+ ),
80
+ migrations.AlterField(
81
+ model_name="fleet",
82
+ name="motd",
83
+ field=models.TextField(blank=True, default="", verbose_name="Fleet MOTD"),
84
+ ),
85
+ migrations.AlterField(
86
+ model_name="fleet",
87
+ name="name",
88
+ field=models.CharField(
89
+ default="", max_length=50, verbose_name="Fleet Name"
90
+ ),
91
+ ),
92
+ ]
@@ -0,0 +1,46 @@
1
+ # Generated by Django 4.0.10 on 2023-09-22 18:31
2
+
3
+ # Django
4
+ import django.db.models.deletion
5
+ from django.db import migrations, models
6
+
7
+
8
+ class Migration(migrations.Migration):
9
+ dependencies = [
10
+ ("eveonline", "0017_alliance_and_corp_names_are_not_unique"),
11
+ ("groupmanagement", "0019_adding_restricted_to_groups"),
12
+ ("fleetfinder", "0002_esi_error_handling_and_verbose_names"),
13
+ ]
14
+
15
+ operations = [
16
+ migrations.AlterField(
17
+ model_name="fleet",
18
+ name="fleet_commander",
19
+ field=models.ForeignKey(
20
+ blank=True,
21
+ default=None,
22
+ null=True,
23
+ on_delete=django.db.models.deletion.SET_NULL,
24
+ related_name="fleetfinder_fleet_commander",
25
+ to="eveonline.evecharacter",
26
+ verbose_name="Fleet commander",
27
+ ),
28
+ ),
29
+ migrations.AlterField(
30
+ model_name="fleet",
31
+ name="groups",
32
+ field=models.ManyToManyField(
33
+ help_text="Only selected groups will have access to the fleet. If no groups are selected the fleet will be available to all who have access to this module.",
34
+ related_name="fleetfinder_restricted_groups",
35
+ to="groupmanagement.authgroup",
36
+ verbose_name="Group restrictions",
37
+ ),
38
+ ),
39
+ migrations.AlterField(
40
+ model_name="fleet",
41
+ name="name",
42
+ field=models.CharField(
43
+ default="", max_length=50, verbose_name="Fleet name"
44
+ ),
45
+ ),
46
+ ]
File without changes
fleetfinder/models.py ADDED
@@ -0,0 +1,95 @@
1
+ """
2
+ Models
3
+ """
4
+
5
+ # Django
6
+ from django.db import models
7
+ from django.utils.translation import gettext_lazy as _
8
+
9
+ # Alliance Auth
10
+ from allianceauth.eveonline.models import EveCharacter
11
+ from allianceauth.groupmanagement.models import AuthGroup
12
+
13
+
14
+ class General(models.Model):
15
+ """
16
+ General module permissions
17
+ """
18
+
19
+ class Meta: # pylint: disable=too-few-public-methods
20
+ """
21
+ Meta Definitions
22
+ """
23
+
24
+ verbose_name = _("Fleet Finder")
25
+ managed = False
26
+ default_permissions = ()
27
+ permissions = (
28
+ ("access_fleetfinder", _("Can access the Fleet Finder app")),
29
+ ("manage_fleets", "Can manage fleets"),
30
+ )
31
+
32
+
33
+ class Fleet(models.Model):
34
+ """
35
+ Fleet Model
36
+ """
37
+
38
+ class EsiError(models.TextChoices):
39
+ """
40
+ Choices for SRP Status
41
+ """
42
+
43
+ NOT_IN_FLEET = "NOT_IN_FLEET", _(
44
+ "FC is not in the registered fleet anymore or fleet is no longer available."
45
+ )
46
+ NO_FLEET = "NO_FLEET", _("Registered fleet seems to be no longer available.")
47
+ NOT_FLEETBOSS = "NOT_FLEETBOSS", _("FC is no longer the fleet boss.")
48
+ FC_CHANGED_FLEET = "FC_CHANGED_FLEET", _("FC switched to another fleet.")
49
+
50
+ fleet_id = models.BigIntegerField(primary_key=True)
51
+ name = models.CharField(max_length=50, default="", verbose_name=_("Fleet name"))
52
+ fleet_commander = models.ForeignKey(
53
+ to=EveCharacter,
54
+ on_delete=models.SET_NULL,
55
+ related_name="fleetfinder_fleet_commander",
56
+ default=None,
57
+ null=True,
58
+ blank=True,
59
+ verbose_name=_("Fleet commander"),
60
+ )
61
+ created_at = models.DateTimeField(verbose_name=_("Creation date and time"))
62
+ motd = models.TextField(blank=True, default="", verbose_name=_("Fleet MOTD"))
63
+ is_free_move = models.BooleanField(verbose_name=_("Free move"))
64
+
65
+ groups = models.ManyToManyField(
66
+ to=AuthGroup,
67
+ related_name="fleetfinder_restricted_groups",
68
+ help_text=_(
69
+ "Only selected groups will have access to the fleet. "
70
+ "If no groups are selected the fleet will be available to all who have "
71
+ "access to this module."
72
+ ),
73
+ verbose_name=_("Group restrictions"),
74
+ )
75
+
76
+ last_esi_error = models.CharField(
77
+ max_length=16,
78
+ blank=True,
79
+ default="",
80
+ choices=EsiError.choices,
81
+ verbose_name=_("Last ESI error"),
82
+ )
83
+
84
+ last_esi_error_time = models.DateTimeField(
85
+ null=True, blank=True, default=None, verbose_name=_("Last ESI error time")
86
+ )
87
+
88
+ esi_error_count = models.IntegerField(default=0, verbose_name=_("ESI error count"))
89
+
90
+ class Meta: # pylint: disable=too-few-public-methods
91
+ """
92
+ Meta Definitions
93
+ """
94
+
95
+ default_permissions = ()
@@ -0,0 +1,32 @@
1
+ """
2
+ Providers
3
+ """
4
+
5
+ # Alliance Auth
6
+ from esi.openapi_clients import ESIClientProvider
7
+
8
+ # AA Fleet Finder
9
+ from fleetfinder import (
10
+ __app_name_verbose__,
11
+ __esi_compatibility_date__,
12
+ __github_url__,
13
+ __version__,
14
+ )
15
+
16
+ # ESI client
17
+ esi = ESIClientProvider(
18
+ # Use the latest compatibility date, see https://esi.evetech.net/meta/compatibility-dates
19
+ compatibility_date=__esi_compatibility_date__,
20
+ # User agent for the ESI client
21
+ ua_appname=__app_name_verbose__,
22
+ ua_version=__version__,
23
+ ua_url=__github_url__,
24
+ operations=[
25
+ "DeleteFleetsFleetIdMembersMemberId",
26
+ "GetCharactersCharacterIdFleet",
27
+ "GetFleetsFleetIdMembers",
28
+ "PostFleetsFleetIdMembers",
29
+ "PostUniverseNames",
30
+ "PutFleetsFleetId",
31
+ ],
32
+ )
@@ -0,0 +1,31 @@
1
+ @media all {
2
+ .aa-fleetfinder .eve-character-portrait,
3
+ .aa-fleetfinder .eve-type-icon {
4
+ margin-right: 0.5rem;
5
+ }
6
+
7
+ .aa-fleetfinder .table-vertical-middle td {
8
+ vertical-align: middle;
9
+ }
10
+
11
+ /* Slim Select
12
+ --------------------------------------------------------------------------------- */
13
+
14
+ .aa-fleetfinder .ss-main {
15
+ appearance: none;
16
+ background-clip: padding-box;
17
+ border: var(--bs-border-width) solid var(--bs-border-color);
18
+ border-radius: var(--bs-border-radius);
19
+ color: var(--bs-body-color);
20
+ font-size: 1rem;
21
+ font-weight: 400;
22
+ line-height: 1.5;
23
+ min-height: calc(1.5em + .75rem + 2px);
24
+ padding: .375rem .75rem;
25
+ transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
26
+ width: 100%;
27
+ }
28
+
29
+ /* END Slim Select
30
+ --------------------------------------------------------------------------------- */
31
+ }