aa-structures 2.17.0__tar.gz → 3.0.1__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 (235) hide show
  1. {aa_structures-2.17.0 → aa_structures-3.0.1}/PKG-INFO +6 -5
  2. {aa_structures-2.17.0 → aa_structures-3.0.1}/pyproject.toml +3 -3
  3. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/__init__.py +1 -1
  4. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/core/serializers.py +27 -24
  5. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/helpers.py +5 -0
  6. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/models/structures_1.py +8 -3
  7. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/js/public.js +9 -3
  8. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/js/structures.js +5 -1
  9. aa_structures-3.0.1/structures/templates/structures/base.html +50 -0
  10. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/templates/structures/modals/poco_details.html +15 -15
  11. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/templates/structures/modals/starbase_detail.html +19 -20
  12. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/templates/structures/modals/structure_details.html +19 -21
  13. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/templates/structures/partials/menu.html +2 -2
  14. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/templates/structures/public.html +28 -34
  15. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/templates/structures/statistics.html +11 -19
  16. aa_structures-3.0.1/structures/templates/structures/structures.html +197 -0
  17. aa_structures-3.0.1/structures/templates/structures/templatetags/list_asset.html +11 -0
  18. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/templates/structures/templatetags/list_item.html +3 -3
  19. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/templates/structures/templatetags/list_tax_item.html +3 -3
  20. aa_structures-3.0.1/structures/templates/structures/templatetags/list_title.html +1 -0
  21. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/models/test_structures.py +2 -2
  22. aa_structures-2.17.0/structures/templates/structures/base.html +0 -13
  23. aa_structures-2.17.0/structures/templates/structures/structures.html +0 -207
  24. aa_structures-2.17.0/structures/templates/structures/templatetags/list_asset.html +0 -9
  25. aa_structures-2.17.0/structures/templates/structures/templatetags/list_title.html +0 -1
  26. {aa_structures-2.17.0 → aa_structures-3.0.1}/LICENSE +0 -0
  27. {aa_structures-2.17.0 → aa_structures-3.0.1}/README.md +0 -0
  28. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/admin.py +0 -0
  29. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/app_settings.py +0 -0
  30. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/apps.py +0 -0
  31. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/auth_hooks.py +0 -0
  32. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/constants.py +0 -0
  33. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/core/__init__.py +0 -0
  34. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/core/notification_embeds/__init__.py +0 -0
  35. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/core/notification_embeds/billing_embeds.py +0 -0
  36. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/core/notification_embeds/corporate_embeds.py +0 -0
  37. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/core/notification_embeds/helpers.py +0 -0
  38. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/core/notification_embeds/main.py +0 -0
  39. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/core/notification_embeds/moonmining_embeds.py +0 -0
  40. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/core/notification_embeds/orbital_embeds.py +0 -0
  41. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/core/notification_embeds/skyhook_embeds.py +0 -0
  42. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/core/notification_embeds/sov_embeds.py +0 -0
  43. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/core/notification_embeds/structures_embeds.py +0 -0
  44. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/core/notification_embeds/tower_embeds.py +0 -0
  45. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/core/notification_embeds/war_embeds.py +0 -0
  46. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/core/notification_timers.py +0 -0
  47. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/core/notification_types.py +0 -0
  48. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/core/sovereignty.py +0 -0
  49. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/core/starbases.py +0 -0
  50. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/forms.py +0 -0
  51. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/locale/de/LC_MESSAGES/django.mo +0 -0
  52. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/locale/de/LC_MESSAGES/django.po +0 -0
  53. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/locale/django.pot +0 -0
  54. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/locale/en/LC_MESSAGES/django.mo +0 -0
  55. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/locale/en/LC_MESSAGES/django.po +0 -0
  56. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/locale/es/LC_MESSAGES/django.mo +0 -0
  57. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/locale/es/LC_MESSAGES/django.po +0 -0
  58. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/locale/fr_FR/LC_MESSAGES/django.mo +0 -0
  59. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/locale/fr_FR/LC_MESSAGES/django.po +0 -0
  60. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/locale/it_IT/LC_MESSAGES/django.mo +0 -0
  61. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/locale/it_IT/LC_MESSAGES/django.po +0 -0
  62. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/locale/ja/LC_MESSAGES/django.mo +0 -0
  63. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/locale/ja/LC_MESSAGES/django.po +0 -0
  64. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/locale/ko_KR/LC_MESSAGES/django.mo +0 -0
  65. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/locale/ko_KR/LC_MESSAGES/django.po +0 -0
  66. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/locale/ru/LC_MESSAGES/django.mo +0 -0
  67. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/locale/ru/LC_MESSAGES/django.po +0 -0
  68. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/locale/uk/LC_MESSAGES/django.mo +0 -0
  69. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/locale/uk/LC_MESSAGES/django.po +0 -0
  70. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  71. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/locale/zh_Hans/LC_MESSAGES/django.po +0 -0
  72. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/management/commands/__init__.py +0 -0
  73. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/management/commands/structures_load_eve.py +0 -0
  74. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/management/commands/structures_preload_eveuniverse.py +0 -0
  75. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/management/commands/structures_update_poco_planets.py +0 -0
  76. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/managers.py +0 -0
  77. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/migrations/0001_initial_new.py +0 -0
  78. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/migrations/0002_remove_eveuniverse_relation_names.py +0 -0
  79. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/migrations/0003_add_localization_and_unique_key.py +0 -0
  80. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/migrations/0004_improve_localization.py +0 -0
  81. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/migrations/0005_add_notification_types.py +0 -0
  82. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/migrations/0006_add_ownercharacter_disabled.py +0 -0
  83. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/migrations/0007_add_notificationtypes_skyhook_metenox.py +0 -0
  84. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/migrations/0008_add_notificationtypes_skyhook_metenox.py +0 -0
  85. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/migrations/0009_add_project_goal_notifications.py +0 -0
  86. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/migrations/__init__.py +0 -0
  87. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/models/__init__.py +0 -0
  88. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/models/eveuniverse.py +0 -0
  89. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/models/notifications.py +0 -0
  90. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/models/owners.py +0 -0
  91. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/models/structures_2.py +0 -0
  92. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/providers.py +0 -0
  93. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/css/global.css +0 -0
  94. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/css/main.css +0 -0
  95. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/css/public.css +0 -0
  96. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/css/statistics.css +0 -0
  97. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/css/structures.css +0 -0
  98. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/bars-rotate-fade-black-36.svg +0 -0
  99. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/bars-rotate-fade-white-36.svg +0 -0
  100. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/eve_symbol_128.png +0 -0
  101. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/0h.png +0 -0
  102. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/0l.png +0 -0
  103. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/0m.png +0 -0
  104. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/0r.png +0 -0
  105. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/0s.png +0 -0
  106. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/1h.png +0 -0
  107. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/1l.png +0 -0
  108. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/1m.png +0 -0
  109. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/1r.png +0 -0
  110. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/2h.png +0 -0
  111. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/2l.png +0 -0
  112. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/2m.png +0 -0
  113. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/2r.png +0 -0
  114. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/3h.png +0 -0
  115. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/3l.png +0 -0
  116. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/3m.png +0 -0
  117. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/3r.png +0 -0
  118. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/4h.png +0 -0
  119. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/4l.png +0 -0
  120. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/4m.png +0 -0
  121. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/4s.png +0 -0
  122. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/5h.png +0 -0
  123. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/5l.png +0 -0
  124. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/5m.png +0 -0
  125. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/5s.png +0 -0
  126. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/6h.png +0 -0
  127. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/6l.png +0 -0
  128. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/6m.png +0 -0
  129. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/7h.png +0 -0
  130. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/7l.png +0 -0
  131. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/7m.png +0 -0
  132. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/8h.png +0 -0
  133. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/8l.png +0 -0
  134. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/8m.png +0 -0
  135. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/blank.png +0 -0
  136. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/circle.png +0 -0
  137. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/dustwheel.png +0 -0
  138. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/h.png +0 -0
  139. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/l.png +0 -0
  140. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/m.png +0 -0
  141. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/noship.png +0 -0
  142. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/r.png +0 -0
  143. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/tyrannis.png +0 -0
  144. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/tyrannis_blue.png +0 -0
  145. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/tyrannis_darkred.png +0 -0
  146. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/tyrannis_default.png +0 -0
  147. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/panel/tyrannis_revelations.png +0 -0
  148. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/img/structures_logo.png +0 -0
  149. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/js/global.js +0 -0
  150. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/js/statistics.js +0 -0
  151. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/vendor/datatables/plugins/dataTables.rowGroup.min.js +0 -0
  152. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/vendor/datatables/plugins/datetime.js +0 -0
  153. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/vendor/datatables/plugins/filterDropDown.min.js +0 -0
  154. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/vendor/datatables/plugins/rowGroup.bootstrap.min.css +0 -0
  155. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/static/structures/vendor/datatables/plugins/rowGroup.dataTables.min.css +0 -0
  156. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tasks.py +0 -0
  157. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/templates/structures/modals/fitting_assets.html +0 -0
  158. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/templates/structures/modals/fitting_gfx.html +0 -0
  159. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/templates/structures/modals/tab_general_detail.html +0 -0
  160. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/templates/structures/modals/tab_services_detail.html +0 -0
  161. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/templates/structures/partials/public/poco_list.html +0 -0
  162. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/templates/structures/partials/statistics/structure_summary.html +0 -0
  163. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/templates/structures/partials/structures/active_tags.html +0 -0
  164. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/templates/structures/partials/structures/jump_gate_list.html +0 -0
  165. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/templates/structures/partials/structures/orbital_list.html +0 -0
  166. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/templates/structures/partials/structures/starbase_list.html +0 -0
  167. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/templates/structures/partials/structures/structure_list.html +0 -0
  168. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/templates/structures/templatetags/detail_title.html +0 -0
  169. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/templatetags/__init__.py +0 -0
  170. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/templatetags/structures.py +0 -0
  171. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/__init__.py +0 -0
  172. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/core/__init__.py +0 -0
  173. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/core/notification_embeds/__init__.py +0 -0
  174. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/core/notification_embeds/test_helpers.py +0 -0
  175. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/core/notification_embeds/test_main.py +0 -0
  176. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/core/test_notification_structuretimers.py +0 -0
  177. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/core/test_notification_types.py +0 -0
  178. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/core/test_notifications_timers.py +0 -0
  179. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/core/test_serializers.py +0 -0
  180. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/core/test_sovereignty.py +0 -0
  181. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/core/test_starbases.py +0 -0
  182. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/integration/__init__.py +0 -0
  183. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/integration/test_tasks.py +0 -0
  184. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/integration/test_views.py +0 -0
  185. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/models/__init__.py +0 -0
  186. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/models/test_eveuniverse.py +0 -0
  187. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/models/test_notifications_1.py +0 -0
  188. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/models/test_notifications_2.py +0 -0
  189. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/models/test_notifications_3.py +0 -0
  190. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/models/test_notifications_discord.py +0 -0
  191. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/models/test_owners_1.py +0 -0
  192. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/models/test_owners_2.py +0 -0
  193. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/models/test_owners_3.py +0 -0
  194. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/models/test_owners_4.py +0 -0
  195. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/models/test_owners_5.py +0 -0
  196. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/models/test_owners_6.py +0 -0
  197. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/test_admin.py +0 -0
  198. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/test_helpers.py +0 -0
  199. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/test_managers_1.py +0 -0
  200. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/test_managers_2.py +0 -0
  201. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/test_tasks.py +0 -0
  202. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/testdata/__init__.py +0 -0
  203. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/testdata/constants.py +0 -0
  204. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/testdata/create_eveuniverse.py +0 -0
  205. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/testdata/entities.json +0 -0
  206. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/testdata/esi_data.json +0 -0
  207. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/testdata/eveuniverse.json +0 -0
  208. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/testdata/factories.py +0 -0
  209. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/testdata/generate_notifications.py +0 -0
  210. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/testdata/generate_notifications_2.py +0 -0
  211. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/testdata/generate_structures.py +0 -0
  212. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/testdata/helpers.py +0 -0
  213. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/testdata/load_eveuniverse.py +0 -0
  214. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/testdata/tasks_loadtest.py +0 -0
  215. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/testdata/test_generate_structures.py +0 -0
  216. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/views/__init__.py +0 -0
  217. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/views/test_public.py +0 -0
  218. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/views/test_service_status.py +0 -0
  219. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/views/test_statistics.py +0 -0
  220. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/views/test_structures.py +0 -0
  221. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/tests/views/utils.py +0 -0
  222. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/urls.py +0 -0
  223. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/views/__init__.py +0 -0
  224. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/views/common.py +0 -0
  225. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/views/public.py +0 -0
  226. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/views/statistics.py +0 -0
  227. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/views/status.py +0 -0
  228. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/views/structures.py +0 -0
  229. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/webhooks/__init__.py +0 -0
  230. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/webhooks/core.py +0 -0
  231. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/webhooks/managers.py +0 -0
  232. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/webhooks/models.py +0 -0
  233. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/webhooks/tests/__init__.py +0 -0
  234. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/webhooks/tests/test_core.py +0 -0
  235. {aa_structures-2.17.0 → aa_structures-3.0.1}/structures/webhooks/tests/test_utils.py +0 -0
