From b48e4b97e7cc6f115843aad566162e42957a8773 Mon Sep 17 00:00:00 2001 From: Paolo Date: Mon, 10 Sep 2018 14:46:05 +0200 Subject: [PATCH 1/9] Infocenter: fixed caching problems in table sorter for locked/unlocked students --- application/views/system/infocenter/infocenterDetails.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/views/system/infocenter/infocenterDetails.php b/application/views/system/infocenter/infocenterDetails.php index feed2f547..2fbfa7987 100755 --- a/application/views/system/infocenter/infocenterDetails.php +++ b/application/views/system/infocenter/infocenterDetails.php @@ -67,7 +67,7 @@ echo $lockedby; if ($origin_page == 'index'): ?>    - +  p->t('ui', 'freigeben')) ?> From 3af811378daca4a0be53a1ae5f968b54c5809038 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Mon, 10 Sep 2018 14:56:45 +0200 Subject: [PATCH 2/9] STIP Schnittstelle - Fehler behoben wodurch die ECTS der positiv absolvierten LVs pro Studiensemester nicht korrekt ermittelt wurden --- soap/stip.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/soap/stip.class.php b/soap/stip.class.php index adabc8582..aa1771bf2 100644 --- a/soap/stip.class.php +++ b/soap/stip.class.php @@ -512,7 +512,7 @@ class stip extends basis_db $obj = new zeugnisnote(); $ects=0; - if(!$obj->getZeugnisnoten($lehrveranstaltung_id=null, $uid, $studiensemester_kurzbz=null)) + if(!$obj->getZeugnisnoten(null, $uid, $studiensemester_kurzbz)) die('Fehler beim Laden der Noten:'.$obj->errormsg); foreach($obj->result as $row) { From ab64ffc9ec4b97321437febef8b6dd8622e0294f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Mon, 10 Sep 2018 15:04:30 +0200 Subject: [PATCH 3/9] =?UTF-8?q?Vorherigen=20Commit=20R=C3=BCckg=C3=A4ngig?= =?UTF-8?q?=20gemacht,=20da=20die=20ECTS=20nicht=20semesterweise=20gelifer?= =?UTF-8?q?t=20werden=20sollen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soap/stip.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/soap/stip.class.php b/soap/stip.class.php index aa1771bf2..adabc8582 100644 --- a/soap/stip.class.php +++ b/soap/stip.class.php @@ -512,7 +512,7 @@ class stip extends basis_db $obj = new zeugnisnote(); $ects=0; - if(!$obj->getZeugnisnoten(null, $uid, $studiensemester_kurzbz)) + if(!$obj->getZeugnisnoten($lehrveranstaltung_id=null, $uid, $studiensemester_kurzbz=null)) die('Fehler beim Laden der Noten:'.$obj->errormsg); foreach($obj->result as $row) { From b9ee34d49389669cd883bfa2941b12e602d53001 Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Mon, 10 Sep 2018 16:48:18 +0200 Subject: [PATCH 4/9] Infoscreen BugFix Tablesorter --- vilesci/fhausweis/bildpruefung.php | 2 +- vilesci/fhausweis/bildzuschnitt.php | 92 ++--------------------- vilesci/stammdaten/infoscreen_details.php | 18 +++-- 3 files changed, 18 insertions(+), 94 deletions(-) diff --git a/vilesci/fhausweis/bildpruefung.php b/vilesci/fhausweis/bildpruefung.php index 6be0cabac..492de0c57 100644 --- a/vilesci/fhausweis/bildpruefung.php +++ b/vilesci/fhausweis/bildpruefung.php @@ -479,7 +479,7 @@ if($result = $db->db_query($qry)) '; - // Wenn es keine Akte mit Lichtbild gibt, das Foto der Person laden, sonst aus der Akte + // Wenn es eine Akte mit Lichtbild gibt, das Foto der Akte laden, sonst aus der Person if ($row->dokument_kurzbz == 'Lichtbil') { echo '

Originalvorschau

diff --git a/vilesci/fhausweis/bildzuschnitt.php b/vilesci/fhausweis/bildzuschnitt.php index e1fabbb1e..7e02d80a5 100644 --- a/vilesci/fhausweis/bildzuschnitt.php +++ b/vilesci/fhausweis/bildzuschnitt.php @@ -115,18 +115,10 @@ $PHP_SELF = $_SERVER['PHP_SELF']; ?> height: 400 } }); - -// $(".croppie-container").addClass("ready"); -// $uploadCrop.croppie("bind", -// { -// url: 'Mani.jpg' -// }).then(function() -// { -// console.log("jQuery bind complete"); -// }); // Empfehlung von https://www.passbildgroesse.de/ sind 827x1063. Das Seitenverhältnis 828x1104 passt aber besser zum FH-Ausweis $("#fileselect").on("change", function () { readFile(this); }); + $("#submitimage").on("click", function (ev) { // Check ob File gewählt wurde @@ -197,8 +189,8 @@ $PHP_SELF = $_SERVER['PHP_SELF']; ?> function readFile(input) { - if (input.files && input.files[0]) - { + if (input.files && input.files[0]) + { var reader = new FileReader(); reader.onload = function (e) @@ -206,7 +198,8 @@ $PHP_SELF = $_SERVER['PHP_SELF']; ?> var image = new Image(); image.src = e.target.result; - image.onload = function () { + image.onload = function () + { // Check auf Filetype var splittedSource = this.src.split(';'); // base64 String splitten var filetype = splittedSource[0]; @@ -226,6 +219,7 @@ $PHP_SELF = $_SERVER['PHP_SELF']; ?> else { $(".croppie-container").addClass("ready"); + $uploadCrop.croppie("bind", { url: e.target.result @@ -300,7 +294,7 @@ if ($person_id != '') echo '
'; echo'
- +

