getStudentConfig Api Method; moodle link config entry; write abgabetool termin noten into header; uniform getDateStyleClass logic in all 3 views; WIP refining AbgabetoolJob;

This commit is contained in:
Johann Hoffmann
2026-01-14 16:57:57 +01:00
parent bbb90f6dc4
commit eb15d6b841
10 changed files with 165 additions and 50 deletions
+4 -1
View File
@@ -24,4 +24,7 @@ $config['beurteilung_link_fallback'] = 'addons/fhtw/content/projektbeurteilung/p
$config['PROJEKTARBEITSBEURTEILUNG_MAIL_BASELINK_ERSTBEGUTACHTER'] = 'index.ci.php/extensions/FHC-Core-Projektarbeitsbeurteilung/ProjektarbeitsbeurteilungErstbegutachter';
$config['PROJEKTARBEITSBEURTEILUNG_MAIL_BASELINK_ZWEITBEGUTACHTER'] = 'index.ci.php/extensions/FHC-Core-Projektarbeitsbeurteilung/ProjektarbeitsbeurteilungErstbegutachter';
$config['SIGNATUR_CHECK_PAABGABETYPEN'] = ['end'];
$config['SIGNATUR_CHECK_PAABGABETYPEN'] = ['end'];
// to be used as "https://moodle.technikum-wien.at/course/view.php?idnumber=dl{$stg_kz}" for stg specific moodle routing
$config['STG_MOODLE_LINK'] = 'https://moodle.technikum-wien.at/course/view.php?idnumber=dl';
@@ -30,6 +30,7 @@ class Abgabe extends FHCAPI_Controller
{
parent::__construct([
'getConfig' => array('basis/abgabe_assistenz:rw', 'basis/abgabe_lektor:rw'),
'getConfigStudent' => array('basis/abgabe_assistenz:rw', 'basis/abgabe_student:rw', 'basis/abgabe_lektor:rw'),
'getStudentProjektarbeiten' => array('basis/abgabe_assistenz:rw', 'basis/abgabe_student:rw', 'basis/abgabe_lektor:rw'),
'getStudentProjektabgaben' => array('basis/abgabe_assistenz:rw', 'basis/abgabe_student:rw', 'basis/abgabe_lektor:rw'),
'postStudentProjektarbeitZwischenabgabe' => array('basis/abgabe_assistenz:rw', 'basis/abgabe_student:rw'),
@@ -94,6 +95,19 @@ class Abgabe extends FHCAPI_Controller
$this->terminateWithSuccess($ret);
}
/**
* loads config related to abgabetool for students to avoid handing out links reserved for employees
*/
public function getConfigStudent() {
$moodle_link =$this->config->item('STG_MOODLE_LINK');
$ret = array(
'moodle_link' => $moodle_link,
);
$this->terminateWithSuccess($ret);
}
/**
* fetches all projektabgabetermine for a given projektarbeit_id used in cis4 student abgabetool & lektor abgabetool
+16 -8
View File
@@ -96,14 +96,14 @@ class AbgabetoolJob extends JOB_Controller
// filter for abgaben which where not inserted by the current betreuer iteration if there is no updateamum
// or not changed by the betreuer if there is updateamum
$relevantAbgaben = array_filter($changedAbgaben, function($abgabetermin) use ($betreuerRow) {
$relevantAbgaben = array_values(array_filter($changedAbgaben, function($abgabetermin) use ($betreuerRow) {
// new termin not created by that betreuer
if($abgabetermin->updatevon == null && $abgabetermin->insertvon != $betreuerRow->uid) {
return $abgabetermin;
} else if($abgabetermin->updatevon != null && $abgabetermin->updatevon != $betreuerRow->uid) {
return $abgabetermin;
}
});
}));
if(count($relevantAbgaben) == 0) {
break; // skip that projektarbeit if only changes originate from the betreuer in question
@@ -143,15 +143,17 @@ class AbgabetoolJob extends JOB_Controller
'abgabenString' => $abgabenString,
'linkAbgabetool' => $url
);
$email = $betreuerRow->uid ? $betreuerRow->uid."@".DOMAIN : $betreuerRow->private_email;
// send email with bundled info
sendSanchoMail(
'PAAChangesBetSM',
$body_fields,
$betreuerRow->private_email,
$email,
$this->p->t('abgabetool', 'changedAbgabeterminev2')
);
$count++;
}
@@ -170,6 +172,8 @@ class AbgabetoolJob extends JOB_Controller
$result = $this->_ci->PaabgabeModel->findAbgabenNewOrUpdatedSinceByAbgabedatum($interval);
$retval = getData($result);
var_dump($retval);
// retval are paabgaben joined with projektarbeit and betreuer
if(count($retval) == 0) {
@@ -186,14 +190,14 @@ class AbgabetoolJob extends JOB_Controller
$betreuer_uids[$paabgabe->person_id][] = $paabgabe;
}
$count = 0;
forEach ($betreuer_uids as $person_id => $abgaben) {
// $person_id is from betreuer
$result = $this->_ci->ProjektarbeitModel->getProjektbetreuerAnrede($person_id);
$data = getData($result)[0];
$anrede = $data->anrede;
$anredeFillString = $data->anrede == "Herr" ? "r" : "";
$fullFormattedNameString = $data->first;
@@ -233,11 +237,15 @@ class AbgabetoolJob extends JOB_Controller
'linkAbgabetool' => $url
);
// TODO: get this guys uid safely
// $email = $betreuerRow->uid ? $betreuerRow->uid."@".DOMAIN : $betreuerRow->private_email;
// send email with bundled info
sendSanchoMail(
'PaabgabeUpdatesBetSM',
$body_fields,
$data->private_email,
$email,
$this->p->t('abgabetool', 'changedAbgabeterminev2')
);