|
|
|
@@ -49,7 +49,8 @@ class Abgabe extends FHCAPI_Controller
|
|
|
|
|
'getStudiengaenge' => array('basis/abgabe_assistenz:rw'),
|
|
|
|
|
'getStudentProjektarbeitAbgabeFile' => array('basis/abgabe_student:rw', 'basis/abgabe_lektor:rw', 'basis/abgabe_assistenz:rw'),
|
|
|
|
|
'postStudentProjektarbeitZusatzdaten' => array('basis/abgabe_lektor:rw', 'basis/abgabe_assistenz:rw'),
|
|
|
|
|
'getSignaturStatusForProjektarbeitAbgaben' => array('basis/abgabe_lektor:rw', 'basis/abgabe_assistenz:rw')
|
|
|
|
|
'getSignaturStatusForProjektarbeitAbgaben' => array('basis/abgabe_lektor:rw', 'basis/abgabe_assistenz:rw'),
|
|
|
|
|
'sendZweitbetreuerTokenMail' => array('basis/abgabe_lektor:rw', 'basis/abgabe_assistenz:rw')
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
$this->load->library('PhrasesLib');
|
|
|
|
@@ -1527,6 +1528,27 @@ class Abgabe extends FHCAPI_Controller
|
|
|
|
|
$this->terminateWithSuccess($data);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function sendZweitbetreuerTokenMail() {
|
|
|
|
|
$projektarbeit_id = $this->input->post('projektarbeit_id');
|
|
|
|
|
$bperson_id = $this->input->post('bperson_id');
|
|
|
|
|
$student_uid = $this->input->post('student_uid');
|
|
|
|
|
|
|
|
|
|
if ($projektarbeit_id === NULL || trim((string)$projektarbeit_id) === ''
|
|
|
|
|
|| $bperson_id === NULL || trim((string)$bperson_id) === ''
|
|
|
|
|
|| $student_uid === NULL || trim((string)$student_uid) === '') {
|
|
|
|
|
$this->terminateWithError($this->p->t('global', 'wrongParameters'), 'general');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$this->checkProjektarbeitForFinishedStatus($projektarbeit_id);
|
|
|
|
|
|
|
|
|
|
$zugeordnet = $this->checkZuordnung($projektarbeit_id, getAuthUID());
|
|
|
|
|
if(!$zugeordnet) {
|
|
|
|
|
$this->terminateWithError($this->p->t('abgabetool', 'c4noZuordnungBetreuerStudent'));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$this->sendUploadEmailZweitbegutachterToken($bperson_id, $projektarbeit_id, $student_uid);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* helper function to check the signature status of uploaded files for zwischenabgabe & endupload
|
|
|
|
|
*/
|
|
|
|
@@ -1603,7 +1625,6 @@ class Abgabe extends FHCAPI_Controller
|
|
|
|
|
|
|
|
|
|
// 1. Begutachter mail ohne Token
|
|
|
|
|
$mail_baselink = APP_ROOT.$this->config->item('PROJEKTARBEITSBEURTEILUNG_MAIL_BASELINK_ERSTBEGUTACHTER');
|
|
|
|
|
// $mail_baselink = APP_ROOT."index.ci.php/extensions/FHC-Core-Projektarbeitsbeurteilung/ProjektarbeitsbeurteilungErstbegutachter";
|
|
|
|
|
$mail_fulllink = "$mail_baselink?projektarbeit_id=".$projektarbeit_id."&uid=".$studentUser->uid;
|
|
|
|
|
$projekttyp_kurzbz = $projektarbeit->projekttyp_kurzbz;
|
|
|
|
|
$subject = $projektarbeit->projekttyp_kurzbz == 'Diplom' ? 'Masterarbeitsbetreuung' : 'Bachelorarbeitsbetreuung';
|
|
|
|
@@ -1621,7 +1642,9 @@ class Abgabe extends FHCAPI_Controller
|
|
|
|
|
$maildata['token'] = "";
|
|
|
|
|
|
|
|
|
|
$email = $this->getProjektbetreuerEmailByProjektarbeitID($projektarbeit_id);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(!$email) $this->terminateWithError($this->p->t('abgabetool', 'c4fehlerMailBegutachterv2'), 'general');
|
|
|
|
|
|
|
|
|
|
$mailres = sendSanchoMail(
|
|
|
|
|
'ParbeitsbeurteilungEndupload',
|
|
|
|
|
$maildata,
|
|
|
|
@@ -1639,69 +1662,101 @@ class Abgabe extends FHCAPI_Controller
|
|
|
|
|
// 2. Begutachter mail, wenn Endabgabe, mit Token wenn extern
|
|
|
|
|
if ($paabgabetyp_kurzbz == 'end')
|
|
|
|
|
{
|
|
|
|
|
// Zweitbegutachter holen
|
|
|
|
|
$this->load->model('education/Projektbetreuer_model', 'ProjektbetreuerModel');
|
|
|
|
|
$zweitbegutachterRetval = getData($this->ProjektbetreuerModel->getZweitbegutachterWithToken($bperson_id, $projektarbeit_id, $studentUser->uid));
|
|
|
|
|
$this->addMeta('$zweitbegutachterRetval', $zweitbegutachterRetval);
|
|
|
|
|
$this->sendUploadEmailZweitbegutachterToken($bperson_id, $projektarbeit_id, $studentUser->uid);
|
|
|
|
|
|
|
|
|
|
if ($zweitbegutachterRetval && count($zweitbegutachterRetval) > 0)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private function sendUploadEmailZweitbegutachterToken($bperson_id, $projektarbeit_id, $student_uid) {
|
|
|
|
|
$this->load->model('education/Projektarbeit_model', 'ProjektarbeitModel');
|
|
|
|
|
$projektarbeitArr = $this->getDataOrTerminateWithError($this->ProjektarbeitModel->load($projektarbeit_id));
|
|
|
|
|
if(count($projektarbeitArr) > 0) {
|
|
|
|
|
$projektarbeit = $projektarbeitArr[0];
|
|
|
|
|
} else {
|
|
|
|
|
$this->terminateWithError($this->p->t('abgabetool','c4projektarbeitNichtGefunden'), 'general');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Zweitbegutachter holen
|
|
|
|
|
$this->load->model('education/Projektbetreuer_model', 'ProjektbetreuerModel');
|
|
|
|
|
$zweitbegutachterRetval = getData($this->ProjektbetreuerModel->getZweitbegutachterWithToken($bperson_id, $projektarbeit_id, $student_uid));
|
|
|
|
|
|
|
|
|
|
$projektarbeitIsCurrent = false;
|
|
|
|
|
$returnFunc = function ($result) use (&$projektarbeitIsCurrent) {
|
|
|
|
|
$projektarbeitIsCurrent = $result;
|
|
|
|
|
};
|
|
|
|
|
Events::trigger('projektarbeit_is_current', $projektarbeit_id, $returnFunc);
|
|
|
|
|
if(!$projektarbeitIsCurrent) {
|
|
|
|
|
$this->terminateWithError($this->p->t('abgabetool','c4fehlerAktualitaetProjektarbeitv2'), 'general');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($zweitbegutachterRetval && count($zweitbegutachterRetval) > 0)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
foreach ($zweitbegutachterRetval as $begutachter)
|
|
|
|
|
{
|
|
|
|
|
// token generieren, wenn noch nicht vorhanden und notwendig (wird in methode überprüft)
|
|
|
|
|
$tokenGenRes = $this->ProjektbetreuerModel->generateZweitbegutachterToken($begutachter->person_id, $projektarbeit_id);
|
|
|
|
|
|
|
|
|
|
if (!$tokenGenRes)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
foreach ($zweitbegutachterRetval as $begutachter)
|
|
|
|
|
{
|
|
|
|
|
// token generieren, wenn noch nicht vorhanden und notwendig (wird in methode überprüft)
|
|
|
|
|
$tokenGenRes = $this->ProjektbetreuerModel->generateZweitbegutachterToken($begutachter->person_id, $projektarbeit_id);
|
|
|
|
|
|
|
|
|
|
if (!$tokenGenRes)
|
|
|
|
|
{
|
|
|
|
|
$this->terminateWithError($this->p->t('abgabetool', 'c4fehlerMailZweitBegutachterv2'), 'general');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$begutachterMitTokenRetval = getData($this->ProjektbetreuerModel->getZweitbegutachterWithToken($bperson_id, $projektarbeit_id, $studentUser->uid, $begutachter->person_id));
|
|
|
|
|
|
|
|
|
|
if (!$begutachterMitTokenRetval && count($begutachterMitTokenRetval) <= 0)
|
|
|
|
|
{
|
|
|
|
|
$this->terminateWithError($this->p->t('abgabetool', 'c4fehlerMailZweitBegutachterv2'), 'general');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$begutachterMitToken = $begutachterMitTokenRetval[0];
|
|
|
|
|
|
|
|
|
|
$path = $begutachterMitToken->betreuerart_kurzbz == 'Zweitbegutachter' ? 'ProjektarbeitsbeurteilungZweitbegutachter' : 'ProjektarbeitsbeurteilungErstbegutachter';
|
|
|
|
|
$mail_baselink = APP_ROOT."index.ci.php/extensions/FHC-Core-Projektarbeitsbeurteilung/$path";
|
|
|
|
|
$mail_fulllink = "$mail_baselink?projektarbeit_id=".$projektarbeit_id."&uid=".$studentUser->uid;
|
|
|
|
|
$intern = isset($begutachterMitToken->uid);
|
|
|
|
|
$mail_link = $intern ? $mail_fulllink : $mail_baselink;
|
|
|
|
|
|
|
|
|
|
$zweitbetmaildata = array();
|
|
|
|
|
$zweitbetmaildata['geehrt'] = "geehrte" . ($begutachterMitToken->anrede == "Herr" ? "r" : "");
|
|
|
|
|
$zweitbetmaildata['anrede'] = $begutachterMitToken->anrede;
|
|
|
|
|
$zweitbetmaildata['betreuer_voller_name'] = $begutachterMitToken->voller_name;
|
|
|
|
|
$zweitbetmaildata['student_anrede'] = $maildata['student_anrede'];
|
|
|
|
|
$zweitbetmaildata['student_voller_name'] = $maildata['student_voller_name'];
|
|
|
|
|
$zweitbetmaildata['abgabetyp'] = $abgabetyp;
|
|
|
|
|
$zweitbetmaildata['parbeituebersichtlink'] = $intern ? $maildata['parbeituebersichtlink'] : "";
|
|
|
|
|
$zweitbetmaildata['bewertunglink'] = $projektarbeitIsCurrent ? "<p><a href='$mail_link'>Zur Beurteilung der Arbeit</a></p>" : "";
|
|
|
|
|
$zweitbetmaildata['token'] = $projektarbeitIsCurrent && isset($begutachterMitToken->zugangstoken) && !$intern ? "<p>Zugangstoken: " . $begutachterMitToken->zugangstoken . "</p>" : "";
|
|
|
|
|
|
|
|
|
|
$this->addMeta('$zweitbetmaildata', $zweitbetmaildata);
|
|
|
|
|
|
|
|
|
|
$mailres = sendSanchoMail(
|
|
|
|
|
'ParbeitsbeurteilungEndupload',
|
|
|
|
|
$zweitbetmaildata,
|
|
|
|
|
$begutachterMitToken->email,
|
|
|
|
|
$subject,
|
|
|
|
|
'sancho_header_min_bw.jpg',
|
|
|
|
|
'sancho_footer_min_bw.jpg',
|
|
|
|
|
get_uid()."@".DOMAIN
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
if (!$mailres)
|
|
|
|
|
{
|
|
|
|
|
$this->terminateWithError($this->p->t('abgabetool', 'c4fehlerMailBegutachterv2'), 'general');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
$this->terminateWithError($this->p->t('abgabetool', 'c4fehlerMailZweitBegutachterv2'), 'general');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$begutachterMitTokenRetval = getData($this->ProjektbetreuerModel->getZweitbegutachterWithToken($bperson_id, $projektarbeit_id, $student_uid, $begutachter->person_id));
|
|
|
|
|
|
|
|
|
|
if (!$begutachterMitTokenRetval && count($begutachterMitTokenRetval) <= 0)
|
|
|
|
|
{
|
|
|
|
|
$this->terminateWithError($this->p->t('abgabetool', 'c4fehlerMailZweitBegutachterv2'), 'general');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$begutachterMitToken = $begutachterMitTokenRetval[0];
|
|
|
|
|
|
|
|
|
|
$studentUser = $this->ProjektarbeitModel->getProjektarbeitBenutzer($student_uid)->retval[0];
|
|
|
|
|
|
|
|
|
|
$path = $begutachterMitToken->betreuerart_kurzbz == 'Zweitbegutachter' ? 'ProjektarbeitsbeurteilungZweitbegutachter' : 'ProjektarbeitsbeurteilungErstbegutachter';
|
|
|
|
|
$mail_baselink = APP_ROOT."index.ci.php/extensions/FHC-Core-Projektarbeitsbeurteilung/$path";
|
|
|
|
|
$mail_fulllink = "$mail_baselink?projektarbeit_id=".$projektarbeit_id."&uid=".$student_uid;
|
|
|
|
|
$intern = isset($begutachterMitToken->uid);
|
|
|
|
|
$mail_link = $intern ? $mail_fulllink : $mail_baselink;
|
|
|
|
|
|
|
|
|
|
// automatic email ensures that, client only exposes this method if that happened already
|
|
|
|
|
$paabgabetyp_kurzbz = 'end';
|
|
|
|
|
$abgabetyp = $paabgabetyp_kurzbz == 'end' ? 'Endabgabe' : 'Zwischenabgabe';
|
|
|
|
|
|
|
|
|
|
$path = $this->config->item('URL_MITARBEITER');
|
|
|
|
|
$url = APP_ROOT.$path;
|
|
|
|
|
|
|
|
|
|
$subject = $projektarbeit->projekttyp_kurzbz == 'Diplom' ? 'Masterarbeitsbetreuung' : 'Bachelorarbeitsbetreuung';
|
|
|
|
|
|
|
|
|
|
$zweitbetmaildata = array();
|
|
|
|
|
$zweitbetmaildata['geehrt'] = "geehrte" . ($begutachterMitToken->anrede == "Herr" ? "r" : "");
|
|
|
|
|
$zweitbetmaildata['anrede'] = $begutachterMitToken->anrede;
|
|
|
|
|
$zweitbetmaildata['betreuer_voller_name'] = $begutachterMitToken->voller_name;
|
|
|
|
|
$zweitbetmaildata['student_anrede'] = $studentUser->anrede;
|
|
|
|
|
$zweitbetmaildata['student_voller_name'] = trim($studentUser->titelpre." ".$studentUser->vorname." ".$studentUser->nachname." ".$studentUser->titelpost);
|
|
|
|
|
$zweitbetmaildata['abgabetyp'] = $abgabetyp;
|
|
|
|
|
$zweitbetmaildata['parbeituebersichtlink'] = $intern ? "<p><a href='$url'>Zur Projektarbeitsübersicht</a></p>" : "";
|
|
|
|
|
$zweitbetmaildata['bewertunglink'] = $projektarbeitIsCurrent ? "<p><a href='$mail_link'>Zur Beurteilung der Arbeit</a></p>" : "";
|
|
|
|
|
$zweitbetmaildata['token'] = $projektarbeitIsCurrent && isset($begutachterMitToken->zugangstoken) && !$intern ? "<p>Zugangstoken: " . $begutachterMitToken->zugangstoken . "</p>" : "";
|
|
|
|
|
|
|
|
|
|
$this->addMeta('$zweitbetmaildata', $zweitbetmaildata);
|
|
|
|
|
|
|
|
|
|
$mailres = sendSanchoMail(
|
|
|
|
|
'ParbeitsbeurteilungEndupload',
|
|
|
|
|
$zweitbetmaildata,
|
|
|
|
|
$begutachterMitToken->email,
|
|
|
|
|
$subject,
|
|
|
|
|
'sancho_header_min_bw.jpg',
|
|
|
|
|
'sancho_footer_min_bw.jpg',
|
|
|
|
|
get_uid()."@".DOMAIN
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
if (!$mailres)
|
|
|
|
|
{
|
|
|
|
|
$this->terminateWithError($this->p->t('abgabetool', 'c4fehlerMailBegutachterv2'), 'general');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|