Снова улучшения и добавления

This commit is contained in:
2025-11-14 11:41:19 +03:00
parent 6a26991dc0
commit d61236dee2
12 changed files with 345 additions and 21 deletions

View File

@@ -310,9 +310,21 @@ class TransponderDataAPIView(LoginRequiredMixin, View):
try:
transponder = Transponders.objects.select_related(
'sat_id',
'polarization'
'polarization',
'created_by__user'
).get(id=transponder_id)
# Format created_at date
created_at_str = '-'
if transponder.created_at:
local_time = timezone.localtime(transponder.created_at)
created_at_str = local_time.strftime("%d.%m.%Y %H:%M")
# Get created_by username
created_by_str = '-'
if transponder.created_by:
created_by_str = str(transponder.created_by)
data = {
'id': transponder.id,
'name': transponder.name or '-',
@@ -323,6 +335,9 @@ class TransponderDataAPIView(LoginRequiredMixin, View):
'polarization': transponder.polarization.name if transponder.polarization else '-',
'zone_name': transponder.zone_name or '-',
'transfer': f"{transponder.transfer:.3f}" if transponder.transfer else None,
'snr': f"{transponder.snr:.1f}" if transponder.snr is not None else None,
'created_at': created_at_str,
'created_by': created_by_str,
}
return JsonResponse(data)

View File

@@ -53,7 +53,8 @@ class AddTranspondersView(LoginRequiredMixin, FormMessageMixin, FormView):
uploaded_file = self.request.FILES["file"]
try:
content = uploaded_file.read()
parse_transponders_from_xml(BytesIO(content))
# Передаем текущего пользователя в функцию парсинга
parse_transponders_from_xml(BytesIO(content), self.request.user.customuser)
except ValueError as e:
messages.error(self.request, f"Ошибка при чтении таблиц: {e}")
return redirect("mainapp:add_trans")

View File

@@ -520,6 +520,19 @@ class ObjItemFormView(
context["geo_form"] = GeoForm(prefix="geo")
return context
def get_object(self, queryset=None):
"""Override to add select_related for transponder."""
obj = super().get_object(queryset)
if obj and hasattr(obj, 'transponder'):
# Prefetch transponder data
obj = ObjItem.objects.select_related(
'transponder',
'transponder__sat_id',
'transponder__polarization',
'transponder__created_by__user',
).get(pk=obj.pk)
return obj
def form_valid(self, form):
# Get parameter form
@@ -658,6 +671,10 @@ class ObjItemDetailView(LoginRequiredMixin, View):
'parameter_obj__polarization',
'parameter_obj__modulation',
'parameter_obj__standard',
'transponder',
'transponder__sat_id',
'transponder__polarization',
'transponder__created_by__user',
).first()
if not obj: