Настроил сеелери, начал привязку lyngsat
This commit is contained in:
@@ -1,67 +1,67 @@
|
||||
# Django imports
|
||||
from django.contrib import admin
|
||||
|
||||
# Third-party imports
|
||||
from import_export.admin import ImportExportActionModelAdmin
|
||||
from more_admin_filters import MultiSelectRelatedDropdownFilter
|
||||
from rangefilter.filters import NumericRangeFilterBuilder
|
||||
|
||||
# Local imports
|
||||
from .models import Transponders
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# Base Admin Classes
|
||||
# ============================================================================
|
||||
|
||||
class BaseAdmin(admin.ModelAdmin):
|
||||
"""
|
||||
Базовый класс для всех admin моделей mapsapp.
|
||||
|
||||
Предоставляет общую функциональность:
|
||||
- Кнопки сохранения сверху и снизу
|
||||
- Настройка количества элементов на странице
|
||||
"""
|
||||
save_on_top = True
|
||||
list_per_page = 50
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# Admin Classes
|
||||
# ============================================================================
|
||||
|
||||
@admin.register(Transponders)
|
||||
class TranspondersAdmin(ImportExportActionModelAdmin, BaseAdmin):
|
||||
"""
|
||||
Админ-панель для модели Transponders.
|
||||
|
||||
Оптимизирована для работы с транспондерами:
|
||||
- Использует select_related для оптимизации запросов
|
||||
- Предоставляет фильтры по спутникам, поляризации и зоне
|
||||
- Поддерживает импорт/экспорт данных
|
||||
"""
|
||||
list_display = (
|
||||
"sat_id",
|
||||
"name",
|
||||
"zone_name",
|
||||
"downlink",
|
||||
"uplink",
|
||||
"frequency_range",
|
||||
"transfer",
|
||||
"polarization",
|
||||
)
|
||||
list_display_links = ("name",)
|
||||
list_select_related = ("polarization", "sat_id")
|
||||
|
||||
list_filter = (
|
||||
("polarization", MultiSelectRelatedDropdownFilter),
|
||||
("sat_id", MultiSelectRelatedDropdownFilter),
|
||||
("downlink", NumericRangeFilterBuilder()),
|
||||
("uplink", NumericRangeFilterBuilder()),
|
||||
("frequency_range", NumericRangeFilterBuilder()),
|
||||
"zone_name",
|
||||
)
|
||||
|
||||
search_fields = ("name", "sat_id__name", "zone_name")
|
||||
ordering = ("name",)
|
||||
autocomplete_fields = ("sat_id", "polarization")
|
||||
# Django imports
|
||||
from django.contrib import admin
|
||||
|
||||
# Third-party imports
|
||||
from import_export.admin import ImportExportActionModelAdmin
|
||||
from more_admin_filters import MultiSelectRelatedDropdownFilter
|
||||
from rangefilter.filters import NumericRangeFilterBuilder
|
||||
|
||||
# Local imports
|
||||
from .models import Transponders
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# Base Admin Classes
|
||||
# ============================================================================
|
||||
|
||||
class BaseAdmin(admin.ModelAdmin):
|
||||
"""
|
||||
Базовый класс для всех admin моделей mapsapp.
|
||||
|
||||
Предоставляет общую функциональность:
|
||||
- Кнопки сохранения сверху и снизу
|
||||
- Настройка количества элементов на странице
|
||||
"""
|
||||
save_on_top = True
|
||||
list_per_page = 50
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# Admin Classes
|
||||
# ============================================================================
|
||||
|
||||
@admin.register(Transponders)
|
||||
class TranspondersAdmin(ImportExportActionModelAdmin, BaseAdmin):
|
||||
"""
|
||||
Админ-панель для модели Transponders.
|
||||
|
||||
Оптимизирована для работы с транспондерами:
|
||||
- Использует select_related для оптимизации запросов
|
||||
- Предоставляет фильтры по спутникам, поляризации и зоне
|
||||
- Поддерживает импорт/экспорт данных
|
||||
"""
|
||||
list_display = (
|
||||
"sat_id",
|
||||
"name",
|
||||
"zone_name",
|
||||
"downlink",
|
||||
"uplink",
|
||||
"frequency_range",
|
||||
"transfer",
|
||||
"polarization",
|
||||
)
|
||||
list_display_links = ("name",)
|
||||
list_select_related = ("polarization", "sat_id")
|
||||
|
||||
list_filter = (
|
||||
("polarization", MultiSelectRelatedDropdownFilter),
|
||||
("sat_id", MultiSelectRelatedDropdownFilter),
|
||||
("downlink", NumericRangeFilterBuilder()),
|
||||
("uplink", NumericRangeFilterBuilder()),
|
||||
("frequency_range", NumericRangeFilterBuilder()),
|
||||
"zone_name",
|
||||
)
|
||||
|
||||
search_fields = ("name", "sat_id__name", "zone_name")
|
||||
ordering = ("name",)
|
||||
autocomplete_fields = ("sat_id", "polarization")
|
||||
|
||||
Reference in New Issue
Block a user