Files
bus-manager/busManager/coord/utils/rollover.py
T
John Mullins 25ddf1edfa Moved active status to a database entry apposed to a function
Added settings page
Cleaned up rollover page
2023-12-21 16:14:56 +11:00

48 lines
2.5 KiB
Python

import datetime
from django import forms
from django.contrib.admin.views.decorators import staff_member_required
from django.http import HttpResponseRedirect, HttpResponse
from django.shortcuts import render
from coord.models import Traveller
# Any active year 12 without exit date set exit date before today
# Any user active user with exit date before today > Archive
# Any active user (not adult learner) increase year by 1
def previous_rollover_date():
today = datetime.date.today()
return datetime.date(year=today.year - 1, month=12, day=31)
class RolloverForm(forms.Form):
exit_date = forms.DateField(initial=previous_rollover_date)
agreement = forms.BooleanField(label='I have run an export/backup for travellers')
def execute_rollover(exit_date):
print(f"Setting exit date {exit_date}")
result = Traveller.objects.filter(year_level='12', travel_end_date=None).update(travel_end_date=exit_date)
print(f"{result} Year 12s exited")
today = datetime.date.today().strftime('%Y-%m-%d')
result = Traveller.objects.filter(travel_end_date__lt=today, is_archived=False).update(is_archived=True)
print(f"{result} travellers archived")
result = Traveller.objects.filter(is_archived=False, year_level='11').update(year_level='12')
result += Traveller.objects.filter(is_archived=False, year_level='10').update(year_level='11')
result += Traveller.objects.filter(is_archived=False, year_level='09').update(year_level='10')
result += Traveller.objects.filter(is_archived=False, year_level='08').update(year_level='09')
result += Traveller.objects.filter(is_archived=False, year_level='07').update(year_level='08')
result += Traveller.objects.filter(is_archived=False, year_level='06').update(year_level='07')
result += Traveller.objects.filter(is_archived=False, year_level='05').update(year_level='06')
result += Traveller.objects.filter(is_archived=False, year_level='04').update(year_level='05')
result += Traveller.objects.filter(is_archived=False, year_level='03').update(year_level='04')
result += Traveller.objects.filter(is_archived=False, year_level='02').update(year_level='03')
result += Traveller.objects.filter(is_archived=False, year_level='01').update(year_level='02')
result += Traveller.objects.filter(is_archived=False, year_level='00').update(year_level='01')
result += Traveller.objects.filter(is_archived=False, year_level='PS').update(year_level='00')
print(f"{result} travellers modified")