aa-structures 2.14.0__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.
- {aa_structures-2.14.0 → aa_structures-2.15.0}/PKG-INFO +1 -1
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/__init__.py +1 -1
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/admin.py +40 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/models/owners.py +14 -4
- aa_structures-2.14.0/structures/templates/structures/partials/structures/poco_list.html → aa_structures-2.15.0/structures/templates/structures/partials/structures/orbital_list.html +1 -1
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/templates/structures/partials/structures/starbase_list.html +1 -1
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/templates/structures/structures.html +2 -2
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/models/test_owners_2.py +14 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/test_admin.py +19 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/webhooks/core.py +1 -1
- {aa_structures-2.14.0 → aa_structures-2.15.0}/LICENSE +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/README.md +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/pyproject.toml +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/app_settings.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/apps.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/auth_hooks.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/constants.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/core/__init__.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/core/notification_embeds/__init__.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/core/notification_embeds/billing_embeds.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/core/notification_embeds/corporate_embeds.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/core/notification_embeds/helpers.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/core/notification_embeds/main.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/core/notification_embeds/moonmining_embeds.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/core/notification_embeds/orbital_embeds.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/core/notification_embeds/skyhook_embeds.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/core/notification_embeds/sov_embeds.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/core/notification_embeds/structures_embeds.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/core/notification_embeds/tower_embeds.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/core/notification_embeds/war_embeds.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/core/notification_timers.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/core/notification_types.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/core/serializers.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/core/sovereignty.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/core/starbases.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/forms.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/helpers.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/locale/de/LC_MESSAGES/django.mo +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/locale/de/LC_MESSAGES/django.po +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/locale/django.pot +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/locale/en/LC_MESSAGES/django.mo +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/locale/en/LC_MESSAGES/django.po +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/locale/es/LC_MESSAGES/django.mo +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/locale/es/LC_MESSAGES/django.po +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/locale/fr_FR/LC_MESSAGES/django.mo +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/locale/fr_FR/LC_MESSAGES/django.po +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/locale/it_IT/LC_MESSAGES/django.mo +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/locale/it_IT/LC_MESSAGES/django.po +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/locale/ja/LC_MESSAGES/django.mo +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/locale/ja/LC_MESSAGES/django.po +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/locale/ko_KR/LC_MESSAGES/django.mo +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/locale/ko_KR/LC_MESSAGES/django.po +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/locale/ru/LC_MESSAGES/django.mo +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/locale/ru/LC_MESSAGES/django.po +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/locale/uk/LC_MESSAGES/django.mo +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/locale/uk/LC_MESSAGES/django.po +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/locale/zh_Hans/LC_MESSAGES/django.po +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/management/commands/__init__.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/management/commands/structures_load_eve.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/management/commands/structures_preload_eveuniverse.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/management/commands/structures_update_poco_planets.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/managers.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/migrations/0001_initial_new.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/migrations/0002_remove_eveuniverse_relation_names.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/migrations/0003_add_localization_and_unique_key.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/migrations/0004_improve_localization.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/migrations/0005_add_notification_types.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/migrations/0006_add_ownercharacter_disabled.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/migrations/0007_add_notificationtypes_skyhook_metenox.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/migrations/0008_add_notificationtypes_skyhook_metenox.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/migrations/__init__.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/models/__init__.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/models/eveuniverse.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/models/notifications.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/models/structures_1.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/models/structures_2.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/providers.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/css/global.css +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/css/main.css +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/css/public.css +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/css/statistics.css +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/css/structures.css +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/bars-rotate-fade-black-36.svg +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/bars-rotate-fade-white-36.svg +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/eve_symbol_128.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/0h.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/0l.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/0m.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/0r.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/0s.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/1h.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/1l.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/1m.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/1r.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/2h.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/2l.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/2m.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/2r.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/3h.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/3l.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/3m.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/3r.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/4h.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/4l.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/4m.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/4s.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/5h.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/5l.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/5m.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/5s.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/6h.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/6l.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/6m.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/7h.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/7l.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/7m.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/8h.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/8l.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/8m.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/blank.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/circle.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/dustwheel.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/h.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/l.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/m.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/noship.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/r.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/tyrannis.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/tyrannis_blue.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/tyrannis_darkred.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/tyrannis_default.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/tyrannis_revelations.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/structures_logo.png +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/js/global.js +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/js/public.js +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/js/statistics.js +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/js/structures.js +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/vendor/datatables/plugins/dataTables.rowGroup.min.js +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/vendor/datatables/plugins/datetime.js +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/vendor/datatables/plugins/filterDropDown.min.js +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/vendor/datatables/plugins/rowGroup.bootstrap.min.css +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/vendor/datatables/plugins/rowGroup.dataTables.min.css +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tasks.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/templates/structures/base.html +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/templates/structures/modals/fitting_assets.html +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/templates/structures/modals/fitting_gfx.html +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/templates/structures/modals/poco_details.html +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/templates/structures/modals/starbase_detail.html +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/templates/structures/modals/structure_details.html +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/templates/structures/modals/tab_general_detail.html +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/templates/structures/modals/tab_services_detail.html +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/templates/structures/partials/menu.html +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/templates/structures/partials/public/poco_list.html +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/templates/structures/partials/statistics/structure_summary.html +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/templates/structures/partials/structures/active_tags.html +0 -0
- /aa_structures-2.14.0/structures/templates/structures/partials/structures/jump_gates_list.html → /aa_structures-2.15.0/structures/templates/structures/partials/structures/jump_gate_list.html +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/templates/structures/partials/structures/structure_list.html +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/templates/structures/public.html +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/templates/structures/statistics.html +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/templates/structures/templatetags/detail_title.html +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/templates/structures/templatetags/list_asset.html +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/templates/structures/templatetags/list_item.html +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/templates/structures/templatetags/list_tax_item.html +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/templates/structures/templatetags/list_title.html +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/templatetags/__init__.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/templatetags/structures.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/__init__.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/core/__init__.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/core/notification_embeds/__init__.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/core/notification_embeds/test_helpers.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/core/notification_embeds/test_main.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/core/test_notification_structuretimers.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/core/test_notification_types.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/core/test_notifications_timers.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/core/test_serializers.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/core/test_sovereignty.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/core/test_starbases.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/integration/__init__.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/integration/test_tasks.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/integration/test_views.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/models/__init__.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/models/test_eveuniverse.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/models/test_notifications_1.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/models/test_notifications_2.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/models/test_notifications_3.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/models/test_notifications_discord.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/models/test_owners_1.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/models/test_owners_3.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/models/test_owners_4.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/models/test_owners_5.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/models/test_owners_6.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/models/test_structures.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/test_helpers.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/test_managers_1.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/test_managers_2.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/test_tasks.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/testdata/__init__.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/testdata/create_eveuniverse.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/testdata/entities.json +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/testdata/esi_data.json +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/testdata/eveuniverse.json +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/testdata/factories.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/testdata/generate_notifications.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/testdata/generate_notifications_2.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/testdata/generate_structures.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/testdata/helpers.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/testdata/load_eveuniverse.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/testdata/tasks_loadtest.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/testdata/test_generate_structures.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/views/__init__.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/views/test_public.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/views/test_service_status.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/views/test_statistics.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/views/test_structures.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/views/utils.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/urls.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/views/__init__.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/views/common.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/views/public.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/views/statistics.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/views/status.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/views/structures.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/webhooks/__init__.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/webhooks/managers.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/webhooks/models.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/webhooks/tests/__init__.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/webhooks/tests/test_core.py +0 -0
- {aa_structures-2.14.0 → aa_structures-2.15.0}/structures/webhooks/tests/test_utils.py +0 -0
@@ -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",
|
@@ -592,7 +592,7 @@ class Owner(models.Model):
|
|
592
592
|
is_ok = True
|
593
593
|
# fetch main list of structure for this corporation
|
594
594
|
try:
|
595
|
-
structures = (
|
595
|
+
structures: List[dict] = (
|
596
596
|
esi.client.Corporation.get_corporations_corporation_id_structures(
|
597
597
|
corporation_id=self.corporation.corporation_id,
|
598
598
|
token=token.valid_access_token(),
|
@@ -620,9 +620,19 @@ class Owner(models.Model):
|
|
620
620
|
)
|
621
621
|
).results()
|
622
622
|
except OSError as ex:
|
623
|
-
|
624
|
-
|
625
|
-
|
623
|
+
if isinstance(ex, HTTPForbidden):
|
624
|
+
logger.error(
|
625
|
+
"Failed to fetch structure with ID #%d belonging to %s, "
|
626
|
+
"because the character '%s' is missing "
|
627
|
+
"docking rights for it.",
|
628
|
+
structure["structure_id"],
|
629
|
+
self,
|
630
|
+
token.character_name,
|
631
|
+
)
|
632
|
+
else:
|
633
|
+
self._report_esi_issue(
|
634
|
+
f"fetch structure #{structure['structure_id']}", ex, token
|
635
|
+
)
|
626
636
|
structure["name"] = "(no data)"
|
627
637
|
is_ok = False
|
628
638
|
else:
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/templates/structures/structures.html
RENAMED
@@ -78,7 +78,7 @@
|
|
78
78
|
</div>
|
79
79
|
|
80
80
|
<div role="tabpanel" class="tab-pane" id="orbitals">
|
81
|
-
{% include "structures/partials/structures/
|
81
|
+
{% include "structures/partials/structures/orbital_list.html" %}
|
82
82
|
</div>
|
83
83
|
|
84
84
|
<div role="tabpanel" class="tab-pane" id="starbases">
|
@@ -87,7 +87,7 @@
|
|
87
87
|
|
88
88
|
{% if show_jump_gates_tab %}
|
89
89
|
<div role="tabpanel" class="tab-pane" id="jump-gates">
|
90
|
-
{% include "structures/partials/structures/
|
90
|
+
{% include "structures/partials/structures/jump_gate_list.html" %}
|
91
91
|
</div>
|
92
92
|
{% endif %}
|
93
93
|
|
@@ -376,6 +376,20 @@ class TestUpdateStructuresEsi(NoSocketsTestCase):
|
|
376
376
|
structure = Structure.objects.get(id=1000000000002)
|
377
377
|
self.assertEqual(structure.name, "(no data)")
|
378
378
|
|
379
|
+
def test_update_will_not_break_on_403_error_from_structure_info(self, mock_esi):
|
380
|
+
# given
|
381
|
+
new_endpoint = EsiEndpoint(
|
382
|
+
"Universe", "get_universe_structures_structure_id", http_error_code=403
|
383
|
+
)
|
384
|
+
mock_esi.client = self.esi_client_stub.replace_endpoints([new_endpoint])
|
385
|
+
owner = OwnerFactory(user=self.user, structures_last_update_at=None)
|
386
|
+
# when
|
387
|
+
owner.update_structures_esi()
|
388
|
+
# then
|
389
|
+
self.assertFalse(owner.is_structure_sync_fresh)
|
390
|
+
structure = Structure.objects.get(id=1000000000002)
|
391
|
+
self.assertEqual(structure.name, "(no data)")
|
392
|
+
|
379
393
|
@patch(MODULE_PATH + ".Structure.objects.update_or_create_from_dict")
|
380
394
|
def test_update_will_not_break_on_http_error_when_creating_structures(
|
381
395
|
self, mock_create_structure, mock_esi
|
@@ -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())
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/core/notification_embeds/__init__.py
RENAMED
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/core/notification_embeds/billing_embeds.py
RENAMED
File without changes
|
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/core/notification_embeds/helpers.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/core/notification_embeds/orbital_embeds.py
RENAMED
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/core/notification_embeds/skyhook_embeds.py
RENAMED
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/core/notification_embeds/sov_embeds.py
RENAMED
File without changes
|
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/core/notification_embeds/tower_embeds.py
RENAMED
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/core/notification_embeds/war_embeds.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/locale/zh_Hans/LC_MESSAGES/django.mo
RENAMED
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/locale/zh_Hans/LC_MESSAGES/django.po
RENAMED
File without changes
|
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/management/commands/structures_load_eve.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/migrations/0004_improve_localization.py
RENAMED
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/migrations/0005_add_notification_types.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/css/statistics.css
RENAMED
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/css/structures.css
RENAMED
File without changes
|
File without changes
|
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/eve_symbol_128.png
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/blank.png
RENAMED
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/circle.png
RENAMED
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/dustwheel.png
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/noship.png
RENAMED
File without changes
|
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/panel/tyrannis.png
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/static/structures/img/structures_logo.png
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/templates/structures/partials/menu.html
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/templates/structures/statistics.html
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/core/notification_embeds/__init__.py
RENAMED
File without changes
|
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/core/notification_embeds/test_main.py
RENAMED
File without changes
|
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/core/test_notification_types.py
RENAMED
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/core/test_notifications_timers.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/models/test_notifications_1.py
RENAMED
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/models/test_notifications_2.py
RENAMED
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/models/test_notifications_3.py
RENAMED
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/models/test_notifications_discord.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/testdata/create_eveuniverse.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/testdata/generate_notifications.py
RENAMED
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/testdata/generate_notifications_2.py
RENAMED
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/testdata/generate_structures.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{aa_structures-2.14.0 → aa_structures-2.15.0}/structures/tests/testdata/test_generate_structures.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|