Source code for oioioi.maintenancemode.views
from django.http import HttpResponseRedirect
from django.shortcuts import render
from oioioi.base.permissions import enforce_condition, is_superuser
from oioioi.maintenancemode.models import (
get_maintenance_mode,
is_maintenance_mode_enabled,
set_maintenance_mode,
)
[docs]def maintenance_view(request):
# We don't want users to access maintenance site
# when maintenance is disabled.
if not is_maintenance_mode_enabled():
return HttpResponseRedirect('/')
maintenance_info = get_maintenance_mode()
return render(request, 'maintenance.html', {'message': maintenance_info['message']})
@enforce_condition(is_superuser)
[docs]def set_maintenance_mode_view(request):
if request.method == 'POST':
if 'set_button' in request.POST:
message = request.POST['message']
set_maintenance_mode(True, message)
elif 'turn_off_button' in request.POST:
set_maintenance_mode(False)
maintenance_info = get_maintenance_mode()
return render(
request,
'set_maintenance.html',
{
'message': maintenance_info['message'],
'state': maintenance_info['state'],
},
)