Lektoren app-weit: Plan/Details/iCal mit type=lektor, Namenssuche (Autocomplete) für Studierende und Lektoren, Lektor-Karte mit Profil-Link
This commit is contained in:
+23
-3
@@ -133,7 +133,7 @@ def _plan_common(request, kind, uid, kz, sem, ver, grp, semester, week="", tab="
|
||||
|
||||
@app.get("/plan", response_class=HTMLResponse)
|
||||
def plan(request: Request,
|
||||
uid: str = Query("", description="Matrikelnummer"),
|
||||
uid: str = Query("", description="Matrikelnummer oder Lektor-Username (z.B. rmatzinger)"),
|
||||
semester: str = Query(""),
|
||||
week: str = Query("", description="Woche als YYYY-MM-DD (Monatag)"),
|
||||
tab: str = Query("week", description="week|sem")):
|
||||
@@ -444,6 +444,24 @@ def api_person_id(uid: str = Query(...)):
|
||||
return {"uid": uid, "person_id": client.person_id_for(uid)}
|
||||
|
||||
|
||||
@app.get("/api/benutzer")
|
||||
def api_benutzer(q: str = Query("")):
|
||||
"""Namensuche über Studierende + Lektoren (Autocomplete)."""
|
||||
q = (q or "").strip().lower()
|
||||
if len(q) < 2:
|
||||
return []
|
||||
out = []
|
||||
for b in client.benutzer_all():
|
||||
hay = f"{b['nachname']} {b['vorname']} {b['uid']}".lower()
|
||||
if q in hay:
|
||||
out.append({"uid": b["uid"],
|
||||
"name": f"{b['nachname']}, {b['vorname']}".strip(", "),
|
||||
"kind": "student" if b["uid"].isdigit() else "lektor"})
|
||||
if len(out) >= 12:
|
||||
break
|
||||
return out
|
||||
|
||||
|
||||
@app.get("/api/meta")
|
||||
def api_meta():
|
||||
return _meta()
|
||||
@@ -497,8 +515,10 @@ def export_ical(kind: str = "student",
|
||||
if x["begin"] <= datetime.now().timestamp() <= x["ende"]),
|
||||
meta["semesters"][0]))
|
||||
if kind == "student":
|
||||
ical = client.ical_raw("student", uid=uid or OWN_UID, begin=s["begin"], ende=s["ende"])
|
||||
fname = f"lvplan_{uid or OWN_UID}_{s['label']}.ics"
|
||||
uid = uid or OWN_UID
|
||||
ptype = "student" if uid.isdigit() else "lektor"
|
||||
ical = client.ical_raw(ptype, uid=uid, begin=s["begin"], ende=s["ende"])
|
||||
fname = f"lvplan_{uid}_{s['label']}.ics"
|
||||
else:
|
||||
ical = client.ical_raw("stg", kz=kz, sem=sem, ver=ver, grp=grp,
|
||||
begin=s["begin"], ende=s["ende"])
|
||||
|
||||
Reference in New Issue
Block a user