@@ -352,78 +346,6 @@ function resize($filename, $width, $height) return $tmpfname; } -// Sendet eine Email an die Assistenz, dass ein neues Dokument hochgeladen wurde -function sendDokumentupload($empfaenger_stgkz, $dokument_kurzbz, $orgform_kurzbz, $studiensemester_kurzbz, $prestudent_id, $dms_id) -{ - global $person_id, $p; - - // Array fuer Mailempfaenger. Vorruebergehende Loesung. Kindlm am 28.10.2015 - $empf_array = array(); - if (defined('BEWERBERTOOL_UPLOAD_EMPFAENGER')) - $empf_array = unserialize(BEWERBERTOOL_UPLOAD_EMPFAENGER); - - $person = new person(); - $person->load($person_id); - $dokumentbezeichnung = ''; - - $studiengang = new studiengang(); - $studiengang->load($empfaenger_stgkz); - $typ = new studiengang(); - $typ->getStudiengangTyp($studiengang->typ); - - $email = $p->t('bewerbung/emailDokumentuploadStart'); - $email .= '
'; - $email .= ''; - $email .= ''; - $email .= ''; - $email .= ''; - $email .= ''; - $email .= '
' . $p->t('global/studiengang') . '' . $typ->bezeichnung . ' ' . $studiengang->bezeichnung . ($orgform_kurzbz != '' ? ' (' . $orgform_kurzbz . ')' : '') . '
' . $p->t('global/studiensemester') . '' . $studiensemester_kurzbz . '
' . $p->t('global/name') . '' . $person->vorname . ' ' . $person->nachname . '
' . $p->t('bewerbung/dokument') . ''; - $akte = new akte(); - $akte->getAkten($person_id, $dokument_kurzbz); - foreach ($akte->result as $row) - { - $dokument = new dokument(); - $dokument->loadDokumenttyp($row->dokument_kurzbz); - if ($row->insertvon == 'online') - { - if ($row->nachgereicht == true) - $email .= '- ' . $dokument->bezeichnung_mehrsprachig[DEFAULT_LANGUAGE] . ' -> ' . $p->t('bewerbung/dokumentWirdNachgereicht') . '
'; - else - $email .= '' . $dokument->bezeichnung_mehrsprachig[DEFAULT_LANGUAGE] . ' [' . $row->bezeichnung . ']
'; - $dokumentbezeichnung = $dokument->bezeichnung_mehrsprachig[DEFAULT_LANGUAGE]; - } - } - $email .= '
' . $p->t('bewerbung/prestudentID') . '' . $prestudent_id . '
'; - $email .= '
' . $p->t('bewerbung/emailBodyEnde'); - - // An der FHTW werden alle Mails von Bachelor-Studiengängen an das Infocenter geschickt, solange die Bewerbung noch nicht bestätigt wurde - if (CAMPUS_NAME == 'FH Technikum Wien') - { - if( defined('BEWERBERTOOL_MAILEMPFANG') && - BEWERBERTOOL_MAILEMPFANG != '' && - $studiengang->typ == 'b') - { - $empfaenger = BEWERBERTOOL_MAILEMPFANG; - } - else - $empfaenger = getMailEmpfaenger($studiengang->typ, '', $orgform_kurzbz); - } - else - { - $empfaenger = getMailEmpfaenger($empfaenger_stgkz); - } - - $mail = new mail($empfaenger, 'no-reply', $p->t('bewerbung/dokumentuploadZuBewerbung', array( - $dokumentbezeichnung - )) . ' ' . $person->vorname . ' ' . $person->nachname, 'Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen.'); - $mail->setHTMLContent($email); - if (! $mail->send()) - return false; - else - return true; -} - ?> diff --git a/vilesci/stammdaten/infoscreen_details.php b/vilesci/stammdaten/infoscreen_details.php index 7179f8213..8d7335b23 100644 --- a/vilesci/stammdaten/infoscreen_details.php +++ b/vilesci/stammdaten/infoscreen_details.php @@ -49,22 +49,24 @@ $datum_obj = new datum(); - - - - - + + + - - - '.$p->t('tools/leistungsbeurteilung').' + ' . $p->t('tools/leistungsbeurteilung') . ' -

'.$p->t('tools/leistungsbeurteilung').'

'; +

' . $p->t('tools/leistungsbeurteilung') . '