@@ -1,13 +1,12 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: aa-structures
3
- Version: 2.17.0
3
+ Version: 3.0.1
4
4
  Summary: App for managing Eve Online structures with Alliance Auth.
5
5
  Author-email: Erik Kalkoken <kalkoken87@gmail.com>
6
6
  Requires-Python: >=3.8
7
7
  Description-Content-Type: text/markdown
8
8
  Classifier: Environment :: Web Environment
9
9
  Classifier: Framework :: Django
10
- Classifier: Framework :: Django :: 4.0
11
10
  Classifier: Framework :: Django :: 4.2
12
11
  Classifier: Intended Audience :: End Users/Desktop
13
12
  Classifier: License :: OSI Approved :: MIT License
@@ -17,10 +16,12 @@ Classifier: Programming Language :: Python :: 3.8
17
16
  Classifier: Programming Language :: Python :: 3.9
18
17
  Classifier: Programming Language :: Python :: 3.10
19
18
  Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
20
  Classifier: Topic :: Internet :: WWW/HTTP
21
21
  Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
22
- Requires-Dist: allianceauth-app-utils>=1.22
23
- Requires-Dist: allianceauth>=3.0
22
+ License-File: LICENSE
23
+ Requires-Dist: allianceauth-app-utils>=1.26
24
+ Requires-Dist: allianceauth>=4,<5
24
25
  Requires-Dist: dhooks-lite>=1.0
