diff --git a/application/controllers/jobs/AbgabetoolJob.php b/application/controllers/jobs/AbgabetoolJob.php
index 420379f72..0a46cbd81 100644
--- a/application/controllers/jobs/AbgabetoolJob.php
+++ b/application/controllers/jobs/AbgabetoolJob.php
@@ -40,8 +40,6 @@ class AbgabetoolJob extends JOB_Controller
$this->_ci->logInfo("Keine Emails an Betreuer über neue oder veränderte Termine versandt");
return;
}
-
- // TODO: student name in abgabenstring hinzufügen
// group changed/new abgaben for projektarbeiten
$projektarbeiten = [];
@@ -107,53 +105,65 @@ class AbgabetoolJob extends JOB_Controller
}));
if(count($relevantAbgaben) == 0) {
- continue; // Changed break to continue to allow checking other projects in the tuple
+ continue;
}
- $projektarbeit_titel = $relevantAbgaben[0]->titel ?? 'Kein Titel vergeben';
+ // format the Student Name
+ $s = $relevantAbgaben[0];
+ $nameParts = [];
+ if (!empty($s->titelpre)) $nameParts[] = $s->titelpre;
+ $nameParts[] = $s->vorname;
+ $nameParts[] = $s->nachname;
+ if (!empty($s->titelpost)) $nameParts[] = $s->titelpost;
+ $studentFullName = implode(' ', $nameParts);
- // --- Start Project Header Section ---
+ $projektarbeit_titel = $s->titel ?? 'Kein Titel vergeben';
+
+ // project header section
$abgabenString .= "
-
- Projekt: {$projektarbeit_titel}
-
- ID: {$projektarbeit_id} | Rolle: {$betreuerRow->betreuerart_kurzbz} |
- Studiengang: {$relevantAbgaben[0]->stgtyp}{$relevantAbgaben[0]->stgkz} ({$relevantAbgaben[0]->studiensemester_kurzbz})
-
-
";
-
- // --- Start Table ---
- $abgabenString .= '
-
-
-
- | Zieldatum |
- Bezeichnung |
- Abgabe bis |
-
-
- ';
+
+
Projekt: {$projektarbeit_titel}
+
+ Studierende/r: {$studentFullName}
+
+
+ ID: {$projektarbeit_id} | Rolle: {$betreuerRow->betreuerart_kurzbz} |
+ Stg: {$s->stgtyp}{$s->stgkz} ({$s->studiensemester_kurzbz})
+
+
";
+
+ // start table
+ $abgabenString .= '
+
+
+
+ | Zieldatum |
+ Bezeichnung |
+ Abgabe bis |
+
+
+ ';
foreach ($relevantAbgaben as $abgabe) {
$dateEmailFormatted = (new DateTime($abgabe->datum))->format('d.m.Y');
$abgabedatumFormatted = (new DateTime($abgabe->abgabedatum))->format('d.m.Y');
-
- $kurzbzLine = !empty($abgabe->kurzbz) ? "
{$abgabe->kurzbz}" : "";
+ $kurzbzLine = !empty($abgabe->kurzbz) ? "
{$abgabe->kurzbz}" : "";
$abgabenString .= "
-
- | {$dateEmailFormatted} |
-
- {$abgabe->bezeichnung}{$kurzbzLine}
- |
- {$abgabedatumFormatted} |
-
";
+
+ | {$dateEmailFormatted} |
+
+ {$abgabe->bezeichnung}{$kurzbzLine}
+ |
+ {$abgabedatumFormatted} |
+
";
}
$abgabenString .= '
';
}
-
- $abgabenString .= ''; // Close container
+
+ // close container
+ $abgabenString .= '';
// done with building the change list, now send it
$betreuerRow = $tupelArr[0][1];
@@ -197,7 +207,7 @@ class AbgabetoolJob extends JOB_Controller
$result = $this->_ci->PaabgabeModel->findAbgabenNewOrUpdatedSinceByAbgabedatum($interval);
$retval = getData($result);
-
+
// retval are paabgaben joined with projektarbeit and betreuer
if(count($retval) == 0) {
$this->logInfo("Keine Emails über neue Paabgaben an Betreuer versandt");
@@ -213,21 +223,18 @@ 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;
- // https://www.php.net/manual/en/migration70.new-features.php#migration70.new-features.spaceship-op
- // php has spaceships 🚀🚀🚀🚀🚀
-
// sorting $abgaben array by datum
usort($abgaben, function ($a, $b) {
return strtotime($a->datum) <=> strtotime($b->datum);
@@ -240,15 +247,26 @@ class AbgabetoolJob extends JOB_Controller
- | Zieldatum |
+ Zieldatum |
+ Studierende/r |
Bezeichnung |
- Abgabe bis |
+ Abgabe bis |
';
+ var_dump($abgaben);
+
foreach ($abgaben as $abgabe) {
- // format dates inline for cleaner code
+ // format the student name
+ $nameParts = [];
+ if (!empty($abgabe->titelpre)) $nameParts[] = $abgabe->titelpre;
+ $nameParts[] = $abgabe->vorname;
+ $nameParts[] = $abgabe->nachname;
+ if (!empty($abgabe->titelpost)) $nameParts[] = $abgabe->titelpost;
+ $studentFullName = implode(' ', $nameParts);
+
+ // format dates inline
$dateEmailFormatted = (new DateTime($abgabe->datum))->format('d.m.Y');
$abgabedatumFormatted = (new DateTime($abgabe->abgabedatum))->format('d.m.Y');
@@ -257,19 +275,20 @@ class AbgabetoolJob extends JOB_Controller
$abgabenString .= "
- | {$dateEmailFormatted} |
+ {$dateEmailFormatted} |
+ {$studentFullName} |
{$abgabe->bezeichnung}{$kurzbzLine}
|
- {$abgabedatumFormatted} |
+ {$abgabedatumFormatted} |
";
}
$abgabenString .= '
';
-
+
$path = $this->_ci->config->item('URL_MITARBEITER');
$url = CIS_ROOT.$path;
-
+
$body_fields = array(
'anrede' => $anrede,
'anredeFillString' => $anredeFillString,
@@ -279,9 +298,9 @@ class AbgabetoolJob extends JOB_Controller
'linkAbgabetool' => $url
);
- $result = $this->_ci->ProjektbetreuerModel->getBetreuerOfProjektarbeit($paabgabe->projektarbeit_id, $paabgabe->betreuerart_kurzbz);
+ $result = $this->_ci->ProjektbetreuerModel->getBetreuerOfProjektarbeit($abgaben[0]->projektarbeit_id, $abgaben[0]->betreuerart_kurzbz);
$data = getData($result)[0];
-
+
$email = $data->uid ? $data->uid."@".DOMAIN : $data->private_email;
// send email with bundled info
@@ -291,10 +310,10 @@ class AbgabetoolJob extends JOB_Controller
$email,
$this->p->t('abgabetool', 'changedAbgabeterminev2')
);
-
+
$count++;
}
-
+
$this->_ci->logInfo($count . " Emails erfolgreich versandt");
$this->_ci->logInfo('End job FHC-Core->notifyBetreuerMail');
}
diff --git a/application/models/education/Paabgabe_model.php b/application/models/education/Paabgabe_model.php
index cc4c06924..7661663f7 100644
--- a/application/models/education/Paabgabe_model.php
+++ b/application/models/education/Paabgabe_model.php
@@ -66,15 +66,17 @@ class Paabgabe_model extends DB_Model
$query = "SELECT projektarbeit_id, paabgabe_id, paabgabetyp_kurzbz, fixtermin, datum, campus.tbl_paabgabe.kurzbz, campus.tbl_paabgabetyp.bezeichnung, campus.tbl_paabgabe.abgabedatum,
campus.tbl_paabgabe.insertvon, campus.tbl_paabgabe.insertamum, campus.tbl_paabgabe.updatevon, campus.tbl_paabgabe.updateamum,
- campus.tbl_paabgabe.note, upload_allowed, beurteilungsnotiz, student_uid, tbl_projektarbeit.note, lehre.tbl_projektarbeit.titel,
- UPPER(tbl_studiengang.typ) as stgtyp, UPPER(tbl_studiengang.kurzbz) as stgkz, tbl_lehreinheit.studiensemester_kurzbz
+ campus.tbl_paabgabe.note, upload_allowed, beurteilungsnotiz, student_uid, tbl_projektarbeit.note, lehre.tbl_projektarbeit.titel,
+ UPPER(tbl_studiengang.typ) as stgtyp, UPPER(tbl_studiengang.kurzbz) as stgkz, tbl_lehreinheit.studiensemester_kurzbz,
+ public.tbl_person.anrede, public.tbl_person.titelpre, public.tbl_person.vorname, public.tbl_person.nachname, public.tbl_person.titelpost
FROM campus.tbl_paabgabe
JOIN campus.tbl_paabgabetyp USING (paabgabetyp_kurzbz)
JOIN lehre.tbl_projektarbeit USING (projektarbeit_id)
JOIN lehre.tbl_lehreinheit using(lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung using(lehrveranstaltung_id)
JOIN public.tbl_studiengang on(lehre.tbl_lehrveranstaltung.studiengang_kz=public.tbl_studiengang.studiengang_kz)
-
+ JOIN public.tbl_benutzer ON (public.tbl_benutzer.uid = student_uid)
+ JOIN public.tbl_person USING (person_id)
WHERE campus.tbl_paabgabe.insertamum >= NOW() - INTERVAL ?
OR campus.tbl_paabgabe.updateamum >= NOW() - INTERVAL ?";
@@ -85,13 +87,17 @@ class Paabgabe_model extends DB_Model
public function findAbgabenNewOrUpdatedSinceByAbgabedatum($interval) {
$query = "SELECT projektarbeit_id, paabgabe_id, paabgabetyp_kurzbz, fixtermin, datum, kurzbz, campus.tbl_paabgabetyp.bezeichnung, campus.tbl_paabgabe.abgabedatum,
- campus.tbl_paabgabe.insertvon, campus.tbl_paabgabe.insertamum, campus.tbl_paabgabe.updatevon, campus.tbl_paabgabe.updateamum,
- campus.tbl_paabgabe.note, upload_allowed, beurteilungsnotiz, student_uid, tbl_projektarbeit.note, lehre.tbl_projektarbeit.titel,
- lehre.tbl_projektbetreuer.betreuerart_kurzbz, lehre.tbl_projektbetreuer.person_id
+ campus.tbl_paabgabe.insertvon, campus.tbl_paabgabe.insertamum, campus.tbl_paabgabe.updatevon, campus.tbl_paabgabe.updateamum,
+ campus.tbl_paabgabe.note, upload_allowed, beurteilungsnotiz, student_uid, tbl_projektarbeit.note, lehre.tbl_projektarbeit.titel,
+ lehre.tbl_projektbetreuer.betreuerart_kurzbz, lehre.tbl_projektbetreuer.person_id,
+ public.tbl_person.anrede, public.tbl_person.titelpre, public.tbl_person.vorname, public.tbl_person.nachname, public.tbl_person.titelpost
+
FROM campus.tbl_paabgabe
JOIN campus.tbl_paabgabetyp USING (paabgabetyp_kurzbz)
JOIN lehre.tbl_projektarbeit USING (projektarbeit_id)
JOIN lehre.tbl_projektbetreuer USING (projektarbeit_id)
+ JOIN public.tbl_benutzer ON (public.tbl_benutzer.uid = student_uid)
+ JOIN public.tbl_person ON (public.tbl_benutzer.person_id = public.tbl_person.person_id)
WHERE campus.tbl_paabgabe.abgabedatum IS NOT NULL
AND campus.tbl_paabgabe.abgabedatum >= NOW() - INTERVAL ?