diff --git a/README.md b/README.md index d5620010a..c5212a353 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # FH-Complete * [FH-Complete Homepage](https://www.fhcomplete.org) -* [Wiki](https://wiki.fhcomplete.org/) +* [Wiki](https://wiki.fhcomplete.info/) * [Changelog](CHANGELOG.md) diff --git a/application/controllers/lehre/Pruefungsprotokoll.php b/application/controllers/lehre/Pruefungsprotokoll.php index 467a7dc71..21f50acca 100644 --- a/application/controllers/lehre/Pruefungsprotokoll.php +++ b/application/controllers/lehre/Pruefungsprotokoll.php @@ -220,7 +220,7 @@ class Pruefungsprotokoll extends Auth_Controller $nullfields = array('uhrzeit', 'endezeit', 'abschlussbeurteilung_kurzbz', 'protokoll'); foreach ($data as $idx => $item) { - if (in_array($idx, $nullfields) & $item === '') + if (in_array($idx, $nullfields) && $item === '') $data[$idx] = null; } diff --git a/application/libraries/LDAPLib.php b/application/libraries/LDAPLib.php index 57c8902b5..a119af51e 100644 --- a/application/libraries/LDAPLib.php +++ b/application/libraries/LDAPLib.php @@ -167,7 +167,7 @@ class LDAPLib } // LDAP connection - $ldapConnection = @ldap_connect($ldapConfigs[self::SERVER], $ldapConfigs[self::PORT]); + $ldapConnection = @ldap_connect($ldapConfigs[self::SERVER].':'.$ldapConfigs[self::PORT]); if ($ldapConnection) // if success { // Sets the LDAP protocol version diff --git a/application/models/education/Projektbetreuer_model.php b/application/models/education/Projektbetreuer_model.php index 746e4c052..4da88e344 100644 --- a/application/models/education/Projektbetreuer_model.php +++ b/application/models/education/Projektbetreuer_model.php @@ -41,4 +41,23 @@ class Projektbetreuer_model extends DB_Model return error ('Incorrect parameter type'); } } + + /** + * Get Projektbetreuer data by authentification token + * @param $zugangstoken + * @return object + */ + public function getBetreuerByToken($zugangstoken) + { + $qry = ' + SELECT tbl_projektbetreuer.person_id, tbl_projektbetreuer.projektarbeit_id, student_uid + FROM lehre.tbl_projektbetreuer + JOIN lehre.tbl_projektarbeit USING (projektarbeit_id) + WHERE zugangstoken = ? AND zugangstoken_gueltigbis >= NOW() + ORDER BY tbl_projektbetreuer.insertamum DESC, projektarbeit_id DESC + LIMIT 1 + '; + + return $this->execQuery($qry, array($zugangstoken)); + } } diff --git a/application/models/person/Benutzer_model.php b/application/models/person/Benutzer_model.php index c1e76ce38..eff1329a6 100644 --- a/application/models/person/Benutzer_model.php +++ b/application/models/person/Benutzer_model.php @@ -13,6 +13,11 @@ class Benutzer_model extends DB_Model $this->hasSequence = false; } + /** + * Gets active Benutzer from person_id + * @param $person_id + * @return object + */ public function getFromPersonId($person_id) { return $this->loadWhere(array('person_id' => $person_id, 'aktiv' => true)); diff --git a/cis/private/lehre/abgabe_lektor_details.php b/cis/private/lehre/abgabe_lektor_details.php index 7022ead1f..6b6b5633b 100644 --- a/cis/private/lehre/abgabe_lektor_details.php +++ b/cis/private/lehre/abgabe_lektor_details.php @@ -35,6 +35,8 @@ require_once('../../../include/datum.class.php'); require_once('../../../include/mail.class.php'); require_once('../../../include/phrasen.class.php'); require_once('../../../include/projektarbeit.class.php'); +require_once('../../../include/projektbetreuer.class.php'); +require_once('../../../include/sancho.inc.php'); if (!$db = new basis_db()) $db=false; @@ -116,6 +118,68 @@ if($projektarbeit_id==-1) if(!$projektarbeit_obj->load($projektarbeit_id)) die('Fehler beim Laden der Projektarbeit'); $titel = $projektarbeit_obj->titel; +$student_uid = $projektarbeit_obj->student_uid; + +// paarbeit sollte nur ab SS2021 online bewertet werden +$qry_sem="SELECT 1 + FROM lehre.tbl_projektarbeit + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + JOIN public.tbl_studiensemester USING(studiensemester_kurzbz) + WHERE projektarbeit_id=".$db->db_add_param($projektarbeit_id, FHC_INTEGER)." + AND tbl_studiensemester.start::date >= (SELECT start FROM public.tbl_studiensemester WHERE studiensemester_kurzbz = 'SS2021')::date + LIMIT 1"; +$result_sem=$db->db_query($qry_sem); +$num_rows_sem = $db->db_num_rows($result_sem); +if($num_rows_sem < 0) +{ + echo "".$p->t('abgabetool/fehlerAktualitaetProjektarbeit')."
 "; +} + +// Zweitbegutachter holen +if($betreuerart=="Erstbegutachter") +{ + $projektbetreuer = new projektbetreuer(); + $alleBegutachter = $projektbetreuer->getProjektbetreuer($projektarbeit_id); + + if ($alleBegutachter) + { + $alleBegutachterResults = $projektbetreuer->result; + + foreach ($alleBegutachterResults as $begutachter) + { + if ($begutachter->betreuerart_kurzbz == "Erstbegutachter") + { + $erstbetreuer_id = $begutachter->person_id; + $zweitbegutachter = $projektbetreuer->getZweitbegutachterWithToken($erstbetreuer_id, $projektarbeit_id, $student_uid); + break; + } + } + + // Mail mit Token an Zweitbegutachter senden + if ($zweitbegutachter && $num_rows_sem >= 1 && isset($_GET['zweitbegutachtertoken'])) + { + $qry_std="SELECT * FROM campus.vw_benutzer where uid=".$db->db_add_param($uid); + if(!$result_std=$db->db_query($qry_std)) + { + echo "Student konnte nicht gefunden werden!
 "; + } + else + { + $row_std=@$db->db_fetch_object($result_std); + $mailres = sendZweitbegutachterMail($zweitbegutachter, $erstbetreuer_id, $row_std); + + if ($mailres) + { + echo "