'; - -if(isset($_GET['stsem'])) - $stsem = $_GET['stsem']; -else - $stsem = ''; - $user = get_uid(); -if(isset($_GET['uid'])) +if (isset($_GET['uid'])) { // Administratoren duerfen die UID als Parameter uebergeben um die Notenliste // von anderen Personen anzuzeigen - + $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); - if($rechte->isBerechtigt('admin')) - { + if ($rechte->isBerechtigt('admin')) + { $user = $_GET['uid']; - $getParam = "&uid=" . $user; - } - else - $getParam = ""; + $getParam = "&uid=" . $user; + } + else + $getParam = ""; } else - $getParam=''; + $getParam = ''; $datum_obj = new datum(); $error = ''; - -if(!check_student($user)) +if (! check_student($user)) { $error .= $p->t('tools/mussAlsStudentEingeloggtSein'); } else { - $qry = "SELECT vw_student.vorname, vw_student.nachname, tbl_studiengang.studiengang_kz + $qry = "SELECT vw_student.vorname, vw_student.nachname, vw_student.prestudent_id, tbl_studiengang.studiengang_kz FROM public.tbl_studiengang JOIN campus.vw_student USING (studiengang_kz) - WHERE campus.vw_student.uid = ".$db->db_add_param($user).";"; + WHERE campus.vw_student.uid = " . $db->db_add_param($user) . ";"; - if (!$result=$db->db_query($qry)) + if (! $result = $db->db_query($qry)) die($p->t('tools/studentWurdeNichtGefunden')); else { - $row=$db->db_fetch_object($result); + $row = $db->db_fetch_object($result); - $vorname= $row->vorname; + $vorname = $row->vorname; $nachname = $row->nachname; + $prestudent_id = $row->prestudent_id; $stg_obj = new studiengang(); $stg_obj->load($row->studiengang_kz); $stg_name = $stg_obj->bezeichnung_arr[$sprache]; } - - $notenarr=array(); + + $notenarr = array(); $note = new note(); $note->getAll(); - foreach($note->result as $row) - $notenarr[$row->note]=$row->bezeichnung; - - //Aktuelles Studiensemester ermitteln + foreach ($note->result as $row) + { + $notenarr[$row->note]['bezeichnung'] = $row->bezeichnung; + $notenarr[$row->note]['notenwert'] = $row->notenwert; + } + + // Aktuelles Studiensemester ermitteln $stsem_obj = new studiensemester(); - if($stsem=='') + if ($stsem == '') $stsem = $stsem_obj->getaktorNext(); - $stsem_obj->getAll(); - + // Erstes und letztes Studiensemester mit Studenten-Status ermitteln + $prestudent = new prestudent(); + $prestudent->getFirstStatus($prestudent_id, 'Student'); + $firstStudiensemester = $prestudent->studiensemester_kurzbz; + $prestudent->getLastStatus($prestudent_id, null, 'Student'); + $lastStudiensemester = $prestudent->studiensemester_kurzbz; + + $stsem_obj->getStudiensemesterBetween($firstStudiensemester, $lastStudiensemester); echo "
"; - echo "".$p->t('global/name').": $vorname $nachname
"; - echo "".$p->t('global/studiengang').": $stg_name
"; - echo "".$p->t('global/studiensemester')." "; + echo ""; foreach ($stsem_obj->studiensemester as $semrow) { - if($stsem == $semrow->studiensemester_kurzbz) - echo ""; + if ($stsem == $semrow->studiensemester_kurzbz) + echo ""; else - echo ""; + echo ""; } echo "
"; - - //echo "Datum: ".date('d.m.Y')."
"; + + // echo "Datum: ".date('d.m.Y')."
"; echo "
"; - - //Lehrveranstaltungen und Noten holen - if($stsem != "alle") - { - $sqlFilter = " AND tbl_zeugnisnote.studiensemester_kurzbz = ".$db->db_add_param($stsem)." - AND (tbl_lvgesamtnote.studiensemester_kurzbz = ".$db->db_add_param($stsem)." OR tbl_lvgesamtnote.studiensemester_kurzbz is null) "; - } - else - $sqlFilter = ""; - - $qry = "SELECT + + // Lehrveranstaltungen und Noten holen + if ($stsem != "alle") + { + $sqlFilter = " AND tbl_zeugnisnote.studiensemester_kurzbz = " . $db->db_add_param($stsem) . " + AND (tbl_lvgesamtnote.studiensemester_kurzbz = " . $db->db_add_param($stsem) . " OR tbl_lvgesamtnote.studiensemester_kurzbz is null) "; + } + else + $sqlFilter = ""; + + $qry = "SELECT tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_zeugnisnote.note, tbl_zeugnisnote.punkte, tbl_lvgesamtnote.note as lvnote, tbl_lvgesamtnote.punkte as lvpunkte, tbl_zeugnisnote.benotungsdatum, tbl_lvgesamtnote.freigabedatum, - tbl_lvgesamtnote.benotungsdatum as lvbenotungsdatum + tbl_lvgesamtnote.benotungsdatum as lvbenotungsdatum, + tbl_zeugnisnote.studiensemester_kurzbz AS studiensemester_zeugnis, tbl_lvgesamtnote.studiensemester_kurzbz AS studiensemester_lvnote, + tbl_lehrveranstaltung.zeugnis, tbl_lehrveranstaltung.ects FROM lehre.tbl_lehrveranstaltung, lehre.tbl_zeugnisnote LEFT OUTER JOIN campus.tbl_lvgesamtnote USING (lehrveranstaltung_id, student_uid, studiensemester_kurzbz) WHERE - tbl_zeugnisnote.student_uid = ".$db->db_add_param($user) - .$sqlFilter." + tbl_zeugnisnote.student_uid = " . $db->db_add_param($user) . $sqlFilter . " AND tbl_lehrveranstaltung.lehrveranstaltung_id = tbl_zeugnisnote.lehrveranstaltung_id ORDER BY bezeichnung"; - - if($result=$db->db_query($qry)) + + if ($result = $db->db_query($qry)) { - //Tabelle anzeigen - $tbl= " - - - - "; - if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE) - $tbl.=""; - - $tbl.=" "; - if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE) - $tbl.=""; - - $tbl.=" - - - - - "; - $i=0; + // Tabelle anzeigen + $tbl = "
".$p->t('global/lehrveranstaltung')."".$p->t('benotungstool/lvNote')."".$p->t('benotungstool/punkte')."".$p->t('benotungstool/zeugnisnote')."".$p->t('benotungstool/punkte')."".$p->t('tools/benotungsdatumDerZeugnisnote')."".$p->t('benotungstool/pruefung')."
"; + $tblHead = " + + "; + if ($stsem == "alle") + $tblHead .= ""; + + $tblHead .= ""; + if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE) + $tblHead .= ""; + + $tblHead .= " "; + if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE) + $tblHead .= ""; + + $tblHead .= " + + + + "; + $tblBody = ""; + $i = 0; $legende = false; - while($row=$db->db_fetch_object($result)) + $notenSummenArray = array(); + while ($row = $db->db_fetch_object($result)) { $lv_obj = new lehrveranstaltung(); $lv_obj->load($row->lehrveranstaltung_id); - $i++; - $tbl.= ""; - $tbl.= ""; + if ($stsem == "alle") + $tblBody .= ""; - + $tblBody .= ""; + // LV Gesamtnote Punkte - if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE) + if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE) { - $lvpunkte = ($row->lvpunkte!=''?(float)$row->lvpunkte:''); - $tbl.=""; + $lvpunkte = ($row->lvpunkte != '' ? (float) $row->lvpunkte : ''); + $tblBody .= ""; } - + if ($row->note != $row->lvnote && $row->lvnote != NULL) { $markier = " style='background-color: #FFD999;'"; - $legende=true; + $legende = true; } else $markier = ""; - $tbl .= ""; - - if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE) + $tblBody .= ""; + + if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE) { - $punkte = ($row->punkte!=''?((float)$row->punkte):''); - $tbl.=""; + $punkte = ($row->punkte != '' ? ((float) $row->punkte) : ''); + $tblBody .= ""; } - - $tbl .= ''; - + + $tblBody .= ''; + $pruefung = new pruefung(); - $pruefung->getPruefungen($user, null,$row->lehrveranstaltung_id,$stsem); - - if(count($pruefung->result)>0) + $pruefung->getPruefungen($user, null, $row->lehrveranstaltung_id, $stsem); + + if (count($pruefung->result) > 0) { - $tbl.=''; + $tblBody .= ''; } else - $tbl.=''; - - $tbl .= ""; + $tblBody .= ''; + + $tblBody .= ""; + } + // Durchschnitt und gewichteten Durchschnitt berechnen + $notenSumme = 0; + $notenSummeGewichtet = 0; + $ectsSumme = 0; + $anzahlLv = 0; + foreach ($notenSummenArray AS $key => $value) + { + if ($value['notenwert'] != '') + { + $anzahlLv++; + $notenSumme += $value['notenwert']; + $ectsSumme += $value['ects']; + $notenSummeGewichtet += $value['notenwert'] * $value['ects']; + } } - - $tbl.= "
" . $p->t('global/lehrveranstaltung') . "" . $p->t('global/studiensemester') . "" . $p->t('benotungstool/lvNote') . "" . $p->t('benotungstool/punkte') . "" . $p->t('benotungstool/zeugnisnote') . "" . $p->t('benotungstool/punkte') . "" . $p->t('tools/benotungsdatumDerZeugnisnote') . "" . $p->t('benotungstool/pruefung') . "
".$lv_obj->bezeichnung_arr[$sprache].($lv_obj->lehrform_kurzbz!="" && $lv_obj->lehrform_kurzbz!=" - "?" (".$lv_obj->lehrform_kurzbz.")":"").""; + $i ++; + $tblBody .= "
" . $lv_obj->bezeichnung_arr[$sprache] . ($lv_obj->lehrform_kurzbz != "" && $lv_obj->lehrform_kurzbz != " - " ? " (" . $lv_obj->lehrform_kurzbz . ")" : "") . "" . ($row->studiensemester_zeugnis != '' ? $row->studiensemester_zeugnis : $row->studiensemester_lvnote) . ""; - //Nur freigegebene Noten anzeigen - if($row->freigabedatum>=$row->lvbenotungsdatum) + $tblBody .= ""; + + // Nur freigegebene Noten anzeigen + if ($row->freigabedatum >= $row->lvbenotungsdatum) { - if(isset($notenarr[$row->lvnote])) - $tbl.=$notenarr[$row->lvnote]; + if (isset($notenarr[$row->lvnote])) + $tblBody .= $notenarr[$row->lvnote]['bezeichnung']; else - $tbl.=$row->lvnote; + $tblBody .= $row->lvnote; + + // Nur Noten, die aufs Zeugnis gedruckt werden für Durchschnittsberechnung addieren + if ($row->zeugnis == true) + { + $notenSummenArray[$row->lehrveranstaltung_id]['notenwert'] = (isset($notenarr[$row->note]['notenwert']) ? $notenarr[$row->note]['notenwert'] : ''); + $notenSummenArray[$row->lehrveranstaltung_id]['ects'] = $row->ects; + } } - - $tbl.= "".$lvpunkte."" . $lvpunkte . ""; + $tblBody .= ""; - if(isset($notenarr[$row->note])) - $tbl.=$notenarr[$row->note]; + if (isset($notenarr[$row->note])) + $tblBody .= $notenarr[$row->note]['bezeichnung']; else - $tbl.=$row->note; + $tblBody .= $row->note; - $tbl .= "".$punkte."" . $punkte . "'.$datum_obj->formatDatum($row->benotungsdatum,'d.m.Y').'' . $datum_obj->formatDatum($row->benotungsdatum, 'Y-m-d') . ''; - foreach($pruefung->result as $row) + $tblBody .= ''; + foreach ($pruefung->result as $row) { - if(isset($notenarr[$row->note])) - $note=$notenarr[$row->note]; + if (isset($notenarr[$row->note])) + $note = $notenarr[$row->note]['bezeichnung']; else - $note=$row->note; - - if($row->punkte!='') - $punkte = ' ('.(float)$row->punkte.')'; - else - $punkte=''; - - $tbl.= $row->pruefungstyp_beschreibung.' '.$datum_obj->formatDatum($row->datum,'d.m.Y').' '.$note.$punkte.'
'; + $note = $row->note; + if ($row->punkte != '') + $punkte = ' (' . (float) $row->punkte . ')'; + else + $punkte = ''; + + $tblBody .= $row->pruefungstyp_beschreibung . ' ' . $datum_obj->formatDatum($row->datum, 'd.m.Y') . ' ' . $note . $punkte . '
'; } - $tbl.='
"; + $tblBody .= ""; + $tblFoot = ""; - if($legende) - $tbl.= "
".$p->t('tools/hinweistextMarkierung')."
"; - if($i==0) + if ($anzahlLv != 0) + $notenDurchschnitt = round($notenSumme / $anzahlLv, 2); + else + $notenDurchschnitt = 0; + + if ($ectsSumme != 0) + $notenDurchschnittGewichtet = round($notenSummeGewichtet / $ectsSumme, 2); + else + $notenDurchschnittGewichtet = 0; + + $tblFoot .= ''; + $tblFoot .= '' . $p->t("tools/notendurchschnittDerZeugnisnote") . ''; + $tblFoot .= ''.$notenDurchschnitt.''; + $tblFoot .= ''; + $tblFoot .= ""; + + $tblFoot .= ''; + $tblFoot .= '' . $p->t("tools/gewichteterNotendurchschnittDerZeugnisnote") . ''; + $tblFoot .= ''.$notenDurchschnittGewichtet.''; + $tblFoot .= ''; + + $tblFoot .= ""; + + $tblFoot .= ""; + + $tbl .= $tblHead.$tblFoot.$tblBody; + + $tbl .= ""; + $tbl .= ""; + if ($legende) + { + $tbl .= ""; + } + $tbl .= "
*" . $p->t('tools/legendeNotendurchschnitt') . "
**" . $p->t('tools/legendeGewichteterNotendurchschnitt') . "
" . $p->t('tools/hinweistextMarkierung') . "
"; + if ($i == 0) echo $p->t('tools/nochKeineBeurteilungEingetragen'); else + { + $tbl .= "


