aa-structures 2.14.1__tar.gz → 2.15.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 (229) hide show
  1. {aa_structures-2.14.1 → aa_structures-2.15.0}/PKG-INFO +1 -1
  2. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/__init__.py +1 -1
  3. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/admin.py +40 -0
  4. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/test_admin.py +19 -0
  5. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/webhooks/core.py +1 -1
  6. {aa_structures-2.14.1 → aa_structures-2.15.0}/LICENSE +0 -0
  7. {aa_structures-2.14.1 → aa_structures-2.15.0}/README.md +0 -0
  8. {aa_structures-2.14.1 → aa_structures-2.15.0}/pyproject.toml +0 -0
  9. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/app_settings.py +0 -0
  10. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/apps.py +0 -0
  11. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/auth_hooks.py +0 -0
  12. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/constants.py +0 -0
  13. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/core/__init__.py +0 -0
  14. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/core/notification_embeds/__init__.py +0 -0
  15. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/core/notification_embeds/billing_embeds.py +0 -0
  16. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/core/notification_embeds/corporate_embeds.py +0 -0
  17. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/core/notification_embeds/helpers.py +0 -0
  18. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/core/notification_embeds/main.py +0 -0
  19. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/core/notification_embeds/moonmining_embeds.py +0 -0
  20. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/core/notification_embeds/orbital_embeds.py +0 -0
  21. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/core/notification_embeds/skyhook_embeds.py +0 -0
  22. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/core/notification_embeds/sov_embeds.py +0 -0
  23. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/core/notification_embeds/structures_embeds.py +0 -0
  24. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/core/notification_embeds/tower_embeds.py +0 -0
  25. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/core/notification_embeds/war_embeds.py +0 -0
  26. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/core/notification_timers.py +0 -0
  27. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/core/notification_types.py +0 -0
  28. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/core/serializers.py +0 -0
  29. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/core/sovereignty.py +0 -0
  30. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/core/starbases.py +0 -0
  31. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/forms.py +0 -0
  32. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/helpers.py +0 -0
  33. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/locale/de/LC_MESSAGES/django.mo +0 -0
  34. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/locale/de/LC_MESSAGES/django.po +0 -0
  35. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/locale/django.pot +0 -0
  36. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/locale/en/LC_MESSAGES/django.mo +0 -0
  37. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/locale/en/LC_MESSAGES/django.po +0 -0
  38. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/locale/es/LC_MESSAGES/django.mo +0 -0
  39. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/locale/es/LC_MESSAGES/django.po +0 -0
  40. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/locale/fr_FR/LC_MESSAGES/django.mo +0 -0
  41. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/locale/fr_FR/LC_MESSAGES/django.po +0 -0
  42. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/locale/it_IT/LC_MESSAGES/django.mo +0 -0
  43. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/locale/it_IT/LC_MESSAGES/django.po +0 -0
  44. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/locale/ja/LC_MESSAGES/django.mo +0 -0
  45. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/locale/ja/LC_MESSAGES/django.po +0 -0
  46. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/locale/ko_KR/LC_MESSAGES/django.mo +0 -0
  47. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/locale/ko_KR/LC_MESSAGES/django.po +0 -0
  48. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/locale/ru/LC_MESSAGES/django.mo +0 -0
  49. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/locale/ru/LC_MESSAGES/django.po +0 -0
  50. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/locale/uk/LC_MESSAGES/django.mo +0 -0
  51. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/locale/uk/LC_MESSAGES/django.po +0 -0
  52. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  53. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/locale/zh_Hans/LC_MESSAGES/django.po +0 -0
  54. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/management/commands/__init__.py +0 -0
  55. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/management/commands/structures_load_eve.py +0 -0
  56. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/management/commands/structures_preload_eveuniverse.py +0 -0
  57. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/management/commands/structures_update_poco_planets.py +0 -0
  58. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/managers.py +0 -0
  59. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/migrations/0001_initial_new.py +0 -0
  60. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/migrations/0002_remove_eveuniverse_relation_names.py +0 -0
  61. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/migrations/0003_add_localization_and_unique_key.py +0 -0
  62. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/migrations/0004_improve_localization.py +0 -0
  63. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/migrations/0005_add_notification_types.py +0 -0
  64. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/migrations/0006_add_ownercharacter_disabled.py +0 -0
  65. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/migrations/0007_add_notificationtypes_skyhook_metenox.py +0 -0
  66. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/migrations/0008_add_notificationtypes_skyhook_metenox.py +0 -0
  67. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/migrations/__init__.py +0 -0
  68. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/models/__init__.py +0 -0
  69. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/models/eveuniverse.py +0 -0
  70. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/models/notifications.py +0 -0
  71. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/models/owners.py +0 -0
  72. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/models/structures_1.py +0 -0
  73. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/models/structures_2.py +0 -0
  74. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/providers.py +0 -0
  75. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/css/global.css +0 -0
  76. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/css/main.css +0 -0
  77. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/css/public.css +0 -0
  78. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/css/statistics.css +0 -0
  79. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/css/structures.css +0 -0
  80. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/bars-rotate-fade-black-36.svg +0 -0
  81. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/bars-rotate-fade-white-36.svg +0 -0
  82. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/eve_symbol_128.png +0 -0
  83. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/0h.png +0 -0
  84. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/0l.png +0 -0
  85. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/0m.png +0 -0
  86. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/0r.png +0 -0
  87. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/0s.png +0 -0
  88. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/1h.png +0 -0
  89. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/1l.png +0 -0
  90. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/1m.png +0 -0
  91. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/1r.png +0 -0
  92. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/2h.png +0 -0
  93. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/2l.png +0 -0
  94. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/2m.png +0 -0
  95. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/2r.png +0 -0
  96. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/3h.png +0 -0
  97. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/3l.png +0 -0
  98. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/3m.png +0 -0
  99. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/3r.png +0 -0
  100. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/4h.png +0 -0
  101. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/4l.png +0 -0
  102. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/4m.png +0 -0
  103. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/4s.png +0 -0
  104. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/5h.png +0 -0
  105. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/5l.png +0 -0
  106. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/5m.png +0 -0
  107. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/5s.png +0 -0
  108. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/6h.png +0 -0
  109. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/6l.png +0 -0
  110. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/6m.png +0 -0
  111. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/7h.png +0 -0
  112. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/7l.png +0 -0
  113. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/7m.png +0 -0
  114. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/8h.png +0 -0
  115. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/8l.png +0 -0
  116. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/8m.png +0 -0
  117. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/blank.png +0 -0
  118. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/circle.png +0 -0
  119. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/dustwheel.png +0 -0
  120. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/h.png +0 -0
  121. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/l.png +0 -0
  122. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/m.png +0 -0
  123. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/noship.png +0 -0
  124. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/r.png +0 -0
  125. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/tyrannis.png +0 -0
  126. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/tyrannis_blue.png +0 -0
  127. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/tyrannis_darkred.png +0 -0
  128. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/tyrannis_default.png +0 -0
  129. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/panel/tyrannis_revelations.png +0 -0
  130. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/img/structures_logo.png +0 -0
  131. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/js/global.js +0 -0
  132. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/js/public.js +0 -0
  133. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/js/statistics.js +0 -0
  134. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/js/structures.js +0 -0
  135. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/vendor/datatables/plugins/dataTables.rowGroup.min.js +0 -0
  136. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/vendor/datatables/plugins/datetime.js +0 -0
  137. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/vendor/datatables/plugins/filterDropDown.min.js +0 -0
  138. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/vendor/datatables/plugins/rowGroup.bootstrap.min.css +0 -0
  139. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/static/structures/vendor/datatables/plugins/rowGroup.dataTables.min.css +0 -0
  140. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tasks.py +0 -0
  141. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/templates/structures/base.html +0 -0
  142. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/templates/structures/modals/fitting_assets.html +0 -0
  143. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/templates/structures/modals/fitting_gfx.html +0 -0
  144. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/templates/structures/modals/poco_details.html +0 -0
  145. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/templates/structures/modals/starbase_detail.html +0 -0
  146. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/templates/structures/modals/structure_details.html +0 -0
  147. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/templates/structures/modals/tab_general_detail.html +0 -0
  148. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/templates/structures/modals/tab_services_detail.html +0 -0
  149. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/templates/structures/partials/menu.html +0 -0
  150. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/templates/structures/partials/public/poco_list.html +0 -0
  151. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/templates/structures/partials/statistics/structure_summary.html +0 -0
  152. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/templates/structures/partials/structures/active_tags.html +0 -0
  153. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/templates/structures/partials/structures/jump_gate_list.html +0 -0
  154. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/templates/structures/partials/structures/orbital_list.html +0 -0
  155. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/templates/structures/partials/structures/starbase_list.html +0 -0
  156. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/templates/structures/partials/structures/structure_list.html +0 -0
  157. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/templates/structures/public.html +0 -0
  158. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/templates/structures/statistics.html +0 -0
  159. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/templates/structures/structures.html +0 -0
  160. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/templates/structures/templatetags/detail_title.html +0 -0
  161. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/templates/structures/templatetags/list_asset.html +0 -0
  162. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/templates/structures/templatetags/list_item.html +0 -0
  163. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/templates/structures/templatetags/list_tax_item.html +0 -0
  164. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/templates/structures/templatetags/list_title.html +0 -0
  165. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/templatetags/__init__.py +0 -0
  166. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/templatetags/structures.py +0 -0
  167. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/__init__.py +0 -0
  168. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/core/__init__.py +0 -0
  169. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/core/notification_embeds/__init__.py +0 -0
  170. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/core/notification_embeds/test_helpers.py +0 -0
  171. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/core/notification_embeds/test_main.py +0 -0
  172. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/core/test_notification_structuretimers.py +0 -0
  173. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/core/test_notification_types.py +0 -0
  174. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/core/test_notifications_timers.py +0 -0
  175. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/core/test_serializers.py +0 -0
  176. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/core/test_sovereignty.py +0 -0
  177. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/core/test_starbases.py +0 -0
  178. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/integration/__init__.py +0 -0
  179. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/integration/test_tasks.py +0 -0
  180. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/integration/test_views.py +0 -0
  181. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/models/__init__.py +0 -0
  182. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/models/test_eveuniverse.py +0 -0
  183. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/models/test_notifications_1.py +0 -0
  184. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/models/test_notifications_2.py +0 -0
  185. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/models/test_notifications_3.py +0 -0
  186. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/models/test_notifications_discord.py +0 -0
  187. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/models/test_owners_1.py +0 -0
  188. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/models/test_owners_2.py +0 -0
  189. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/models/test_owners_3.py +0 -0
  190. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/models/test_owners_4.py +0 -0
  191. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/models/test_owners_5.py +0 -0
  192. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/models/test_owners_6.py +0 -0
  193. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/models/test_structures.py +0 -0
  194. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/test_helpers.py +0 -0
  195. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/test_managers_1.py +0 -0
  196. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/test_managers_2.py +0 -0
  197. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/test_tasks.py +0 -0
  198. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/testdata/__init__.py +0 -0
  199. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/testdata/create_eveuniverse.py +0 -0
  200. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/testdata/entities.json +0 -0
  201. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/testdata/esi_data.json +0 -0
  202. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/testdata/eveuniverse.json +0 -0
  203. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/testdata/factories.py +0 -0
  204. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/testdata/generate_notifications.py +0 -0
  205. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/testdata/generate_notifications_2.py +0 -0
  206. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/testdata/generate_structures.py +0 -0
  207. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/testdata/helpers.py +0 -0
  208. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/testdata/load_eveuniverse.py +0 -0
  209. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/testdata/tasks_loadtest.py +0 -0
  210. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/testdata/test_generate_structures.py +0 -0
  211. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/views/__init__.py +0 -0
  212. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/views/test_public.py +0 -0
  213. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/views/test_service_status.py +0 -0
  214. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/views/test_statistics.py +0 -0
  215. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/views/test_structures.py +0 -0
  216. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/tests/views/utils.py +0 -0
  217. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/urls.py +0 -0
  218. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/views/__init__.py +0 -0
  219. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/views/common.py +0 -0
  220. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/views/public.py +0 -0
  221. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/views/statistics.py +0 -0
  222. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/views/status.py +0 -0
  223. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/views/structures.py +0 -0
  224. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/webhooks/__init__.py +0 -0
  225. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/webhooks/managers.py +0 -0
  226. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/webhooks/models.py +0 -0
  227. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/webhooks/tests/__init__.py +0 -0
  228. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/webhooks/tests/test_core.py +0 -0
  229. {aa_structures-2.14.1 → aa_structures-2.15.0}/structures/webhooks/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: aa-structures