".$p->t('abgabetool/zweitbegutachterMailGesendet', $zweitbegutachter->email)."
 "; + } + else + { + echo "".$p->t('abgabetool/fehlerMailZweitBegutachter')." Mail: ".$zweitbegutachter->email."
 "; + } + } + } + } +} echo ' @@ -124,6 +188,39 @@ echo ' '.$p->t('abgabetool/abgabetool').' + - - - - - -'; - - echo '

'.$p->t('abgabetool/ueberschrift'); - if(trim($uid)!='') - echo " ($uid $vorname $nachname)
Anleitung ".$p->t('global/handbuch')."
"; - echo '

'; - echo $htmlstr; - echo ' -'; -?> + + + + + +'; + + echo '

'.$p->t('abgabetool/ueberschrift'); + if(trim($uid)!='') + echo " ($uid $vorname $nachname)
Anleitung ".$p->t('global/handbuch')."
"; + echo '

'; + echo $htmlstr; + echo ' +'; +?> diff --git a/cis/private/lehre/abgabe_student_details.php b/cis/private/lehre/abgabe_student_details.php index e12bb1fb8..a30250435 100644 --- a/cis/private/lehre/abgabe_student_details.php +++ b/cis/private/lehre/abgabe_student_details.php @@ -34,6 +34,8 @@ require_once('../../../include/mail.class.php'); require_once('../../../include/benutzerberechtigung.class.php'); require_once('../../../include/phrasen.class.php'); require_once('../../../include/projektarbeit.class.php'); +require_once('../../../include/projektbetreuer.class.php'); +require_once('../../../include/sancho.inc.php'); $anzeigesprache = getSprache(); $p = new phrasen($anzeigesprache); @@ -324,7 +326,6 @@ if($command=="update" && $error!=true) { if($row_zd=@$db->db_fetch_object($result_zd)) { - $htmlstr = "
".$p->t('abgabetool/betreuer').": ".$db->convert_html_chars($betreuer)."
".$p->t('abgabetool/titel').": ".$db->convert_html_chars($titel)."