"; echo $tbl; + } } else { diff --git a/include/studiensemester.class.php b/include/studiensemester.class.php index e87f0c5f3..358aa3170 100644 --- a/include/studiensemester.class.php +++ b/include/studiensemester.class.php @@ -1020,72 +1020,134 @@ class studiensemester extends basis_db $this->errormsg = 'Fehler beim Ermitteln des Studiensemesters'; return false; } - } - - /** + } + + /** * Gibt das Wintersemester eines Studienjahres zurück (zb WS2017) + * * @param $studienjahr_kurzbz * @return boolean true, wenn ein Studiensemester gefunden wurde, sonst false */ - public function getWSFromStudienjahr($studienjahr_kurzbz) - { - $qry = " - SELECT studiensemester_kurzbz - FROM tbl_studiensemester - WHERE studienjahr_kurzbz LIKE " . $this->db_add_param($studienjahr_kurzbz) . " - AND studiensemester_kurzbz LIKE 'WS%';"; - - if ($result = $this->db_query($qry)) - { - if($row = $this->db_fetch_object()) + public function getWSFromStudienjahr($studienjahr_kurzbz) + { + $qry = " + SELECT studiensemester_kurzbz + FROM tbl_studiensemester + WHERE studienjahr_kurzbz LIKE " . $this->db_add_param($studienjahr_kurzbz) . " + AND studiensemester_kurzbz LIKE 'WS%';"; + + if ($result = $this->db_query($qry)) + { + if ($row = $this->db_fetch_object()) { - $this->result = $row->studiensemester_kurzbz; - return true; - } - else - { - $this->errormsg = 'Es wurde kein Wintersemester in diesem Studienjahr gefunden'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - /** + $this->result = $row->studiensemester_kurzbz; + return true; + } + else + { + $this->errormsg = 'Es wurde kein Wintersemester in diesem Studienjahr gefunden'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** * Gibt das Sommersemester eines Studienjahres zurück (zb SS2018) + * * @param $studienjahr_kurzbz * @return boolean true, wenn ein Studiensemester gefunden wurde, sonst false */ - public function getSSFromStudienjahr($studienjahr_kurzbz) - { - $qry = " - SELECT studiensemester_kurzbz - FROM tbl_studiensemester - WHERE studienjahr_kurzbz LIKE " . $this->db_add_param($studienjahr_kurzbz) . " - AND studiensemester_kurzbz LIKE 'SS%';"; - - if ($result = $this->db_query($qry)) - { - if($row = $this->db_fetch_object()) + public function getSSFromStudienjahr($studienjahr_kurzbz) + { + $qry = " + SELECT studiensemester_kurzbz + FROM tbl_studiensemester + WHERE studienjahr_kurzbz LIKE " . $this->db_add_param($studienjahr_kurzbz) . " + AND studiensemester_kurzbz LIKE 'SS%';"; + + if ($result = $this->db_query($qry)) + { + if ($row = $this->db_fetch_object()) { - $this->result = $row->studiensemester_kurzbz; - return true; - } - else - { - $this->errormsg = 'Es wurde kein Sommersemester in diesem Studienjahr gefunden'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } + $this->result = $row->studiensemester_kurzbz; + return true; + } + else + { + $this->errormsg = 'Es wurde kein Sommersemester in diesem Studienjahr gefunden'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Gibt die Studiensemester zwischen $studiensemesterStart und $studiensemesterEnde zurück + * Wenn $inklusive true ist (default), werden auch $studiensemesterStart und $studiensemesterEnde selbst zurückgegeben + * + * @param string $studiensemesterStart + * @param string $studiensemesterEnde + * @param boolean $inklusive Default true. + * @return boolean true, wenn ein Studiensemester gefunden wurde, sonst false + */ + public function getStudiensemesterBetween($studiensemesterStart, $studiensemesterEnde, $inklusive = true) + { + if ($studiensemesterStart == '' || $studiensemesterStart == '') + { + $this->errormsg = 'Es muss ein Wert bei $studiensemesterStart und bei $studiensemesterEnde vorhanden sein'; + return false; + } + if ($inklusive = true) + $equalSign = '='; + else + $equalSign = ''; + $qry = " + SELECT * + FROM PUBLIC.tbl_studiensemester + WHERE start >" . $equalSign . " ( + SELECT start + FROM PUBLIC.tbl_studiensemester + WHERE studiensemester_kurzbz = " . $this->db_add_param($studiensemesterStart) . " + ) + AND ende <" . $equalSign . " ( + SELECT ende + FROM PUBLIC.tbl_studiensemester + WHERE studiensemester_kurzbz = " . $this->db_add_param($studiensemesterEnde) . " + ) + ORDER BY start DESC;"; + + if($this->db_query($qry)) + { + while($row = $this->db_fetch_object()) + { + $stsem_obj = new studiensemester(); + + $stsem_obj->studiensemester_kurzbz = $row->studiensemester_kurzbz; + $stsem_obj->start = $row->start; + $stsem_obj->ende = $row->ende; + $stsem_obj->bezeichnung = $row->bezeichnung; + $stsem_obj->studienjahr_kurzbz = $row->studienjahr_kurzbz; + $stsem_obj->beschreibung = $row->beschreibung; + $stsem_obj->onlinebewerbung = $row->onlinebewerbung; + + $this->studiensemester[] = $stsem_obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Studiensemester'; + return false; + } + } } ?> \ No newline at end of file diff --git a/locale/en-US/tools.php b/locale/en-US/tools.php index 177851def..95b5a6ae4 100644 --- a/locale/en-US/tools.php +++ b/locale/en-US/tools.php @@ -25,10 +25,10 @@ $this->phrasen['tools/nochKeineBeurteilungEingetragen']='No grade has been enter $this->phrasen['tools/fehlerBeimAuslesenDerNoten']='Error reading the grades.'; $this->phrasen['tools/benotungsdatumDerZeugnisnote']='Date of grading'; $this->phrasen['tools/hinweistextMarkierung']='The marking indicates those entries where the grade for the course is different from the grade on the report card.The grade on the report card is the valid one.
Should these details not be correct please contact the Administrative Assistant responsible.'; -$this->phrasen['tools/notendurchschnittDerZeugnisnote']='Average of final grade*'; -$this->phrasen['tools/gewichteterNotendurchschnittDerZeugnisnote']='Weighted** average of final grade*'; -$this->phrasen['tools/legendeGewichteterNotendurchschnitt']='The weighted average grade is calculated using the grade of the course, multiplied with its ECTS, divided by the sum of all ECTS'; -$this->phrasen['tools/legendeNotendurchschnitt']='Please note that extracurricular courses (eg elective courses) may distort the calculated average grade'; +$this->phrasen['tools/notendurchschnittDerZeugnisnote']='Average grade on the certificate*'; +$this->phrasen['tools/gewichteterNotendurchschnittDerZeugnisnote']='Weighted** grade point average on the certificate*'; +$this->phrasen['tools/legendeGewichteterNotendurchschnitt']='he weighted grade point average is calculated from the grade of the course multiplied by their ECTS divided by the sum of all ECTS'; +$this->phrasen['tools/legendeNotendurchschnitt']='Please note that extracurricular courses (eg electives) may distort the calculated grade point average'; //Zahlungen $this->phrasen['tools/zahlungen']='Payments'; From bbc6c8a470713c5cd41162001360cf1723b47c24 Mon Sep 17 00:00:00 2001 From: Nikolaus Krondraf Date: Tue, 11 Sep 2018 11:46:16 +0200 Subject: [PATCH 7/9] zeigt LVs des Studienplans statt des Studiengangs bei Anrechnungen --- content/student/studentoverlay.js.php | 6 +- rdf/lehrveranstaltung_studienplan.rdf.php | 206 ++++++++++++++++++++++ 2 files changed, 211 insertions(+), 1 deletion(-) create mode 100644 rdf/lehrveranstaltung_studienplan.rdf.php diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php index 7a6c082b4..ad71d1ad4 100644 --- a/content/student/studentoverlay.js.php +++ b/content/student/studentoverlay.js.php @@ -4529,9 +4529,13 @@ function StudentAnrechnungNeu() var col = tree.columns ? tree.columns["student-treecol-studiengang_kz"] : "student-treecol-studiengang_kz"; var stg_kz = tree.view.getCellText(tree.currentIndex,col); + // Prestudent-ID ermitteln + var col = tree.columns ? tree.columns["student-treecol-prestudent_id"] : "student-treecol-prestudent_id"; + var prestudentId = tree.view.getCellText(tree.currentIndex,col); + //Lehrveranstaltung Drop Down laden var LVDropDown = document.getElementById('student-anrechnungen-menulist-lehrveranstaltung'); - url="rdf/lehrveranstaltung.rdf.php?stg_kz="+stg_kz+"&"+gettimestamp(); + url="rdf/lehrveranstaltung_studienplan.rdf.php?&prestudent="+prestudentId+"&"+gettimestamp(); //Alte DS entfernen var oldDatasources = LVDropDown.database.GetDataSources(); diff --git a/rdf/lehrveranstaltung_studienplan.rdf.php b/rdf/lehrveranstaltung_studienplan.rdf.php new file mode 100644 index 000000000..72f78a7b1 --- /dev/null +++ b/rdf/lehrveranstaltung_studienplan.rdf.php @@ -0,0 +1,206 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +/* + * Created on 02.12.2004 + * + */ +// header fuer no cache +header("Cache-Control: no-cache"); +header("Cache-Control: post-check=0, pre-check=0",false); +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Pragma: no-cache"); +// content type setzen +header("Content-type: application/xhtml+xml"); +// xml +echo ''; +// DAO +require_once('../config/vilesci.config.inc.php'); +require_once('../include/functions.inc.php'); +require_once('../include/lehrveranstaltung.class.php'); +require_once('../include/prestudent.class.php'); + +$uid=get_uid(); + +$error_msg=''; +$db = new basis_db(); + +$error_msg.=loadVariables($uid); + +if (isset($_GET['prestudent'])) + $prestudent_id = $_GET['prestudent']; +else + die('prestudent is not set!'); + +if (isset($semester_aktuell)) + $studiensemester=$semester_aktuell; +else + die('studiensemester is not set!'); + +if (isset($_GET['stg_kz'])) + $stg_kz=$_GET['stg_kz']; +else + $stg_kz=null; +if (isset($_GET['sem']) && is_numeric($_GET['sem'])) + $sem=$_GET['sem']; +else + $sem=null; +if(isset($_GET['uid'])) + $student_uid = $_GET['uid']; +else + $student_uid=null; + +if(isset($_GET['lehrveranstaltung_kompatibel_id'])) +{ + $lehrveranstaltung_kompatibel_id = $_GET['lehrveranstaltung_kompatibel_id']; + isset($_GET['self']) ? $self = $_GET['self'] : $self = 1; +} +else + $lehrveranstaltung_kompatibel_id=null; + +$lehrveranstaltung=new lehrveranstaltung(); + +if($student_uid!='') + $lehrveranstaltung->load_lva_student($student_uid); +elseif($lehrveranstaltung_kompatibel_id!='') +{ + // Laedt die Lehrveranstaltung und alle die dazu kompatibel sind + $lvid_arr = $lehrveranstaltung->loadLVkompatibel($lehrveranstaltung_kompatibel_id); + if($self == 1) + $lvid_arr[]=$lehrveranstaltung_kompatibel_id; + + if(isset($_GET['lehrfach_id'])) + $lvid_arr[]=$_GET['lehrfach_id']; + $lehrveranstaltung->loadArray($lvid_arr); +} +else +{ + $prestudent = new Prestudent(); + $prestudent->getLastStatus($prestudent_id); + + $lehrveranstaltung->loadLehrveranstaltungStudienplan($prestudent->studienplan_id, $sem); +} + +$rdf_url='http://www.technikum-wien.at/lehrveranstaltung/'; + +echo ' + + + +'; + +if(isset($_GET['optional']) && $_GET['optional']=='true') +{ + echo' + + + + + + + + + + + + + + + + + + + + + + '; +} + +foreach ($lehrveranstaltung->lehrveranstaltungen as $row) +{ + if(isset($_GET['projektarbeit']) && $row->projektarbeit==false) + { + if(isset($_GET['withlv']) && $_GET['withlv']==$row->lehrveranstaltung_id) + { + //Diese LV soll zusaetzlich in der liste aufscheinen unabhaengig ob + //Projektarbeit gesetzt ist oder nicht + } + else + continue; + } + + if(isset($_GET['genehmigt'])) + { + // Wenn genehmigt Parameter mitgeliefert wird, dann werden nur LVs + // geliefert die genehmigten Studienordnungen zugeordnet sind + // Module werden nicht geliefert + $qry = "SELECT + count(*) as anzahl + FROM + lehre.tbl_studienplan_lehrveranstaltung + JOIN lehre.tbl_studienplan USING(studienplan_id) + JOIN lehre.tbl_studienordnung USING(studienordnung_id) + JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) + JOIN lehre.tbl_lehrtyp USING(lehrtyp_kurzbz) + WHERE + tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($row->lehrveranstaltung_id)." + AND tbl_studienordnung.status_kurzbz='approved' + AND lehrtyp_kurzbz='lv'"; + if($result_genehmigt = $db->db_query($qry)) + { + if($row_genehmigt = $db->db_fetch_object($result_genehmigt)) + { + if($row_genehmigt->anzahl==0) + continue; + } + } + } + + echo' + + lehrveranstaltung_id.']]> + kurzbz.']]> + bezeichnung.']]> + bezeichnung_english.']]> + studiengang_kz.']]> + semester.']]> + sprache.']]> + ects.']]> + semesterstunden.']]> + anmerkung.']]> + lehre?'Ja':'Nein').']]> + lehreverzeichnis.']]> + aktiv?'Ja':'Nein').']]> + planfaktor.']]> + planlektoren.']]> + planpersonalkosten.']]> + plankostenprolektor.']]> + lehrform_kurzbz.']]> + orgform_kurzbz.']]> + oe_kurzbz.']]> + + '; +} +?> + + From 792a293524f0fc5490de95947d72a097f4889523 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 12 Sep 2018 07:06:06 +0200 Subject: [PATCH 8/9] =?UTF-8?q?Berechtigungen=20-=20Berechtigungsrollen=20?= =?UTF-8?q?die=20zu=20Funktionen=20zugeteilt=20sind=20werden=20jetzt=20kor?= =?UTF-8?q?rekt=20aufgel=C3=B6st?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/benutzerberechtigung.class.php | 16 ++++++++++++++++ .../stammdaten/benutzerberechtigung_details.php | 15 ++++++++++++++- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/include/benutzerberechtigung.class.php b/include/benutzerberechtigung.class.php index a615729f4..69d4947bf 100644 --- a/include/benutzerberechtigung.class.php +++ b/include/benutzerberechtigung.class.php @@ -421,6 +421,22 @@ class benutzerberechtigung extends basis_db UNION + SELECT + benutzerberechtigung_id, tbl_benutzerfunktion.uid, tbl_benutzerrolle.funktion_kurzbz, + tbl_benutzerrolle.rolle_kurzbz, tbl_rolleberechtigung.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_rolleberechtigung.art art1, + tbl_benutzerfunktion.oe_kurzbz, tbl_benutzerrolle.studiensemester_kurzbz, tbl_benutzerrolle.start, + tbl_benutzerrolle.ende, tbl_benutzerrolle.negativ, tbl_benutzerrolle.updateamum, tbl_benutzerrolle.updatevon, + tbl_benutzerrolle.insertamum, tbl_benutzerrolle.insertvon,tbl_benutzerrolle.kostenstelle_id,tbl_benutzerrolle.anmerkung + FROM + system.tbl_benutzerrolle + JOIN public.tbl_benutzerfunktion USING(funktion_kurzbz) + JOIN system.tbl_rolleberechtigung ON(tbl_benutzerrolle.rolle_kurzbz=tbl_rolleberechtigung.rolle_kurzbz) + WHERE tbl_benutzerfunktion.uid=".$this->db_add_param($uid)." + AND (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von<=now()) + AND (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis>=now()) + + UNION + SELECT benutzerberechtigung_id, '', tbl_benutzerrolle.funktion_kurzbz, tbl_benutzerrolle.rolle_kurzbz, tbl_benutzerrolle.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_benutzerrolle.art art1, diff --git a/vilesci/stammdaten/benutzerberechtigung_details.php b/vilesci/stammdaten/benutzerberechtigung_details.php index 690bf720b..7b3482de0 100644 --- a/vilesci/stammdaten/benutzerberechtigung_details.php +++ b/vilesci/stammdaten/benutzerberechtigung_details.php @@ -391,7 +391,20 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) $sel = ""; $htmlstr .= ""; } - $htmlstr .= " \n"; + $htmlstr .= " "; + + // Wenn editiert wird, zu der Zeile Springen + $htmlstr.=" +
+ "; + $htmlstr.="\n"; //Berechtigung $htmlstr .= "