Files
@ 275690f3bbdc
Branch filter:
Location: C3L-NOC/spaceapi/spaceapi/views.py
275690f3bbdc
3.0 KiB
text/x-python
Black autoformat
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | from flask import (
Blueprint,
abort,
current_app,
jsonify,
redirect,
render_template,
request,
url_for,
)
from .auth import httpauth
from .utils import ActiveStatus, ActiveStatusv14, request_wants_json
root_views = Blueprint("root", __name__)
@root_views.route("/")
def index():
if request_wants_json():
return jsonify(ActiveStatus())
return render_template("index.html", status=ActiveStatus())
@root_views.route("/status.json")
def status_json():
return jsonify(ActiveStatus())
@root_views.route("/v14/status.json")
def v14_json():
return jsonify(ActiveStatusv14())
@root_views.route("/reload")
@httpauth.login_required
def reload():
active = ActiveStatus()
active.reload()
return jsonify(active)
@root_views.route("/v14/reload")
@httpauth.login_required
def v14_reload():
active = ActiveStatusv14()
active.reload()
return jsonify(active)
@root_views.route("/open", methods=("GET", "POST"))
@httpauth.login_required
def open():
if request.method == "POST":
active = ActiveStatus()
activev14 = ActiveStatusv14()
try:
if (
httpauth.username()
in current_app.config["STATE_TRIGGER_PERSON_ALLOWED"]
):
trigger_person = httpauth.username()
else:
trigger_person = None
except KeyError:
trigger_person = None
if "close" in request.form:
new_state = False
elif "open" in request.form:
new_state = True
if "message" in request.form:
message = request.form.get("message")
else:
message = None
active.set_new_state(
value=new_state, trigger_person=trigger_person, message=message
)
activev14.set_new_state(
value=new_state, trigger_person=trigger_person, message=message
)
active.save_last_state()
activev14.save_last_state()
return redirect(url_for("root.index"))
return render_template("open.html")
@root_views.route("/present", methods=("GET", "POST"))
@httpauth.login_required
def present():
if request.method == "POST":
active = ActiveStatus()
activev14 = ActiveStatusv14()
if active["state"]["open"]:
user = (
httpauth.username()
if "user" not in request.form
else request.form["user"]
)
if "present" in request.form:
active.add_user_present(user)
activev14.add_user_present(user)
elif "leave" in request.form:
active.remove_user_present(user)
activev14.remove_user_present(user)
else:
return redirect(url_for("root.index"))
active.save_last_state()
activev14.save_last_state()
return redirect(url_for("root.index"))
return render_template("present.html")
|