diff --git a/busManager/busManager/templates/admin/base.html b/busManager/busManager/templates/admin/base.html
index 7fd1c3f..8ec486c 100644
--- a/busManager/busManager/templates/admin/base.html
+++ b/busManager/busManager/templates/admin/base.html
@@ -14,6 +14,7 @@
Bus Roll /
Bus Routes /
Resources /
+ Settings /
+
+{% endblock %}
\ No newline at end of file
diff --git a/busManager/coord/templates/admin/settings_index.html b/busManager/coord/templates/admin/settings_index.html
new file mode 100644
index 0000000..74395f6
--- /dev/null
+++ b/busManager/coord/templates/admin/settings_index.html
@@ -0,0 +1,16 @@
+{% extends "admin/base_site.html" %}
+
+{% block content %}
+
+
+
+
+
+
+
+ Rollover
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/busManager/coord/urls_settings.py b/busManager/coord/urls_settings.py
new file mode 100644
index 0000000..447af69
--- /dev/null
+++ b/busManager/coord/urls_settings.py
@@ -0,0 +1,10 @@
+from django.urls import path
+
+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('', views_settings.settings, name='index'),
+]
diff --git a/busManager/coord/utils/rollover.py b/busManager/coord/utils/rollover.py
index ea5395b..6e65e1e 100644
--- a/busManager/coord/utils/rollover.py
+++ b/busManager/coord/utils/rollover.py
@@ -23,7 +23,7 @@ class RolloverForm(forms.Form):
agreement = forms.BooleanField(label='I have run an export/backup for travellers')
-def _rollover(exit_date):
+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")
@@ -45,16 +45,3 @@ def _rollover(exit_date):
result += Traveller.objects.filter(is_archived=False, year_level='PS').update(year_level='00')
print(f"{result} travellers modified")
-
-@staff_member_required
-def rollover(request):
- # if 'confirm' in request.POST:
- if request.method == 'POST':
- form = RolloverForm(request.POST)
- if form.is_valid():
- _rollover(form.cleaned_data['exit_date'])
- # rollover_mixin.message_user(request, "Users have been rolled over")
- return HttpResponseRedirect('/')
-
- form = RolloverForm()
- return render(request, 'admin/rollover_form.html', context={'form': form})
diff --git a/busManager/coord/utils/send_sms.py b/busManager/coord/utils/send_sms.py
index 1952cc4..e275924 100644
--- a/busManager/coord/utils/send_sms.py
+++ b/busManager/coord/utils/send_sms.py
@@ -12,7 +12,7 @@ class SMSForm(forms.Form):
def send_sms(send_sms_mixin, request, queryset):
- if 'send' in request.POST:
+ if 'confirm' in request.POST:
message = request.POST["message"]
send_to_parents = False
if request.POST.get("send_to_parents"):
@@ -26,7 +26,7 @@ def send_sms(send_sms_mixin, request, queryset):
total = 0
numbers = []
for traveller in queryset:
- if only_include_active_travellers and not traveller.is_active():
+ if only_include_active_travellers and not traveller._is_active():
continue
numbers.append(traveller.get_parsed_numbers(parents=send_to_parents, emergency=send_to_emergency_contacts))
diff --git a/busManager/coord/views_settings.py b/busManager/coord/views_settings.py
new file mode 100644
index 0000000..eb7aef7
--- /dev/null
+++ b/busManager/coord/views_settings.py
@@ -0,0 +1,27 @@
+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.utils.rollover import RolloverForm, execute_rollover
+
+
+@staff_member_required
+def settings(request):
+ return render(request, 'admin/settings_index.html')
+
+
+@staff_member_required
+def rollover(request):
+ if request.method == 'POST':
+ form = RolloverForm(request.POST)
+ if form.is_valid():
+ execute_rollover(form.cleaned_data['exit_date'])
+ return redirect('settings:index')
+
+ form = RolloverForm()
+ return render(request, 'admin/rollover_form.html', context={'form': form})
+
+@staff_member_required
+def nightly_task(request):
+ copy_travel_dates()
+ return redirect('settings:index')