aa-structures 2.11.0__tar.gz → 2.12.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.11.0 → aa_structures-2.12.0}/PKG-INFO +1 -1
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/__init__.py +1 -1
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/core/notification_embeds/main.py +18 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/models/notifications.py +5 -1
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/core/notification_embeds/test_main.py +20 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/models/test_notifications_discord.py +21 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/LICENSE +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/README.md +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/pyproject.toml +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/admin.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/app_settings.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/apps.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/auth_hooks.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/constants.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/core/__init__.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/core/notification_embeds/__init__.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/core/notification_embeds/billing_embeds.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/core/notification_embeds/corporate_embeds.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/core/notification_embeds/helpers.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/core/notification_embeds/moonmining_embeds.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/core/notification_embeds/orbital_embeds.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/core/notification_embeds/sov_embeds.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/core/notification_embeds/structures_embeds.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/core/notification_embeds/tower_embeds.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/core/notification_embeds/war_embeds.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/core/notification_timers.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/core/notification_types.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/core/serializers.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/core/sovereignty.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/core/starbases.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/forms.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/helpers.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/locale/de/LC_MESSAGES/django.mo +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/locale/de/LC_MESSAGES/django.po +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/locale/django.pot +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/locale/en/LC_MESSAGES/django.mo +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/locale/en/LC_MESSAGES/django.po +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/locale/es/LC_MESSAGES/django.mo +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/locale/es/LC_MESSAGES/django.po +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/locale/fr_FR/LC_MESSAGES/django.mo +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/locale/fr_FR/LC_MESSAGES/django.po +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/locale/it_IT/LC_MESSAGES/django.mo +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/locale/it_IT/LC_MESSAGES/django.po +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/locale/ja/LC_MESSAGES/django.mo +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/locale/ja/LC_MESSAGES/django.po +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/locale/ko_KR/LC_MESSAGES/django.mo +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/locale/ko_KR/LC_MESSAGES/django.po +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/locale/ru/LC_MESSAGES/django.mo +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/locale/ru/LC_MESSAGES/django.po +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/locale/uk/LC_MESSAGES/django.mo +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/locale/uk/LC_MESSAGES/django.po +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/locale/zh_Hans/LC_MESSAGES/django.po +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/management/commands/__init__.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/management/commands/structures_load_eve.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/management/commands/structures_preload_eveuniverse.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/management/commands/structures_update_poco_planets.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/managers.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/migrations/0001_initial_new.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/migrations/0002_remove_eveuniverse_relation_names.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/migrations/0003_add_localization_and_unique_key.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/migrations/0004_improve_localization.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/migrations/0005_add_notification_types.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/migrations/0006_add_ownercharacter_disabled.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/migrations/__init__.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/models/__init__.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/models/eveuniverse.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/models/owners.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/models/structures_1.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/models/structures_2.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/providers.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/css/global.css +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/css/main.css +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/css/public.css +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/css/statistics.css +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/css/structures.css +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/bars-rotate-fade-black-36.svg +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/bars-rotate-fade-white-36.svg +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/eve_symbol_128.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/0h.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/0l.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/0m.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/0r.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/0s.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/1h.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/1l.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/1m.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/1r.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/2h.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/2l.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/2m.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/2r.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/3h.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/3l.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/3m.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/3r.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/4h.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/4l.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/4m.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/4s.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/5h.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/5l.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/5m.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/5s.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/6h.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/6l.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/6m.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/7h.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/7l.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/7m.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/8h.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/8l.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/8m.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/blank.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/circle.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/dustwheel.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/h.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/l.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/m.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/noship.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/r.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/tyrannis.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/tyrannis_blue.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/tyrannis_darkred.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/tyrannis_default.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/tyrannis_revelations.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/structures_logo.png +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/js/global.js +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/js/public.js +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/js/statistics.js +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/js/structures.js +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/vendor/datatables/plugins/dataTables.rowGroup.min.js +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/vendor/datatables/plugins/datetime.js +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/vendor/datatables/plugins/filterDropDown.min.js +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/vendor/datatables/plugins/rowGroup.bootstrap.min.css +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/vendor/datatables/plugins/rowGroup.dataTables.min.css +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tasks.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/templates/structures/base.html +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/templates/structures/modals/fitting_assets.html +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/templates/structures/modals/fitting_gfx.html +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/templates/structures/modals/poco_details.html +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/templates/structures/modals/starbase_detail.html +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/templates/structures/modals/structure_details.html +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/templates/structures/modals/tab_general_detail.html +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/templates/structures/modals/tab_services_detail.html +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/templates/structures/partials/menu.html +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/templates/structures/partials/public/poco_list.html +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/templates/structures/partials/statistics/structure_summary.html +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/templates/structures/partials/structures/active_tags.html +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/templates/structures/partials/structures/jump_gates_list.html +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/templates/structures/partials/structures/poco_list.html +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/templates/structures/partials/structures/starbase_list.html +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/templates/structures/partials/structures/structure_list.html +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/templates/structures/public.html +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/templates/structures/statistics.html +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/templates/structures/structures.html +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/templates/structures/templatetags/detail_title.html +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/templates/structures/templatetags/list_asset.html +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/templates/structures/templatetags/list_item.html +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/templates/structures/templatetags/list_tax_item.html +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/templates/structures/templatetags/list_title.html +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/templatetags/__init__.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/templatetags/structures.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/__init__.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/core/__init__.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/core/notification_embeds/__init__.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/core/notification_embeds/test_helpers.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/core/test_notification_structuretimers.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/core/test_notification_types.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/core/test_notifications_timerboard.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/core/test_serializers.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/core/test_sovereignty.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/core/test_starbases.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/integration/__init__.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/integration/test_tasks.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/integration/test_views.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/models/__init__.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/models/test_eveuniverse.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/models/test_notifications_1.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/models/test_notifications_2.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/models/test_notifications_3.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/models/test_owners_1.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/models/test_owners_2.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/models/test_owners_3.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/models/test_owners_4.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/models/test_owners_5.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/models/test_owners_6.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/models/test_structures.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/test_admin.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/test_helpers.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/test_managers_1.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/test_managers_2.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/test_tasks.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/testdata/__init__.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/testdata/create_eveuniverse.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/testdata/entities.json +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/testdata/esi_data.json +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/testdata/eveuniverse.json +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/testdata/factories.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/testdata/generate_notifications.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/testdata/generate_notifications_2.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/testdata/generate_structures.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/testdata/helpers.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/testdata/load_eveuniverse.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/testdata/tasks_loadtest.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/testdata/test_generate_structures.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/views/__init__.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/views/test_public.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/views/test_service_status.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/views/test_statistics.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/views/test_structures.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/views/utils.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/urls.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/views/__init__.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/views/common.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/views/public.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/views/statistics.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/views/status.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/views/structures.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/webhooks/__init__.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/webhooks/core.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/webhooks/managers.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/webhooks/models.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/webhooks/tests/__init__.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/webhooks/tests/test_core.py +0 -0
- {aa_structures-2.11.0 → aa_structures-2.12.0}/structures/webhooks/tests/test_utils.py +0 -0
@@ -10,6 +10,8 @@ import dhooks_lite
|
|
10
10
|
from django.conf import settings
|
11
11
|
from django.utils.translation import gettext as _
|
12
12
|
|
13
|
+
from allianceauth.services.hooks import get_extension_logger
|
14
|
+
from app_utils.logging import LoggerAddTag
|
13
15
|
from app_utils.urls import reverse_absolute, static_file_absolute_url
|
14
16
|
|
15
17
|
from structures import __title__
|
@@ -19,6 +21,8 @@ from structures.models.notifications import Notification, NotificationBase, Webh
|
|
19
21
|
|
20
22
|
from .helpers import target_datetime_formatted
|
21
23
|
|
24
|
+
logger = LoggerAddTag(get_extension_logger(__name__), __title__)
|
25
|
+
|
22
26
|
|
23
27
|
class NotificationBaseEmbed:
|
24
28
|
"""Base class for all notification embeds.
|
@@ -141,6 +145,20 @@ class NotificationBaseEmbed:
|
|
141
145
|
footer_text += f" #{my_text}"
|
142
146
|
footer_icon_url = footer_icon_url if is_absolute_url(footer_icon_url) else None
|
143
147
|
footer = dhooks_lite.Footer(text=footer_text, icon_url=footer_icon_url)
|
148
|
+
max_description = dhooks_lite.Embed.MAX_DESCRIPTION
|
149
|
+
if self._description and len(self._description) > max_description:
|
150
|
+
logger.warning(
|
151
|
+
"%s: Description of notification is too long: %s",
|
152
|
+
self,
|
153
|
+
self._description,
|
154
|
+
)
|
155
|
+
self._description = self._description[:max_description]
|
156
|
+
max_title = dhooks_lite.Embed.MAX_TITLE
|
157
|
+
if self._title and len(self._title) > max_title:
|
158
|
+
logger.warning(
|
159
|
+
"%s: Title of notification is too long: %s", self, self._title
|
160
|
+
)
|
161
|
+
self._title = self._title[:max_title]
|
144
162
|
return dhooks_lite.Embed(
|
145
163
|
author=author,
|
146
164
|
color=self._color,
|
@@ -410,11 +410,15 @@ class NotificationBase(models.Model):
|
|
410
410
|
try:
|
411
411
|
embed, ping_type = self._generate_embed(webhook.language_code)
|
412
412
|
except OSError as ex:
|
413
|
-
logger.
|
413
|
+
logger.error("%s: Failed to generate embed: %s", self, ex, exc_info=True)
|
414
414
|
return False
|
415
415
|
|
416
416
|
content = self._create_content_with_pings(webhook, ping_type)
|
417
417
|
content += self._add_discord_group_pings(webhook)
|
418
|
+
max_content = dhooks_lite.Webhook.MAX_CHARACTERS
|
419
|
+
if content and len(content) > max_content:
|
420
|
+
logger.error("%s: Content of notification is too long: %s", self, content)
|
421
|
+
return False
|
418
422
|
|
419
423
|
username, avatar_url = self._gen_avatar()
|
420
424
|
new_queue_size = webhook.send_message(
|
{aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/core/notification_embeds/test_main.py
RENAMED
@@ -240,6 +240,26 @@ class TestNotificationEmbedsGenerate(TestCase):
|
|
240
240
|
self.assertEqual(discord_embed.footer.text, "Structures")
|
241
241
|
self.assertIn("structures_logo.png", discord_embed.footer.icon_url)
|
242
242
|
|
243
|
+
def test_should_not_break_with_too_large_description(self):
|
244
|
+
# given
|
245
|
+
notification = Notification.objects.get(notification_id=1000000403)
|
246
|
+
notification_embed = NotificationBaseEmbed.create(notification)
|
247
|
+
notification_embed._description = "x" * 2049
|
248
|
+
# when
|
249
|
+
discord_embed = notification_embed.generate_embed()
|
250
|
+
# then
|
251
|
+
self.assertIsInstance(discord_embed, dhooks_lite.Embed)
|
252
|
+
|
253
|
+
def test_should_not_break_with_too_large_title(self):
|
254
|
+
# given
|
255
|
+
notification = Notification.objects.get(notification_id=1000000403)
|
256
|
+
notification_embed = NotificationBaseEmbed.create(notification)
|
257
|
+
notification_embed._title = "x" * 257
|
258
|
+
# when
|
259
|
+
discord_embed = notification_embed.generate_embed()
|
260
|
+
# then
|
261
|
+
self.assertIsInstance(discord_embed, dhooks_lite.Embed)
|
262
|
+
|
243
263
|
|
244
264
|
class TestNotificationEmbedsClasses(NoSocketsTestCase):
|
245
265
|
@classmethod
|
{aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/models/test_notifications_discord.py
RENAMED
@@ -33,6 +33,7 @@ if "discord" in app_labels():
|
|
33
33
|
super().setUpClass()
|
34
34
|
load_eveuniverse()
|
35
35
|
load_eve_entities()
|
36
|
+
|
36
37
|
cls.group_1 = Group.objects.create(name="Dummy Group 1")
|
37
38
|
cls.group_2 = Group.objects.create(name="Dummy Group 2")
|
38
39
|
cls.owner = OwnerFactory()
|
@@ -140,3 +141,23 @@ if "discord" in app_labels():
|
|
140
141
|
self.assertTrue(mock_import_discord.called)
|
141
142
|
_, kwargs = mock_send_message.call_args
|
142
143
|
self.assertFalse(re.search(r"(<@&\d+>)", kwargs["content"]))
|
144
|
+
|
145
|
+
def test_should_abort_when_content_is_too_large(
|
146
|
+
self, mock_send_message, mock_import_discord
|
147
|
+
):
|
148
|
+
# given
|
149
|
+
mock_send_message.return_value = 1
|
150
|
+
mock_import_discord.return_value.objects.group_to_role.side_effect = (
|
151
|
+
self._my_group_to_role
|
152
|
+
)
|
153
|
+
webhook = WebhookFactory()
|
154
|
+
for i in range(286):
|
155
|
+
group = Group.objects.create(name=f"Group {i+1}")
|
156
|
+
webhook.ping_groups.add(group)
|
157
|
+
obj = clone_notification(
|
158
|
+
Notification.objects.get(notification_id=1000000509)
|
159
|
+
)
|
160
|
+
# when
|
161
|
+
result = obj.send_to_webhook(webhook)
|
162
|
+
# then
|
163
|
+
self.assertFalse(result)
|
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.11.0 → aa_structures-2.12.0}/structures/core/notification_embeds/__init__.py
RENAMED
File without changes
|
{aa_structures-2.11.0 → aa_structures-2.12.0}/structures/core/notification_embeds/billing_embeds.py
RENAMED
File without changes
|
File without changes
|
{aa_structures-2.11.0 → aa_structures-2.12.0}/structures/core/notification_embeds/helpers.py
RENAMED
File without changes
|
File without changes
|
{aa_structures-2.11.0 → aa_structures-2.12.0}/structures/core/notification_embeds/orbital_embeds.py
RENAMED
File without changes
|
{aa_structures-2.11.0 → aa_structures-2.12.0}/structures/core/notification_embeds/sov_embeds.py
RENAMED
File without changes
|
File without changes
|
{aa_structures-2.11.0 → aa_structures-2.12.0}/structures/core/notification_embeds/tower_embeds.py
RENAMED
File without changes
|
{aa_structures-2.11.0 → aa_structures-2.12.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.11.0 → aa_structures-2.12.0}/structures/locale/zh_Hans/LC_MESSAGES/django.mo
RENAMED
File without changes
|
{aa_structures-2.11.0 → aa_structures-2.12.0}/structures/locale/zh_Hans/LC_MESSAGES/django.po
RENAMED
File without changes
|
File without changes
|
{aa_structures-2.11.0 → aa_structures-2.12.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.11.0 → aa_structures-2.12.0}/structures/migrations/0004_improve_localization.py
RENAMED
File without changes
|
{aa_structures-2.11.0 → aa_structures-2.12.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
|
{aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/css/statistics.css
RENAMED
File without changes
|
{aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/css/structures.css
RENAMED
File without changes
|
File without changes
|
File without changes
|
{aa_structures-2.11.0 → aa_structures-2.12.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.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/blank.png
RENAMED
File without changes
|
{aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/circle.png
RENAMED
File without changes
|
{aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/dustwheel.png
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{aa_structures-2.11.0 → aa_structures-2.12.0}/structures/static/structures/img/panel/noship.png
RENAMED
File without changes
|
File without changes
|
{aa_structures-2.11.0 → aa_structures-2.12.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.11.0 → aa_structures-2.12.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.11.0 → aa_structures-2.12.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
|
File without changes
|
File without changes
|
{aa_structures-2.11.0 → aa_structures-2.12.0}/structures/templates/structures/statistics.html
RENAMED
File without changes
|
{aa_structures-2.11.0 → aa_structures-2.12.0}/structures/templates/structures/structures.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.11.0 → aa_structures-2.12.0}/structures/tests/core/notification_embeds/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/core/test_notification_types.py
RENAMED
File without changes
|
{aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/core/test_notifications_timerboard.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.11.0 → aa_structures-2.12.0}/structures/tests/models/test_notifications_1.py
RENAMED
File without changes
|
{aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/models/test_notifications_2.py
RENAMED
File without changes
|
{aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/models/test_notifications_3.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.11.0 → aa_structures-2.12.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.11.0 → aa_structures-2.12.0}/structures/tests/testdata/generate_notifications.py
RENAMED
File without changes
|
{aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/testdata/generate_notifications_2.py
RENAMED
File without changes
|
{aa_structures-2.11.0 → aa_structures-2.12.0}/structures/tests/testdata/generate_structures.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{aa_structures-2.11.0 → aa_structures-2.12.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
|
File without changes
|