\n"; $htmlstr .= "\n"; $htmlstr .= "\n"; @@ -397,7 +398,7 @@ if($command=="update" && $error!=true) echo $p->t('global/dateiNichtErfolgreichHochgeladen'); } } - //E-Mail an 1.Begutachter + //E-Mail an 1.Begutachter und 2.Begutachter if($bid!='' && $bid!=NULL) { $qry_betr="SELECT distinct trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first, @@ -422,15 +423,98 @@ if($command=="update" && $error!=true) } else { + // paarbeit sollte nur ab SS2021 online bewertet werden + $qry_sem="SELECT 1 + FROM lehre.tbl_projektarbeit + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + JOIN public.tbl_studiensemester USING(studiensemester_kurzbz) + WHERE projektarbeit_id=".$db->db_add_param($projektarbeit_id, FHC_INTEGER)." + AND tbl_studiensemester.start::date >= (SELECT start FROM public.tbl_studiensemester WHERE studiensemester_kurzbz = 'SS2021')::date + LIMIT 1"; + + $result_sem=$db->db_query($qry_sem); + $num_rows_sem = $db->db_num_rows($result_sem); + if($num_rows_sem < 0) + { + echo "".$p->t('abgabetool/fehlerAktualitaetProjektarbeit')."
 "; + } + $row_std=$db->db_fetch_object($result_std); - $mail = new mail($row_betr->mitarbeiter_uid."@".DOMAIN, "no-reply@".DOMAIN, "Bachelor-/Masterarbeitsbetreuung", - "Sehr geehrte".($row_betr->anrede=="Herr"?"r":"")." ".$row_betr->anrede." ".$row_betr->first."!\n\n".($row_std->anrede)." ".trim($row_std->titelpre." ".$row_std->vorname." ".$row_std->nachname." ".$row_std->titelpost)." hat eine Abgabe vorgenommen.\n\n--------------------------------------------------------------------------\nDies ist ein vom Bachelor-/Masterarbeitsabgabesystem generiertes Info-Mail\nCis->Mein CIS->Projektarbeiten->Bachelor- und Masterarbeitsabgabe\n--------------------------------------------------------------------------"); - $mail->setReplyTo($user."@".DOMAIN); - if(!$mail->send()) + // 1. Begutachter mail ohne Token + $mail_baselink = APP_ROOT."index.ci.php/extensions/FHC-Core-Projektarbeitsbeurteilung/Projektarbeitsbeurteilung"; + $mail_fulllink = "$mail_baselink?projektarbeit_id=".$projektarbeit_id."&uid=".$row_std->uid; + $maildata = array(); + $maildata['geehrt'] = "geehrte".($row_betr->anrede=="Herr"?"r":""); + $maildata['anrede'] = $row_betr->anrede; + $maildata['betreuer_voller_name'] = $row_betr->first; + $maildata['student_anrede'] = $row_std->anrede; + $maildata['student_voller_name'] = trim($row_std->titelpre." ".$row_std->vorname." ".$row_std->nachname." ".$row_std->titelpost); + $maildata['parbeituebersichtlink'] = "

Zur Projektarbeitsübersicht

"; + $maildata['bewertunglink'] = $num_rows_sem >= 1 ? "

Zur Beurteilung der Arbeit

" : ""; + $maildata['token'] = ""; + + $mailres = sendSanchoMail( + 'ParbeitsbeurteilungEndupload', + $maildata, + $row_betr->mitarbeiter_uid."@".DOMAIN, + "Bachelor-/Masterarbeitsbetreuung", + 'sancho_header_min_bw.jpg', + 'sancho_footer_min_bw.jpg', + $user."@".DOMAIN); + + if(!$mailres) { echo "".$p->t('abgabetool/fehlerMailBegutachter')."
 "; } + + // 2. Begutachter mail, wenn Endabgabe, mit Token wenn extern + if ($paabgabetyp_kurzbz == 'end') + { + $projektbetreuer = new projektbetreuer(); + $zweitbetr = $projektbetreuer->getZweitbegutachterWithToken($bid, $projektarbeit_id, $row_std->uid); + + if ($zweitbetr) + { + $tokenGenRes = $projektbetreuer->generateZweitbegutachterToken($zweitbetr->person_id, $projektarbeit_id); + + if (!$tokenGenRes) + echo "" . $p->t('abgabetool/fehlerMailZweitBegutachter') . "
 "; + + $zweitbetr = $projektbetreuer->getZweitbegutachterWithToken($bid, $projektarbeit_id, $row_std->uid); + + if (!$zweitbetr) + echo "" . $p->t('abgabetool/fehlerMailZweitBegutachter') . "
 "; + + $intern = isset($zweitbetr->uid); + $mail_link = $intern ? $mail_fulllink : $mail_baselink; + + $zweitbetmaildata = array(); + $zweitbetmaildata['geehrt'] = "geehrte" . ($zweitbetr->anrede == "Herr" ? "r" : ""); + $zweitbetmaildata['anrede'] = $zweitbetr->anrede; + $zweitbetmaildata['betreuer_voller_name'] = $zweitbetr->voller_name; + $zweitbetmaildata['student_anrede'] = $maildata['student_anrede']; + $zweitbetmaildata['student_voller_name'] = $maildata['student_voller_name']; + $zweitbetmaildata['parbeituebersichtlink'] = $intern ? $maildata['parbeituebersichtlink'] : ""; + $zweitbetmaildata['bewertunglink'] = $num_rows_sem >= 1 ? "

Zur Beurteilung der Arbeit

" : ""; + $zweitbetmaildata['token'] = $num_rows_sem >= 1 && isset($zweitbetr->zugangstoken) && !$intern ? "

Zugangstoken: " . $zweitbetr->zugangstoken . "

" : ""; + + $mailres = sendSanchoMail( + 'ParbeitsbeurteilungEndupload', + $zweitbetmaildata, + $zweitbetr->email, + "Masterarbeitsbetreuung", + 'sancho_header_min_bw.jpg', + 'sancho_footer_min_bw.jpg', + $user . "@" . DOMAIN + ); + + if (!$mailres) + { + echo "" . $p->t('abgabetool/fehlerMailZweitBegutachter') . "
 "; + } + } + } } } else diff --git a/cis/private/pdfExport.php b/cis/private/pdfExport.php index ea1fbab66..99b5c94f0 100644 --- a/cis/private/pdfExport.php +++ b/cis/private/pdfExport.php @@ -39,6 +39,7 @@ require_once('../../include/prestudent.class.php'); require_once('../../include/dokument_export.class.php'); require_once('../../include/person.class.php'); require_once('../../include/webservicelog.class.php'); +require_once('../../include/projektarbeit.class.php'); if (!$db = new basis_db()) die('Fehler beim Oeffnen der Datenbankverbindung'); @@ -120,7 +121,7 @@ $params = 'xmlformat=xml'; //Admins duerfen Dokumente anderer Personen drucken if ($rechte->isBerechtigt('admin')) - $user = $_GET['uid']; + $user = isset($_GET['uid']) ? $_GET['uid'] : $user; $params .= '&uid='.$user; if (isset($_GET['person_id'])) @@ -139,6 +140,11 @@ if (isset($_GET['all'])) $params .= '&all=1'; if (isset($_GET['xsl_oe_kurzbz'])) $params .= '&xsl_oe_kurzbz='. $_GET['xsl_oe_kurzbz']; +if (isset($_GET['projektarbeit_id'])) + $params .= '&projektarbeit_id='. $_GET['projektarbeit_id']; +if (isset($_GET['betreuerart_kurzbz'])) + $params .= '&betreuerart_kurzbz='. $_GET['betreuerart_kurzbz']; + // Logeintrag bei Download von Zahlungsbestaetigungen if (isset($_GET['xsl']) && $_GET['xsl'] == 'Zahlung') @@ -150,7 +156,7 @@ if (isset($_GET['xsl']) && $_GET['xsl'] == 'Zahlung') $log->request_id = isset($_GET['buchungsnummern']) && !empty($_GET['buchungsnummern']) ? $_GET['buchungsnummern'] : NULL; $log->beschreibung = 'Zahlungsbestaetigungsdownload'; $log->request_data = $requestdata; - $log->execute_user = $user; + $log->execute_user = get_uid(); $log->save(true); } @@ -183,9 +189,40 @@ if (isset($_GET['output']) && $_GET['output'] != 'pdf') else $output = 'pdf'; +if (isset($_GET['xsl']) && ($_GET['xsl'] === 'Projektbeurteilung')) +{ + if (!isset($_GET['betreuerart_kurzbz']) || !isset($_GET['person_id']) || !isset($_GET['projektarbeit_id'])) + die('Fehlerhafte Parameteruebergabe'); + + $projektarbeit = new projektarbeit(); + $projektarbeit->load($_GET['projektarbeit_id']); + + $betreuer = new person(); + $betreuer->getPersonFromBenutzer($user); + + //Überprüft ob es der Betreuer oder der Student ist + if ($betreuer->person_id !== $_GET['person_id'] && $projektarbeit->student_uid !== $user && !$rechte->isBerechtigt('assistenz')) + die("

Sie haben keine Berechtigung für diese Aktion.

"); + + switch ($_GET['betreuerart_kurzbz']) + { + case 'Begutachter' : + $xsl = 'ProjektBeurteilungBA'; + break; + case 'Erstbegutachter' : + $xsl = 'ProjektBeurteilungMAErst'; + break; + case 'Zweitbegutachter' : + $xsl = 'ProjektBeurteilungMAZweit'; + break; + } + + $allowed = true; +} + $konto = new konto(); -if (((isset($_GET["uid"]) && $user == $_GET["uid"])) || $rechte->isBerechtigt('admin')) +if ((((isset($_GET["uid"]) && $user == $_GET["uid"])) || $rechte->isBerechtigt('admin')) || (isset($allowed) && $allowed === true)) { $buchungstypen = array(); if (defined("CIS_DOKUMENTE_STUDIENBEITRAG_TYPEN")) diff --git a/cis/private/tools/projektabgabe.php b/cis/private/tools/projektabgabe.php index 586380bd6..9580fcf38 100644 --- a/cis/private/tools/projektabgabe.php +++ b/cis/private/tools/projektabgabe.php @@ -1,333 +1,334 @@ - - * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > - * Rudolf Hangl < rudolf.hangl@technikum-wien.at > - * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > - */ -/******************************************************************************************************* - * projektabgabe - * projektabgabe ermöglicht den Download aller Abgaben eines Stg. - * fuer Diplom- und Bachelorarbeiten - *******************************************************************************************************/ - -require_once('../../../config/cis.config.inc.php'); -require_once('../../../include/functions.inc.php'); -require_once('../../../include/studiengang.class.php'); -require_once('../../../include/datum.class.php'); -require_once('../../../include/benutzerberechtigung.class.php'); -require_once('../../../include/datum.class.php'); -require_once('../../../include/mail.class.php'); -require_once('../../../include/phrasen.class.php'); - -$sprache = getSprache(); -$p = new phrasen($sprache); - -if (!$db = new basis_db()) - die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung')); - -$aktion=''; -if(isset($_REQUEST['aktion'])) -{ - $aktion=$_REQUEST['aktion']; -} -$zipfile=''; -$stg_kz=(isset($_REQUEST['stg_kz'])?$_REQUEST['stg_kz']:''); -if(!is_numeric($stg_kz) && $stg_kz!='') - exit(); - -$abgabetyp=(isset($_REQUEST['abgabetyp'])?$_REQUEST['abgabetyp']:''); -$termin=(isset($_REQUEST['termin'])?$_REQUEST['termin']:''); - -$htmlstr=''; -$datum_obj = new datum(); -$user = get_uid(); -$rechte = new benutzerberechtigung(); -$rechte->getBerechtigungen($user); -$berechtigung_kurzbz = 'lehre/abgabetool:download'; - -if(isset($_GET['id']) && isset($_GET['uid'])) -{ - if($rechte->isBerechtigt($berechtigung_kurzbz)) - { - if(!is_numeric($_GET['id']) || $_GET['id']=='') - die($p->t('global/fehlerBeiDerParameteruebergabe')); - - $file = $_GET['id'].'_'.$_GET['uid'].'.pdf'; - $filename = PAABGABE_PATH.$file; - header('Content-Type: application/octet-stream'); - header('Content-disposition: attachment; filename="'.$file.'"'); - readfile($filename); - } - else - { - die($p->t('global/keineBerechtigungFuerDieseSeite')); - } - exit(); -} - - -if($aktion!='zip') -{ - echo ' - - - '.$p->t('abgabetool/projektabgabeUebersicht').' - - - + + * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > + * Rudolf Hangl < rudolf.hangl@technikum-wien.at > + * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + */ +/******************************************************************************************************* + * projektabgabe + * projektabgabe ermöglicht den Download aller Abgaben eines Stg. + * fuer Diplom- und Bachelorarbeiten + *******************************************************************************************************/ + +require_once('../../../config/cis.config.inc.php'); +require_once('../../../include/functions.inc.php'); +require_once('../../../include/studiengang.class.php'); +require_once('../../../include/datum.class.php'); +require_once('../../../include/benutzerberechtigung.class.php'); +require_once('../../../include/datum.class.php'); +require_once('../../../include/mail.class.php'); +require_once('../../../include/phrasen.class.php'); + +include('../../../include/meta/jquery.php'); +include('../../../include/meta/jquery-tablesorter.php'); + +$sprache = getSprache(); +$p = new phrasen($sprache); + +if (!$db = new basis_db()) + die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung')); + +$aktion=''; +if(isset($_REQUEST['aktion'])) +{ + $aktion=$_REQUEST['aktion']; +} +$zipfile=''; +$stg_kz=(isset($_REQUEST['stg_kz'])?$_REQUEST['stg_kz']:''); +if(!is_numeric($stg_kz) && $stg_kz!='') + exit(); + +$abgabetyp=(isset($_REQUEST['abgabetyp'])?$_REQUEST['abgabetyp']:''); +$termin=(isset($_REQUEST['termin'])?$_REQUEST['termin']:''); + +$htmlstr=''; +$datum_obj = new datum(); +$user = get_uid(); +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($user); +$berechtigung_kurzbz = 'lehre/abgabetool:download'; + +if(isset($_GET['id']) && isset($_GET['uid'])) +{ + if($rechte->isBerechtigt($berechtigung_kurzbz)) + { + if(!is_numeric($_GET['id']) || $_GET['id']=='') + die($p->t('global/fehlerBeiDerParameteruebergabe')); + + $file = $_GET['id'].'_'.$_GET['uid'].'.pdf'; + $filename = PAABGABE_PATH.$file; + header('Content-Type: application/octet-stream'); + header('Content-disposition: attachment; filename="'.$file.'"'); + readfile($filename); + } + else + { + die($p->t('global/keineBerechtigungFuerDieseSeite')); + } + exit(); +} + + +if($aktion!='zip') +{ + echo ' + + + '.$p->t('abgabetool/projektabgabeUebersicht').' + + + - - - + - - - - - -

'.$p->t('abgabetool/projektabgabeUebersicht').'

'; - - $s = new studiengang(); - $s->loadArray($rechte->getStgKz($berechtigung_kurzbz),'typ,kurzbz'); - - echo''; - - echo $p->t('global/studiengang').": "; - - - echo $p->t('abgabetool/abgabetyp').": "; - - $qry_termin=" SELECT distinct campus.tbl_paabgabe.datum as termin , to_char(campus.tbl_paabgabe.datum, 'DD.MM.YYYY') as termin_anzeige - FROM lehre.tbl_projektarbeit - JOIN campus.tbl_paabgabe USING(projektarbeit_id) - LEFT JOIN public.tbl_benutzer ON(uid=student_uid) - LEFT JOIN public.tbl_person ON(tbl_benutzer.person_id=tbl_person.person_id) - LEFT JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) - LEFT JOIN public.tbl_studiengang USING(studiengang_kz) - WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom') - "; - - if ($stg_kz!='') - $qry_termin.=" AND public.tbl_studiengang.studiengang_kz=".$db->db_add_param($stg_kz, FHC_INTEGER); - if ($abgabetyp!='') - $qry_termin.=" AND campus.tbl_paabgabe.paabgabetyp_kurzbz=".$db->db_add_param($abgabetyp); - $qry_termin.=" ORDER BY termin desc"; - - echo ' '.$p->t('abgabetool/termin').' '; - - ?> - -t('global/anzeigen')."' onclick=\"f=document.abgabeFrm;f.aktion.value='';\"> 
"; - } - -if(isset($_REQUEST['ok']) || (isset($_REQUEST['aktion']) && $_REQUEST['aktion']=='zip')) -{ - - $s=new studiengang(); - if($stg_kz!='' && !$s->load($stg_kz)) - { - die($p->t('global/studiengangKonnteNichtGefundenWerden')); - } - - if($rechte->isBerechtigt('admin') || $rechte->isBerechtigt($berechtigung_kurzbz, $s->oe_kurzbz)) - { - $qry=""; - - $qry.=" SELECT public.tbl_studiengang.bezeichnung as stgbez, campus.tbl_paabgabe.datum as termin,* - FROM lehre.tbl_projektarbeit - JOIN campus.tbl_paabgabe USING(projektarbeit_id) - LEFT JOIN public.tbl_benutzer ON(uid=student_uid) - LEFT JOIN public.tbl_person ON(tbl_benutzer.person_id=tbl_person.person_id) - LEFT JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) - LEFT JOIN public.tbl_studiengang USING(studiengang_kz) - WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom') - - "; - - if ($stg_kz!='') - $qry.=" AND public.tbl_studiengang.studiengang_kz=".$db->db_add_param($stg_kz); - if ($abgabetyp!='') - $qry.=" AND campus.tbl_paabgabe.paabgabetyp_kurzbz=".$db->db_add_param($abgabetyp); - if ($termin!='') - $qry.=" AND campus.tbl_paabgabe.datum=".$db->db_add_param($termin); - $qry.=" ORDER BY nachname "; - - if($stg_kz=='' && $abgabetyp=='' && $termin=='') - { - $qry.=" limit 100 "; - } - - if(!$erg=$db->db_query($qry)) - { - die('Fehler beim Laden der Betreuungen!'); - } - else - { - $htmlstr .= "
\n"; - $htmlstr .= "\n"; - $htmlstr .= " - - - - - "; - $htmlstr .= " - "; - $htmlstr .= "\n"; - $i = 0; - while($row=$db->db_fetch_object($erg)) - { - $htmlstr .= ""; - if(file_exists(PAABGABE_PATH.$row->paabgabe_id.'_'.$row->uid.'.pdf')) - { - $htmlstr .= " "; - } - else - { - $htmlstr .= " "; - } - //$htmlstr .= ""; - $htmlstr .= ""; - $htmlstr .= ""; - $htmlstr .= ""; - $htmlstr .= "\n"; - $htmlstr .= "\n"; - $htmlstr .= "\n"; - $htmlstr .= "\n"; - if($aktion=='zip') - { - if($zipfile=='') - { - $zipfile = $row->paabgabe_id.'_'.$row->uid.'.pdf'; - } - else - { - $zipfile .= " ".$row->paabgabe_id.'_'.$row->uid.'.pdf'; - } - } - } - $htmlstr .= "
".$p->t('global/download')."".$p->t('abgabetool/termin')."".$p->t('abgabetool/abgabetyp')."".$p->t('global/uid')."".$p->t('global/vorname')."".$p->t('global/nachname')."".$p->t('abgabetool/typ')."".$p->t('abgabetool/titel')."
uid' target='_blank'>PDF    link".$datum_obj->formatDatum($row->termin,'d.m.Y')."".$abgabetyp." ".$row->uid." ".$row->vorname." ".$row->nachname." ".$row->projekttyp_kurzbz." ".$row->titel." 
"; - } - } - else - { - die($p->t('global/keineBerechtigungFuerDieseSeite')); - } -} - -if($zipfile=='') -{ - echo $htmlstr; - echo ""; -} -else -{ - if(!$rechte->isBerechtigt($berechtigung_kurzbz)) - { - die($p->t('global/keineBerechtigungFuerDieseSeite')); - } - - //Zip File erstellen - chdir(PAABGABE_PATH); - $zipausgabe=tempnam("/tmp", "PAA").".zip"; - exec("zip ".$zipausgabe." ".$zipfile); - - if(file_exists($zipausgabe)) - { - header('Content-Type: application/octet-stream'); - header('Content-disposition: attachment; filename="Abgabe_'.$s->kuerzel.'.zip"'); - $handle = fopen($zipausgabe, "rb"); - - while (!feof($handle)) - { - echo fread($handle, 1024); - } - - fclose($handle); - - //echo file_get_contents($zipausgabe); - unlink($zipausgabe); - } - else - { - echo $p->t('global/dateiExistiertNicht'); - } -} -?> + + + + +

