load projektarbeiten for studiengänge -> assistenz page; speed dial position rework; automagicmodal logic fix; activeTabIndex by date in detail views; tooltips on icons; $capitalize phrasen to ensure capitalization; phrasenpromise & resolve similar to anw; modal component emits fullscreen event now;

This commit is contained in:
Johann Hoffmann
2025-10-27 14:40:56 +01:00
parent 0d2e41cf2f
commit 259c2aec14
19 changed files with 1345 additions and 314 deletions
+19 -3
View File
@@ -15,9 +15,10 @@ class Abgabetool extends Auth_Controller
parent::__construct([
'index' => self::PERM_LOGGED,
'getStudentProjektarbeitAbgabeFile' => array('basis/abgabe_student:rw', 'basis/abgabe_lektor:rw', 'basis/abgabe_assistenz:rw'),
'Mitarbeiter' => self::PERM_LOGGED,
'Student' => self::PERM_LOGGED,
'Deadlines' => self::PERM_LOGGED
'Mitarbeiter' => array('basis/abgabe_lektor:rw', 'basis/abgabe_assistenz:rw'),
'Assistenz' => array('basis/abgabe_assistenz:rw'),
'Student' => array('basis/abgabe_student:rw', 'basis/abgabe_lektor:rw', 'basis/abgabe_assistenz:rw'),
'Deadlines' => array('basis/abgabe_lektor:rw', 'basis/abgabe_assistenz:rw')
]);
}
@@ -29,6 +30,7 @@ class Abgabetool extends Auth_Controller
*/
public function index()
{
// TODO: do we even need this?
$viewData = array(
'uid'=>getAuthUID(),
@@ -71,6 +73,20 @@ class Abgabetool extends Auth_Controller
}
}
public function Assistenz()
{
$viewData = array(
'uid'=>getAuthUID(),
);
if(defined('CIS4') && CIS4) {
$this->load->view('CisRouterView/CisRouterView.php', ['viewData' => $viewData, 'route' => 'AbgabetoolAssistenz']);
} else {
$this->load->view('Cis/Abgabetool.php', ['uid' => getAuthUID(), 'route' => 'AbgabetoolAssistenz']);
}
}
public function Deadlines()
{
@@ -38,7 +38,8 @@ class Abgabe extends FHCAPI_Controller
'postSerientermin' => array('basis/abgabe_assistenz:rw', 'basis/abgabe_lektor:rw'),
'fetchDeadlines' => array('basis/abgabe_assistenz:rw', 'basis/abgabe_lektor:rw'),
'getPaAbgabetypen' => self::PERM_LOGGED,
'getNoten' => self::PERM_LOGGED
'getNoten' => self::PERM_LOGGED,
'getProjektarbeitenForStudiengang' =>array('basis/abgabe_assistenz:rw')
]);
$this->load->library('PhrasesLib');
@@ -148,6 +149,9 @@ class Abgabe extends FHCAPI_Controller
$pa->email = $data[0]->private_email;
}
if($pa->zweitbetreuer_person_id !== null) {
// TODO: dont have to wait for 2038, see assistenz query in projektarbeit_model
// zweitbetreuer info since the 'getStudentProjektarbeitenWithBetreuer' query got quiete large,
// enjoy optimizing that one in 2038. we need this to render a string like
// Zweitbegutachter: FH-Prof. PD DI Dr. techn. Vorname Nachname MBA
@@ -850,4 +854,41 @@ class Abgabe extends FHCAPI_Controller
$subject
);
}
public function getProjektarbeitenForStudiengang() {
$this->load->model('education/Projektarbeit_model', 'ProjektarbeitModel');
$studiengang_kz = $this->input->get("studiengang_kz",TRUE);
if (!isset($studiengang_kz) || isEmptyString($studiengang_kz))
$this->terminateWithError($this->p->t('global', 'wrongParameters'), 'general');
// TODO revert arr return new/old
// $arr = $this->ProjektarbeitModel->getProjektarbeitenForStudiengang($studiengang_kz);
// $result = $arr[0];
$result = $this->ProjektarbeitModel->getProjektarbeitenForStudiengang($studiengang_kz);
$projektarbeiten = $this->getDataOrTerminateWithError($result);
$mapFunc = function($projektarbeit) {
return $projektarbeit->projektarbeit_id;
};
$projektarbeiten_ids = array_map($mapFunc, $projektarbeiten);
$ret = $this->ProjektarbeitModel->getProjektarbeitenAbgabetermine($projektarbeiten_ids);
$projektabgaben = $this->getDataOrTerminateWithError($ret);
// map the abgaben into projektarbeiten
foreach($projektarbeiten as $projektarbeit) {
$filterFunc = function($projektabgabe) use ($projektarbeit) {
return $projektabgabe->projektarbeit_id == $projektarbeit->projektarbeit_id;
};
$projektarbeit->abgabetermine = array_values(array_filter($projektabgaben, $filterFunc));
}
$this->terminateWithSuccess(array($projektarbeiten, DOMAIN));
}
}