diff --git a/application/controllers/jobs/AntragJob.php b/application/controllers/jobs/AntragJob.php index cbd34a561..2e72041ff 100644 --- a/application/controllers/jobs/AntragJob.php +++ b/application/controllers/jobs/AntragJob.php @@ -349,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')); @@ -372,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)); @@ -413,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/libraries/AntragLib.php b/application/libraries/AntragLib.php index dcc38acc7..f3eb4d152 100644 --- a/application/libraries/AntragLib.php +++ b/application/libraries/AntragLib.php @@ -854,14 +854,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') 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/education/Pruefung_model.php b/application/models/education/Pruefung_model.php index ef7cfc967..e1d668293 100644 --- a/application/models/education/Pruefung_model.php +++ b/application/models/education/Pruefung_model.php @@ -222,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 91af9c1f4..4931896cd 100644 --- a/application/models/education/Studierendenantrag_model.php +++ b/application/models/education/Studierendenantrag_model.php @@ -197,7 +197,7 @@ 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('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)'); + $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( 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) { ?> - p->t('studierendenantrag', 'btn_show_lvs'); ?> - + p->t('studierendenantrag', 'btn_show_lvs'); ?> + p->t('studierendenantrag', 'my_lvs'); ?> 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 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/Form/AbmeldungStgl.js b/public/js/components/Studierendenantrag/Form/AbmeldungStgl.js index 2bc24e5c7..1650d3638 100644 --- a/public/js/components/Studierendenantrag/Form/AbmeldungStgl.js +++ b/public/js/components/Studierendenantrag/Form/AbmeldungStgl.js @@ -26,7 +26,7 @@ export default { }, computed: { statusSeverity() { - switch (this.data.status) + switch (this.data?.status) { case 'Erstellt': return 'info'; case 'Genehmigt': return 'success'; @@ -169,7 +169,7 @@ export default {
{{$p.t('studierendenantrag', 'antrag_grund')}}:
-
{{data.grund}}
+
{{data?.grund}}
@@ -189,6 +189,8 @@ export default { +
diff --git a/public/js/components/Studierendenantrag/Lvzuweisung.js b/public/js/components/Studierendenantrag/Lvzuweisung.js index 6b482dc38..42f390ac3 100644 --- a/public/js/components/Studierendenantrag/Lvzuweisung.js +++ b/public/js/components/Studierendenantrag/Lvzuweisung.js @@ -62,7 +62,7 @@ export default { this.statusCode = response.data.retval[0].studierendenantrag_statustyp_kurzbz; this.statusMsg = response.data.retval[0].typ; } else { - this.addAlert(response.data.retval, 'alert-danger'); + this.addAlert(response.data.retval.message || response.data.retval, 'alert-danger'); this.statusCode = 0; this.statusMsg = 'Error'; } diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 0a8407ad7..971b9dab1 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -21491,13 +21491,13 @@ array( 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Ausschlußgrund gemäß Ausbildungsvertrag (Punkt 7.4): \nNichterfüllung finanzieller Verpflichtungen trotz Mahnung (Studienbeitrag)', + 'text' => 'Ausschlußgrund gemäß Ausbildungsvertrag (Punkt 7.4): Nichterfüllung finanzieller Verpflichtungen trotz Mahnung (Studienbeitrag)', 'description' => '', 'insertvon' => 'system' ), array( 'sprache' => 'English', - 'text' => 'Reason for exclusion according to the training contract (point 7.4): \nFailure to meet financial obligations despite a reminder (tuition fees)', + 'text' => 'Reason for exclusion according to the training contract (point 7.4): Failure to meet financial obligations despite a reminder (tuition fees)', 'description' => '', 'insertvon' => 'system' ) @@ -21511,13 +21511,13 @@ array( 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Ausschlußgrund gemäß Ausbildungsvertrag (Punkt 7.4): \nmehrmalig unentschuldigtes Verletzen der Anwesenheitspflicht', + 'text' => 'Ausschlußgrund gemäß Ausbildungsvertrag (Punkt 7.4): mehrmalig unentschuldigtes Verletzen der Anwesenheitspflicht', 'description' => '', 'insertvon' => 'system' ), array( 'sprache' => 'English', - 'text' => 'Reason for exclusion according to the training contract (point 7.4): \nmultiple unexcused breaches of attendance requirements', + 'text' => 'Reason for exclusion according to the training contract (point 7.4): multiple unexcused breaches of attendance requirements', 'description' => '', 'insertvon' => 'system' ) @@ -21531,13 +21531,13 @@ array( 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Ausschlußgrund gemäß Ausbildungsvertrag (Punkt 7.4): \nwiederholtes Nichteinhalten von Prüfungsterminen bzw Abgabeterminen für Seminararbeiten bzw. Projektarbeiten', + 'text' => 'Ausschlußgrund gemäß Ausbildungsvertrag (Punkt 7.4): wiederholtes Nichteinhalten von Prüfungsterminen bzw Abgabeterminen für Seminararbeiten bzw. Projektarbeiten', 'description' => '', 'insertvon' => 'system' ), array( 'sprache' => 'English', - 'text' => 'Reason for exclusion according to the training contract (point 7.4): \nrepeated non-compliance with examination dates or deadlines for seminar papers or project work', + 'text' => 'Reason for exclusion according to the training contract (point 7.4): repeated non-compliance with examination dates or deadlines for seminar papers or project work', 'description' => '', 'insertvon' => 'system' ) @@ -21551,13 +21551,13 @@ array( 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Ausschlußgrund gemäß Ausbildungsvertrag (Punkt 7.4): \nPlagiieren im Rahmen wissenschaftlicher Arbeiten bzw. unerlaubte Verwendung KI generierter Hilfsmittel bzw. Quellen', + 'text' => 'Ausschlußgrund gemäß Ausbildungsvertrag (Punkt 7.4): Plagiieren im Rahmen wissenschaftlicher Arbeiten bzw. unerlaubte Verwendung KI generierter Hilfsmittel bzw. Quellen', 'description' => '', 'insertvon' => 'system' ), array( 'sprache' => 'English', - 'text' => 'Reason for exclusion according to the training contract (point 7.4): \nPlagiarism in the context of scientific work or unauthorized use of AI-generated tools or sources', + 'text' => 'Reason for exclusion according to the training contract (point 7.4): Plagiarism in the context of scientific work or unauthorized use of AI-generated tools or sources', 'description' => '', 'insertvon' => 'system' ) @@ -21571,13 +21571,13 @@ array( 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Ausschlußgrund gemäß Ausbildungsvertrag (Punkt 7.4): \nnicht genügende Leistung im Sinne der Prüfungsordnung', + 'text' => 'Ausschlußgrund gemäß Ausbildungsvertrag (Punkt 7.4): nicht genügende Leistung im Sinne der Prüfungsordnung', 'description' => '', 'insertvon' => 'system' ), array( 'sprache' => 'English', - 'text' => 'Reason for exclusion according to the training contract (point 7.4): \ninsufficient performance in terms of the examination regulations', + 'text' => 'Reason for exclusion according to the training contract (point 7.4): insufficient performance in terms of the examination regulations', 'description' => '', 'insertvon' => 'system' ) @@ -21591,13 +21591,33 @@ array( 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Ausschlußgrund gemäß Ausbildungsvertrag (Punkt 7.4): \nNichtantritt des Studiums zu Beginn des Studienjahres (=Unbegründetes Nichterscheinen zur ersten Studienveranstaltung)', + 'text' => 'Ausschlußgrund gemäß Ausbildungsvertrag (Punkt 7.4): Nichtantritt des Studiums zu Beginn des Studienjahres (=Unbegründetes Nichterscheinen zur ersten Studienveranstaltung)', 'description' => '', 'insertvon' => 'system' ), array( 'sprache' => 'English', - 'text' => 'Reason for exclusion according to the training contract (point 7.4): \nFailure to start the course at the beginning of the academic year (= unjustified non-attendance to the first course event)', + 'text' => 'Reason for exclusion according to the training contract (point 7.4): Failure to start the course at the beginning of the academic year (= unjustified non-attendance to the first course event)', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'studierendenantrag', + 'phrase' => 'textLong_MissingZgv', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Zugangsvoraussetzung BA (bzw. MA) nicht erfüllt', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Entry requirements BA (resp. MA) not fulfilled)', 'description' => '', 'insertvon' => 'system' ) @@ -21723,6 +21743,26 @@ array( ) ) ), + array( + 'app' => 'core', + 'category' => 'studierendenantrag', + 'phrase' => 'dropdown_MissingZgv', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Zugangsvoraussetzung BA (bzw. MA) nicht erfüllt', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Entry requirements BA (resp. MA) not fulfilled', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), array( 'app' => 'core', 'category' => 'studierendenantrag', diff --git a/vilesci/lehre/abgabe_assistenz_zusatz.php b/vilesci/lehre/abgabe_assistenz_zusatz.php index 20dbe9d97..724658d24 100644 --- a/vilesci/lehre/abgabe_assistenz_zusatz.php +++ b/vilesci/lehre/abgabe_assistenz_zusatz.php @@ -120,15 +120,15 @@ echo '
Student: '.$uid.'
Titel: '. - Kontrollierte Schlagwörter:* + Kontrollierte Schlagwörter: - Dt. Schlagwörter: + Dt. Schlagwörter:* - Engl. Schlagwörter: + Engl. Schlagwörter:*