Cleanup Verband & list

This commit is contained in:
cgfhtw
2024-06-17 11:07:55 +02:00
parent 1036c97be7
commit 9220e1f85f
3 changed files with 71 additions and 18 deletions
@@ -183,13 +183,15 @@ class Students extends FHCAPI_Controller
*/
protected function getPrestudents($studiengang_kz, $studiensemester_kurzbz = null, $filter = null, $orgform_kurzbz = null)
{
// TODO(chris): @see: prestudent.class::loadInteressentenUndBewerber
// TODO(chris): IMPLEMENT!
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
$stdsemEsc = $this->PrestudentModel->escape($studiensemester_kurzbz);
$stdsemEsc = $studiensemester_kurzbz ? $this->PrestudentModel->escape($studiensemester_kurzbz) : 'NULL';
$selectRT = 'SELECT 1 FROM public.tbl_rt_person JOIN public.tbl_reihungstest r ON (rt_id = reihungstest_id) WHERE person_id=p.person_id AND studienplan_id IN (SELECT studienplan_id FROM lehre.tbl_studienplan JOIN lehre.tbl_studienordnung o USING(studienordnung_id) WHERE o.studiengang_kz=tbl_prestudent.studiengang_kz) AND r.studiensemester_kurzbz=' . $stdsemEsc;
$where = [];
$where = ['studiengang_kz' => $studiengang_kz];
if ($orgform_kurzbz) {
$where['ps.orgform_kurzbz'] = $orgform_kurzbz;
}
@@ -214,12 +216,12 @@ class Students extends FHCAPI_Controller
case "statusbestaetigtrtnichtangemeldet":
$where['ps.status_kurzbz'] = 'Interessent';
$where['bestaetigtam IS NOT NULL'] = null;
$this->PrestudentModel->db->where('NOT EXISTS(SELECT 1 FROM public.tbl_rt_person JOIN public.tbl_reihungstest r ON (rt_id = reihungstest_id) WHERE person_id=p.person_id AND studienplan_id IN (SELECT studienplan_id FROM lehre.tbl_studienplan JOIN lehre.tbl_studienordnung o USING(studienordnung_id) WHERE o.studiengang_kz=tbl_prestudent.studiengang_kz) AND r.studiensemester_kurzbz=' . $stdsemEsc . ')', null, false);
$this->PrestudentModel->db->where('NOT EXISTS(' . $selectRT . ')', null, false);
break;
case "statusbestaetigtrtangemeldet":
$where['ps.status_kurzbz'] = 'Interessent';
$where['bestaetigtam IS NOT NULL'] = null;
$this->PrestudentModel->db->where('EXISTS(SELECT 1 FROM public.tbl_rt_person JOIN public.tbl_reihungstest r ON (rt_id = reihungstest_id) WHERE person_id=p.person_id AND studienplan_id IN (SELECT studienplan_id FROM lehre.tbl_studienplan JOIN lehre.tbl_studienordnung o USING(studienordnung_id) WHERE o.studiengang_kz=tbl_prestudent.studiengang_kz) AND r.studiensemester_kurzbz=' . $stdsemEsc . ')', null, false);
$this->PrestudentModel->db->where('EXISTS(' . $selectRT . ')', null, false);
break;
case "zgv":
$this->load->model('organisation/Studiengang_model', 'StudiengangModel');
@@ -249,15 +251,33 @@ class Students extends FHCAPI_Controller
break;
case "reihungstestangemeldet":
$where['ps.status_kurzbz'] = 'Interessent';
$this->PrestudentModel->db->where('EXISTS(SELECT 1 FROM public.tbl_rt_person JOIN public.tbl_reihungstest r ON (rt_id = reihungstest_id) WHERE person_id=p.person_id AND studienplan_id IN (SELECT studienplan_id FROM lehre.tbl_studienplan JOIN lehre.tbl_studienordnung o USING(studienordnung_id) WHERE o.studiengang_kz=tbl_prestudent.studiengang_kz) AND r.studiensemester_kurzbz=' . $stdsemEsc . ')', null, false);
$this->PrestudentModel->db->where('EXISTS(' . $selectRT . ')', null, false);
break;
case "reihungstestnichtangemeldet":
$where['ps.status_kurzbz'] = 'Interessent';
$this->PrestudentModel->db->where('NOT EXISTS(SELECT 1 FROM public.tbl_rt_person JOIN public.tbl_reihungstest r ON (rt_id = reihungstest_id) WHERE person_id=p.person_id AND studienplan_id IN (SELECT studienplan_id FROM lehre.tbl_studienplan JOIN lehre.tbl_studienordnung o USING(studienordnung_id) WHERE o.studiengang_kz=tbl_prestudent.studiengang_kz) AND r.studiensemester_kurzbz=' . $stdsemEsc . ')', null, false);
$this->PrestudentModel->db->where('NOT EXISTS(' . $selectRT . ')', null, false);
break;
case "bewerber":
$where['ps.status_kurzbz'] = 'Bewerber';
break;
case "bewerberrtnichtangemeldet":
$where['ps.status_kurzbz'] = 'Bewerber';
$this->PrestudentModel->db->where('NOT EXISTS(' . $selectRT . ')', null, false);
break;
case "bewerberrtangemeldet":
$where['ps.status_kurzbz'] = 'Bewerber';
$this->PrestudentModel->db->where('EXISTS(' . $selectRT . ')', null, false);
break;
case "bewerberrtangemeldetteilgenommen":
$where['ps.status_kurzbz'] = 'Bewerber';
$this->PrestudentModel->db->where('EXISTS(' . $selectRT . ')', null, false);
$where['reihungstestangetreten'] = true;
break;
case "bewerberrtangemeldetnichtteilgenommen":
$where['ps.status_kurzbz'] = 'Bewerber';
$this->PrestudentModel->db->where('EXISTS(' . $selectRT . ')', null, false);
$where['reihungstestangetreten'] = false;
break;
case "aufgenommen":
$where['ps.status_kurzbz'] = 'Aufgenommener';
break;
@@ -267,6 +287,10 @@ class Students extends FHCAPI_Controller
case "absage":
$where['ps.status_kurzbz'] = 'Abgewiesener';
break;
case "incoming":
// NOTE(chris): in FAS it was not filtered for studiengang_kz
$where['ps.status_kurzbz'] = 'Incoming';
break;
case "absolvent":
$where['ps.status_kurzbz'] = 'Absolvent';
break;
@@ -275,8 +299,6 @@ class Students extends FHCAPI_Controller
break;
default:
if (!$studiensemester_kurzbz) {
// TODO(chris): should work ... needs testing
// we want all prestudents without status?
$where['ps.status_kurzbz'] = null;
} else {
$this->PrestudentModel->db->where_in('ps.status_kurzbz', [
@@ -315,7 +337,7 @@ class Students extends FHCAPI_Controller
$this->PrestudentModel->addSelect('tbl_prestudent.studiengang_kz');
$this->PrestudentModel->addSelect('aufmerksamdurch_kurzbz');
$this->PrestudentModel->addSelect('mentor');
$this->PrestudentModel->addSelect('FALSE AS bnaktiv', false);
$this->PrestudentModel->addSelect('NULL AS bnaktiv', false);
$this->PrestudentModel->addSelect(
"(SELECT kontakt FROM public.tbl_kontakt WHERE kontakttyp='email' AND person_id=p.person_id AND zustellung LIMIT 1) AS email_privat",
false
@@ -333,12 +355,12 @@ class Students extends FHCAPI_Controller
$this->PrestudentModel->addSelect('tbl_prestudent.priorisierung');
$this->PrestudentModel->addSelect('p.zugangscode');
$this->PrestudentModel->addSelect('p.bpk');
$this->PrestudentModel->addOrder('nachname');
$this->PrestudentModel->addOrder('vorname');
$this->addFilter($studiensemester_kurzbz);
$result = $this->PrestudentModel->loadWhere($where);
$data = $this->getDataOrTerminateWithError($result);
@@ -393,12 +393,12 @@ class Verband extends FHCAPI_Controller
'children' => [
[
'name' => 'Nicht zum Reihungstest angemeldet',
'link' => $intlink . '/statusbestaetigt/reihungstestnichtangemeldet',
'link' => $intlink . '/statusbestaetigtrtnichtangemeldet',
'leaf' => true
],
[
'name' => 'Reihungstest angemeldet',
'link' => $intlink . '/statusbestaetigt/reihungstestangemeldet',
'link' => $intlink . '/statusbestaetigtrtangemeldet',
'leaf' => true
]
]
@@ -421,7 +421,33 @@ class Verband extends FHCAPI_Controller
'name' => 'Bewerber',
'link' => $semlink . '/bewerber',
'stg_kz' => $studiengang_kz,
'leaf' => true
'children' => [
[
'name' => 'Nicht zum Reihungstest angemeldet',
'link' => $intlink . '/bewerberrtnichtangemeldet',
'stg_kz' => $studiengang_kz,
'leaf' => true
],
[
'name' => 'Reihungstest angemeldet',
'link' => $intlink . '/bewerberrtangemeldet',
'stg_kz' => $studiengang_kz,
'children' => [
[
'name' => 'Teilgenommen',
'link' => $intlink . '/bewerberrtangemeldetteilgenommen',
'stg_kz' => $studiengang_kz,
'leaf' => true
],
[
'name' => 'Nicht teilgenommen',
'link' => $intlink . '/bewerberrtangemeldetnichtteilgenommen',
'stg_kz' => $studiengang_kz,
'leaf' => true
]
]
]
]
],
[
'name' => 'Aufgenommen',
@@ -32,7 +32,7 @@ export default {
{title:"TitelPost", field:"titelpost"},
{title:"SVNR", field:"svnr"},
{title:"Ersatzkennzeichen", field:"ersatzkennzeichen"},
{title:"Geburtsdatum", field:"geburtsdatum_iso"},
{title:"Geburtsdatum", field:"gebdatum"},
{title:"Geschlecht", field:"geschlecht"},
{title:"Sem.", field:"semester"},
{title:"Verb.", field:"verband"},
@@ -60,9 +60,14 @@ export default {
{title:"PreStudentInnenID", field:"prestudent_id"},
{title:"Priorität", field:"priorisierung_realtiv"},
{title:"Mentor", field:"mentor", visible:false},
{title:"Aktiv", field:"aktiv", visible:false},
{title:"Aktiv", field:"bnaktiv", visible:false},
{title:"GeburtsdatumISO", field:"geburtsdatum_iso", visible:false},
],
rowFormatter(row) {
if (row.getData().bnaktiv === false) {
row.getElement().classList.add('text-muted');
}
},
ajaxResponse: (url, params, response) => response.data,