Визуальные изменение. Доработки и фиксы багов

This commit is contained in:
2025-12-12 15:08:10 +03:00
parent f5875e5b87
commit 9bf701f05a
26 changed files with 1923 additions and 419 deletions

View File

@@ -582,14 +582,14 @@ class KubsatFilterForm(forms.Form):
queryset=None,
label='Диапазоны работы спутника',
required=False,
widget=forms.SelectMultiple(attrs={'class': 'form-select', 'size': '4'})
widget=forms.SelectMultiple(attrs={'class': 'form-select', 'size': '5'})
)
polarization = forms.ModelMultipleChoiceField(
queryset=Polarization.objects.all().order_by('name'),
label='Поляризация',
required=False,
widget=forms.SelectMultiple(attrs={'class': 'form-select', 'size': '4'})
widget=forms.SelectMultiple(attrs={'class': 'form-select', 'size': '5'})
)
frequency_min = forms.FloatField(
@@ -620,7 +620,7 @@ class KubsatFilterForm(forms.Form):
queryset=Modulation.objects.all().order_by('name'),
label='Модуляция',
required=False,
widget=forms.SelectMultiple(attrs={'class': 'form-select', 'size': '4'})
widget=forms.SelectMultiple(attrs={'class': 'form-select', 'size': '5'})
)
object_type = forms.ModelMultipleChoiceField(
@@ -637,11 +637,18 @@ class KubsatFilterForm(forms.Form):
widget=forms.SelectMultiple(attrs={'class': 'form-select', 'size': '3'})
)
objitem_count = forms.ChoiceField(
choices=[('', 'Все'), ('1', '1'), ('2+', '2 и более')],
label='Количество привязанных точек ГЛ',
objitem_count_min = forms.IntegerField(
label='Количество привязанных точек ГЛ от',
required=False,
widget=forms.RadioSelect()
min_value=0,
widget=forms.NumberInput(attrs={'class': 'form-control', 'placeholder': 'От'})
)
objitem_count_max = forms.IntegerField(
label='Количество привязанных точек ГЛ до',
required=False,
min_value=0,
widget=forms.NumberInput(attrs={'class': 'form-control', 'placeholder': 'До'})
)
# Фиктивные фильтры
@@ -966,6 +973,26 @@ class SourceRequestForm(forms.ModelForm):
})
)
# Дополнительные поля для координат объекта
coords_object_lat = forms.FloatField(
required=False,
label='Широта объекта',
widget=forms.NumberInput(attrs={
'class': 'form-control',
'step': '0.000001',
'placeholder': 'Например: 55.751244'
})
)
coords_object_lon = forms.FloatField(
required=False,
label='Долгота объекта',
widget=forms.NumberInput(attrs={
'class': 'form-control',
'step': '0.000001',
'placeholder': 'Например: 37.618423'
})
)
class Meta:
from .models import SourceRequest
model = SourceRequest
@@ -1101,6 +1128,9 @@ class SourceRequestForm(forms.ModelForm):
if self.instance.coords_source:
self.fields['coords_source_lat'].initial = self.instance.coords_source.y
self.fields['coords_source_lon'].initial = self.instance.coords_source.x
if self.instance.coords_object:
self.fields['coords_object_lat'].initial = self.instance.coords_object.y
self.fields['coords_object_lon'].initial = self.instance.coords_object.x
def _fill_from_source(self, source):
"""Заполняет поля формы данными из источника и его связанных объектов."""
@@ -1149,6 +1179,15 @@ class SourceRequestForm(forms.ModelForm):
elif coords_source_lat is None and coords_source_lon is None:
instance.coords_source = None
# Обрабатываем координаты объекта
coords_object_lat = self.cleaned_data.get('coords_object_lat')
coords_object_lon = self.cleaned_data.get('coords_object_lon')
if coords_object_lat is not None and coords_object_lon is not None:
instance.coords_object = Point(coords_object_lon, coords_object_lat, srid=4326)
elif coords_object_lat is None and coords_object_lon is None:
instance.coords_object = None
if commit:
instance.save()