'.$p->t('abgabetool/projektabgabeUebersicht').'

'; + + $s = new studiengang(); + $s->loadArray($rechte->getStgKz($berechtigung_kurzbz),'typ,kurzbz'); + + echo'
'; + + echo $p->t('global/studiengang').": "; + + + echo $p->t('abgabetool/abgabetyp').": "; + + $qry_termin=" SELECT distinct campus.tbl_paabgabe.datum as termin , to_char(campus.tbl_paabgabe.datum, 'DD.MM.YYYY') as termin_anzeige + FROM lehre.tbl_projektarbeit + JOIN campus.tbl_paabgabe USING(projektarbeit_id) + LEFT JOIN public.tbl_benutzer ON(uid=student_uid) + LEFT JOIN public.tbl_person ON(tbl_benutzer.person_id=tbl_person.person_id) + LEFT JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) + LEFT JOIN public.tbl_studiengang USING(studiengang_kz) + WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom') + "; + + if ($stg_kz!='') + $qry_termin.=" AND public.tbl_studiengang.studiengang_kz=".$db->db_add_param($stg_kz, FHC_INTEGER); + if ($abgabetyp!='') + $qry_termin.=" AND campus.tbl_paabgabe.paabgabetyp_kurzbz=".$db->db_add_param($abgabetyp); + $qry_termin.=" ORDER BY termin desc"; + + echo ' '.$p->t('abgabetool/termin').' '; + + ?> + +t('global/anzeigen')."' onclick=\"f=document.abgabeFrm;f.aktion.value='';\"> 

