Снова улучшения и добавления
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user