3
- Version: 2.14.1
3
+ Version: 2.15.0
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
@@ -3,5 +3,5 @@
3
3
  # pylint: disable = invalid-name
4
4
  default_app_config = "structures.apps.StructuresConfig"
5
5
 
6
- __version__ = "2.14.1"
6
+ __version__ = "2.15.0"
7
7
  __title__ = "Structures"
@@ -1,10 +1,13 @@
1
1
  """Admin site for Structures."""
2
2
 
3
+ import functools
3
4
  import statistics
4
5
  from typing import Optional
5
6
 
7
+ from django import forms
6
8
  from django.conf import settings
7
9
  from django.contrib import admin
10
+ from django.contrib.admin.widgets import FilteredSelectMultiple
8
11
  from django.db import models
9
12
  from django.db.models import Prefetch
10
13
  from django.db.models.functions import Lower
@@ -1028,8 +1031,44 @@ class StructureAdmin(admin.ModelAdmin):
1028
1031
  )
1029
1032
 
1030
1033
 
1034
+ class WebhookAdminForm(forms.ModelForm):
1035
+ owners = forms.ModelMultipleChoiceField(
1036
+ queryset=Owner.objects.order_by(Lower("corporation__corporation_name")),
1037
+ required=False,
1038
+ widget=FilteredSelectMultiple(verbose_name=_("Users"), is_stacked=False),
1039
+ )
1040
+
1041
+ def __init__(self, *args, **kwargs):
1042
+ super().__init__(*args, **kwargs)
1043
+
1044
+ if self.instance and self.instance.pk:
1045
+ self.fields["owners"].initial = self.instance.owners.all()
1046
+
1047
+ def save(self, commit=True):
1048
+ webhook: Webhook = super().save(commit=False)
1049
+
1050
+ if commit:
1051
+ webhook.save()
1052
+
1053
+ owners = self.cleaned_data["owners"]
1054
+ if webhook.pk:
1055
+ self._save_m2m_and_users(webhook, owners)
1056
+ else:
1057
+ self.save_m2m = functools.partial(
1058
+ self._save_m2m_and_users, webhook=webhook, owners=owners
1059
+ )
1060
+
1061
+ return webhook
1062
+
1063
+ def _save_m2m_and_users(self, webhook, owners):
1064
+ """Save m2m relations incl. users."""
1065
+ webhook.owners.set(owners)
1066
+ self._save_m2m()
1067
+
1068
+
1031
1069
  @admin.register(Webhook)
