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":
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
from coord.models import TravellerRoute
|
||||
from coord.models import Traveller
|
||||
|
||||
|
||||
def copy_travel_dates():
|
||||
for Route in TravellerRoute.objects.all():
|
||||
Route.travel_start_date = Route.traveller.travel_start_date
|
||||
Route.travel_end_date = Route.traveller.travel_end_date
|
||||
Route.save()
|
||||
def nightly_check_active_status():
|
||||
for traveller in Traveller.objects.all():
|
||||
traveller.update_active_status()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{% extends "admin/base_site.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div><a href={% url 'settings:index' %}>Run nightly task</a></div>
|
||||
<div><a href={% url 'settings:nightly_task' %}>Run nightly task</a></div>
|
||||
<div>
|
||||
<div class="flex-container">
|
||||
<label for="id_traveller_term_cost">
|
||||
|
||||
@@ -5,6 +5,6 @@ from . import views_settings
|
||||
app_name = "settings"
|
||||
urlpatterns = [
|
||||
path('rollover', views_settings.rollover, name='rollover'),
|
||||
path('nightly_task', views_settings.nightly_task, name='nightly-task'),
|
||||
path('nightly_task', views_settings.nightly_task, name='nightly_task'),
|
||||
path('', views_settings.settings, name='index'),
|
||||
]
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from django.contrib.admin.views.decorators import staff_member_required
|
||||
from django.shortcuts import render, redirect
|
||||
|
||||
from coord.scheduled_tasks import copy_travel_dates
|
||||
from coord.scheduled_tasks import nightly_check_active_status
|
||||
from coord.utils.rollover import RolloverForm, execute_rollover
|
||||
|
||||
|
||||
@@ -23,5 +23,5 @@ def rollover(request):
|
||||
|
||||
@staff_member_required
|
||||
def nightly_task(request):
|
||||
copy_travel_dates()
|
||||
nightly_check_active_status()
|
||||
return redirect('settings:index')
|
||||
|
||||
Reference in New Issue
Block a user