25
26
  Requires-Dist: django-eveuniverse>=1.5.2
26
27
  Requires-Dist: django-multiselectfield
@@ -12,7 +12,6 @@ authors = [{ name = "Erik Kalkoken", email = "kalkoken87@gmail.com" }]
12
12
  classifiers = [
13
13
  "Environment :: Web Environment",
14
14
  "Framework :: Django",
15
- "Framework :: Django :: 4.0",
16
15
  "Framework :: Django :: 4.2",
17
16
  "Intended Audience :: End Users/Desktop",
18
17
  "License :: OSI Approved :: MIT License",
@@ -22,12 +21,13 @@ classifiers = [
22
21
  "Programming Language :: Python :: 3.9",
23
22
  "Programming Language :: Python :: 3.10",
24
23
  "Programming Language :: Python :: 3.11",
24
+ "Programming Language :: Python :: 3.12",
25
25
  "Topic :: Internet :: WWW/HTTP",
26
26
  "Topic :: Internet :: WWW/HTTP :: Dynamic Content",
27
27
  ]
28
28
  dependencies = [
29
- "allianceauth-app-utils>=1.22",
30
- "allianceauth>=3.0",
29
+ "allianceauth-app-utils>=1.26",
30
+ "allianceauth>=4,<5",
31
31
  "dhooks-lite>=1.0",
32
32
  "django-eveuniverse>=1.5.2",
33
33
  "django-multiselectfield",
@@ -3,5 +3,5 @@
3
3
  # pylint: disable = invalid-name
4
4
  default_app_config = "structures.apps.StructuresConfig"
5
5
 
6
- __version__ = "2.17.0"
6
+ __version__ = "3.0.1"
7
7
  __title__ = "Structures"
@@ -20,8 +20,7 @@ from eveuniverse.models import EvePlanet
20
20
  from allianceauth.eveonline.models import EveCharacter
21
21
  from app_utils.datetime import DATETIME_FORMAT, timeuntil_str
22
22
  from app_utils.views import (
23
- BootstrapStyle,
24
- bootstrap_label_html,
23
+ BootstrapStyleBS5,
25
24
  format_html_lazy,
26
25
  link_html,
27
26
  no_wrap_html,
@@ -31,7 +30,7 @@ from app_utils.views import (
31
30
 
32
31
  from structures.app_settings import STRUCTURES_SHOW_FUEL_EXPIRES_RELATIVE
33
32
  from structures.constants import EveGroupId
34
- from structures.helpers import floating_icon_with_text_html
33
+ from structures.helpers import bootstrap5_label_html, floating_icon_with_text_html
35
34
  from structures.models import EveSpaceType, PocoDetails, Structure
36
35
 
37
36
 
@@ -176,24 +175,24 @@ class _AbstractStructureListSerializer(ABC):
176
175
 
177
176
  elif structure.is_low_power:
178
177
  fuel_expires_display = format_html_lazy(
179
- bootstrap_label_html(
180
- structure.get_power_mode_display(), BootstrapStyle.WARNING
178
+ bootstrap5_label_html(
179
+ structure.get_power_mode_display(), BootstrapStyleBS5.WARNING
181
180
  )
182
181
  )
183
182
  fuel_expires_timestamp = None
184
183
 
185
184
  elif structure.is_abandoned:
186
185
  fuel_expires_display = format_html_lazy(
187
- bootstrap_label_html(
188
- structure.get_power_mode_display(), BootstrapStyle.DANGER
186
+ bootstrap5_label_html(
187
+ structure.get_power_mode_display(), BootstrapStyleBS5.DANGER
189
188
  )
190
189
  )
191
190
  fuel_expires_timestamp = None
192
191
 
193
192
  elif structure.is_maybe_abandoned:
194
193
  fuel_expires_display = format_html_lazy(
195
- bootstrap_label_html(
196
- structure.get_power_mode_display(), BootstrapStyle.WARNING
194
+ bootstrap5_label_html(
195
+ structure.get_power_mode_display(), BootstrapStyleBS5.WARNING
197
196
  )
198
197
  )
199
198
  fuel_expires_timestamp = None
@@ -226,21 +225,21 @@ class _AbstractStructureListSerializer(ABC):
226
225
 
227
226
  if structure.is_full_power:
228
227
  last_online_at_display = format_html_lazy(
229
- bootstrap_label_html(
230
- structure.get_power_mode_display(), BootstrapStyle.SUCCESS
228
+ bootstrap5_label_html(
229
+ structure.get_power_mode_display(), BootstrapStyleBS5.SUCCESS
231
230
  )
232
231
  )
233
232
  elif structure.is_maybe_abandoned:
234
233
  last_online_at_display = format_html_lazy(
235
- bootstrap_label_html(
236
- structure.get_power_mode_display(), BootstrapStyle.WARNING
234
+ bootstrap5_label_html(
235
+ structure.get_power_mode_display(), BootstrapStyleBS5.WARNING
237
236
  )
238
237
  )
239
238
 
240
239
  elif structure.is_abandoned:
241
240
  last_online_at_display = format_html_lazy(
242
- bootstrap_label_html(
243
- structure.get_power_mode_display(), BootstrapStyle.DANGER
241
+ bootstrap5_label_html(
242
+ structure.get_power_mode_display(), BootstrapStyleBS5.DANGER
244
243
  )
245
244
  )
246
245
 
@@ -307,11 +306,15 @@ class _AbstractStructureListSerializer(ABC):
307
306
 
308
307
  elif structure.has_core is False:
309
308
  has_core = False
310
- core_status = bootstrap_label_html("Core missing", BootstrapStyle.DANGER)
309
+ core_status = bootstrap5_label_html(
310
+ "Core missing", BootstrapStyleBS5.DANGER
311
+ )
311
312
 
312
313
  else:
313
314
  has_core = None
314
- core_status = bootstrap_label_html("No core status", BootstrapStyle.WARNING)
315
+ core_status = bootstrap5_label_html(
316
+ "No core status", BootstrapStyleBS5.WARNING
317
+ )
315
318
 
316
319
  return core_status, has_core
317
320
 
@@ -330,8 +333,8 @@ class _AbstractStructureListSerializer(ABC):
330
333
  ):
331
334
  ajax_url = reverse("structures:structure_details", args=[structure.id])
332
335
  row["details"] = format_html(
333
- '<button type="button" class="btn btn-default" '
334
- 'data-toggle="modal" data-target="#modalUpwellDetails" '
336
+ '<button type="button" class="btn btn-secondary" '
337
+ 'data-bs-toggle="modal" data-bs-target="#modalUpwellDetails" '
335
338
  f"data-ajax_url={ajax_url} "
336
339
  f'title="{_("Show fitting")}">'
337
340
  '<i class="fas fa-search"></i></button>'
@@ -340,8 +343,8 @@ class _AbstractStructureListSerializer(ABC):
340
343
  elif structure.is_poco:
341
344
  ajax_url = reverse("structures:poco_details", args=[structure.id])
342
345
  row["details"] = format_html(
343
- '<button type="button" class="btn btn-default" '
344
- 'data-toggle="modal" data-target="#modalPocoDetails" '
346
+ '<button type="button" class="btn btn-secondary" '
347
+ 'data-bs-toggle="modal" data-bs-target="#modalPocoDetails" '
345
348
  f"data-ajax_url={ajax_url} "
346
349
  f'title="{_("Show details")}">'
347
350
  '<i class="fas fa-search"></i></button>'
@@ -350,8 +353,8 @@ class _AbstractStructureListSerializer(ABC):
350
353
  elif structure.is_starbase:
351
354
  ajax_url = reverse("structures:starbase_detail", args=[structure.id])
352
355
  row["details"] = format_html(
353
- '<button type="button" class="btn btn-default" '
354
- 'data-toggle="modal" data-target="#modalStarbaseDetail" '
356
+ '<button type="button" class="btn btn-secondary" '
357
+ 'data-bs-toggle="modal" data-bs-target="#modalStarbaseDetail" '
355
358
  f"data-ajax_url={ajax_url} "
356
359
  f'title="{_("Show details")}">'
357
360
  '<i class="fas fa-search"></i></button>'
@@ -431,7 +434,7 @@ class PocoListSerializer(_AbstractStructureListSerializer):
431
434
  solar_system_html = format_html(
432
435
  "{}<br>{}",
433
436
  link_html(dotlan.solar_system_url(solar_system_name), solar_system_name),
434
- bootstrap_label_html(text=space_type.label, label=space_badge_type),
437
+ bootstrap5_label_html(text=space_type.label, label=space_badge_type),
435
438
  )
436
439
 
437
440
  constellation_name = structure.eve_solar_system.eve_constellation.name
@@ -67,3 +67,8 @@ def floating_icon_with_text_html(
67
67
  text_html = format_html_join(mark_safe("<br>"), "{}", ((line,) for line in lines))
68
68
  result_html = format_html("<p>{}{}</p>", icon_html, text_html)
69
69
  return result_html
70
+
71
+
72
+ def bootstrap5_label_html(text: str, label: str = "default") -> str:
73
+ """Return HTML for a Bootstrap 5 label."""
74
+ return format_html('<span class="badge text-bg-{}">{}</span>', label, text)
@@ -17,13 +17,16 @@ from eveuniverse.models import EveMoon, EvePlanet, EveSolarSystem, EveType
17
17
 
18
18
  from allianceauth.services.hooks import get_extension_logger
19
19
  from app_utils.logging import LoggerAddTag
20
- from app_utils.views import bootstrap_label_html
21
20
 
22
21
  from structures import __title__
23
22
  from structures.app_settings import STRUCTURES_FEATURE_REFUELED_NOTIFICATIONS
24
23
  from structures.constants import EveCategoryId, EveGroupId, EveTypeId
25
24
  from structures.core import starbases
26
- from structures.helpers import datetime_almost_equal, hours_until_deadline
25
+ from structures.helpers import (
26
+ bootstrap5_label_html,
27
+ datetime_almost_equal,
28
+ hours_until_deadline,
29
+ )
27
30
  from structures.managers import StructureManager, StructureTagManager
28
31
 
29
32
  from .eveuniverse import EveSpaceType
@@ -125,7 +128,9 @@ class StructureTag(models.Model):
125
128
  name = escape(self.name)
126
129
  else:
127
130
  name = _(self.name)
128
- return bootstrap_label_html(name, self.style)
131
+ # Convert BS3 style names
132
+ style = "secondary" if self.style == StructureTag.Style.GREY else self.style
133
+ return bootstrap5_label_html(name, style)
129
134
 
130
135
  @classmethod
131
136
  def sorted(cls, tags: list, reverse: bool = False) -> list:
@@ -92,41 +92,47 @@ $(document).ready(function () {
92
92
  {
93
93
  idx: pocos_idx_start,
94
94
  title: filterTitles.constellation,
95
- maxWidth: "11em",
95
+ maxWidth: "10em",
96
96
  },
97
97
  {
98
98
  idx: pocos_idx_start + 1,
99
99
  title: filterTitles.planet_type,
100
+ maxWidth: "10em",
100
101
  },
101
102
  {
102
103
  idx: pocos_idx_start + 2,
103
104
  title: filterTitles.space_type,
105
+ maxWidth: "10em",
104
106
  },
105
107
  {
106
108
  idx: pocos_idx_start + 3,
107
109
  title: filterTitles.region,
110
+ maxWidth: "10em",
108
111
  },
109
112
  {
110
113
  idx: pocos_idx_start + 4,
111
114
  title: filterTitles.solar_system,
115
+ maxWidth: "10em",
112
116
  },
113
117
  {
114
118
  idx: pocos_idx_start + 5,
115
119
  title: filterTitles.corporation,
116
- maxWidth: "11em",
120
+ maxWidth: "10em",
117
121
  },
118
122
  {
119
123
  idx: pocos_idx_start + 6,
120
124
  title: filterTitles.alliance,
121
- maxWidth: "11em",
125
+ maxWidth: "10em",
122
126
  },
123
127
  {
124
128
  idx: pocos_idx_start + 7,
125
129
  title: filterTitles.access,
130
+ maxWidth: "10em",
126
131
  },
127
132
  ],
128
133
  autoSize: false,
129
134
  bootstrap: true,
135
+ bootstrap_version: 5,
130
136
  },
131
137
  });
132
138
  });
@@ -22,7 +22,7 @@ $(document).ready(function () {
22
22
  $('a[href="#' + tabId + '"]').tab("show");
23
23
 
24
24
  /* remember last selected tab */
25
- $('a[data-toggle="tab"]').on("shown.bs.tab", function (e) {
25
+ $('a[data-bs-toggle="tab"]').on("shown.bs.tab", function (e) {
26
26
  const selectedTabId = $(e.target).attr("href").substr(1);
27
27
  setCookie(COOKIE_LAST_TAB_ID, selectedTabId, COOKIE_LAST_TAB_HOURS);
28
28
  });
@@ -155,6 +155,7 @@ $(document).ready(function () {
155
155
  ],
156
156
  autoSize: false,
157
157
  bootstrap: true,
158
+ bootstrap_version: 5,
158
159
  },
159
160
  },
160
161
  });
@@ -242,6 +243,7 @@ $(document).ready(function () {
242
243
  ],
243
244
  autoSize: false,
244
245
  bootstrap: true,
246
+ bootstrap_version: 5,
245
247
  },
246
248
  },
247
249
  });
@@ -328,6 +330,7 @@ $(document).ready(function () {
328
330
  ],
329
331
  autoSize: false,
330
332
  bootstrap: true,
333
+ bootstrap_version: 5,
331
334
  },
332
335
  },
333
336
  });
@@ -455,6 +458,7 @@ $(document).ready(function () {
455
458
  ],
456
459
  autoSize: false,
457
460
  bootstrap: true,
461
+ bootstrap_version: 5,
458
462
  },
459
463
  createdRow: function (row, data, dataIndex) {
460
464
  if (data["is_reinforced"]) {
@@ -0,0 +1,50 @@
1
+ {% extends 'allianceauth/base-bs5.html' %}
2
+ {% load i18n %}
3
+ {% load navactive %}
4
+
5
+ {% block page_title %}{% translate "Structures" %}{% endblock %}
6
+
7
+ {% block header_nav_brand %}{% translate "Structures" %}{% endblock %}
8
+
9
+ {% block header_nav_collapse_left %}
10
+ {% if perms.structures.view_corporation_structures or perms.structures.view_alliance_structures or perms.structures.view_all_structures %}
11
+ <li class="nav-item">
12
+ <a class="nav-link {% navactive request 'structures:structure_list' %}" href="{% url 'structures:structure_list' %}">
13
+ {% translate 'Structure List' %}
14
+ </a>
15
+ </li>
16
+
17
+ <li class="nav-item">
18
+ <a class="nav-link {% navactive request 'structures:statistics' %}" href="{% url 'structures:statistics' %}">
19
+ {% translate 'Statistics' %}
20
+ </a>
21
+ </li>
22
+ {% endif %}
23
+
24
+ <li class="nav-item me-auto">
25
+ <a class="nav-link {% navactive request 'structures:public' %}" href="{% url 'structures:public' %}">
26
+ {% translate 'Public' %}
27
+ </a>
28
+ </li>
29
+
30
+ {% endblock header_nav_collapse_left %}
31
+
32
+ {% block header_nav_collapse_right %}
33
+ {% if perms.structures.add_structure_owner %}
34
+ <li class="nav-item">
35
+ <a class="btn btn-success me-2" href="{% url 'structures:add_structure_owner' %}" title="{% translate 'Add new structure owner or add new sync character to an existing structure owner' %}">
36
+ <i class="fa-solid fa-plus"></i>&nbsp;Add owner
37
+ </a>
38
+ </li>
39
+ {% endif %}
40
+ {% endblock header_nav_collapse_right %}
41
+
42
+ {% block header_nav_user_character_control %}
43
+ {% comment %}
44
+ Leave empty to remove user control nav items for this app
45
+ {% endcomment %}
46
+ {% endblock %}
47
+
48
+ {% block content %}
49
+ {% block details %}{% endblock %}
50
+ {% endblock %}
@@ -4,8 +4,8 @@
4
4
  {% load structures %}
5
5
 
6
6
  <div class="modal-header">
7
- <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
8
- <h4 class="modal-title">{{ structure }}</h4>
7
+ <h5 class="modal-title">{{ structure }}</h5>
8
+ <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
9
9
  </div>
10
10
 
11
11
  <div class="modal-body">
@@ -13,27 +13,27 @@
13
13
  <br>
14
14
 
15
15
  <!-- Nav tabs -->
16
- <ul class="nav nav-tabs" role="tablist">
17
- <li role="presentation" class="active">
18
- <a href="#tab-poco-general" aria-controls="modules" role="tab" data-toggle="tab">
16
+ <ul class="nav nav-pills" role="tablist">
17
+ <li class="nav-item" role="presentation">
18
+ <button class="nav-link active" data-bs-target="#tab-poco-general" aria-controls="modules" role="tab" data-bs-toggle="tab">
19
19
  {% translate "General" %}
20
- </a>
20
+ </button>
21
21
  </li>
22
- <li role="presentation">
23
- <a href="#tab-poco-reinforcement" aria-controls="access" role="tab" data-toggle="tab">
24
- {% translate "Reinforcement Time" %}
25
- </a>
22
+ <li class="nav-item" role="presentation">
23
+ <button class="nav-link" data-bs-target="#tab-poco-reinforcement" aria-controls="access" role="tab" data-bs-toggle="tab">
24
+ {% translate "Reinforcement" %}
25
+ </button>
26
26
  </li>
27
- <li role="presentation">
28
- <a href="#tab-poco-settings" aria-controls="settings" role="tab" data-toggle="tab">
29
- {% translate "Tax Rates & Access" %}
30
- </a>
27
+ <li class="nav-item" role="presentation">
28
+ <button class="nav-link" data-bs-target="#tab-poco-settings" aria-controls="settings" role="tab" data-bs-toggle="tab">
29
+ {% translate "Tax & Access" %}
30
+ </button>
31
31
  </li>
32
32
  </ul>
33
33
 
34
34
  <!-- Tab panes -->
35
35
  <div class="tab-content">
36
- <div role="tabpanel" class="tab-pane active" id="tab-poco-general">
36
+ <div role="tabpanel" class="tab-pane show active" id="tab-poco-general">
37
37
  {% include "structures/modals/tab_general_detail.html" %}
38
38
  </div>
39
39
 
@@ -4,8 +4,8 @@
4
4
  {% load structures %}
5
5
 
6
6
  <div class="modal-header">
7
- <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
8
- <h4 class="modal-title">{{structure}}</h4>
7
+ <h5 class="modal-title">{{structure}}</h5>
8
+ <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
9
9
  </div>
10
10
 
11
11
  <div class="modal-body">
@@ -13,37 +13,36 @@
13
13
  <br>
14
14
 
15
15
  <!-- Nav tabs -->
16
- <ul class="nav nav-tabs" role="tablist">
17
- <li role="presentation" class="active">
18
- <a href="#tab-starbase-general" aria-controls="modules" role="tab" data-toggle="tab">
16
+ <ul class="nav nav-pills" role="tablist">
17
+ <li class="nav-item" role="presentation">
18
+ <button class="nav-link active" data-bs-target="#tab-starbase-general" aria-controls="modules" role="tab" data-bs-toggle="tab">
19
19
  {% translate "General" %}
20
- </a>
20
+ </button>
21
21
  </li>
22
- <li role="presentation">
23
- <a href="#tab-starbase-fuel" aria-controls="fuels" role="tab" data-toggle="tab">
22
+ <li class="nav-item" role="presentation">
23
+ <button class="nav-link" data-bs-target="#tab-starbase-fuel" aria-controls="fuels" role="tab" data-bs-toggle="tab">
24
24
  {% translate "Fuel" %} <small>({{ fuel_blocks_count|default:"-"|intcomma }})</small>
25
- </a>
25
+ </button>
26
26
  </li>
27
- <li role="presentation">
28
- <a href="#tab-starbase-modules" aria-controls="modules" role="tab" data-toggle="tab">
27
+ <li class="nav-item" role="presentation">
28
+ <button class="nav-link" data-bs-target="#tab-starbase-modules" aria-controls="modules" role="tab" data-bs-toggle="tab">
29
29
  {% translate "Modules" %} <small>({{ modules_count }})</small>
30
- </a>
30
+ </button>
31
31
  </li>
32
- <li role="presentation">
33
- <a href="#tab-starbase-settings" aria-controls="settings" role="tab" data-toggle="tab">
32
+ <li class="nav-item" role="presentation">
33
+ <button class="nav-link" data-bs-target="#tab-starbase-settings" aria-controls="settings" role="tab" data-bs-toggle="tab">
34
34
  {% translate "Settings" %}
35
- </a>
35
+ </button>
36
36
  </li>
37
- <li role="presentation">
38
- <a href="#tab-starbase-access" aria-controls="access" role="tab" data-toggle="tab">
37
+ <li class="nav-item" role="presentation">
38
+ <button class="nav-link" data-bs-target="#tab-starbase-access" aria-controls="access" role="tab" data-bs-toggle="tab">
39
39
  {% translate "Access" %}
40
- </a>
40
+ </button>
41
41
  </li>
42
42
  </ul>
43
-
44
43
  <!-- Tab panes -->
45
44
  <div class="tab-content">
46
- <div role="tabpanel" class="tab-pane active" id="tab-starbase-general">
45
+ <div role="tabpanel" class="tab-pane show active" id="tab-starbase-general">
47
46
  {% include "structures/modals/tab_general_detail.html" %}
48
47
  </div>
49
48
 
@@ -4,10 +4,8 @@
4
4
  {% load structures %}
5
5
 
6
6
  <div class="modal-header">
7
- <button type="button" class="close" data-dismiss="modal" aria-label="Close">
8
- <span aria-hidden="true">&times;</span>
9
- </button>
10
- <h4 class="modal-title">{{structure.eve_solar_system.name}} - {{structure.name}}</h4>
7
+ <h5 class="modal-title">{{structure.eve_solar_system.name}} - {{structure.name}}</h5>
8
+ <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
11
9
  </div>
12
10
 
13
11
  <div class="modal-body">
@@ -15,38 +13,38 @@
15
13
  <br>
16
14
 
17
15
  <!-- Nav tabs -->
18
- <ul class="nav nav-tabs" role="tablist">
19
- <li role="presentation" class="active">
20
- <a href="#tab-structure-general" aria-controls="modules" role="tab" data-toggle="tab">
16
+ <ul class="nav nav-pills" role="tablist">
17
+ <li class="nav-item" role="presentation">
18
+ <button class="nav-link active" data-bs-target="#tab-structure-general" aria-controls="modules" role="tab" data-bs-toggle="tab">
21
19
  {% translate "General" %}
22
- </a>
20
+ </button>
23
21
  </li>
24
- <li role="presentation">
25
- <a href="#tab-structure-services" aria-controls="fuel" role="tab" data-toggle="tab">
22
+ <li class="nav-item" role="presentation">
23
+ <button class="nav-link" data-bs-target="#tab-structure-services" aria-controls="fuel" role="tab" data-bs-toggle="tab">
26
24
  {% translate "Services" %} <small>({{ services_count|default:"-"|intcomma }})</small>
27
- </a>
25
+ </button>
28
26
  </li>
29
27
 
30
- <li role="presentation">
31
- <a href="#tab-structure-fuel" aria-controls="fuel" role="tab" data-toggle="tab">
28
+ <li class="nav-item" role="presentation">
29
+ <button class="nav-link" data-bs-target="#tab-structure-fuel" aria-controls="fuel" role="tab" data-bs-toggle="tab">
32
30
  {% translate "Fuel" %} <small>({{ fuel_blocks_total|default:"-"|intcomma }})</small>
33
- </a>
31
+ </button>
34
32
  </li>
35
- <li role="presentation">
36
- <a href="#tab-structure-ammo" aria-controls="ammo" role="tab" data-toggle="tab">
33
+ <li class="nav-item" role="presentation">
34
+ <button class="nav-link" data-bs-target="#tab-structure-ammo" aria-controls="ammo" role="tab" data-bs-toggle="tab">
37
35
  {% translate "Ammo" %} <small>({{ ammo_total|default:"-"|intcomma }})</small>
38
- </a>
36
+ </button>
39
37
  </li>
40
- <li role="presentation">
41
- <a href="#tab-structure-modules" aria-controls="modules" role="tab" data-toggle="tab">
38
+ <li class="nav-item" role="presentation">
39
+ <button class="nav-link" data-bs-target="#tab-structure-modules" aria-controls="modules" role="tab" data-bs-toggle="tab">
42
40
  {% translate "Modules" %} <small>({{ modules_count }})</small>
43
- </a>
41
+ </button>
44
42
  </li>
45
43
  </ul>
46
44
 
47
45
  <!-- Tab panes -->
48
46
  <div class="tab-content">
49
- <div role="tabpanel" class="tab-pane active" id="tab-structure-general">
47
+ <div role="tabpanel" class="tab-pane show active" id="tab-structure-general">
50
48
  {% include "structures/modals/tab_general_detail.html" %}
51
49
  </div>
52
50
 
@@ -5,8 +5,8 @@
5
5
  <nav class="navbar navbar-default">
6
6
  <div class="container-fluid">
7
7
  <div class="navbar-header">
8
- <button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
9
- data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
8
+ <button type="button" class="navbar-toggle collapsed" data-bs-toggle="collapse"
9
+ data-bs-target="#bs-example-navbar-collapse-1" aria-expanded="false">
10
10
  <span class="sr-only">{% translate "Toggle navigation" %}</span>
11
11
  <span class="icon-bar"></span>
12
12
  <span class="icon-bar"></span>