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/components/Filter.php b/application/controllers/components/Filter.php
index ab7e1493e..bde7d7ed7 100644
--- a/application/controllers/components/Filter.php
+++ b/application/controllers/components/Filter.php
@@ -26,6 +26,9 @@ class Filter extends FHC_Controller
// Loads authentication library and starts authentication
$this->load->library('AuthLib');
+ // Loads the FiltersModel
+ $this->load->model('system/Filters_model', 'FiltersModel');
+
// Loads the FilterCmptLib with HTTP GET/POST parameters
$this->_startFilterCmptLib();
}
diff --git a/application/controllers/jobs/AntragJob.php b/application/controllers/jobs/AntragJob.php
index 3022cf549..2e72041ff 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)) {
@@ -350,6 +349,7 @@ class AntragJob extends JOB_Controller
$this->StudierendenantragModel->addSelect('prestudent_id');
$this->StudierendenantragModel->addSelect('studiensemester_kurzbz');
$this->StudierendenantragModel->addSelect('s.insertamum');
+ $this->StudierendenantragModel->addSelect('s.insertvon');
$this->StudierendenantragModel->db->where_in('public.get_rolle_prestudent(prestudent_id, studiensemester_kurzbz)', $this->config->item('antrag_prestudentstatus_whitelist'));
@@ -373,9 +373,11 @@ class AntragJob extends JOB_Controller
$result = $this->prestudentlib->setAbbrecher(
$antrag->prestudent_id,
$antrag->studiensemester_kurzbz,
- $insertvon,
+ 'AntragJob',
'abbrecherStgl',
- $antrag->insertamum
+ $antrag->insertamum,
+ null,
+ $antrag->insertvon ?: $insertvon
);
if (isError($result))
$this->logError(getError($result));
@@ -414,7 +416,7 @@ class AntragJob extends JOB_Controller
}
}
}
- $this->logInfo($count . " Students set to Abbrecher");
+ $this->logInfo($count . "/" . count($antraege) . " Students set to Abbrecher");
}
$this->logInfo('Ende Job handleAbmeldungenStglDeadline');
}
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..ff4d5dc63 100644
--- a/application/libraries/AntragLib.php
+++ b/application/libraries/AntragLib.php
@@ -123,6 +123,8 @@ class AntragLib
*/
public function approveAbmeldung($studierendenantrag_ids, $insertvon)
{
+ $this->_ci->load->model('crm/Student_model', 'StudentModel');
+
$errors = [];
foreach ($studierendenantrag_ids as $studierendenantrag_id) {
$result = $this->_ci->StudierendenantragModel->load($studierendenantrag_id);
@@ -156,7 +158,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 +167,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 +204,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 +223,7 @@ class AntragLib
continue;
}
$prestudentstatus = getData($result)[0];
+ $orgform = $prestudentstatus->orgform_kurzbz;
$result = $this->_ci->PrestudentstatusModel->withGrund('preabbrecher')->update([
'prestudent_id' => $prestudentstatus->prestudent_id,
@@ -250,10 +253,9 @@ class AntragLib
$vorname = '';
$nachname = $name;
}
- $res = $this->_ci->KontaktModel->getZustellKontakt($prestudent->person_id, ['email']);
+ $res = $this->_ci->StudentModel->loadWhere(['prestudent_id' => $antrag->prestudent_id]);
if (hasData($res)) {
- $kontakt = current(getData($res));
- $email = $kontakt->kontakt;
+ $email = $this->_ci->StudentModel->getEmailFH(current(getData($res))->student_uid);
$vorlage = $antrag->typ == Studierendenantrag_model::TYP_ABMELDUNG ? 'Student' : 'Stgl';
// NOTE(chris): Sancho mail
@@ -334,6 +336,8 @@ class AntragLib
$res = $this->_ci->PrestudentModel->load($antrag->prestudent_id);
if (hasData($res)) {
+ $this->_ci->load->model('crm/Student_model', 'StudentModel');
+
$prestudent = current(getData($res));
$res = $this->_ci->PersonModel->load($prestudent->person_id);
if (hasData($res)) {
@@ -344,13 +348,12 @@ class AntragLib
} else {
$name = $this->_ci->p->t('person', 'studentIn');
}
- $res = $this->_ci->KontaktModel->getZustellKontakt($prestudent->person_id, ['email']);
- if (hasData($res)) {
- $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->StudentModel->loadWhere(['prestudent_id' => $antrag->prestudent_id]);
+ if (hasData($res)) {
+ $email = $this->_ci->StudentModel->getEmailFH(current(getData($res))->student_uid);
+
+ $res = $this->_ci->StudierendenantragModel->getStgAndSem($antrag->studierendenantrag_id);
$stg = '';
$orgform = '';
if (hasData($res)) {
@@ -432,6 +435,7 @@ class AntragLib
public function approveUnterbrechung($studierendenantrag_ids, $insertvon)
{
$this->_ci->load->model('person/Kontakt_model', 'KontaktModel');
+ $this->_ci->load->model('crm/Student_model', 'StudentModel');
$errors = [];
@@ -555,7 +559,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 +583,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
],
@@ -609,6 +613,7 @@ class AntragLib
public function rejectUnterbrechung($studierendenantrag_ids, $insertvon, $grund)
{
$this->_ci->load->model('person/Kontakt_model', 'KontaktModel');
+ $this->_ci->load->model('crm/Student_model', 'StudentModel');
$errors = [];
@@ -673,7 +678,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 +724,6 @@ class AntragLib
else{
$result['studiengang'] = new stdClass();
$result['studiengang']->bezeichnung = "";
- $result['studiengang']->orgform_kurzbz = "";
}
$res = $this->_ci->PrestudentstatusModel->getLastStatusWithStgEmail($antrag->prestudent_id);
@@ -756,7 +760,7 @@ class AntragLib
}
}
- $res = $this->_ci->KontaktModel->getZustellKontakt($person_id, ['email']);
+ $res = $this->_ci->StudentModel->loadWhere(['prestudent_id' => $antrag->prestudent_id]);
if (isError($res)) {
$errors['email'] = getError($res);
} else {
@@ -765,7 +769,7 @@ class AntragLib
if (!$res) {
$errors['email'] = $this->_ci->p->t('studierendenantrag', 'error_no_email', ['person_id' => $person_id]);
} else {
- $result['email'] = current($res)->kontakt;
+ $result['email'] = $this->_ci->StudentModel->getEmailFH(current($res)->student_uid);
}
}
}
@@ -855,14 +859,18 @@ class AntragLib
$prestudent_status = current($res);
$email = $prestudent_status->email;
// NOTE(chris): Sancho mail
+ $lvzuweisungLink = site_url('lehre/Antrag/Wiederholung/assistenz/' . $antrag_id);
+ if( defined('VILESCI_ROOT') )
+ {
+ $lvzuweisungLink = VILESCI_ROOT . 'index.ci.php/lehre/Antrag/Wiederholung/assistenz/' . $antrag_id;
+ }
sendSanchoMail(
'Sancho_Mail_Antrag_W_New',
[
'antrag_id' => $antrag_id,
'stg' => $prestudent_status->stg_bezeichnung,
'Orgform' => $prestudent_status->orgform,
- 'lvzuweisungLink' => site_url('lehre/Antrag/Wiederholung/assistenz/' . $antrag_id),
- 'lvzuweisungLinkCIS' => CIS_ROOT . 'index.ci.php/lehre/Antrag/Wiederholung/assistenz/' . $antrag_id
+ 'lvzuweisungLink' => $lvzuweisungLink
],
$email,
$this->_ci->p->t('studierendenantrag', 'mail_subject_W_New')
@@ -1514,6 +1522,8 @@ class AntragLib
public function approveWiederholung($antrag_id, $insertvon)
{
+ $this->_ci->load->model('crm/Student_model', 'StudentModel');
+
$result = $this->_ci->StudierendenantragstatusModel->insert([
'studierendenantrag_id' => $antrag_id,
'studierendenantrag_statustyp_kurzbz' => Studierendenantragstatus_model::STATUS_APPROVED,
@@ -1540,18 +1550,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))
@@ -1577,10 +1578,10 @@ class AntragLib
$mitarbeiter = getData($result);
}
- $result = $this->_ci->StudentModel->loadWhere(['prestudent_id'=> $antrag->prestudent_id]);
+ $result = $this->_ci->StudentModel->loadWhere(['prestudent_id'=> $prestudent_id]);
if (hasData($result)) {
- $student = current(getData($result));
- $student_uid = $student->student_uid;
+ $studentObj = current(getData($result));
+ $student_uid = $studentObj->student_uid;
}
else
$student_uid = '';
@@ -1602,10 +1603,8 @@ class AntragLib
))
return error($this->_ci->p->t('studierendenantrag', 'error_mail_to', ['email' => $email]));
- $result = $this->_ci->KontaktModel->getZustellKontakt($person->person_id, ['email']);
- if (hasData($result)) {
- $kontakt = current(getData($result));
- $email = $kontakt->kontakt;
+ if ($student_uid) {
+ $email = $this->_ci->StudentModel->getEmailFH($student_uid);
$sem_not_allowed = $sem_to_repeat = '';
$list_not_allowed = $list_to_repeat = $this->_ci->p->t('studierendenantrag', 'mail_part_error_no_lvs');
@@ -1615,7 +1614,7 @@ class AntragLib
$lvs = getData($result);
foreach ($lvs as $sem => $lv_list) {
$lvs_filtered = array_filter($lv_list, function ($el) {
- return $el->antrag_zugelassen;
+ return property_exists($el, 'antrag_zugelassen') && $el->antrag_zugelassen;
});
if (substr($sem, 0, 1) == '1') {
$sem_not_allowed = substr($sem, 1);
diff --git a/application/libraries/PrestudentLib.php b/application/libraries/PrestudentLib.php
index 279b6ed2a..989e14585 100644
--- a/application/libraries/PrestudentLib.php
+++ b/application/libraries/PrestudentLib.php
@@ -35,10 +35,12 @@ class PrestudentLib
$this->_ci->load->model('organisation/Studiengang_model', 'StudiengangModel');
}
- public function setAbbrecher($prestudent_id, $studiensemester_kurzbz, $insertvon = null, $statusgrund_kurzbz = null, $datum = null, $bestaetigtam = null)
+ public function setAbbrecher($prestudent_id, $studiensemester_kurzbz, $insertvon = null, $statusgrund_kurzbz = null, $datum = null, $bestaetigtam = null, $bestaetigtvon = null)
{
if (!$insertvon)
$insertvon = getAuthUID();
+ if (!$bestaetigtvon)
+ $bestaetigtvon = $insertvon;
$result = $this->_ci->PrestudentstatusModel->getLastStatus($prestudent_id, $studiensemester_kurzbz);
if (isError($result))
@@ -79,7 +81,7 @@ class PrestudentLib
'insertamum' => date('c'),
'orgform_kurzbz'=> $prestudent_status->orgform_kurzbz,
'studienplan_id'=> $prestudent_status->studienplan_id,
- 'bestaetigtvon' => $insertvon,
+ 'bestaetigtvon' => $bestaetigtvon,
'bestaetigtam' => $bestaetigtam
]);
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/crm/Student_model.php b/application/models/crm/Student_model.php
index e27fa68dc..4b0a70b1a 100644
--- a/application/models/crm/Student_model.php
+++ b/application/models/crm/Student_model.php
@@ -84,7 +84,7 @@ class Student_model extends DB_Model
}
/**
- * Get the FH-Email for a student (not the private kontakt emailt)
+ * Get the FH-Email for a student (not the private kontakt email)
* @param $student_uid
* @return string
*/
diff --git a/application/models/education/Pruefung_model.php b/application/models/education/Pruefung_model.php
index 83bf9b7f8..e1d668293 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'));
@@ -212,9 +222,9 @@ class Pruefung_model extends DB_Model
$this->withDetailsForStudierendenAntrag();
if ($maxDate)
- $this->db->where("p.datum < ", $maxDate->format('c'));
+ $this->db->where("p.datum <= ", $maxDate->format('Y-m-d'));
if ($minDate)
- $this->db->where("p.datum > ", $minDate->format('c'));
+ $this->db->where("p.datum > ", $minDate->format('Y-m-d'));
$this->db->where("b.aktiv", true);
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/Create.php b/application/views/lehre/Antrag/Create.php
index 643991191..2c9d0d382 100644
--- a/application/views/lehre/Antrag/Create.php
+++ b/application/views/lehre/Antrag/Create.php
@@ -35,13 +35,13 @@ $this->load->view(
antrag-type="= $antrag_type; ?>"
studierendenantrag-id="= $studierendenantrag_id; ?>"
v-model:info-array="infoArray"
- v-model:status-msg="statusMsg"
- v-model:status-severity="statusSeverity"
+ v-model:status-msg="status.msg"
+ v-model:status-severity="status.severity"
>
-
+
diff --git a/application/views/lehre/Antrag/Student/List.php b/application/views/lehre/Antrag/Student/List.php
index add2e8c7d..4ca99f951 100644
--- a/application/views/lehre/Antrag/Student/List.php
+++ b/application/views/lehre/Antrag/Student/List.php
@@ -82,7 +82,7 @@ $this->load->view(
@@ -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/application/views/templates/FHC-Header.php b/application/views/templates/FHC-Header.php
index b87a6e6d0..20216328a 100644
--- a/application/views/templates/FHC-Header.php
+++ b/application/views/templates/FHC-Header.php
@@ -77,7 +77,7 @@
}
// Tabulator 5 CSS
- if ($tabulator5 === true) generateCSSsInclude('vendor/olifolkerd/tabulator5/dist/css/tabulator_bootstrap5.min.css');
+ if ($tabulator5 === true) generateCSSsInclude('public/css/Tabulator5.css');
// Tinymce 4 CSS
if ($tinymce4 === true) generateCSSsInclude('public/css/TinyMCE4.css');
diff --git a/cis/private/lehre/abgabe_lektor_zusatz.php b/cis/private/lehre/abgabe_lektor_zusatz.php
index 39488b6c3..b764fd556 100644
--- a/cis/private/lehre/abgabe_lektor_zusatz.php
+++ b/cis/private/lehre/abgabe_lektor_zusatz.php
@@ -121,15 +121,15 @@ echo '
|
- | '.$p->t('abgabetool/kontrollierteSchlagwoerter').':* |
+ '.$p->t('abgabetool/kontrollierteSchlagwoerter').': |
|
- | '.$p->t('abgabetool/deutscheSchlagwoerter').': |
+ '.$p->t('abgabetool/deutscheSchlagwoerter').':* |
|
- | '.$p->t('abgabetool/englischeSchlagwoerter').': |
+ '.$p->t('abgabetool/englischeSchlagwoerter').':* |
|
diff --git a/cis/private/lehre/abgabe_student_details.php b/cis/private/lehre/abgabe_student_details.php
index 6575dcf70..9171a978c 100644
--- a/cis/private/lehre/abgabe_student_details.php
+++ b/cis/private/lehre/abgabe_student_details.php
@@ -64,7 +64,6 @@ if(!isset($_POST['uid']))
$fixtermin = false;
$datum = '01.01.1980';
$kurzbz = '';
- $kontrollschlagwoerter = '';
$schlagwoerter = '';
$schlagwoerter_en = '';
$abstract = '';
@@ -88,7 +87,6 @@ else
$kurzbz = (isset($_POST['kurzbz'])?$_POST['kurzbz']:'');
$betreuer = (isset($_POST['betreuer'])?$_POST['betreuer']:'-1');
$sprache = (isset($_POST['sprache'])?$_POST['sprache']:'German');
- $kontrollschlagwoerter = (isset($_POST['kontrollschlagwoerter'])?$_POST['kontrollschlagwoerter']:'-1');
$schlagwoerter = (isset($_POST['schlagwoerter'])?$_POST['schlagwoerter']:'-1');
$schlagwoerter_en = (isset($_POST['schlagwoerter_en'])?$_POST['schlagwoerter_en']:'-1');
$abstract = (isset($_POST['abstract'])?$_POST['abstract']:'-1');
@@ -211,23 +209,7 @@ if($command=='add')
{
//zusätzliche Daten bearbeiten
//Check der Eingabedaten
- if(strlen($kontrollschlagwoerter)<1)
- {
- $error=true;
- }
- if(mb_strlen($kontrollschlagwoerter)>=150)
- {
- $kontrollschlagwoerter = mb_substr($kontrollschlagwoerter, 0, 146).'...';
- }
- if(strlen($abstract)<1)
- {
- $error=true;
- }
- if(strlen($abstract_en)<1)
- {
- $error=true;
- }
- if($seitenanzahl<1)
+ if((strlen($schlagwoerter) < 1) || (strlen($schlagwoerter_en) < 1) || (strlen($abstract) < 1) || (strlen($abstract_en) < 1) || ($seitenanzahl < 1))
{
$error=true;
}
@@ -237,7 +219,6 @@ if($command=='add')
seitenanzahl = ".$db->db_add_param($seitenanzahl).",
abgabedatum = now(),
sprache = ".$db->db_add_param($sprache).",
- kontrollschlagwoerter = ".$db->db_add_param($kontrollschlagwoerter).",
schlagwoerter_en = ".$db->db_add_param($schlagwoerter_en).",
schlagwoerter = ".$db->db_add_param($schlagwoerter).",
abstract = ".$db->db_add_param($abstract).",
@@ -413,12 +394,9 @@ if($command=="update" && $error!=true)
$htmlstr .= " \n";
}
$htmlstr .= "
\n";
- $htmlstr .= '| '.$p->t('abgabetool/kontrollierteSchlagwoerter').':* |
- |
- |
'."\n";
- $htmlstr .= '| '.$p->t('abgabetool/deutscheSchlagwoerter').': |
+ $htmlstr .= '
| '.$p->t('abgabetool/deutscheSchlagwoerter').':* |
|
'."\n";
- $htmlstr .= '| '.$p->t('abgabetool/englischeSchlagwoerter').': |
+ $htmlstr .= '
| '.$p->t('abgabetool/englischeSchlagwoerter').':* |
|
'."\n";
$htmlstr .= '| '.$p->t('abgabetool/abstract').' '.$p->t('abgabetool/maxZeichen').':* |
|
'."\n";
@@ -657,7 +635,6 @@ if($command!="add")
$htmlstr .= ''."\n";
$htmlstr .= ''."\n";
$htmlstr .= ''."\n";
- $htmlstr .= ''."\n";
$htmlstr .= ''."\n";
$htmlstr .= ''."\n";
$htmlstr .= ''."\n";
diff --git a/cis/private/lehre/swd.php b/cis/private/lehre/swd.php
deleted file mode 100644
index 248779aac..000000000
--- a/cis/private/lehre/swd.php
+++ /dev/null
@@ -1,11 +0,0 @@
-
diff --git a/composer.json b/composer.json
index 089e2a751..7d1627420 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 aac387eb2..5660e87e9 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": "f6e67e501fdd9ac047cc680abeb3daa9",
+ "content-hash": "b6e875dbd1ec2554abbf9f7513806469",
"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
new file mode 100644
index 000000000..48124335f
--- /dev/null
+++ b/public/css/Tabulator5.css
@@ -0,0 +1,40 @@
+@import '../../vendor/olifolkerd/tabulator5/dist/css/tabulator_bootstrap5.min.css';
+
+/* Apply borders and background to Cell instead of the Row
+ * otherwise frozen columns won't look good (columns behind
+ * will be partial visible)
+ */
+.tabulator-row {
+ border-bottom: none;
+}
+.tabulator-row .tabulator-frozen,
+.tabulator-row .tabulator-cell {
+ border-bottom: 1px solid #dee2e6;
+}
+.tabulator-row.tabulator-row-even {
+ background-color: transparent;
+}
+.tabulator-headers .tabulator-frozen,
+.tabulator-row.tabulator-row-odd .tabulator-frozen,
+.tabulator-row.tabulator-row-odd .tabulator-cell {
+ background-color: #fff;
+}
+.tabulator-row.tabulator-row-even .tabulator-frozen,
+.tabulator-row.tabulator-row-even .tabulator-cell {
+ background-color: #f2f2f2;
+}
+.tabulator-row.tabulator-selectable:hover .tabulator-frozen,
+.tabulator-row.tabulator-selectable:hover .tabulator-cell {
+ background-color: #ececec;
+}
+.tabulator-row.tabulator-selected .tabulator-frozen,
+.tabulator-row.tabulator-selected .tabulator-cell {
+ background-color: #9abcea;
+}
+.tabulator-row.tabulator-selected:hover .tabulator-frozen,
+.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/apps/lehre/Antrag.js b/public/js/apps/lehre/Antrag.js
index bcb7b37a7..00a5877b3 100644
--- a/public/js/apps/lehre/Antrag.js
+++ b/public/js/apps/lehre/Antrag.js
@@ -2,6 +2,7 @@ import StudierendenantragAntrag from "../../components/Studierendenantrag/Antrag
import StudierendenantragStatus from "../../components/Studierendenantrag/Status.js";
import StudierendenantragInfoblock from "../../components/Studierendenantrag/Infoblock.js";
import VueDatePicker from "../../components/vueDatepicker.js.php";
+import Phrasen from '../../plugin/Phrasen.js';
const app = Vue.createApp({
components: {
@@ -12,10 +13,14 @@ const app = Vue.createApp({
},
data() {
return {
- statusMsg: "",
- statusSeverity: "",
+ status: {
+ msg: '',
+ severity: ''
+ },
infoArray: []
};
}
});
-app.mount('#wrapper');
+app
+ .use(Phrasen)
+ .mount('#wrapper');
diff --git a/public/js/apps/lehre/Antrag/Leitung.js b/public/js/apps/lehre/Antrag/Leitung.js
index 25e4afaa0..637ca3f61 100644
--- a/public/js/apps/lehre/Antrag/Leitung.js
+++ b/public/js/apps/lehre/Antrag/Leitung.js
@@ -1,8 +1,12 @@
import StudierendenantragLeitung from '../../../components/Studierendenantrag/Leitung.js';
+import Phrasen from '../../../plugin/Phrasen.js';
const app = Vue.createApp({
components: {
StudierendenantragLeitung
}
});
-app.use(primevue.config.default,{zIndex: {overlay: 9999}}).mount('#wrapper');
+app
+ .use(Phrasen)
+ .use(primevue.config.default,{zIndex: {overlay: 9999}})
+ .mount('#wrapper');
diff --git a/public/js/apps/lehre/Antrag/Lvzuweisung.js b/public/js/apps/lehre/Antrag/Lvzuweisung.js
index 836d1168e..78abec5cf 100644
--- a/public/js/apps/lehre/Antrag/Lvzuweisung.js
+++ b/public/js/apps/lehre/Antrag/Lvzuweisung.js
@@ -1,4 +1,5 @@
import LvZuweisung from '../../../components/Studierendenantrag/Lvzuweisung.js';
+import Phrasen from '../../../plugin/Phrasen.js';
const app = Vue.createApp({
components: {
@@ -10,4 +11,6 @@ const app = Vue.createApp({
}
}
});
-app.mount('#wrapper');
+app
+ .use(Phrasen)
+ .mount('#wrapper');
diff --git a/public/js/apps/lehre/Antrag/Student.js b/public/js/apps/lehre/Antrag/Student.js
index f06143149..80cea89e9 100644
--- a/public/js/apps/lehre/Antrag/Student.js
+++ b/public/js/apps/lehre/Antrag/Student.js
@@ -1,8 +1,11 @@
import LvPopup from '../../../components/Studierendenantrag/Leitung/LvPopup.js';
+import Phrasen from '../../../plugin/Phrasen.js';
const app = Vue.createApp({
components: {
LvPopup
}
});
-app.mount('#wrapper');
+app
+ .use(Phrasen)
+ .mount('#wrapper');
diff --git a/public/js/components/Bootstrap/Modal.js b/public/js/components/Bootstrap/Modal.js
index 90cec2d50..453cc0b48 100644
--- a/public/js/components/Bootstrap/Modal.js
+++ b/public/js/components/Bootstrap/Modal.js
@@ -1,3 +1,5 @@
+import Phrasen from '../../plugin/Phrasen.js';
+
export default {
data: () => ({
modal: null
@@ -86,6 +88,7 @@ export default {
}
});
const wrapper = document.createElement("div");
+ instance.use(Phrasen); // TODO(chris): find a more dynamic way
instance.mount(wrapper);
document.body.appendChild(wrapper);
});
diff --git a/public/js/components/Studierendenantrag/Antrag.js b/public/js/components/Studierendenantrag/Antrag.js
index d5989b521..197fe2206 100644
--- a/public/js/components/Studierendenantrag/Antrag.js
+++ b/public/js/components/Studierendenantrag/Antrag.js
@@ -2,7 +2,6 @@ import StudierendenantragAbmeldung from './Form/Abmeldung.js';
import StudierendenantragAbmeldungStgl from './Form/AbmeldungStgl.js';
import StudierendenantragUnterbrechung from './Form/Unterbrechung.js';
import StudierendenantragWiederholung from './Form/Wiederholung.js';
-import Phrasen from '../../mixins/Phrasen.js';
export default {
components: {
@@ -11,9 +10,6 @@ export default {
StudierendenantragUnterbrechung,
StudierendenantragWiederholung
},
- mixins: [
- Phrasen
- ],
emits: [
'update:infoArray',
'update:statusMsg',
@@ -37,13 +33,13 @@ export default {
return 'Studierendenantrag' + this.antragType;
},
infoText() {
- return this.p.t('studierendenantrag/info_' + this.antragType + '_' + this.status);
+ return this.$p.t('studierendenantrag/info_' + this.antragType + '_' + this.status);
}
},
template: `
diff --git a/public/js/components/Studierendenantrag/Form/Abmeldung.js b/public/js/components/Studierendenantrag/Form/Abmeldung.js
index ba6a054ad..513b8b542 100644
--- a/public/js/components/Studierendenantrag/Form/Abmeldung.js
+++ b/public/js/components/Studierendenantrag/Form/Abmeldung.js
@@ -1,5 +1,4 @@
import {CoreFetchCmpt} from '../../Fetch.js';
-import Phrasen from '../../../mixins/Phrasen.js';
var _uuid = 0;
@@ -7,9 +6,6 @@ export default {
components: {
CoreFetchCmpt
},
- mixins: [
- Phrasen
- ],
emits: [
'setInfos',
'setStatus'
@@ -56,7 +52,7 @@ export default {
this.data = result.data.retval;
if (this.data.status) {
this.$emit("setStatus", {
- msg: this.p.t_ref('studierendenantrag', 'status_x', {status: this.data.statustyp}),
+ msg: Vue.computed(() => this.$p.t('studierendenantrag', 'status_x', {status: this.data.statustyp})),
severity: this.statusSeverity
});
}
@@ -67,7 +63,7 @@ export default {
createAntrag() {
bootstrap.Modal.getOrCreateInstance(this.$refs.modal).hide();
this.$emit('setStatus', {
- msg: this.p.t_ref('studierendenantrag', 'status_x', {status: this.p.t('studierendenantrag', 'status_saving')}),
+ msg: Vue.computed(() => this.$p.t('studierendenantrag', 'status_x', {status: this.$p.t('studierendenantrag', 'status_saving')})),
severity: 'warning'
});
this.saving = true;
@@ -93,7 +89,7 @@ export default {
this.errors.default.push(result.data.retval[k]);
}
this.$emit('setStatus', {
- msg: this.p.t_ref('studierendenantrag', 'status_x', {status: this.p.t('studierendenantrag', 'status_error')}),
+ msg: Vue.computed(() => this.$p.t('studierendenantrag', 'status_x', {status: this.$p.t('studierendenantrag', 'status_error')})),
severity: 'danger'
});
}
@@ -104,13 +100,13 @@ export default {
this.data = result.data.retval;
if (this.data.status) {
this.$emit("setStatus", {
- msg: this.p.t_ref('studierendenantrag', 'status_x', {status: this.data.statustyp}),
+ msg: Vue.computed(() => this.$p.t('studierendenantrag', 'status_x', {status: this.data.statustyp})),
severity: this.statusSeverity
});
}
else
this.$emit('setStatus', {
- msg: this.p.t_ref('studierendenantrag', 'status_x', {status: this.p.t('studierendenantrag', 'status_open')}),
+ msg: Vue.computed(() => this.$p.t('studierendenantrag', 'status_x', {status: this.$p.t('studierendenantrag', 'status_open')})),
severity:'success'
});
}
@@ -120,7 +116,7 @@ export default {
},
cancelAntrag() {
this.$emit('setStatus', {
- msg: this.p.t_ref('studierendenantrag', 'status_x', {status: this.p.t('studierendenantrag', 'status_cancelling')}),
+ msg: Vue.computed(() => this.$p.t('studierendenantrag', 'status_x', {status: this.$p.t('studierendenantrag', 'status_cancelling')})),
severity: 'warning'
});
this.saving = true;
@@ -144,7 +140,7 @@ export default {
this.errors.default.push(result.data.retval[k]);
}
this.$emit('setStatus', {
- msg: this.p.t_ref('studierendenantrag', 'status_x', {status: this.p.t('studierendenantrag', 'status_error')}),
+ msg: Vue.computed(() => this.$p.t('studierendenantrag', 'status_x', {status: this.$p.t('studierendenantrag', 'status_error')})),
severity:'danger'
});
}
@@ -156,13 +152,13 @@ export default {
this.data = result.data.retval;
if (this.data.status) {
this.$emit("setStatus", {
- msg: this.p.t_ref('studierendenantrag', 'status_x', {status: this.data.statustyp}),
+ msg: Vue.computed(() => this.$p.t('studierendenantrag', 'status_x', {status: this.data.statustyp})),
severity: this.statusSeverity
});
}
else
this.$emit('setStatus', {
- msg: this.p.t_ref('studierendenantrag', 'status_x', {status: this.p.t('studierendenantrag', 'status_cancelled')}),
+ msg: Vue.computed(() => this.$p.t('studierendenantrag', 'status_x', {status: this.$p.t('studierendenantrag', 'status_cancelled')})),
severity: 'danger'
});
}
@@ -183,37 +179,37 @@ export default {
- | {{p.t('lehre', 'studiengang')}} |
+ {{$p.t('lehre', 'studiengang')}} |
{{data.bezeichnung}} |
- | {{p.t('lehre', 'organisationsform')}} |
+ {{$p.t('lehre', 'organisationsform')}} |
{{data.orgform_bezeichnung}} |
- | {{p.t('projektarbeitsbeurteilung', 'nameStudierende')}} |
+ {{$p.t('projektarbeitsbeurteilung', 'nameStudierende')}} |
{{data.name}} |
- | {{p.t('person', 'personenkennzeichen')}} |
+ {{$p.t('person', 'personenkennzeichen')}} |
{{data.matrikelnr}} |
- | {{p.t('lehre', 'studienjahr')}} |
+ {{$p.t('lehre', 'studienjahr')}} |
{{data.studienjahr_kurzbz}} |
- | {{p.t('lehre', 'studiensemester')}} |
+ {{$p.t('lehre', 'studiensemester')}} |
{{data.studiensemester_kurzbz}} |
- | {{p.t('lehre', 'semester')}} |
+ {{$p.t('lehre', 'semester')}} |
{{data.semester}} |
-
{{p.t('studierendenantrag', 'antrag_grund')}}:
+
{{$p.t('studierendenantrag', 'antrag_grund')}}:
{{data.grund}}
@@ -239,7 +235,7 @@ export default {
@click="cancelAntrag"
:disabled="saving"
>
- {{p.t('studierendenantrag', 'btn_cancel')}}
+ {{$p.t('studierendenantrag', 'btn_cancel')}}
- {{p.t('studierendenantrag', 'title_Abmeldung')}}
+ {{$p.t('studierendenantrag', 'title_Abmeldung')}}
-
+
-
diff --git a/public/js/components/Studierendenantrag/Form/AbmeldungStgl.js b/public/js/components/Studierendenantrag/Form/AbmeldungStgl.js
index 3524bcd1f..1650d3638 100644
--- a/public/js/components/Studierendenantrag/Form/AbmeldungStgl.js
+++ b/public/js/components/Studierendenantrag/Form/AbmeldungStgl.js
@@ -1,5 +1,4 @@
import {CoreFetchCmpt} from '../../Fetch.js';
-import Phrasen from '../../../mixins/Phrasen.js';
var _uuid = 0;
@@ -7,9 +6,6 @@ export default {
components: {
CoreFetchCmpt
},
- mixins: [
- Phrasen
- ],
emits: [
'setInfos',
'setStatus'
@@ -30,7 +26,7 @@ export default {
},
computed: {
statusSeverity() {
- switch (this.data.status)
+ switch (this.data?.status)
{
case 'Erstellt': return 'info';
case 'Genehmigt': return 'success';
@@ -56,7 +52,7 @@ export default {
this.data = result.data.retval;
if (this.data.status) {
this.$emit("setStatus", {
- msg: this.p.t_ref('studierendenantrag', 'status_x', {status: this.data.statustyp}),
+ msg: Vue.computed(() => this.$p.t('studierendenantrag', 'status_x', {status: this.data.statustyp})),
severity: this.statusSeverity
});
}
@@ -67,7 +63,7 @@ export default {
createAntrag() {
bootstrap.Modal.getOrCreateInstance(this.$refs.modal).hide();
this.$emit('setStatus', {
- msg: this.p.t_ref('studierendenantrag', 'status_x', {status: this.p.t('studierendenantrag', 'status_saving')}),
+ msg: Vue.computed(() => this.$p.t('studierendenantrag', 'status_x', {status: this.$p.t('studierendenantrag', 'status_saving')})),
severity: 'warning'
});
this.saving = true;
@@ -93,7 +89,7 @@ export default {
this.errors.default.push(result.data.retval[k]);
}
this.$emit('setStatus', {
- msg: this.p.t_ref('studierendenantrag', 'status_x', {status: this.p.t('studierendenantrag', 'status_error')}),
+ msg: Vue.computed(() => this.$p.t('studierendenantrag', 'status_x', {status: this.$p.t('studierendenantrag', 'status_error')})),
severity: 'danger'
});
}
@@ -104,13 +100,13 @@ export default {
this.data = result.data.retval;
if (this.data.status) {
this.$emit("setStatus", {
- msg: this.p.t_ref('studierendenantrag', 'status_x', {status: this.data.statustyp}),
+ msg: Vue.computed(() => this.$p.t('studierendenantrag', 'status_x', {status: this.data.statustyp})),
severity: this.statusSeverity
});
}
else
this.$emit('setStatus', {
- msg: this.p.t_ref('studierendenantrag', 'status_x', {status: this.p.t('studierendenantrag', 'status_open')}),
+ msg: Vue.computed(() => this.$p.t('studierendenantrag', 'status_x', {status: this.$p.t('studierendenantrag', 'status_open')})),
severity:'success'
});
}
@@ -123,7 +119,7 @@ export default {
if(event.target.value)
{
- let templateT= this.p.t('studierendenantrag', event.target.value);
+ let templateT= this.$p.t('studierendenantrag', event.target.value);
templateText.value = templateT;
}
else
@@ -140,40 +136,40 @@ export default {
- | {{p.t('lehre', 'studiengang')}} |
+ {{$p.t('lehre', 'studiengang')}} |
{{data.bezeichnung}} |
- | {{p.t('lehre', 'organisationsform')}} |
+ {{$p.t('lehre', 'organisationsform')}} |
{{data.orgform_bezeichnung}} |
- | {{p.t('projektarbeitsbeurteilung', 'nameStudierende')}} |
+ {{$p.t('projektarbeitsbeurteilung', 'nameStudierende')}} |
{{data.name}} |
- | {{p.t('person', 'personenkennzeichen')}} |
+ {{$p.t('person', 'personenkennzeichen')}} |
{{data.matrikelnr}} |
- | {{p.t('lehre', 'studienjahr')}} |
+ {{$p.t('lehre', 'studienjahr')}} |
{{data.studienjahr_kurzbz}} |
- | {{p.t('lehre', 'studiensemester')}} |
+ {{$p.t('lehre', 'studiensemester')}} |
{{data.studiensemester_kurzbz}} |
- | {{p.t('lehre', 'semester')}} |
+ {{$p.t('lehre', 'semester')}} |
{{data.semester}} |
-
{{p.t('studierendenantrag', 'antrag_grund')}}:
+
{{$p.t('studierendenantrag', 'antrag_grund')}}:
-
{{data.grund}}
+
{{data?.grund}}
@@ -181,18 +177,20 @@ export default {
- | {{p.t('lehre', 'studiengang')}} |
+ {{$p.t('lehre', 'studiengang')}} |
{{data.bezeichnung}} |
- | {{p.t('lehre', 'organisationsform')}} |
+ {{$p.t('lehre', 'organisationsform')}} |
{{data.orgform_bezeichnung}} |
- | {{p.t('projektarbeitsbeurteilung', 'nameStudierende')}} |
+ {{$p.t('projektarbeitsbeurteilung', 'nameStudierende')}} |
{{data.name}} |
- | {{p.t('person', 'personenkennzeichen')}} |
+ {{$p.t('person', 'personenkennzeichen')}} |
{{data.matrikelnr}} |
- | {{p.t('lehre', 'studienjahr')}} |
+ {{$p.t('lehre', 'studienjahr')}} |
{{data.studienjahr_kurzbz}} |
{{stsem === null ? '' : data.studiensemester[stsem].studienjahr_kurzbz}} |
- | {{p.t('lehre', 'semester')}} |
+ {{$p.t('lehre', 'semester')}} |
{{data.semester}} |
{{stsem === null ? '' : data.studiensemester[stsem].semester}} |
@@ -246,7 +242,7 @@ export default {
{{data.studiensemester_kurzbz}}
@@ -271,7 +267,7 @@ export default {
@@ -279,7 +275,7 @@ export default {
@@ -295,8 +291,8 @@ export default {
-
{{p.t('studierendenantrag', 'antrag_grund')}}:
-
{{data.grund}}
+
{{$p.t('studierendenantrag', 'antrag_grund')}}:
+
@@ -316,14 +312,14 @@ export default {
diff --git a/public/js/components/Studierendenantrag/Form/Wiederholung.js b/public/js/components/Studierendenantrag/Form/Wiederholung.js
index 336441dda..c2aea93f2 100644
--- a/public/js/components/Studierendenantrag/Form/Wiederholung.js
+++ b/public/js/components/Studierendenantrag/Form/Wiederholung.js
@@ -1,6 +1,5 @@
import {CoreFetchCmpt} from '../../Fetch.js';
import VueDatepicker from '../../vueDatepicker.js.php';
-import Phrasen from '../../../mixins/Phrasen.js';
var _uuid = 0;
@@ -9,9 +8,6 @@ export default {
CoreFetchCmpt,
VueDatepicker
},
- mixins: [
- Phrasen
- ],
emits: [
'setInfos',
'setStatus',
@@ -67,11 +63,11 @@ export default {
this.data = result.data.retval;
if (!this.data.status || this.data.status == 'ErsteAufforderungVersandt' || this.data.status == 'ZweiteAufforderungVersandt') {
this.data.status = 'Offen';
- this.data.statustyp = this.p.t('studierendenantrag', 'status_open');
+ this.data.statustyp = this.$p.t('studierendenantrag', 'status_open');
}
this.$emit('update:status', this.data.status);
this.$emit("setStatus", {
- msg: this.p.t_ref('studierendenantrag', 'status_x', {status: this.data.statustyp}),
+ msg: Vue.computed(() => this.$p.t('studierendenantrag', 'status_x', {status: this.data.statustyp})),
severity: this.statusSeverity
});
return result;
@@ -89,7 +85,7 @@ export default {
let nextState = repeat ? 'Erstellt' : 'Verzichtet';
this.$emit('setStatus', {
- msg: this.p.t_ref('studierendenantrag', 'status_x', {status: this.p.t('studierendenantrag', 'status_saving')}),
+ msg: Vue.computed(() => this.$p.t('studierendenantrag', 'status_x', {status: this.$p.t('studierendenantrag', 'status_saving')})),
severity: 'warning'
});
this.saving = true;
@@ -116,7 +112,7 @@ export default {
this.errors.default.push(result.data.retval[k]);
}
this.$emit('setStatus', {
- msg: this.p.t_ref('studierendenantrag', 'status_x', {status: this.p.t('studierendenantrag', 'status_error')}),
+ msg: Vue.computed(() => this.$p.t('studierendenantrag', 'status_x', {status: this.$p.t('studierendenantrag', 'status_error')})),
severity: 'danger'
});
}
@@ -129,7 +125,7 @@ export default {
this.data.status = nextState;
this.$emit('update:status', this.data.status);
this.$emit("setStatus", {
- msg: this.p.t_ref('studierendenantrag', 'status_x', {status: this.data.statustyp}),
+ msg: Vue.computed(() => this.$p.t('studierendenantrag', 'status_x', {status: this.data.statustyp})),
severity: this.statusSeverity
});
}
@@ -143,7 +139,7 @@ export default {
},
mounted() {
this.infos = [...Array(5).keys()].map(n => ({
- body: this.p.t_ref('studierendenantrag', 'infotext_Wiederholung_' + n)
+ body: Vue.computed(() => this.$p.t('studierendenantrag', 'infotext_Wiederholung_' + n))
}));
this.$emit('setInfos', this.infos);
},
@@ -156,27 +152,27 @@ export default {
- | {{p.t('lehre', 'studiengang')}} |
+ {{$p.t('lehre', 'studiengang')}} |
{{data.bezeichnung}} |
- | {{p.t('lehre', 'organisationsform')}} |
+ {{$p.t('lehre', 'organisationsform')}} |
{{data.orgform_bezeichnung}} |
- | {{p.t('projektarbeitsbeurteilung', 'nameStudierende')}} |
+ {{$p.t('projektarbeitsbeurteilung', 'nameStudierende')}} |
{{data.name}} |
- | {{p.t('person', 'personenkennzeichen')}} |
+ {{$p.t('person', 'personenkennzeichen')}} |
{{data.matrikelnr}} |
- | {{p.t('studierendenantrag', 'antrag_Wiederholung_pruefung')}} |
+ {{$p.t('studierendenantrag', 'antrag_Wiederholung_pruefung')}} |
{{data.lvbezeichnung}} |
- | {{p.t('studierendenantrag', 'antrag_Wiederholung_pruefung_date')}} |
+ {{$p.t('studierendenantrag', 'antrag_Wiederholung_pruefung_date')}} |
{{datumPruefungFormatted}} |
@@ -190,7 +186,7 @@ export default {
@click="createAntrag"
:disabled="saving"
>
- {{p.t('studierendenantrag/antrag_Wiederholung_button_yes')}}
+ {{$p.t('studierendenantrag/antrag_Wiederholung_button_yes')}}
diff --git a/public/js/components/Studierendenantrag/Leitung.js b/public/js/components/Studierendenantrag/Leitung.js
index da883acbc..95828e6cb 100644
--- a/public/js/components/Studierendenantrag/Leitung.js
+++ b/public/js/components/Studierendenantrag/Leitung.js
@@ -5,7 +5,6 @@ import GrundPopup from './Leitung/GrundPopup.js';
import LvPopup from './Leitung/LvPopup.js';
import BsAlert from '../Bootstrap/Alert.js';
import FhcLoader from '../Loader.js';
-import Phrasen from '../../mixins/Phrasen.js';
export default {
components: {
@@ -14,7 +13,6 @@ export default {
LeitungActions,
FhcLoader
},
- mixins: [Phrasen],
props: {
stgL: Array,
stgA: Array
@@ -31,12 +29,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: {
@@ -79,7 +77,7 @@ export default {
{
let countAntrage = 0;
LvPopup
- .popup(this.p.t('studierendenantrag','title_show_lvs', currentAntrag), {
+ .popup(this.$p.t('studierendenantrag','title_show_lvs', currentAntrag), {
antragId: currentAntrag.studierendenantrag_id,
footer: true,
dialogClass: 'modal-lg',
@@ -128,7 +126,7 @@ export default {
var currentAntrag = antraege.pop();
if (currentAntrag) {
GrundPopup
- .popup(this.p.t('studierendenantrag', 'title_grund', {id: currentAntrag.studierendenantrag_id}), {
+ .popup(this.$p.t('studierendenantrag', 'title_grund', {id: currentAntrag.studierendenantrag_id}), {
countRemaining: antraege.length
})
.then(result => {
@@ -211,7 +209,7 @@ export default {
var currentAntrag = antraege.pop();
if (currentAntrag) {
GrundPopup
- .popup(this.p.t('studierendenantrag', 'title_grund', {id: currentAntrag.studierendenantrag_id}), {
+ .popup(this.$p.t('studierendenantrag', 'title_grund', {id: currentAntrag.studierendenantrag_id}), {
countRemaining : antraege.length,
optional: true
})
diff --git a/public/js/components/Studierendenantrag/Leitung/Actions.js b/public/js/components/Studierendenantrag/Leitung/Actions.js
index 71ada5c20..2720a7df5 100644
--- a/public/js/components/Studierendenantrag/Leitung/Actions.js
+++ b/public/js/components/Studierendenantrag/Leitung/Actions.js
@@ -1,13 +1,11 @@
import ActionsNew from './Actions/New.js';
import ActionsColumns from './Actions/Columns.js';
-import Phrasen from '../../../mixins/Phrasen.js';
export default {
components: {
ActionsNew,
ActionsColumns
},
- mixins: [Phrasen],
props: {
selectedData: Array,
columns: Array,
@@ -67,17 +65,17 @@ export default {
-
-
-
+
+
diff --git a/public/js/components/Studierendenantrag/Leitung/Actions/Columns.js b/public/js/components/Studierendenantrag/Leitung/Actions/Columns.js
index 7128761d7..55a7bd1cc 100644
--- a/public/js/components/Studierendenantrag/Leitung/Actions/Columns.js
+++ b/public/js/components/Studierendenantrag/Leitung/Actions/Columns.js
@@ -6,9 +6,6 @@ export default {
toggleColumn(col) {
col.visible = !col.visible;
col.original.toggle()
- },
- show() {
-
}
},
template: `
diff --git a/public/js/components/Studierendenantrag/Leitung/Actions/New.js b/public/js/components/Studierendenantrag/Leitung/Actions/New.js
index ad3009bdb..8952c4e78 100644
--- a/public/js/components/Studierendenantrag/Leitung/Actions/New.js
+++ b/public/js/components/Studierendenantrag/Leitung/Actions/New.js
@@ -1,15 +1,11 @@
import BsAlert from '../../../Bootstrap/Alert.js';
import BsModal from '../../../Bootstrap/Modal.js';
-import Phrasen from '../../../../mixins/Phrasen.js';
export default {
components: {
BsModal,
AutoComplete: primevue.autocomplete
},
- mixins: [
- Phrasen
- ],
emits: [
'reload'
],
@@ -33,7 +29,7 @@ export default {
class: 'position-absolute top-0 start-0 w-100 h-100'
}), {
dialogClass: 'modal-fullscreen'
- }, this.p.t('studierendenantrag', 'antrag_header')).then(() => {
+ }, this.$p.t('studierendenantrag', 'antrag_header')).then(() => {
this.$emit('reload');
this.student = '';
});
@@ -67,17 +63,17 @@ export default {
- {{p.t('studierendenantrag','btn_new')}}
+ {{$p.t('studierendenantrag','btn_new')}}
-
+
- {{p.t('studierendenantrag','btn_create')}}
+ {{$p.t('studierendenantrag','btn_create')}}
diff --git a/public/js/components/Studierendenantrag/Leitung/GrundPopup.js b/public/js/components/Studierendenantrag/Leitung/GrundPopup.js
index 3a7b40f2d..bdea298ec 100644
--- a/public/js/components/Studierendenantrag/Leitung/GrundPopup.js
+++ b/public/js/components/Studierendenantrag/Leitung/GrundPopup.js
@@ -1,11 +1,8 @@
-
import BsAlert from '../../Bootstrap/Alert.js';
-import Phrasen from '../../../mixins/Phrasen.js';
export default {
mixins: [
BsAlert,
- Phrasen
],
props: {
placeholder: String,
@@ -46,17 +43,17 @@ export default {
- {{p.t('kvp','new.error.required')}}
+ {{$p.t('kvp','new.error.required')}}
-
+
- {{p.t('ui','ok')}}
- {{p.t('ui','cancel')}}
+ {{$p.t('ui','ok')}}
+ {{$p.t('ui','cancel')}}
`
}
diff --git a/public/js/components/Studierendenantrag/Leitung/Header.js b/public/js/components/Studierendenantrag/Leitung/Header.js
index 388a93b7d..12bfcbe82 100644
--- a/public/js/components/Studierendenantrag/Leitung/Header.js
+++ b/public/js/components/Studierendenantrag/Leitung/Header.js
@@ -1,7 +1,4 @@
-import Phrasen from '../../../mixins/Phrasen.js';
-
export default {
- mixins: [Phrasen],
props: {
stgs: Array
},
@@ -10,10 +7,10 @@ export default {
],
template: `