Фильтр по дате ГЛ. Пока не работает
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user