43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
import datetime
|
|
import json
|
|
|
|
from django.contrib.admin.views.decorators import staff_member_required
|
|
from django.http import HttpResponse
|
|
from django.shortcuts import render, redirect
|
|
|
|
from coord.scheduled_tasks import nightly_check_active_status
|
|
from coord.utils.rollover import RolloverForm, execute_rollover
|
|
|
|
from coord.backup.backup_helpers import get_export_dict
|
|
|
|
|
|
@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):
|
|
nightly_check_active_status()
|
|
return redirect('settings:index')
|
|
|
|
|
|
@staff_member_required
|
|
def export(request):
|
|
date = datetime.date.today().strftime("%Y-%m-%d")
|
|
response = HttpResponse(json.dumps(get_export_dict()))
|
|
response['Content-Disposition'] = f'attachment; filename=busportal_export-{date}.json'
|
|
return response
|