Фильтр по дате ГЛ. Пока не работает

This commit is contained in:
2025-11-16 23:58:34 +03:00
parent 8994a0e500
commit c55a41f5fe
3 changed files with 104 additions and 6 deletions

View File

@@ -176,9 +176,14 @@ class SourceObjItemsAPIView(LoginRequiredMixin, View):
"""API endpoint for getting ObjItems related to a Source."""
def get(self, request, source_id):
from datetime import datetime, timedelta
from ..models import Source
try:
# Get filter parameters from query string
geo_date_from = request.GET.get("geo_date_from", "").strip()
geo_date_to = request.GET.get("geo_date_to", "").strip()
# Load Source with prefetch_related for ObjItem
source = Source.objects.prefetch_related(
'source_objitems',
@@ -198,7 +203,26 @@ class SourceObjItemsAPIView(LoginRequiredMixin, View):
).get(id=source_id)
# Get all related ObjItems, sorted by created_at
objitems = source.source_objitems.all().order_by('created_at')
objitems = source.source_objitems.all()
# Apply Geo timestamp filter if provided
if geo_date_from:
try:
geo_date_from_obj = datetime.strptime(geo_date_from, "%Y-%m-%d")
objitems = objitems.filter(geo_obj__timestamp__gte=geo_date_from_obj)
except (ValueError, TypeError):
pass
if geo_date_to:
try:
geo_date_to_obj = datetime.strptime(geo_date_to, "%Y-%m-%d")
# Add one day to include entire end date
geo_date_to_obj = geo_date_to_obj + timedelta(days=1)
objitems = objitems.filter(geo_obj__timestamp__lt=geo_date_to_obj)
except (ValueError, TypeError):
pass
objitems = objitems.order_by('created_at')
objitems_data = []
for objitem in objitems: