diff --git a/application/config/studierendenantrag.php b/application/config/studierendenantrag.php
index c5ebc0d80..3f28e5d50 100644
--- a/application/config/studierendenantrag.php
+++ b/application/config/studierendenantrag.php
@@ -159,3 +159,11 @@ $config['stgkz_blacklist_unterbrechung'] = [];
* @var array An array of tbl_studiengang.studiengang_kz's
*/
$config['stgkz_blacklist_wiederholung'] = [];
+
+/**
+ * Blacklisted noten for negative committee exams
+ * noten with this ids won't be seen as negative
+ *
+ * @var array An array of noten ids
+ */
+$config['note_blacklist_wiederholung'] = [];
diff --git a/application/controllers/jobs/AntragJob.php b/application/controllers/jobs/AntragJob.php
index 3022cf549..cbd34a561 100644
--- a/application/controllers/jobs/AntragJob.php
+++ b/application/controllers/jobs/AntragJob.php
@@ -96,7 +96,7 @@ class AntragJob extends JOB_Controller
}
$stgLeitungen[$leitung->uid]['stgs'][] = $antrag->studiengang_kz;
- $result = $this->StudiengangModel->load($antrag->studiengang_kz);
+ $result = $this->StudierendenantragModel->getStgAndSem($antrag->studierendenantrag_id);
if (isError($result))
{
$this->logError(getError($result));
@@ -214,8 +214,7 @@ class AntragJob extends JOB_Controller
$count = 0;
foreach ($antraege as $antrag)
{
- $this->StudiengangModel->addJoin('public.tbl_prestudent ps','studiengang_kz');
- $res = $this->StudiengangModel->loadWhere(['prestudent_id' => $antrag->prestudent_id]);
+ $res = $this->StudierendenantragModel->getStgAndSem($antrag->studierendenantrag_id);
$stg = '';
$orgform = '';
if (hasData($res)) {
diff --git a/application/controllers/lehre/Studierendenantrag.php b/application/controllers/lehre/Studierendenantrag.php
index fb0d17abb..d6d6b2c50 100644
--- a/application/controllers/lehre/Studierendenantrag.php
+++ b/application/controllers/lehre/Studierendenantrag.php
@@ -81,42 +81,9 @@ class Studierendenantrag extends FHC_Controller
public function leitung()
{
- $studiengaenge = $this->permissionlib->getSTG_isEntitledFor('student/antragfreigabe');
- $stgsNeuanlage = $this->permissionlib->getSTG_isEntitledFor('student/studierendenantrag');
+ $stgL = $this->permissionlib->getSTG_isEntitledFor('student/antragfreigabe') ?: [];
- $stgL = [];
- if ($studiengaenge) {
- $result = $this->StudiengangModel->loadWithOrgform($studiengaenge);
- if (isError($result))
- return show_error(getError($result));
- $antraege = getData($result) ?: [];
-
- foreach ($antraege as $antrag) {
- if (!isset($stgL[$antrag->studiengang_kz])) {
- $stgL[$antrag->studiengang_kz] = new stdClass();
- $stgL[$antrag->studiengang_kz]->bezeichnung = $antrag->bezeichnung;
- $stgL[$antrag->studiengang_kz]->orgform = $antrag->orgform;
- $stgL[$antrag->studiengang_kz]->studiengang_kz = $antrag->studiengang_kz;
- }
- }
- }
-
- $stgA = [];
- if ($stgsNeuanlage) {
- $result = $this->StudiengangModel->loadWithOrgform($stgsNeuanlage);
- if (isError($result))
- return show_error(getError($result));
- $antraege = getData($result) ?: [];
-
- foreach ($antraege as $antrag) {
- if (!isset($stgA[$antrag->studiengang_kz])) {
- $stgA[$antrag->studiengang_kz] = new stdClass();
- $stgA[$antrag->studiengang_kz]->bezeichnung = $antrag->bezeichnung;
- $stgA[$antrag->studiengang_kz]->orgform = $antrag->orgform;
- $stgA[$antrag->studiengang_kz]->studiengang_kz = $antrag->studiengang_kz;
- }
- }
- }
+ $stgA = $this->permissionlib->getSTG_isEntitledFor('student/studierendenantrag') ?: [];
$this->load->view('lehre/Antrag/Leitung/List', [
'stgA' => $stgA,
diff --git a/application/libraries/AntragLib.php b/application/libraries/AntragLib.php
index 6cad6c2bf..dcc38acc7 100644
--- a/application/libraries/AntragLib.php
+++ b/application/libraries/AntragLib.php
@@ -156,7 +156,6 @@ class AntragLib
if (hasData($result)) {
$studiengang = current(getData($result));
$stg = $studiengang->bezeichnung;
- $orgform = $studiengang->orgform_kurzbz;
}
if ($antrag->typ == Studierendenantrag_model::TYP_ABMELDUNG)
{
@@ -166,6 +165,7 @@ class AntragLib
else {
$prestudent_status = getData($resultPrestudentStatus)[0];
+ $orgform = $prestudent_status->orgform_kurzbz;
$vorlage ='Sancho_Mail_Antrag_A_Approve';
$subject = $this->_ci->p->t('studierendenantrag', 'mail_subject_A_Approve');
@@ -202,14 +202,14 @@ class AntragLib
$data['UID'] = $student->student_uid;
}
- $data['Orgform'] = $orgform;
+ $data['Orgform'] = $prestudent_status->orgform;
$data['stg'] = $stg;
// NOTE(chris): Sancho mail
sendSanchoMail($vorlage, $data, $prestudent_status->email, $subject);
}
} else { // ($antrag->typ == Studierendenantrag_model::TYP_ABMELDUNG_STGL)
- $result = $this->_ci->PrestudentstatusModel->getLastStatus($antrag->prestudent_id, '', 'Student');
+ $result = $this->_ci->PrestudentstatusModel->getLastStatusWithStgEmail($antrag->prestudent_id, '', 'Student');
if (isError($result))
{
$errors[] = getError($result);
@@ -221,6 +221,7 @@ class AntragLib
continue;
}
$prestudentstatus = getData($result)[0];
+ $orgform = $prestudentstatus->orgform_kurzbz;
$result = $this->_ci->PrestudentstatusModel->withGrund('preabbrecher')->update([
'prestudent_id' => $prestudentstatus->prestudent_id,
@@ -349,8 +350,7 @@ class AntragLib
$kontakt = current(getData($res));
$email = $kontakt->kontakt;
- $this->_ci->StudiengangModel->addJoin('public.tbl_prestudent ps','studiengang_kz');
- $res = $this->_ci->StudiengangModel->loadWhere(['prestudent_id' => $antrag->prestudent_id]);
+ $res = $this->_ci->StudierendenantragModel->getStgAndSem($antrag->studierendenantrag_id);
$stg = '';
$orgform = '';
if (hasData($res)) {
@@ -555,7 +555,7 @@ class AntragLib
[
'name' => $mail['ass'],
'stg' => $data['studiengang']->bezeichnung,
- 'Orgform' => $data['studiengang']->orgform_kurzbz,
+ 'Orgform' => $data['prestudent_status']->orgform_kurzbz,
'vorname' => $data['person']->vorname,
'nachname' => $data['person']->nachname,
'UID' => $data['UID'],
@@ -579,7 +579,7 @@ class AntragLib
[
'name' => $mail['stu'],
'stg' => $data['studiengang']->bezeichnung,
- 'Orgform' => $data['studiengang']->orgform_kurzbz,
+ 'Orgform' => $data['prestudent_status']->orgform_kurzbz,
'vorname' => $data['person']->vorname,
'nachname' => $data['person']->nachname
],
@@ -673,7 +673,7 @@ class AntragLib
'nachname' => $nachname,
'grund' => $grund,
'stg' => $data['studiengang']->bezeichnung,
- 'Orgform' => $data['studiengang']->orgform_kurzbz,
+ 'Orgform' => $data['prestudent_status']->orgform_kurzbz,
'prestudent_id' => $data['prestudent_status']->prestudent_id,
'abmeldungLink' => site_url('lehre/Studierendenantrag/abmeldung/' . $data['prestudent_status']->prestudent_id),
'abmeldungLinkCIS' => CIS_ROOT . 'index.ci.php/lehre/Studierendenantrag/abmeldung/' . $data['prestudent_status']->prestudent_id
@@ -719,7 +719,6 @@ class AntragLib
else{
$result['studiengang'] = new stdClass();
$result['studiengang']->bezeichnung = "";
- $result['studiengang']->orgform_kurzbz = "";
}
$res = $this->_ci->PrestudentstatusModel->getLastStatusWithStgEmail($antrag->prestudent_id);
@@ -1540,18 +1539,9 @@ class AntragLib
if (!$result)
return error($this->_ci->p->t('studierendenantrag', 'error_no_stg_antrag', ['id' => $antrag_id]));
- $result = current($result);
- $studiengang_kz = $result->studiengang_kz;
- $semester = $result->ausbildungssemester;
-
- $result = $this->_ci->StudiengangModel->load($studiengang_kz);
- if (isError($result))
- return $result;
- $result = getData($result);
- if (!$result)
- return error($this->_ci->p->t('studierendenantrag', 'error_no_stg_antrag', ['id' => $antrag_id]));
-
$stg = current($result);
+ $studiengang_kz = $stg->studiengang_kz;
+ $semester = $stg->ausbildungssemester;
$result = $this->_ci->StudierendenantragModel->load($antrag_id);
if (isError($result))
diff --git a/application/models/crm/Prestudentstatus_model.php b/application/models/crm/Prestudentstatus_model.php
index d12ebd68d..08c081153 100644
--- a/application/models/crm/Prestudentstatus_model.php
+++ b/application/models/crm/Prestudentstatus_model.php
@@ -238,7 +238,7 @@ class Prestudentstatus_model extends DB_Model
{
$this->addSelect('tbl_prestudentstatus.*,
tbl_studienplan.bezeichnung AS studienplan_bezeichnung,
- tbl_studienplan.orgform_kurzbz AS orgform,
+ tbl_orgform.orgform_kurzbz AS orgform,
tbl_studienplan.sprache,
tbl_orgform.bezeichnung_mehrsprachig AS bezeichnung_orgform,
tbl_status.bezeichnung_mehrsprachig,
@@ -250,7 +250,7 @@ class Prestudentstatus_model extends DB_Model
$this->addJoin('public.tbl_studiengang', 'studiengang_kz', 'LEFT');
$this->addJoin('public.tbl_status', 'tbl_status.status_kurzbz = tbl_prestudentstatus.status_kurzbz');
$this->addJoin('public.tbl_status_grund', 'statusgrund_id', 'LEFT');
- $this->addJoin('bis.tbl_orgform', 'tbl_studienplan.orgform_kurzbz = tbl_orgform.orgform_kurzbz', 'LEFT');
+ $this->addJoin('bis.tbl_orgform', 'COALESCE(tbl_studienplan.orgform_kurzbz, ' . $this->dbTable . '.orgform_kurzbz, tbl_studiengang.orgform_kurzbz) = tbl_orgform.orgform_kurzbz', 'LEFT');
$this->db->where('tbl_status.status_kurzbz = tbl_prestudentstatus.status_kurzbz');
$where = array('prestudent_id' => $prestudent_id);
@@ -295,7 +295,8 @@ class Prestudentstatus_model extends DB_Model
$this->addJoin('public.tbl_studiensemester ss', 'studiensemester_kurzbz');
$this->addJoin('public.tbl_person pers', 'person_id');
$this->addJoin('public.tbl_studiengang g', 'p.studiengang_kz=g.studiengang_kz');
- $this->addJoin('bis.tbl_orgform o', 'g.orgform_kurzbz=o.orgform_kurzbz');
+ $this->addJoin('lehre.tbl_studienplan plan', 'studienplan_id', 'LEFT');
+ $this->addJoin('bis.tbl_orgform o', 'COALESCE(plan.orgform_kurzbz, ' . $this->dbTable . '.orgform_kurzbz, g.orgform_kurzbz)=o.orgform_kurzbz');
$this->addOrder($this->dbTable . '.datum', 'DESC');
$this->addOrder($this->dbTable . '.insertamum', 'DESC');
diff --git a/application/models/education/Pruefung_model.php b/application/models/education/Pruefung_model.php
index 83bf9b7f8..ef7cfc967 100644
--- a/application/models/education/Pruefung_model.php
+++ b/application/models/education/Pruefung_model.php
@@ -39,6 +39,7 @@ class Pruefung_model extends DB_Model
/**
+ * NOTE(chris): not used
* @return string
*/
protected function loadWhereThreeExamsFailed()
@@ -86,8 +87,10 @@ class Pruefung_model extends DB_Model
$this->addJoin('public.tbl_person pers', 'person_id');
$this->addJoin('public.tbl_benutzer b', 's.student_uid=b.uid');
$this->addJoin('public.tbl_studiengang g', 'ps.studiengang_kz=g.studiengang_kz');
- $this->addJoin('bis.tbl_orgform o', 'g.orgform_kurzbz=o.orgform_kurzbz');
- $this->db->join('campus.tbl_studierendenantrag a', 'ps.prestudent_id=a.prestudent_id and a.typ = ?', 'LEFT', false);
+ $this->addJoin('public.tbl_prestudentstatus pss', 'pss.prestudent_id=ps.prestudent_id AND pss.studiensemester_kurzbz=le.studiensemester_kurzbz AND pss.status_kurzbz=get_rolle_prestudent(ps.prestudent_id, le.studiensemester_kurzbz)', 'LEFT');
+ $this->addJoin('lehre.tbl_studienplan plan', 'studienplan_id', 'LEFT');
+ $this->addJoin('bis.tbl_orgform o', 'COALESCE(plan.orgform_kurzbz, pss.orgform_kurzbz, g.orgform_kurzbz)=o.orgform_kurzbz');
+ $this->db->join('campus.tbl_studierendenantrag a', 'ps.prestudent_id=a.prestudent_id and a.typ = ?', 'LEFT', false);
$this->db->where("n.positiv", false);
/* $this->db->where_in("p.pruefungstyp_kurzbz1", ['kommPruef','zusKommPruef']);*/
@@ -122,6 +125,8 @@ class Pruefung_model extends DB_Model
*/
public function loadWhereCommitteeExamsFailed()
{
+ $this->load->config('studierendenantrag');
+
$this->dbTable = 'lehre.tbl_pruefung p';
$this->addSelect('p.datum');
@@ -129,6 +134,9 @@ class Pruefung_model extends DB_Model
$this->addJoin('lehre.tbl_note n', 'note');
$this->db->where("n.positiv", false);
+ $note_blacklist = $this->config->item('note_blacklist_wiederholung');
+ if ($note_blacklist)
+ $this->db->where_not_in("n.note", $note_blacklist);
$this->db->where_in("p.pruefungstyp_kurzbz", ['kommPruef','zusKommPruef']);
return $this->load();
@@ -164,7 +172,9 @@ class Pruefung_model extends DB_Model
$this->addJoin('public.tbl_person pers', 'person_id');
$this->addJoin('public.tbl_benutzer b', 's.student_uid=b.uid');
$this->addJoin('public.tbl_studiengang g', 'ps.studiengang_kz=g.studiengang_kz');
- $this->addJoin('bis.tbl_orgform o', 'g.orgform_kurzbz=o.orgform_kurzbz');
+ $this->addJoin('public.tbl_prestudentstatus pss', 'pss.prestudent_id=ps.prestudent_id AND pss.studiensemester_kurzbz=le.studiensemester_kurzbz AND pss.status_kurzbz=get_rolle_prestudent(ps.prestudent_id, le.studiensemester_kurzbz)', 'LEFT');
+ $this->addJoin('lehre.tbl_studienplan plan', 'studienplan_id', 'LEFT');
+ $this->addJoin('bis.tbl_orgform o', 'COALESCE(plan.orgform_kurzbz, pss.orgform_kurzbz, g.orgform_kurzbz)=o.orgform_kurzbz');
$this->addJoin('campus.tbl_studierendenantrag a', 'ps.prestudent_id=a.prestudent_id and a.typ=' . $this->escape(Studierendenantrag_model::TYP_WIEDERHOLUNG), 'LEFT');
$this->db->where_in("get_rolle_prestudent(ps.prestudent_id, null)", $this->config->item('antrag_prestudentstatus_whitelist'));
diff --git a/application/models/education/Studierendenantrag_model.php b/application/models/education/Studierendenantrag_model.php
index e1b386f2e..4931896cd 100644
--- a/application/models/education/Studierendenantrag_model.php
+++ b/application/models/education/Studierendenantrag_model.php
@@ -37,11 +37,11 @@ class Studierendenantrag_model extends DB_Model
$this->addSelect('studienjahr_kurzbz');
$this->addSelect('vorname');
$this->addSelect('nachname');
- $this->addSelect('prestudent_id');
+ $this->addSelect('p.prestudent_id');
$this->addSelect('p.studiengang_kz');
$this->addSelect('semester');
$this->addSelect($this->dbTable . '.grund');
- $this->addSelect('datum');
+ $this->addSelect($this->dbTable . '.datum');
$this->addSelect('datum_wiedereinstieg');
$this->addSelect($this->dbTable . '.typ');
$this->addSelect('st.studierendenantrag_statustyp_kurzbz as status');
@@ -52,8 +52,10 @@ class Studierendenantrag_model extends DB_Model
$this->addJoin('public.tbl_student', 'prestudent_id');
$this->addJoin('public.tbl_person', 'person_id');
$this->addJoin('public.tbl_studiengang stg', 'p.studiengang_kz=stg.studiengang_kz');
- $this->addJoin('public.tbl_studiensemester', 'studiensemester_kurzbz');
- $this->addJoin('bis.tbl_orgform', 'orgform_kurzbz');
+ $this->addJoin('public.tbl_studiensemester ss', 'studiensemester_kurzbz');
+ $this->addJoin('public.tbl_prestudentstatus ps', 'ps.prestudent_id=p.prestudent_id AND ps.studiensemester_kurzbz=ss.studiensemester_kurzbz AND ps.status_kurzbz=get_rolle_prestudent(p.prestudent_id, ss.studiensemester_kurzbz)');
+ $this->addJoin('lehre.tbl_studienplan plan', 'studienplan_id', 'LEFT');
+ $this->addJoin('bis.tbl_orgform of', 'of.orgform_kurzbz=COALESCE(plan.orgform_kurzbz, ps.orgform_kurzbz, stg.orgform_kurzbz)');
$this->addJoin(
'campus.tbl_studierendenantrag_status as s',
'campus.get_status_id_studierendenantrag('. $this->dbTable .'.studierendenantrag_id) = studierendenantrag_status_id'
@@ -120,14 +122,17 @@ class Studierendenantrag_model extends DB_Model
public function getStgAndSem($antrag_id)
{
$this->addSelect('p.studiengang_kz');
+ $this->addSelect('stg.bezeichnung');
$this->addSelect('s.ausbildungssemester');
- $this->addSelect('s.orgform_kurzbz');
+ $this->addSelect('COALESCE(plan.orgform_kurzbz, s.orgform_kurzbz, stg.orgform_kurzbz) AS orgform_kurzbz');
$this->addJoin(
'public.tbl_prestudentstatus s',
$this->dbTable . '.prestudent_id=s.prestudent_id AND ' . $this->dbTable . '.studiensemester_kurzbz=s.studiensemester_kurzbz'
);
$this->addJoin('public.tbl_prestudent p', $this->dbTable . '.prestudent_id=p.prestudent_id');
+ $this->addJoin('public.tbl_studiengang stg', 'studiengang_kz', 'LEFT');
+ $this->addJoin('lehre.tbl_studienplan plan', 'studienplan_id', 'LEFT');
$this->addOrder('s.datum', 'DESC');
$this->addOrder('s.insertamum', 'DESC');
@@ -192,7 +197,9 @@ class Studierendenantrag_model extends DB_Model
$this->addJoin('public.tbl_prestudent p', 'prestudent_id', 'RIGHT');
$this->addJoin('public.tbl_studiengang stg', 'p.studiengang_kz=stg.studiengang_kz');
- $this->addJoin('bis.tbl_orgform', 'orgform_kurzbz');
+ $this->addJoin('public.tbl_prestudentstatus ps', 'ps.prestudent_id=p.prestudent_id AND ps.studiensemester_kurzbz=' . $this->dbTable . '.studiensemester_kurzbz AND ps.status_kurzbz=get_rolle_prestudent(p.prestudent_id, ' . $this->dbTable . '.studiensemester_kurzbz)', 'LEFT');
+ $this->addJoin('lehre.tbl_studienplan plan', 'studienplan_id', 'LEFT');
+ $this->addJoin('bis.tbl_orgform of', 'of.orgform_kurzbz=COALESCE(plan.orgform_kurzbz, ps.orgform_kurzbz, stg.orgform_kurzbz)');
$this->addJoin(
'campus.tbl_studierendenantrag_statustyp st',
'campus.get_status_studierendenantrag(studierendenantrag_id)=st.studierendenantrag_statustyp_kurzbz',
diff --git a/application/models/organisation/Studiengang_model.php b/application/models/organisation/Studiengang_model.php
index ea8e59ebd..d232e14d6 100644
--- a/application/models/organisation/Studiengang_model.php
+++ b/application/models/organisation/Studiengang_model.php
@@ -525,20 +525,6 @@ class Studiengang_model extends DB_Model
return $this->execQuery($query, $params);
}
- public function loadWithOrgform($studiengang_kzs)
- {
- $sql = "SELECT index FROM public.tbl_sprache WHERE sprache='" . getUserLanguage() . "' LIMIT 1";
-
- $this->addSelect($this->dbTable . '.*');
- $this->addSelect('o.bezeichnung_mehrsprachig[(' . $sql . ')] AS orgform');
-
- $this->addJoin('bis.tbl_orgform o', 'orgform_kurzbz');
-
- $this->db->where_in($this->dbTable . '.studiengang_kz', $studiengang_kzs);
-
- return $this->load();
- }
-
/**
* @param array $studiengang_kzs
* @param array $not_antrag_typ (optional) If the prestudent has an antrag with one of the specified types it will be excluded from the result
@@ -571,7 +557,8 @@ class Studiengang_model extends DB_Model
AND ps.ausbildungssemester=get_absem_prestudent(p.prestudent_id, NULL)
AND ps.status_kurzbz=get_rolle_prestudent(p.prestudent_id, NULL)'
);
- $this->addJoin('bis.tbl_orgform o', $this->dbTable . '.orgform_kurzbz=o.orgform_kurzbz');
+ $this->addJoin('lehre.tbl_studienplan plan', 'studienplan_id');
+ $this->addJoin('bis.tbl_orgform o', 'COALESCE(plan.orgform_kurzbz, ps.orgform_kurzbz, ' . $this->dbTable . '.orgform_kurzbz)=o.orgform_kurzbz');
$this->addJoin('public.tbl_person pers', 'person_id');
$this->addJoin('public.tbl_student stud', 'p.prestudent_id=stud.prestudent_id', 'LEFT');
diff --git a/application/views/lehre/Antrag/Student/List.php b/application/views/lehre/Antrag/Student/List.php
index add2e8c7d..0bc4c401a 100644
--- a/application/views/lehre/Antrag/Student/List.php
+++ b/application/views/lehre/Antrag/Student/List.php
@@ -110,8 +110,8 @@ $this->load->view(
typ == Studierendenantrag_model::TYP_WIEDERHOLUNG && $antrag->status == Studierendenantragstatus_model::STATUS_APPROVED) { ?>
- = $this->p->t('studierendenantrag', 'btn_show_lvs'); ?>
-
+ = $this->p->t('studierendenantrag', 'btn_show_lvs'); ?>
+
= $this->p->t('studierendenantrag', 'my_lvs'); ?>
diff --git a/composer.json b/composer.json
index 764715e08..c5b173e81 100644
--- a/composer.json
+++ b/composer.json
@@ -230,9 +230,9 @@
"type": "package",
"package": {
"name": "olifolkerd/tabulator5",
- "version": "5.2.1",
+ "version": "5.5.2",
"dist": {
- "url": "https://github.com/olifolkerd/tabulator/archive/refs/tags/5.2.1.zip",
+ "url": "https://github.com/olifolkerd/tabulator/archive/refs/tags/5.5.2.zip",
"type": "zip"
}
}
@@ -426,7 +426,7 @@
"npm-asset/primeicons": "5.0.0",
"olifolkerd/tabulator4": "4.9.*",
- "olifolkerd/tabulator5": "5.2.*",
+ "olifolkerd/tabulator5": "5.5.*",
"phpseclib/phpseclib": "2.0.*",
diff --git a/composer.lock b/composer.lock
index cc7529f8c..30f4ba875 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "3ac7bea74aadb85ee412b61e393f8188",
+ "content-hash": "4e21d344f075957e02d2dba4f9410325",
"packages": [
{
"name": "afarkas/html5shiv",
@@ -1511,10 +1511,10 @@
},
{
"name": "olifolkerd/tabulator5",
- "version": "5.2.1",
+ "version": "5.5.2",
"dist": {
"type": "zip",
- "url": "https://github.com/olifolkerd/tabulator/archive/refs/tags/5.2.1.zip"
+ "url": "https://github.com/olifolkerd/tabulator/archive/refs/tags/5.5.2.zip"
},
"type": "library"
},
diff --git a/public/css/Tabulator5.css b/public/css/Tabulator5.css
index c6c4f925e..48124335f 100644
--- a/public/css/Tabulator5.css
+++ b/public/css/Tabulator5.css
@@ -35,3 +35,6 @@
.tabulator-row.tabulator-selected:hover .tabulator-cell {
background-color: #769bcc;
}
+.tabulator .tabulator-col-resize-handle:last-of-type {
+ z-index: 999999;
+}
diff --git a/public/js/components/Studierendenantrag/Leitung.js b/public/js/components/Studierendenantrag/Leitung.js
index da883acbc..611d01b7a 100644
--- a/public/js/components/Studierendenantrag/Leitung.js
+++ b/public/js/components/Studierendenantrag/Leitung.js
@@ -31,12 +31,12 @@ export default {
stgkzL() {
if (!this.stgL)
return [];
- return this.stgL.map(stg => stg.studiengang_kz);
+ return this.stgL.map(stg => parseInt(stg));
},
stgkzA() {
if (!this.stgA)
return [];
- return this.stgA.map(stg => stg.studiengang_kz);
+ return this.stgA.map(stg => parseInt(stg));
}
},
methods: {
diff --git a/rdf/AntragAbmeldung.xml.php b/rdf/AntragAbmeldung.xml.php
index dc59b57a0..0de936e0a 100644
--- a/rdf/AntragAbmeldung.xml.php
+++ b/rdf/AntragAbmeldung.xml.php
@@ -14,7 +14,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$id = $_GET['id'];
$where = " WHERE studierendenantrag_id = " . $db->db_add_param($id) . "
- AND campus.tbl_studierendenantrag.typ = 'Abmeldung' AND campus.get_status_studierendenantrag(campus.tbl_studierendenantrag.studierendenantrag_id) = 'Genehmigt';";
+ AND a.typ = 'Abmeldung' AND campus.get_status_studierendenantrag(a.studierendenantrag_id) = 'Genehmigt';";
$not_found_error = 'Studierendenantrag not found'. $id;
} elseif(isset($_GET['uid']) && isset($_GET['prestudent_id'])) {
$uid = $_GET['uid'];
@@ -25,8 +25,8 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$prestudent_id = explode(';', $prestudent_id);
$prestudent_id = (array_filter($prestudent_id, 'strlen'));
- $where = " WHERE campus.tbl_studierendenantrag.prestudent_id in (" . $db->db_implode4SQL($prestudent_id) . ")
- AND campus.tbl_studierendenantrag.typ = 'Abmeldung' AND campus.get_status_studierendenantrag(campus.tbl_studierendenantrag.studierendenantrag_id) = 'Genehmigt';";
+ $where = " WHERE a.prestudent_id in (" . $db->db_implode4SQL($prestudent_id) . ")
+ AND a.typ = 'Abmeldung' AND campus.get_status_studierendenantrag(a.studierendenantrag_id) = 'Genehmigt';";
$not_found_error = 'Studierendenantrag not found for: ' . implode(',', $uid);
} else
die('wrong parameters');
@@ -36,15 +36,17 @@ else
$query = "
- SELECT tbl_studiengang.bezeichnung, bezeichnung_mehrsprachig[(SELECT index FROM public.tbl_sprache WHERE sprache=" . $db->db_add_param(getSprache(), FHC_STRING) . ")], studierendenantrag_id, matrikelnr, studienjahr_kurzbz, studiensemester_kurzbz, vorname, nachname, studiengang_kz, public.get_absem_prestudent(prestudent_id, NULL) AS semester, tbl_studierendenantrag.grund
+ SELECT stg.bezeichnung, bezeichnung_mehrsprachig[(SELECT index FROM public.tbl_sprache WHERE sprache=" . $db->db_add_param(getSprache(), FHC_STRING) . ")], studierendenantrag_id, matrikelnr, studienjahr_kurzbz, a.studiensemester_kurzbz, vorname, nachname, studiengang_kz, public.get_absem_prestudent(a.prestudent_id, NULL) AS semester, a.grund
FROM
- campus.tbl_studierendenantrag
+ campus.tbl_studierendenantrag a
JOIN public.tbl_student USING (prestudent_id)
JOIN public.tbl_benutzer ON tbl_student.student_uid=uid
JOIN public.tbl_person USING (person_id)
- JOIN public.tbl_studiengang USING (studiengang_kz)
+ JOIN public.tbl_studiengang stg USING (studiengang_kz)
JOIN public.tbl_studiensemester USING (studiensemester_kurzbz)
- JOIN bis.tbl_orgform ON (tbl_orgform.orgform_kurzbz = tbl_studiengang.orgform_kurzbz)" . $where;
+ LEFT JOIN public.tbl_prestudentstatus pss ON (pss.prestudent_id = a.prestudent_id AND pss.studiensemester_kurzbz=a.studiensemester_kurzbz AND pss.status_kurzbz=get_rolle_prestudent(a.prestudent_id, a.studiensemester_kurzbz))
+ LEFT JOIN lehre.tbl_studienplan plan USING (studienplan_id)
+ JOIN bis.tbl_orgform ON (tbl_orgform.orgform_kurzbz = COALESCE(plan.orgform_kurzbz, pss.orgform_kurzbz, stg.orgform_kurzbz))" . $where;
if (!$db->db_query($query) || !$db->db_num_rows())
diff --git a/rdf/AntragAbmeldungStgl.xml.php b/rdf/AntragAbmeldungStgl.xml.php
index 55d940457..cccd677b0 100644
--- a/rdf/AntragAbmeldungStgl.xml.php
+++ b/rdf/AntragAbmeldungStgl.xml.php
@@ -14,7 +14,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$id = $_GET['id'];
$where = " WHERE studierendenantrag_id = " . $db->db_add_param($id) . "
- AND campus.tbl_studierendenantrag.typ = 'AbmeldungStgl' AND campus.get_status_studierendenantrag(campus.tbl_studierendenantrag.studierendenantrag_id) IN ('Genehmigt', 'Beeinsprucht', 'EinspruchAbgelehnt');";
+ AND a.typ = 'AbmeldungStgl' AND campus.get_status_studierendenantrag(a.studierendenantrag_id) IN ('Genehmigt', 'Beeinsprucht', 'EinspruchAbgelehnt');";
$not_found_error = 'Studierendenantrag not found'. $id;
} elseif(isset($_GET['uid']) && isset($_GET['prestudent_id'])) {
$uid = $_GET['uid'];
@@ -25,8 +25,8 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$prestudent_id = explode(';', $prestudent_id);
$prestudent_id = (array_filter($prestudent_id, 'strlen'));
- $where = " WHERE campus.tbl_studierendenantrag.prestudent_id in (" . $db->db_implode4SQL($prestudent_id) . ")
- AND campus.tbl_studierendenantrag.typ = 'AbmeldungStgl' AND campus.get_status_studierendenantrag(campus.tbl_studierendenantrag.studierendenantrag_id) IN ('Genehmigt', 'Beeinsprucht', 'EinspruchAbgelehnt');";
+ $where = " WHERE a.prestudent_id in (" . $db->db_implode4SQL($prestudent_id) . ")
+ AND a.typ = 'AbmeldungStgl' AND campus.get_status_studierendenantrag(a.studierendenantrag_id) IN ('Genehmigt', 'Beeinsprucht', 'EinspruchAbgelehnt');";
$not_found_error = 'Studierendenantrag not found for: ' . implode(',', $uid);
} else
die('wrong parameters');
@@ -36,15 +36,17 @@ else
$query = "
- SELECT tbl_studiengang.bezeichnung, bezeichnung_mehrsprachig[(SELECT index FROM public.tbl_sprache WHERE sprache=" . $db->db_add_param(getSprache(), FHC_STRING) . ")], studierendenantrag_id, matrikelnr, studienjahr_kurzbz, studiensemester_kurzbz, vorname, nachname, studiengang_kz, public.get_absem_prestudent(prestudent_id, NULL) AS semester, tbl_studierendenantrag.grund
+ SELECT stg.bezeichnung, bezeichnung_mehrsprachig[(SELECT index FROM public.tbl_sprache WHERE sprache=" . $db->db_add_param(getSprache(), FHC_STRING) . ")], studierendenantrag_id, matrikelnr, studienjahr_kurzbz, a.studiensemester_kurzbz, vorname, nachname, studiengang_kz, public.get_absem_prestudent(a.prestudent_id, NULL) AS semester, a.grund
FROM
- campus.tbl_studierendenantrag
+ campus.tbl_studierendenantrag a
JOIN public.tbl_student USING (prestudent_id)
JOIN public.tbl_benutzer ON tbl_student.student_uid=uid
JOIN public.tbl_person USING (person_id)
- JOIN public.tbl_studiengang USING (studiengang_kz)
+ JOIN public.tbl_studiengang stg USING (studiengang_kz)
JOIN public.tbl_studiensemester USING (studiensemester_kurzbz)
- JOIN bis.tbl_orgform ON (tbl_orgform.orgform_kurzbz = tbl_studiengang.orgform_kurzbz)" . $where;
+ LEFT JOIN public.tbl_prestudentstatus pss ON (pss.prestudent_id = a.prestudent_id AND pss.studiensemester_kurzbz=a.studiensemester_kurzbz AND pss.status_kurzbz=get_rolle_prestudent(a.prestudent_id, a.studiensemester_kurzbz))
+ LEFT JOIN lehre.tbl_studienplan plan USING (studienplan_id)
+ JOIN bis.tbl_orgform ON (tbl_orgform.orgform_kurzbz = COALESCE(plan.orgform_kurzbz, pss.orgform_kurzbz, stg.orgform_kurzbz))" . $where;
if (!$db->db_query($query) || !$db->db_num_rows())
diff --git a/rdf/AntragUnterbrechung.xml.php b/rdf/AntragUnterbrechung.xml.php
index 6945f66ef..70a056b8a 100644
--- a/rdf/AntragUnterbrechung.xml.php
+++ b/rdf/AntragUnterbrechung.xml.php
@@ -15,7 +15,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$id = $_GET['id'];
$where = " WHERE studierendenantrag_id = " . $db->db_add_param($id) . "
- AND campus.tbl_studierendenantrag.typ = 'Unterbrechung' AND campus.get_status_studierendenantrag(campus.tbl_studierendenantrag.studierendenantrag_id) IN ('Genehmigt', 'EmailVersandt');";
+ AND a.typ = 'Unterbrechung' AND campus.get_status_studierendenantrag(a.studierendenantrag_id) IN ('Genehmigt', 'EmailVersandt');";
$not_found_error = 'Studierendenantrag not found'. $id;
} elseif(isset($_GET['uid']) && isset($_GET['prestudent_id'])) {
$uid = $_GET['uid'];
@@ -26,8 +26,8 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$prestudent_id = explode(';', $prestudent_id);
$prestudent_id = (array_filter($prestudent_id, 'strlen'));
- $where = " WHERE campus.tbl_studierendenantrag.prestudent_id in (" . $db->db_implode4SQL($prestudent_id) . ")
- AND campus.tbl_studierendenantrag.typ = 'Unterbrechung' AND campus.get_status_studierendenantrag(campus.tbl_studierendenantrag.studierendenantrag_id) IN ('Genehmigt', 'EmailVersandt');";
+ $where = " WHERE a.prestudent_id in (" . $db->db_implode4SQL($prestudent_id) . ")
+ AND a.typ = 'Unterbrechung' AND campus.get_status_studierendenantrag(a.studierendenantrag_id) IN ('Genehmigt', 'EmailVersandt');";
$not_found_error = 'Studierendenantrag not found for: ' . implode(',', $uid);
} else
die('wrong parameters');
@@ -37,15 +37,17 @@ else
$query = "
- SELECT tbl_studiengang.bezeichnung, bezeichnung_mehrsprachig[(SELECT index FROM public.tbl_sprache WHERE sprache=" . $db->db_add_param(getSprache(), FHC_STRING) . ")], studierendenantrag_id, matrikelnr, studienjahr_kurzbz, vorname, nachname, studiengang_kz, public.get_absem_prestudent(prestudent_id, NULL) AS semester, tbl_studierendenantrag.grund, datum_wiedereinstieg, datum
+ SELECT stg.bezeichnung, bezeichnung_mehrsprachig[(SELECT index FROM public.tbl_sprache WHERE sprache=" . $db->db_add_param(getSprache(), FHC_STRING) . ")], studierendenantrag_id, matrikelnr, studienjahr_kurzbz, a.studiensemester_kurzbz, vorname, nachname, studiengang_kz, public.get_absem_prestudent(a.prestudent_id, NULL) AS semester, a.grund, datum_wiedereinstieg, a.datum
FROM
- campus.tbl_studierendenantrag
+ campus.tbl_studierendenantrag a
JOIN public.tbl_student USING (prestudent_id)
JOIN public.tbl_benutzer ON tbl_student.student_uid=uid
JOIN public.tbl_person USING (person_id)
- JOIN public.tbl_studiengang USING (studiengang_kz)
+ JOIN public.tbl_studiengang stg USING (studiengang_kz)
JOIN public.tbl_studiensemester USING (studiensemester_kurzbz)
- JOIN bis.tbl_orgform ON (tbl_orgform.orgform_kurzbz = tbl_studiengang.orgform_kurzbz)" . $where;
+ LEFT JOIN public.tbl_prestudentstatus pss ON (pss.prestudent_id = a.prestudent_id AND pss.studiensemester_kurzbz=a.studiensemester_kurzbz AND pss.status_kurzbz=get_rolle_prestudent(a.prestudent_id, a.studiensemester_kurzbz))
+ LEFT JOIN lehre.tbl_studienplan plan USING (studienplan_id)
+ JOIN bis.tbl_orgform ON (tbl_orgform.orgform_kurzbz = COALESCE(plan.orgform_kurzbz, pss.orgform_kurzbz, stg.orgform_kurzbz))" . $where;
if (!$db->db_query($query) || !$db->db_num_rows())