Поправил геофильтр и отображения источника в отметках

This commit is contained in:
2025-11-17 10:45:32 +03:00
parent c55a41f5fe
commit f438e74946
4 changed files with 17 additions and 3 deletions

View File

@@ -32,7 +32,7 @@
<a class="nav-link" href="{% url 'mainapp:actions' %}">Действия</a> <a class="nav-link" href="{% url 'mainapp:actions' %}">Действия</a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" href="{% url 'mainapp:object_marks' %}">Отметки</a> <a class="nav-link" href="{% url 'mainapp:object_marks' %}">Наличие сигнала</a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" href="{% url 'mapsapp:3dmap' %}">3D карта</a> <a class="nav-link" href="{% url 'mapsapp:3dmap' %}">3D карта</a>

View File

@@ -150,6 +150,7 @@
<tr data-source-id="{{ source.id }}"> <tr data-source-id="{{ source.id }}">
<td class="source-info-cell" rowspan="{{ marks.count }}"> <td class="source-info-cell" rowspan="{{ marks.count }}">
<div><strong>ID:</strong> {{ source.id }}</div> <div><strong>ID:</strong> {{ source.id }}</div>
<div><strong>Имя объекта:</strong> {{ source.objitem_name }}</div>
<div><strong>Дата создания:</strong> {{ source.created_at|date:"d.m.Y H:i" }}</div> <div><strong>Дата создания:</strong> {{ source.created_at|date:"d.m.Y H:i" }}</div>
<div><strong>Кол-во объектов:</strong> {{ source.source_objitems.count }}</div> <div><strong>Кол-во объектов:</strong> {{ source.source_objitems.count }}</div>
{% if source.coords_average %} {% if source.coords_average %}
@@ -218,6 +219,7 @@
<tr data-source-id="{{ source.id }}"> <tr data-source-id="{{ source.id }}">
<td class="source-info-cell"> <td class="source-info-cell">
<div><strong>ID:</strong> {{ source.id }}</div> <div><strong>ID:</strong> {{ source.id }}</div>
<div><strong>Имя объекта:</strong> {{ source.objitem_name }}</div>
<div><strong>Дата создания:</strong> {{ source.created_at|date:"d.m.Y H:i" }}</div> <div><strong>Дата создания:</strong> {{ source.created_at|date:"d.m.Y H:i" }}</div>
<div><strong>Кол-во объектов:</strong> {{ source.source_objitems.count }}</div> <div><strong>Кол-во объектов:</strong> {{ source.source_objitems.count }}</div>
{% if source.coords_average %} {% if source.coords_average %}

View File

@@ -209,7 +209,10 @@ class SourceObjItemsAPIView(LoginRequiredMixin, View):
if geo_date_from: if geo_date_from:
try: try:
geo_date_from_obj = datetime.strptime(geo_date_from, "%Y-%m-%d") geo_date_from_obj = datetime.strptime(geo_date_from, "%Y-%m-%d")
objitems = objitems.filter(geo_obj__timestamp__gte=geo_date_from_obj) objitems = objitems.filter(
geo_obj__isnull=False,
geo_obj__timestamp__gte=geo_date_from_obj
)
except (ValueError, TypeError): except (ValueError, TypeError):
pass pass
@@ -218,7 +221,10 @@ class SourceObjItemsAPIView(LoginRequiredMixin, View):
geo_date_to_obj = datetime.strptime(geo_date_to, "%Y-%m-%d") geo_date_to_obj = datetime.strptime(geo_date_to, "%Y-%m-%d")
# Add one day to include entire end date # Add one day to include entire end date
geo_date_to_obj = geo_date_to_obj + timedelta(days=1) geo_date_to_obj = geo_date_to_obj + timedelta(days=1)
objitems = objitems.filter(geo_obj__timestamp__lt=geo_date_to_obj) objitems = objitems.filter(
geo_obj__isnull=False,
geo_obj__timestamp__lt=geo_date_to_obj
)
except (ValueError, TypeError): except (ValueError, TypeError):
pass pass

View File

@@ -46,13 +46,19 @@ class ObjectMarksListView(LoginRequiredMixin, ListView):
context['satellites'] = Satellite.objects.all().order_by('name') context['satellites'] = Satellite.objects.all().order_by('name')
# Добавить информацию о возможности редактирования для каждой отметки # Добавить информацию о возможности редактирования для каждой отметки
# и получить имя первого объекта для каждого источника
for source in context['sources']: for source in context['sources']:
# Получить имя первого объекта
first_objitem = source.source_objitems.first()
source.objitem_name = first_objitem.name if first_objitem and first_objitem.name else '-'
for mark in source.marks.all(): for mark in source.marks.all():
mark.editable = mark.can_edit() mark.editable = mark.can_edit()
return context return context
class AddObjectMarkView(LoginRequiredMixin, View): class AddObjectMarkView(LoginRequiredMixin, View):
""" """
API endpoint для добавления отметки источника. API endpoint для добавления отметки источника.