1032
1070
  class WebhookAdmin(admin.ModelAdmin):
1071
+ form = WebhookAdminForm
1033
1072
  list_display = (
1034
1073
  "name",
1035
1074
  "_ping_groups",
@@ -1057,6 +1096,7 @@ class WebhookAdmin(admin.ModelAdmin):
1057
1096
  "name",
1058
1097
  "url",
1059
1098
  "notes",
1099
+ "owners",
1060
1100
  "notification_types",
1061
1101
  "ping_groups",
1062
1102
  "is_active",
@@ -719,3 +719,22 @@ class TestWebhookAdmin(TestCase):
719
719
  webhook.refresh_from_db()
720
720
  self.assertFalse(webhook.is_active)
721
721
  self.assertTrue(mock_message_user.called)
722
+
723
+ def test_can_assign_owner(self):
724
+ # given
725
+ owner = OwnerFactory()
726
+ webhook = WebhookFactory()
727
+ self.client.force_login(self.user)
728
+ data = {
729
+ "name": webhook.name,
730
+ "notification_types": NotificationType.webhook_defaults(),
731
+ "owners": [owner.pk],
732
+ "url": webhook.url,
733
+ "webhook_type": webhook.webhook_type,
734
+ }
735
+ r = self.client.post(
736
+ f"/admin/structures/webhook/{webhook.pk}/change/", data=data
737
+ )
738
+ self.assertEqual(r.status_code, 302)
739
+ webhook.refresh_from_db()
740
+ self.assertIn(owner, webhook.owners.all())
@@ -61,7 +61,7 @@ class DiscordWebhookMixin:
61
61
 
62
62
  return counter
63
63
 
64
- # pylint: disable = too-many-arguments
64
+ # pylint: disable = too-many-positional-arguments, too-many-arguments
65
65
  def send_message(
66
66
  self,
67
67
  content: Optional[str] = None,
File without changes
File without changes