complete dualis async

This commit is contained in:
2024-04-09 00:16:59 +02:00
parent 211ec18887
commit 490ee7f02f
5 changed files with 114 additions and 63 deletions

View File

@ -51,24 +51,26 @@ def welcome():
@app.route("/theorie/noten", methods=["GET", "POST"])
@login_required
def displayNoten():
async def displayNoten():
"""
Zeigt die Noten aus Dualis an. Hierfür ist ein aktives Token nötig.
:return HTML:
"""
d = Dualis.query.filter_by(uid=current_user.id).first()
if request.method == "POST":
d.result_list = request.form.get("sem")
d.semester = request.form.get("sem")
db.session.commit()
if not d.result_list:
if not d.semester:
return redirect(url_for("getSemester", next=url_for(request.endpoint)))
t = d.token
sem = d.result_list
chosensemester = d.semester
c = request.cookies.get("cnsc")
timeout = fetchDUALIS.timeOut(d, c, "displayNoten")
if timeout:
return timeout
return render_template("noten.html", noten=fetchDUALIS.getResults(t, c, sem), semester=fetchDUALIS.getSem(t, c), sel=sem, s="n", praxis="hidden")
semester = requesthelpers.semesterlist(current_user.id)
noten = await fetchDUALIS.getResults(t, c, chosensemester)
return render_template("noten.html", noten=noten, semester=semester, sel=chosensemester, s="n", praxis="hidden")
@app.route("/plan", methods=["GET"])
@ -137,7 +139,7 @@ def redKurs():
@app.route("/set-up/kurs")
@login_required
def getKurs():
async def getKurs():
"""
Automatische Kurs-Auswahl. \n
Aktives Dualis-Token benötigt.
@ -151,7 +153,7 @@ def getKurs():
return timeout
e = False
if not current_user.kurs:
kurs = fetchDUALIS.getKurs(d.token, cookie)
kurs = await fetchDUALIS.getKurs(d.token, cookie)
if kurs != 0:
if not fetchRAPLA.getIcal(kurs):
return render_template('kurs.html', detected=(kurs, e), s="s", theorie="hidden", praxis="hidden",
@ -172,15 +174,23 @@ def getKurs():
@app.route("/set-up/semester")
@login_required
def getSemester():
async def getSemester():
"""
Manuelle Semester-Auswahl.
:return HTML:
"""
t = Dualis.query.filter_by(uid=current_user.id).first().token
c = request.cookies.get("cnsc")
return render_template("semester.html", semester=fetchDUALIS.getSem(t, c), s="s", theorie="hidden", praxis="hidden")
semesterlist = Semesterlist.query.filter_by(uid=current_user.id).all()
if not semesterlist:
semester = await fetchDUALIS.getSem(t, c)
for i in semester:
semitem = Semesterlist(semestername=i[0], semesterid=i[1], uid=current_user.id, itemid=current_user.id*int(i[1][-7:])//1000000)
db.session.add(semitem)
db.session.commit()
else:
semester = requesthelpers.semesterlist(current_user.id)
return render_template("semester.html", semester=semester, s="s", theorie="hidden", praxis="hidden")
@app.route("/set-up/semester", methods=["POST"])
@ -194,7 +204,7 @@ def setSemester():
if not n:
n = url_for("welcome")
d = Dualis.query.filter_by(uid=current_user.id).first()
d.result_list = request.form.get("sem")
d.semester = request.form.get("sem")
db.session.commit()
return redirect(n)
@ -271,7 +281,7 @@ async def login_post():
db.session.commit()
login_user(user)
if user.kurs:
if not dualis.result_list:
if not dualis.semester:
success = make_response(redirect(url_for("getSemester")))
elif not n:
success = make_response(redirect(url_for("welcome")))
@ -297,14 +307,14 @@ async def login_post():
@app.route("/log-out")
@login_required
def logout():
async def logout():
"""
Loggt den User aus.
:return Empty Token:
"""
cookie = request.cookies.get("cnsc")
dualis = Dualis.query.filter_by(uid=current_user.id).first()
fetchDUALIS.logOut(dualis.token, cookie)
await fetchDUALIS.logOut(dualis.token, cookie)
dualis.token = None
db.session.commit()
logout_user()