new bootstrap offcanvas component; projektarbeit abgabetermine timeline & status legende in offcanvas; fixtermin toggle & allowed to edit all termine for assistenz; studiengang selection + filter for getSTG_isEntitledFor('basis/abgabe_assistenz:rw'); moved filedownload from Cis/Abgabetool Auth Controller to Abgabe.php Api Controller; status symbol in table columns prevTermin/nextTermin; get_betreuer_details pgsql function to avoid rewriting the same subquery for every betreuer anrede;

This commit is contained in:
Johann Hoffmann
2025-10-31 11:14:39 +01:00
parent ac1e0a8aa3
commit 3d51753419
15 changed files with 1081 additions and 230 deletions
@@ -254,3 +254,37 @@ if($result = $db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechti
echo "<br>system.tbl_berechtigung insert basis/abgabe_assistenz hinzugefuegt";
}
}
if($result = $db->db_query("SELECT 1 FROM information_schema.routines WHERE routine_schema = 'campus' AND routine_name = 'get_betreuer_details'"))
{
if($db->db_num_rows($result) === 0)
{
$qry = "CREATE OR REPLACE FUNCTION campus.get_betreuer_details(b_person_id INT)
RETURNS TABLE (
full_name TEXT
)
LANGUAGE sql
AS $$
SELECT DISTINCT
trim(
COALESCE(titelpre,'') || ' ' ||
COALESCE(vorname,'') || ' ' ||
COALESCE(nachname,'') || ' ' ||
COALESCE(titelpost,'')
) AS full_name
FROM public.tbl_person
JOIN lehre.tbl_projektbetreuer
ON lehre.tbl_projektbetreuer.person_id = public.tbl_person.person_id
LEFT JOIN public.tbl_benutzer
ON public.tbl_benutzer.person_id = public.tbl_person.person_id
LEFT JOIN public.tbl_mitarbeiter
ON public.tbl_benutzer.uid = public.tbl_mitarbeiter.mitarbeiter_uid
WHERE public.tbl_person.person_id = b_person_id;
$$;";
if(!$db->db_query($qry))
echo '<strong>campus.get_betreuer_details: '.$db->db_last_error().'</strong><br>';
else
echo "<br>campus.get_betreuer_details function hinzugefuegt";
}
}