Начал редактирование парсинга спутников
This commit is contained in:
@@ -573,12 +573,13 @@ class SatelliteAdmin(BaseAdmin):
|
||||
list_display = (
|
||||
"name",
|
||||
"norad",
|
||||
"international_code",
|
||||
"undersat_point",
|
||||
"launch_date",
|
||||
"created_at",
|
||||
"updated_at",
|
||||
)
|
||||
search_fields = ("name", "norad")
|
||||
search_fields = ("name", "norad", "international_code")
|
||||
ordering = ("name",)
|
||||
filter_horizontal = ("band",)
|
||||
autocomplete_fields = ("band",)
|
||||
|
||||
@@ -816,6 +816,7 @@ class SatelliteForm(forms.ModelForm):
|
||||
fields = [
|
||||
'name',
|
||||
'norad',
|
||||
'international_code',
|
||||
'band',
|
||||
'undersat_point',
|
||||
'url',
|
||||
@@ -832,6 +833,10 @@ class SatelliteForm(forms.ModelForm):
|
||||
'class': 'form-control',
|
||||
'placeholder': 'Введите NORAD ID'
|
||||
}),
|
||||
'international_code': forms.TextInput(attrs={
|
||||
'class': 'form-control',
|
||||
'placeholder': 'Например, 2011-074A'
|
||||
}),
|
||||
'band': forms.SelectMultiple(attrs={
|
||||
'class': 'form-select',
|
||||
'size': '5'
|
||||
@@ -858,6 +863,7 @@ class SatelliteForm(forms.ModelForm):
|
||||
labels = {
|
||||
'name': 'Название спутника',
|
||||
'norad': 'NORAD ID',
|
||||
'international_code': 'Международный код',
|
||||
'band': 'Диапазоны работы',
|
||||
'undersat_point': 'Подспутниковая точка (градусы)',
|
||||
'url': 'Ссылка на источник',
|
||||
@@ -867,6 +873,7 @@ class SatelliteForm(forms.ModelForm):
|
||||
help_texts = {
|
||||
'name': 'Уникальное название спутника',
|
||||
'norad': 'Идентификатор NORAD для отслеживания спутника',
|
||||
'international_code': 'Международный идентификатор спутника (например, 2011-074A)',
|
||||
'band': 'Выберите диапазоны работы спутника (удерживайте Ctrl для множественного выбора)',
|
||||
'undersat_point': 'Восточное полушарие с +, западное с -',
|
||||
'url': 'Ссылка на сайт, где можно проверить информацию',
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 5.2.7 on 2025-11-26 20:20
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('mainapp', '0014_source_note'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='satellite',
|
||||
name='international_code',
|
||||
field=models.CharField(blank=True, help_text='Международный идентификатор спутника (например, 2011-074A)', max_length=20, null=True, verbose_name='Международный код'),
|
||||
),
|
||||
]
|
||||
@@ -350,6 +350,13 @@ class Satellite(models.Model):
|
||||
verbose_name="NORAD ID",
|
||||
help_text="Идентификатор NORAD для отслеживания спутника",
|
||||
)
|
||||
international_code = models.CharField(
|
||||
max_length=50,
|
||||
blank=True,
|
||||
null=True,
|
||||
verbose_name="Международный код",
|
||||
help_text="Международный идентификатор спутника (например, 2011-074A)",
|
||||
)
|
||||
band = models.ManyToManyField(
|
||||
Band,
|
||||
related_name="bands",
|
||||
|
||||
@@ -107,17 +107,17 @@
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="mb-3">
|
||||
<label for="{{ form.band.id_for_label }}" class="form-label">
|
||||
{{ form.band.label }}
|
||||
<label for="{{ form.international_code.id_for_label }}" class="form-label">
|
||||
{{ form.international_code.label }}
|
||||
</label>
|
||||
{{ form.band }}
|
||||
{% if form.band.errors %}
|
||||
{{ form.international_code }}
|
||||
{% if form.international_code.errors %}
|
||||
<div class="invalid-feedback d-block">
|
||||
{{ form.band.errors.0 }}
|
||||
{{ form.international_code.errors.0 }}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if form.band.help_text %}
|
||||
<div class="form-text">{{ form.band.help_text }}</div>
|
||||
{% if form.international_code.help_text %}
|
||||
<div class="form-text">{{ form.international_code.help_text }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
@@ -140,6 +140,25 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="mb-3">
|
||||
<label for="{{ form.band.id_for_label }}" class="form-label">
|
||||
{{ form.band.label }}
|
||||
</label>
|
||||
{{ form.band }}
|
||||
{% if form.band.errors %}
|
||||
<div class="invalid-feedback d-block">
|
||||
{{ form.band.errors.0 }}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if form.band.help_text %}
|
||||
<div class="form-text">{{ form.band.help_text }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="mb-3">
|
||||
|
||||
@@ -200,6 +200,16 @@
|
||||
{% endif %}
|
||||
</a>
|
||||
</th>
|
||||
<th scope="col" style="min-width: 120px;">
|
||||
<a href="javascript:void(0)" onclick="updateSort('international_code')" class="text-white text-decoration-none">
|
||||
Международный код
|
||||
{% if sort == 'international_code' %}
|
||||
<i class="bi bi-arrow-up"></i>
|
||||
{% elif sort == '-international_code' %}
|
||||
<i class="bi bi-arrow-down"></i>
|
||||
{% endif %}
|
||||
</a>
|
||||
</th>
|
||||
<th scope="col" style="min-width: 120px;">Диапазоны</th>
|
||||
<th scope="col" style="min-width: 120px;">
|
||||
<a href="javascript:void(0)" onclick="updateSort('undersat_point')" class="text-white text-decoration-none">
|
||||
@@ -265,6 +275,7 @@
|
||||
<td class="text-center">{{ satellite.id }}</td>
|
||||
<td>{{ satellite.name }}</td>
|
||||
<td>{{ satellite.norad }}</td>
|
||||
<td>{{ satellite.international_code|default:"-" }}</td>
|
||||
<td>{{ satellite.bands }}</td>
|
||||
<td>{{ satellite.undersat_point }}</td>
|
||||
<td>{{ satellite.launch_date }}</td>
|
||||
@@ -296,7 +307,7 @@
|
||||
</tr>
|
||||
{% empty %}
|
||||
<tr>
|
||||
<td colspan="12" class="text-center text-muted">Нет данных для отображения</td>
|
||||
<td colspan="13" class="text-center text-muted">Нет данных для отображения</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
|
||||
@@ -139,6 +139,8 @@ class SatelliteListView(LoginRequiredMixin, View):
|
||||
"-name": "-name",
|
||||
"norad": "norad",
|
||||
"-norad": "-norad",
|
||||
"international_code": "international_code",
|
||||
"-international_code": "-international_code",
|
||||
"undersat_point": "undersat_point",
|
||||
"-undersat_point": "-undersat_point",
|
||||
"launch_date": "launch_date",
|
||||
@@ -168,6 +170,7 @@ class SatelliteListView(LoginRequiredMixin, View):
|
||||
'id': satellite.id,
|
||||
'name': satellite.name or "-",
|
||||
'norad': satellite.norad if satellite.norad else "-",
|
||||
'international_code': satellite.international_code or "-",
|
||||
'bands': ", ".join(band_names) if band_names else "-",
|
||||
'undersat_point': f"{satellite.undersat_point:.2f}" if satellite.undersat_point is not None else "-",
|
||||
'launch_date': satellite.launch_date.strftime("%d.%m.%Y") if satellite.launch_date else "-",
|
||||
|
||||
Reference in New Issue
Block a user