Добавил работу с заявками на кубсат

This commit is contained in:
2025-12-08 15:37:23 +03:00
parent 2b856ff6dc
commit 8fb8b08c93
15 changed files with 3725 additions and 8 deletions

View File

@@ -35,6 +35,8 @@ from .models import (
Band,
Source,
TechAnalyze,
SourceRequest,
SourceRequestStatusHistory,
)
from .filters import (
GeoKupDistanceFilter,
@@ -1162,3 +1164,121 @@ class TechAnalyzeAdmin(ImportExportActionModelAdmin, BaseAdmin):
},
),
)
class SourceRequestStatusHistoryInline(admin.TabularInline):
"""Inline для отображения истории статусов заявки."""
model = SourceRequestStatusHistory
extra = 0
readonly_fields = ('old_status', 'new_status', 'changed_at', 'changed_by')
can_delete = False
def has_add_permission(self, request, obj=None):
return False
@admin.register(SourceRequest)
class SourceRequestAdmin(BaseAdmin):
"""Админ-панель для модели SourceRequest."""
list_display = (
'id',
'source',
'status',
'priority',
'planned_at',
'request_date',
'gso_success',
'kubsat_success',
'points_count',
'status_updated_at',
'created_at',
'created_by',
)
list_display_links = ('id', 'source')
list_select_related = ('source', 'created_by__user', 'updated_by__user')
list_filter = (
'status',
'priority',
'gso_success',
'kubsat_success',
('planned_at', DateRangeQuickSelectListFilterBuilder()),
('request_date', DateRangeQuickSelectListFilterBuilder()),
('created_at', DateRangeQuickSelectListFilterBuilder()),
)
search_fields = (
'source__id',
'comment',
)
ordering = ('-created_at',)
readonly_fields = ('status_updated_at', 'created_at', 'created_by', 'updated_by', 'coords', 'points_count')
autocomplete_fields = ('source',)
inlines = [SourceRequestStatusHistoryInline]
fieldsets = (
(
'Основная информация',
{'fields': ('source', 'status', 'priority')},
),
(
'Даты',
{'fields': ('planned_at', 'request_date', 'status_updated_at')},
),
(
'Результаты',
{'fields': ('gso_success', 'kubsat_success')},
),
(
'Координаты',
{'fields': ('coords', 'points_count')},
),
(
'Комментарий',
{'fields': ('comment',)},
),
(
'Метаданные',
{
'fields': ('created_at', 'created_by', 'updated_by'),
'classes': ('collapse',),
},
),
)
@admin.register(SourceRequestStatusHistory)
class SourceRequestStatusHistoryAdmin(BaseAdmin):
"""Админ-панель для модели SourceRequestStatusHistory."""
list_display = (
'id',
'source_request',
'old_status',
'new_status',
'changed_at',
'changed_by',
)
list_display_links = ('id',)
list_select_related = ('source_request', 'changed_by__user')
list_filter = (
'old_status',
'new_status',
('changed_at', DateRangeQuickSelectListFilterBuilder()),
)
search_fields = (
'source_request__id',
)
ordering = ('-changed_at',)
readonly_fields = ('source_request', 'old_status', 'new_status', 'changed_at', 'changed_by')
def has_add_permission(self, request):
return False
def has_change_permission(self, request, obj=None):
return False