"; + } + +if(isset($_REQUEST['ok']) || (isset($_REQUEST['aktion']) && $_REQUEST['aktion']=='zip')) +{ + + $s=new studiengang(); + if($stg_kz!='' && !$s->load($stg_kz)) + { + die($p->t('global/studiengangKonnteNichtGefundenWerden')); + } + + if($rechte->isBerechtigt('admin') || $rechte->isBerechtigt($berechtigung_kurzbz, $s->oe_kurzbz)) + { + $qry=""; + + $qry.=" SELECT public.tbl_studiengang.bezeichnung as stgbez, campus.tbl_paabgabe.datum as termin,* + FROM lehre.tbl_projektarbeit + JOIN campus.tbl_paabgabe USING(projektarbeit_id) + LEFT JOIN public.tbl_benutzer ON(uid=student_uid) + LEFT JOIN public.tbl_person ON(tbl_benutzer.person_id=tbl_person.person_id) + LEFT JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) + LEFT JOIN public.tbl_studiengang USING(studiengang_kz) + WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom') + + "; + + if ($stg_kz!='') + $qry.=" AND public.tbl_studiengang.studiengang_kz=".$db->db_add_param($stg_kz); + if ($abgabetyp!='') + $qry.=" AND campus.tbl_paabgabe.paabgabetyp_kurzbz=".$db->db_add_param($abgabetyp); + if ($termin!='') + $qry.=" AND campus.tbl_paabgabe.datum=".$db->db_add_param($termin); + $qry.=" ORDER BY nachname "; + + if($stg_kz=='' && $abgabetyp=='' && $termin=='') + { + $qry.=" limit 100 "; + } + + if(!$erg=$db->db_query($qry)) + { + die('Fehler beim Laden der Betreuungen!'); + } + else + { + $htmlstr .= "\n"; + $htmlstr .= "\n"; + $htmlstr .= " + + + + + "; + $htmlstr .= " + "; + $htmlstr .= "\n"; + $i = 0; + while($row=$db->db_fetch_object($erg)) + { + $htmlstr .= ""; + if(file_exists(PAABGABE_PATH.$row->paabgabe_id.'_'.$row->uid.'.pdf')) + { + $htmlstr .= " "; + } + else + { + $htmlstr .= " "; + } + //$htmlstr .= ""; + $htmlstr .= ""; + $htmlstr .= ""; + $htmlstr .= ""; + $htmlstr .= "\n"; + $htmlstr .= "\n"; + $htmlstr .= "\n"; + $htmlstr .= "\n"; + if($aktion=='zip') + { + if($zipfile=='') + { + $zipfile = $row->paabgabe_id.'_'.$row->uid.'.pdf'; + } + else + { + $zipfile .= " ".$row->paabgabe_id.'_'.$row->uid.'.pdf'; + } + } + } + $htmlstr .= "
".$p->t('global/download')."".$p->t('abgabetool/termin')."".$p->t('abgabetool/abgabetyp')."".$p->t('global/uid')."".$p->t('global/vorname')."".$p->t('global/nachname')."".$p->t('abgabetool/typ')."".$p->t('abgabetool/titel')."
uid' target='_blank'>PDF    link".$datum_obj->formatDatum($row->termin,'d.m.Y')."".$abgabetyp." ".$row->uid." ".$row->vorname." ".$row->nachname." ".$row->projekttyp_kurzbz." ".$row->titel." 
"; + } + } + else + { + die($p->t('global/keineBerechtigungFuerDieseSeite')); + } +} + +if($zipfile=='') +{ + echo $htmlstr; + echo ""; +} +else +{ + if(!$rechte->isBerechtigt($berechtigung_kurzbz)) + { + die($p->t('global/keineBerechtigungFuerDieseSeite')); + } + + //Zip File erstellen + chdir(PAABGABE_PATH); + $zipausgabe=tempnam("/tmp", "PAA").".zip"; + exec("zip ".$zipausgabe." ".$zipfile); + + if(file_exists($zipausgabe)) + { + header('Content-Type: application/octet-stream'); + header('Content-disposition: attachment; filename="Abgabe_'.$s->kuerzel.'.zip"'); + $handle = fopen($zipausgabe, "rb"); + + while (!feof($handle)) + { + echo fread($handle, 1024); + } + + fclose($handle); + + //echo file_get_contents($zipausgabe); + unlink($zipausgabe); + } + else + { + echo $p->t('global/dateiExistiertNicht'); + } +} +?> diff --git a/content/pdfExport.php b/content/pdfExport.php index 29feeef6e..a85ebb345 100644 --- a/content/pdfExport.php +++ b/content/pdfExport.php @@ -252,7 +252,7 @@ else array('uid', 'stg_kz', 'person_id', 'id', 'prestudent_id', 'buchungsnummern', 'ss', 'abschlusspruefung_id', 'typ', 'all', 'preoutgoing_id', 'lvid', 'projekt_kurzbz', 'von', 'bis', 'stundevon', 'stundebis', 'sem', 'lehreinheit', 'mitarbeiter_uid', 'studienordnung_id', 'fixangestellt', 'standort', - 'abrechnungsmonat', 'form') + 'abrechnungsmonat', 'form', 'projektarbeit_id', 'betreuerart_kurzbz') ) ) { diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php index a80ea171a..becb31e88 100644 --- a/content/student/studentDBDML.php +++ b/content/student/studentDBDML.php @@ -2296,8 +2296,12 @@ if(!$error) { $dokumente = explode(';',$_POST['dokumente']); $errormsg = ''; + $sonst = 0; foreach ($dokumente as $dokument_kurzbz) { + if ($dokument_kurzbz === 'Sonst' && $sonst !== 0) + continue; + if($dokument_kurzbz!='') { $dok = new dokument(); @@ -2308,6 +2312,8 @@ if(!$error) $dok->insertamum = date('Y-m-d H:i:s'); $dok->insertvon = $user; $dok->new = true; + if ($dokument_kurzbz === 'Sonst') + $sonst++; if(!$dok->save()) { @@ -2501,8 +2507,13 @@ if(!$error) { $dokumente = explode(';',$_POST['dokumente']); $errormsg = ''; + $sonst = 0; + foreach ($dokumente as $dokument_kurzbz) { + if ($dokument_kurzbz === 'Sonst' && $sonst !== 0) + continue; + if($dokument_kurzbz!='') { $dok = new dokument(); @@ -2514,6 +2525,11 @@ if(!$error) { $errormsg .= "Fehler bei $dokument_kurzbz: $dok->errormsg\n"; } + else + { + if ($dokument_kurzbz === 'Sonst') + $sonst++; + } } else { diff --git a/content/student/studentprojektarbeit.js.php b/content/student/studentprojektarbeit.js.php index ab284808e..66f52f15c 100644 --- a/content/student/studentprojektarbeit.js.php +++ b/content/student/studentprojektarbeit.js.php @@ -892,7 +892,13 @@ function StudentProjektbetreuerAuswahl() document.getElementById('student-projektbetreuer-checkbox-neu').checked=false; var gesamtkosten = StudentProjektbetreuerGesamtkosten(); - + + + if (document.getElementById('student-projektbetreuer-button-beurteilung')) + { + checkBeurteilung(); + } + // Wenn Vertragsdetails angezeigt werden if (projektarbeit_vertragsdetails_anzeigen) { //Reset attributes @@ -1122,6 +1128,12 @@ function StudentProjektbetreuerDetailDisableFields(val) document.getElementById('student-projektbetreuer-button-speichern').disabled=val; document.getElementById('student-projektbetreuer-button-neueperson').disabled=val; document.getElementById('student-projektbetreuer-button-kontaktdaten').disabled=val; + + if (document.getElementById('student-projektbetreuer-button-beurteilung') && val === true) + { + document.getElementById('student-projektbetreuer-button-beurteilung').disabled=val; + document.getElementById('student-projektbetreuer-span-beurteilung').setAttribute("value", ''); + } } // **** diff --git a/content/student/studentprojektarbeitoverlay.xul.php b/content/student/studentprojektarbeitoverlay.xul.php index fe4b8b2b9..4d8ab4835 100644 --- a/content/student/studentprojektarbeitoverlay.xul.php +++ b/content/student/studentprojektarbeitoverlay.xul.php @@ -520,7 +520,7 @@ $is_hidden = (!defined('FAS_STUDIERENDE_PROJEKTARBEIT_VERTRAGSDETAILS_ANZEIGEN') - +