Skip to content

Commit 6e3360e

Browse files
committed
set maintenance mode via admin
1 parent 8b91d23 commit 6e3360e

2 files changed

Lines changed: 23 additions & 6 deletions

File tree

admin/maintenance/views.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import pytz
22
import datetime
33

4-
from osf.models import MaintenanceState
4+
from osf.models import MaintenanceState, MaintenanceMode
55
import website.maintenance as maintenance
66
from admin.maintenance.forms import MaintenanceForm
77

@@ -36,15 +36,17 @@ def get_context_data(self, **kwargs):
3636
maintenance = MaintenanceState.objects.first()
3737
kwargs['form'] = MaintenanceForm()
3838
kwargs['current_alert'] = model_to_dict(maintenance) if maintenance else None
39+
kwargs['maintenance_mode'] = MaintenanceMode.is_under_maintenance()
3940
return super().get_context_data(**kwargs)
4041

4142
def post(self, request, *args, **kwargs):
4243
data = request.POST
43-
44-
start = convert_eastern_to_utc(data['start']).isoformat() if data.get('start') else None
45-
end = convert_eastern_to_utc(data['end']).isoformat() if data.get('end') else None
46-
47-
maintenance.set_maintenance(data.get('message', ''), data['level'], start, end)
44+
if maintenance_mode := data.get('maintenance_mode'):
45+
MaintenanceMode(maintenance_mode=False if maintenance_mode == 'True' else True).save()
46+
else:
47+
start = convert_eastern_to_utc(data['start']).isoformat() if data.get('start') else None
48+
end = convert_eastern_to_utc(data['end']).isoformat() if data.get('end') else None
49+
maintenance.set_maintenance(data.get('message', ''), data['level'], start, end)
4850
return redirect('maintenance:display')
4951

5052

admin/templates/maintenance/display.html

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,21 @@ <h4>Put up an alert:</h4>
6666
</form>
6767
</div>
6868
</div>
69+
70+
71+
<div class="row">
72+
<div class="col-md-9" style="margin-top: 15px;">
73+
<form action="" method="post">
74+
{% csrf_token %}
75+
<input type="hidden" name="maintenance_mode" value={{maintenance_mode}}>
76+
{% if maintenance_mode %}
77+
<input class="btn btn-success" type="submit" value="Turn off Maintenance Mode" />
78+
{% else %}
79+
<input class="btn btn-danger" type="submit" value="Turn on Maintenance Mode" />
80+
{% endif %}
81+
</form>
82+
</div>
83+
</div>
6984
{% endif %}
7085

7186
{% endblock content %}

0 commit comments

Comments
 (0)