diff --git a/application/config/search.php b/application/config/search.php index 1450dff7b..bedf8d888 100644 --- a/application/config/search.php +++ b/application/config/search.php @@ -210,6 +210,23 @@ $config['student'] = [ JOIN public.tbl_person p USING(person_id)" ]; +$prestudent_sort = [ + "Student", + "Incoming", + "Outgoing", + "Diplomand", + "Unterbrecher", + "Aufgenommener", + "Wartender", + "Bewerber", + "Interessent", + "Abgewiesener", + "Absolvent", + "Abbrecher", + "Ausserordentlicher", + "Praktikant" +]; +$prestudent_sort_array = "array['" . implode("','", $prestudent_sort) . "']"; $config['prestudent'] = [ 'primarykey' => 'prestudent_id', 'table' => 'public.tbl_prestudent', @@ -322,7 +339,8 @@ $config['prestudent'] = [ ), sg.orgform_kurzbz ) AS orgform", - "b.aktiv" + "b.aktiv", + "array_position(" . $prestudent_sort_array . ", public.get_rolle_prestudent(ps.prestudent_id, NULL)) AS sort" ], 'resultjoin' => " LEFT JOIN public.tbl_prestudent ps USING (prestudent_id) diff --git a/public/js/components/searchbar/result/mergedperson.js b/public/js/components/searchbar/result/mergedperson.js index 0f6f3f0ee..bb395cb45 100644 --- a/public/js/components/searchbar/result/mergedperson.js +++ b/public/js/components/searchbar/result/mergedperson.js @@ -64,7 +64,7 @@ export default { return false; } return true; - }); + }).sort((a, b) => (a.sort || 0) - (b.sort || 0)); return students.length ? students : null; }, emails() {