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, TravellerRoute from coord.scheduled_tasks import nightly_check_active_status # 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): result = TravellerRoute.objects.filter(traveller__year_level='12', travel_end_date=None).update(travel_end_date=exit_date) nightly_check_active_status() today = datetime.date.today().strftime('%Y-%m-%d') result = Traveller.objects.filter(is_active=True, year_level='11').update(year_level='12') result += Traveller.objects.filter(is_active=True, year_level='10').update(year_level='11') result += Traveller.objects.filter(is_active=True, year_level='09').update(year_level='10') result += Traveller.objects.filter(is_active=True, year_level='08').update(year_level='09') result += Traveller.objects.filter(is_active=True, year_level='07').update(year_level='08') result += Traveller.objects.filter(is_active=True, year_level='06').update(year_level='07') result += Traveller.objects.filter(is_active=True, year_level='05').update(year_level='06') result += Traveller.objects.filter(is_active=True, year_level='04').update(year_level='05') result += Traveller.objects.filter(is_active=True, year_level='03').update(year_level='04') result += Traveller.objects.filter(is_active=True, year_level='02').update(year_level='03') result += Traveller.objects.filter(is_active=True, year_level='01').update(year_level='02') result += Traveller.objects.filter(is_active=True, year_level='00').update(year_level='01') result += Traveller.objects.filter(is_active=True, year_level='PS').update(year_level='00')