Added save task to traveller routes to update traveller active status and bulk task designed for morning automated task. Can be run manually from settings page
This commit is contained in:
+23
-13
@@ -112,11 +112,7 @@ class Shuttle(models.Model):
|
||||
return f"{self.school.shortName} <-> {self.bus.route_name}{custom_name}"
|
||||
|
||||
def traveller_count(self):
|
||||
count = 0
|
||||
for traveller in Traveller.objects.filter(shuttle=self, is_archived=False):
|
||||
if traveller._is_active():
|
||||
count += 1
|
||||
return count
|
||||
return Traveller.objects.filter(shuttle=self, is_active=True).count()
|
||||
|
||||
|
||||
class Driver(models.Model):
|
||||
@@ -260,21 +256,35 @@ class Traveller(models.Model):
|
||||
return end_date >= today
|
||||
|
||||
def update_active_status(self):
|
||||
self.travel_start_date = None
|
||||
self.travel_end_date = None
|
||||
new_start_date = None
|
||||
new_end_date = None
|
||||
|
||||
for travellerRoute in TravellerRoute.objects.filter(traveller=self):
|
||||
route_start = travellerRoute.travel_start_date
|
||||
print(route_start)
|
||||
route_end = travellerRoute.travel_end_date
|
||||
if route_start is not None:
|
||||
if self.travel_start_date is None or self.travel_start_date > route_start:
|
||||
self.travel_start_date = route_start
|
||||
if new_start_date is None or new_start_date > route_start:
|
||||
new_start_date = route_start
|
||||
if route_end is not None:
|
||||
if self.travel_end_date is None or self.travel_end_date < route_end:
|
||||
self.travel_end_date = route_end
|
||||
if new_end_date is None or new_end_date < route_end:
|
||||
new_end_date = route_end
|
||||
|
||||
self.is_active = self._is_active()
|
||||
self.save()
|
||||
updated = False
|
||||
if self.travel_start_date != new_start_date:
|
||||
self.travel_start_date = new_start_date
|
||||
updated = True
|
||||
if self.travel_end_date != new_end_date:
|
||||
self.travel_end_date = new_end_date
|
||||
updated = True
|
||||
|
||||
is_active = self._is_active()
|
||||
if self.is_active != is_active:
|
||||
self.is_active = is_active
|
||||
updated = True
|
||||
|
||||
if updated:
|
||||
self.save()
|
||||
|
||||
def fare_paying(self):
|
||||
if self.eligibility_status != "2":
|
||||
|
||||
Reference in New Issue
Block a user