Better canceled trains display
This commit is contained in:
@ -171,18 +171,29 @@ class NextDeparturesViewSet(viewsets.ReadOnlyModelViewSet):
|
||||
.values_list('service_id', flat=True)))
|
||||
.values_list('id'))
|
||||
|
||||
def canceled_filter(d: date):
|
||||
return Q(Q(update__schedule_relationship=1) | Q(update__trip_update__schedule_relationship=3),
|
||||
Q(update__trip_update__start_date=d),
|
||||
~Q(update__departure_time=datetime.fromtimestamp(0)))
|
||||
|
||||
qs_today = StopTime.objects.filter(stop_filter) \
|
||||
.filter(Q(departure_time__gte=query_time, pickup_type=0), calendar_filter(query_date)) \
|
||||
.filter(Q(departure_time__gte=query_time)) \
|
||||
.filter(Q(pickup_type=0) | canceled_filter(query_date)) \
|
||||
.filter(calendar_filter(query_date)) \
|
||||
.annotate(departure_date=Value(query_date)) \
|
||||
.annotate(departure_time_24h=F('departure_time'))
|
||||
|
||||
qs_yesterday = StopTime.objects.filter(stop_filter) \
|
||||
.filter(Q(departure_time__gte=time_yesterday, pickup_type=0), calendar_filter(yesterday)) \
|
||||
.filter(Q(departure_time__gte=time_yesterday)) \
|
||||
.filter(Q(pickup_type=0) | canceled_filter(yesterday)) \
|
||||
.filter(calendar_filter(yesterday)) \
|
||||
.annotate(departure_date=Value(yesterday)) \
|
||||
.annotate(departure_time_24h=F('departure_time') - timedelta(days=1))
|
||||
|
||||
qs_tomorrow = StopTime.objects.filter(stop_filter) \
|
||||
.filter(Q(departure_time__gte=timedelta(0), pickup_type=0), calendar_filter(tomorrow)) \
|
||||
.filter(Q(departure_time__gte=timedelta(0))) \
|
||||
.filter(Q(pickup_type=0) | canceled_filter(tomorrow)) \
|
||||
.filter(calendar_filter(tomorrow)) \
|
||||
.annotate(departure_date=Value(tomorrow)) \
|
||||
.annotate(departure_time_24h=F('departure_time') + timedelta(days=1))
|
||||
|
||||
@ -232,18 +243,29 @@ class NextArrivalsViewSet(viewsets.ReadOnlyModelViewSet):
|
||||
.values_list('service_id', flat=True)))
|
||||
.values_list('id'))
|
||||
|
||||
def canceled_filter(d: date):
|
||||
return Q(Q(update__schedule_relationship=1) | Q(update__trip_update__schedule_relationship=3),
|
||||
Q(update__trip_update__start_date=d),
|
||||
~Q(update__arrival_time=datetime.fromtimestamp(0)))
|
||||
|
||||
qs_today = StopTime.objects.filter(stop_filter) \
|
||||
.filter(Q(arrival_time__gte=query_time, drop_off_type=0), calendar_filter(query_date)) \
|
||||
.filter(Q(departure_time__gte=query_time)) \
|
||||
.filter(Q(drop_off_type=0) | canceled_filter(query_date)) \
|
||||
.filter(calendar_filter(query_date)) \
|
||||
.annotate(arrival_date=Value(query_date)) \
|
||||
.annotate(arrival_time_24h=F('arrival_time'))
|
||||
|
||||
qs_yesterday = StopTime.objects.filter(stop_filter) \
|
||||
.filter(Q(arrival_time__gte=time_yesterday, drop_off_type=0), calendar_filter(yesterday)) \
|
||||
.filter(Q(departure_time__gte=time_yesterday)) \
|
||||
.filter(Q(drop_off_type=0) | canceled_filter(yesterday)) \
|
||||
.filter(calendar_filter(yesterday)) \
|
||||
.annotate(arrival_date=Value(yesterday)) \
|
||||
.annotate(arrival_time_24h=F('arrival_time') - timedelta(days=1))
|
||||
|
||||
qs_tomorrow = StopTime.objects.filter(stop_filter) \
|
||||
.filter(Q(arrival_time__gte=timedelta(0), drop_off_type=0), calendar_filter(tomorrow)) \
|
||||
.filter(Q(departure_time__gte=timedelta(0))) \
|
||||
.filter(Q(drop_off_type=0) | canceled_filter(tomorrow)) \
|
||||
.filter(calendar_filter(tomorrow)) \
|
||||
.annotate(arrival_date=Value(tomorrow)) \
|
||||
.annotate(arrival_time_24h=F('arrival_time') + timedelta(days=1))
|
||||
|
||||
|
Reference in New Issue
Block a user