'."\n";
//$htmlstr .= " ";
$htmlstr .= " ";
-$htmlstr .= " \n";
+$htmlstr .= " \n";
$htmlstr .= " \n";
$qry_typ = "SELECT * FROM campus.tbl_paabgabetyp WHERE paabgabetyp_kurzbz!='end' AND paabgabetyp_kurzbz!='enda' AND paabgabetyp_kurzbz!='note'";
diff --git a/cis/private/lehre/abgabe_student_details.php b/cis/private/lehre/abgabe_student_details.php
index 522e89dd3..6575dcf70 100644
--- a/cis/private/lehre/abgabe_student_details.php
+++ b/cis/private/lehre/abgabe_student_details.php
@@ -36,6 +36,7 @@ require_once('../../../include/phrasen.class.php');
require_once('../../../include/projektarbeit.class.php');
require_once('../../../include/projektbetreuer.class.php');
require_once('../../../include/sancho.inc.php');
+require_once('../../../application/libraries/SignatureLib.php');
$anzeigesprache = getSprache();
$p = new phrasen($anzeigesprache);
@@ -93,6 +94,7 @@ else
$abstract = (isset($_POST['abstract'])?$_POST['abstract']:'-1');
$abstract_en = (isset($_POST['abstract_en'])?$_POST['abstract_en']:'-1');
$seitenanzahl = (isset($_POST['seitenanzahl'])?$_POST['seitenanzahl']:'-1');
+ $signaturVorhanden = (isset($_POST['signaturVorhanden']) && $_POST['signaturVorhanden']=='true'?true:false);
}
$user = get_uid();
@@ -111,6 +113,7 @@ $titel = $projektarbeit_obj->titel;
$person = new person();
$person->load($bid);
$betreuer = $person->titelpre.' '.$person->vorname.' '.$person->nachname.' '.$person->titelpost;
+$uploadedDocumentSigned = null;
if($uid!=$user)
{
@@ -258,6 +261,35 @@ if($command=='add')
echo "".$p->t('global/fehleraufgetreten')." ";
$command='';
}
+
+ if ($signaturVorhanden === false)
+ {
+ // Mail an Studiengang wenn keine Signatur gefunden wurde
+ $student = new student();
+ if(!$student->load($projektarbeit_obj->student_uid))
+ die($p->t('global/userNichtGefunden'));
+
+ $stg_obj = new studiengang();
+ if(!$stg_obj->load($student->studiengang_kz))
+ die($p->t('global/fehlerBeimLesenAusDatenbank'));
+
+ $subject = 'Abgabe ohne Signatur';
+ $tomail = $stg_obj->email;
+ $data = array(
+ 'vorname' => $student->vorname,
+ 'nachname' => $student->nachname,
+ 'studiengang' => $stg_obj->bezeichnung
+ );
+
+ $mailres = sendSanchoMail(
+ 'ParbeitsbeurteilungSiganturFehlt',
+ $data,
+ $tomail,
+ $subject,
+ 'sancho_header_min_bw.jpg',
+ 'sancho_footer_min_bw.jpg'
+ );
+ }
}
else
{
@@ -280,11 +312,11 @@ if($command=="update" && $error!=true)
$extensions = explode(".", $_FILES['datei']['name']);
if(strtoupper(end($extensions))=='PDF')
{
- if($paabgabetyp_kurzbz!='end')
+ if ($paabgabetyp_kurzbz != 'end')
{
//"normaler" Upload
move_uploaded_file($_FILES['datei']['tmp_name'], PAABGABE_PATH.$paabgabe_id.'_'.$uid.'.pdf');
- if(file_exists(PAABGABE_PATH.$paabgabe_id.'_'.$uid.'.pdf'))
+ if (file_exists(PAABGABE_PATH.$paabgabe_id.'_'.$uid.'.pdf'))
{
exec('chmod 640 "'.PAABGABE_PATH.$paabgabe_id.'_'.$uid.'.pdf'.'"');
@@ -299,18 +331,40 @@ if($command=="update" && $error!=true)
else
{
echo $p->t('global/dateiNichtErfolgreichHochgeladen');
- }
+ }$htmlstr .= ' '."\n";
}
- else
+ else // endupload type
{
//Upload der Endabgabe - Eingabe der Zusatzdaten
$command='add';
- if(!$error)
+ if (!$error)
{
move_uploaded_file($_FILES['datei']['tmp_name'], PAABGABE_PATH.$paabgabe_id.'_'.$uid.'.pdf');
}
- if(file_exists(PAABGABE_PATH.$paabgabe_id.'_'.$uid.'.pdf'))
+
+ $signaturVorhanden = true;
+
+ if (file_exists(PAABGABE_PATH.$paabgabe_id.'_'.$uid.'.pdf'))
{
+ if(defined('ABGABETOOL_CHECK_SIGNATURE') && ABGABETOOL_CHECK_SIGNATURE)
+ {
+ // Check if the document is signed
+ $signList = SignatureLib::list(PAABGABE_PATH.$paabgabe_id.'_'.$uid.'.pdf');
+ if (is_array($signList) && count($signList) > 0)
+ {
+ // The document is signed
+ }
+ elseif ($signList === null)
+ {
+ $uploadedDocumentSigned = 'WARNING: signature server error';
+ }
+ else
+ {
+ $signaturVorhanden = false;
+ $uploadedDocumentSigned = $p->t('abgabetool/uploadedDocumentNotSignedStudent');
+ }
+ }
+
/*$qry="UPDATE campus.tbl_paabgabe SET
abgabedatum = now(),
updatevon = '".$user."',
@@ -339,6 +393,7 @@ if($command=="update" && $error!=true)
$htmlstr .= ' '."\n";
$htmlstr .= ' '."\n";
$htmlstr .= ' '."\n";
+ $htmlstr .= ' '."\n";
$htmlstr .= "\n";
$htmlstr .= "".$p->t('abgabetool/spracheDerArbeit').": ";
$sprache = @$db->db_query("SELECT sprache FROM public.tbl_sprache");
@@ -372,6 +427,21 @@ if($command=="update" && $error!=true)
$htmlstr .= ' '.$p->t('abgabetool/seitenanzahl').':*
'."\n";
$htmlstr .=" \n";
+
+ // If there are info about the signed document
+ if ($uploadedDocumentSigned != null)
+ {
+ $htmlstr .= "\n";
+ $htmlstr .= "";
+ $htmlstr .= '
+
+ '.$uploadedDocumentSigned.'
+ ';
+ $htmlstr .= "";
+ $htmlstr .= " \n";
+ }
+
+ $htmlstr .=" \n";
$htmlstr .="".$p->t('abgabetool/eidesstattlicheErklaerung')."
\n";
$htmlstr .= "".$p->t('abgabetool/gelesenUndAkzeptiert').":* ";
$htmlstr .=" * ".$p->t('abgabetool/pflichtfeld')."
diff --git a/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php b/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php
index 73d0e6fca..8337b7c36 100644
--- a/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php
+++ b/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php
@@ -98,9 +98,9 @@ if($stsem=='')
//$note = $_REQUEST["note"];
-if(!$rechte->isBerechtigt('admin',0) &&
- !$rechte->isBerechtigt('admin',$lv_obj->studiengang_kz) &&
- !$rechte->isBerechtigt('lehre',$lv_obj->studiengang_kz))
+if(!$rechte->isBerechtigt('admin', 0) &&
+ !$rechte->isBerechtigt('admin', $lv_obj->studiengang_kz) &&
+ !$rechte->isBerechtigt('lehre', $lv_obj->studiengang_kz))
{
$qry = "SELECT lehreinheit_id FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id)
JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id)
@@ -117,11 +117,11 @@ if(!$rechte->isBerechtigt('admin',0) &&
}
}
-function savenote($db,$lvid, $student_uid, $note, $punkte=null)
+function savenote($db, $lvid, $student_uid, $note, $punkte = null)
{
global $stsem, $user, $p, $noten_anmerkung;
$jetzt = date("Y-m-d H:i:s");
- $punkte = str_replace(',','.',$punkte);
+ $punkte = str_replace(',', '.', $punkte);
//Ermitteln ob der Student diesem Kurs zugeteilt ist
$qry = "SELECT 1 FROM campus.vw_student_lehrveranstaltung WHERE uid=".$db->db_add_param($student_uid)." AND lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER);
if($result = $db->db_query($qry))
@@ -207,13 +207,12 @@ if (isset($_REQUEST["submit"]))
$note = $_REQUEST["note"];
$punkte = (isset($_REQUEST["punkte"])?$_REQUEST["punkte"]:'');
- $response = savenote($db,$lvid, $student_uid, $note, $punkte);
+ $response = savenote($db, $lvid, $student_uid, $note, $punkte);
echo $response;
}
else
{
-
- foreach ($_POST as $row=>$val)
+ foreach ($_POST as $row => $val)
{
if(mb_strstr(mb_strtolower($row), 'matrikelnr_'))
{
@@ -232,7 +231,7 @@ if (isset($_REQUEST["submit"]))
$response.="\nNote oder Punkte fehlen";
continue;
}
- $punkte=str_replace(',','.', $punkte);
+ $punkte=str_replace(',', '.', $punkte);
//check ob statt Matrikelnummer nicht bereits student_uid (Moodle Grade Import) vorliegt..
$student = new student();
@@ -241,7 +240,7 @@ if (isset($_REQUEST["submit"]))
//UID ermitteln
if(!$student_uid = $student->getUidFromMatrikelnummer($matrikelnummer))
{
- $response.="\n".$p->t('benotungstool/studentMitMatrikelnummerExistiertNicht',array($matrikelnummer));
+ $response.="\n".$p->t('benotungstool/studentMitMatrikelnummerExistiertNicht', array($matrikelnummer));
continue;
}
}
@@ -268,7 +267,7 @@ if (isset($_REQUEST["submit"]))
}
}
- $val=savenote($db,$lvid, $student_uid, $note, $punkte);
+ $val=savenote($db, $lvid, $student_uid, $note, $punkte);
if($val!='neu' && $val!='update' && $val!='update_f')
$response.=$val;
}
diff --git a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php
index ddf3c54e4..6dce2b6ae 100644
--- a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php
+++ b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php
@@ -20,33 +20,33 @@
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
* Manuela Thamer
*/
-require_once ('../../../../config/cis.config.inc.php');
-require_once ('../../../../config/global.config.inc.php');
-require_once ('../../../../include/functions.inc.php');
-require_once ('../../../../include/lehrveranstaltung.class.php');
-require_once ('../../../../include/studiengang.class.php');
-require_once ('../../../../include/studiensemester.class.php');
-require_once ('../../../../include/lehreinheit.class.php');
-require_once ('../../../../include/benutzerberechtigung.class.php');
-require_once ('../../../../include/uebung.class.php');
-require_once ('../../../../include/beispiel.class.php');
-require_once ('../../../../include/studentnote.class.php');
-require_once ('../../../../include/datum.class.php');
-require_once ('../../../../include/legesamtnote.class.php');
-require_once ('../../../../include/lvgesamtnote.class.php');
-require_once ('../../../../include/zeugnisnote.class.php');
-require_once ('../../../../include/pruefung.class.php');
-require_once ('../../../../include/person.class.php');
-require_once ('../../../../include/benutzer.class.php');
-require_once ('../../../../include/mitarbeiter.class.php');
-require_once ('../../../../include/mail.class.php');
-require_once ('../../../../include/phrasen.class.php');
-require_once ('../../../../include/note.class.php');
-require_once ('../../../../include/notenschluessel.class.php');
-require_once ('../../../../include/studienplan.class.php');
-require_once ('../../../../include/addon.class.php');
-require_once ('../../../../include/mobilitaet.class.php');
-require_once ('../../../../include/student.class.php');
+require_once('../../../../config/cis.config.inc.php');
+require_once('../../../../config/global.config.inc.php');
+require_once('../../../../include/functions.inc.php');
+require_once('../../../../include/lehrveranstaltung.class.php');
+require_once('../../../../include/studiengang.class.php');
+require_once('../../../../include/studiensemester.class.php');
+require_once('../../../../include/lehreinheit.class.php');
+require_once('../../../../include/benutzerberechtigung.class.php');
+require_once('../../../../include/uebung.class.php');
+require_once('../../../../include/beispiel.class.php');
+require_once('../../../../include/studentnote.class.php');
+require_once('../../../../include/datum.class.php');
+require_once('../../../../include/legesamtnote.class.php');
+require_once('../../../../include/lvgesamtnote.class.php');
+require_once('../../../../include/zeugnisnote.class.php');
+require_once('../../../../include/pruefung.class.php');
+require_once('../../../../include/person.class.php');
+require_once('../../../../include/benutzer.class.php');
+require_once('../../../../include/mitarbeiter.class.php');
+require_once('../../../../include/mail.class.php');
+require_once('../../../../include/phrasen.class.php');
+require_once('../../../../include/note.class.php');
+require_once('../../../../include/notenschluessel.class.php');
+require_once('../../../../include/studienplan.class.php');
+require_once('../../../../include/addon.class.php');
+require_once('../../../../include/mobilitaet.class.php');
+require_once('../../../../include/student.class.php');
$summe_stud = 0;
$summe_t2 = 0;
@@ -104,6 +104,152 @@ $sprachen->getAll(true);
$errormsg = '';
+// eingetragene lv-gesamtnoten freigeben
+if (isset($_REQUEST["freigabe"]) && ($_REQUEST["freigabe"] == 1))
+{
+ // Passwort pruefen
+ if (checkldapuser($user, $_REQUEST['passwort']))
+ {
+ $jetzt = date("Y-m-d H:i:s");
+ $neuenoten = 0;
+
+ $studlist = "
+ ";
+
+ // entweder personenbezogene Daten einbinden
+ if (defined('CIS_GESAMTNOTE_FREIGABEMAIL_NOTE') && CIS_GESAMTNOTE_FREIGABEMAIL_NOTE)
+ {
+ $studlist .= "
+ " . $p->t('global/personenkz') . "
+ " . $p->t('global/studiengang') . "
+ " . $p->t('global/nachname') . "
+ " . $p->t('global/vorname') . "
+ ";
+
+ if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
+ {
+ $studlist .= "" . $p->t('benotungstool/punkte') . " \n";
+ }
+ $studlist .= "" . $p->t('benotungstool/note') . " \n";
+
+ $studlist .= "" . $p->t('benotungstool/bearbeitetvon') . " \n";
+ }
+ // oder anonymisiert nur die UIDs einbinden
+ else
+ {
+ $studlist .= "
+ " . $p->t('global/uid') . " \n
+ ";
+ }
+
+ // studentenquery
+ $qry_stud = "SELECT
+ DISTINCT uid, vorname, nachname, matrikelnr, kurzbzlang
+ FROM
+ campus.vw_student_lehrveranstaltung
+ JOIN campus.vw_student USING(uid)
+ JOIN public.tbl_studiengang ON campus.vw_student.studiengang_kz = public.tbl_studiengang.studiengang_kz
+ WHERE
+ studiensemester_kurzbz = " . $db->db_add_param($stsem) . "
+ AND lehrveranstaltung_id = " . $db->db_add_param($lvid, FHC_INTEGER) . "
+ ORDER BY nachname, vorname ";
+ if ($result_stud = $db->db_query($qry_stud))
+ {
+ $i = 1;
+ while ($row_stud = $db->db_fetch_object($result_stud))
+ {
+ $lvgesamtnote = new lvgesamtnote();
+ if ($lvgesamtnote->load($lvid, $row_stud->uid, $stsem))
+ {
+ if ($lvgesamtnote->benotungsdatum > $lvgesamtnote->freigabedatum)
+ {
+ $lvgesamtnote->freigabedatum = $jetzt;
+ $lvgesamtnote->freigabevon_uid = $user;
+ $lvgesamtnote->save();
+
+ if (defined('CIS_GESAMTNOTE_FREIGABEMAIL_NOTE') && CIS_GESAMTNOTE_FREIGABEMAIL_NOTE)
+ {
+ $studlist .= "" . trim($row_stud->matrikelnr) . " ";
+ $studlist .= "" . trim($row_stud->kurzbzlang) . " ";
+ $studlist .= "" . trim($row_stud->nachname) . " ";
+ $studlist .= "" . trim($row_stud->vorname) . " ";
+
+ if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
+ {
+ $studlist .= "";
+ if ($lvgesamtnote->punkte != '')
+ $studlist .= trim(number_format($lvgesamtnote->punkte, 2));
+ $studlist .= " \n";
+ }
+ $studlist .= "" . $noten_array[trim($lvgesamtnote->note)]['bezeichnung_mehrsprachig'][$sprache] . " ";
+
+ $studlist .= "" . $lvgesamtnote->mitarbeiter_uid;
+ if ($lvgesamtnote->updatevon != '')
+ $studlist .= " (" . $lvgesamtnote->updatevon . ")";
+ $studlist .= " \n";
+ }
+ else
+ {
+ $studlist .= "" . trim($row_stud->uid) . " \n";
+ }
+
+ $neuenoten ++;
+ }
+ }
+ }
+ }
+
+ $studlist .= "
";
+
+ // mail an assistentin und den user selber verschicken
+ if ($neuenoten > 0)
+ {
+ $lv = new lehrveranstaltung($lvid);
+ $sg = new studiengang($lv->studiengang_kz);
+ $lektor_adresse = $user . "@" . DOMAIN;
+ $adressen = $sg->email . ", " . $user . "@" . DOMAIN;
+
+ $studienplan = new studienplan();
+ $studienplan->getStudienplanLehrveranstaltung($lvid, $stsem);
+ $studienplan_bezeichnung = '';
+ foreach ($studienplan->result as $row)
+ $studienplan_bezeichnung .= $row->bezeichnung . ' ';
+
+ $mit = new mitarbeiter();
+ $mit->load($user);
+ $name = $mit->anrede.' '.$mit->vorname.' '.$mit->nachname.' ('.$mit->kurzbz.')';
+
+ $betreff = 'Notenfreigabe ' . $lv->bezeichnung . ' ' . $lv->orgform_kurzbz . ' - ' . $studienplan_bezeichnung;
+ $mail = new mail($adressen, 'vilesci@' . DOMAIN, $betreff, '');
+ $htmlcontent = "
+
+ $name hat neue Noten für die Lehrveranstaltung\n\n
+ " . $sg->kuerzel . ' ' . $lv->semester . '.Semester
+ ' . $lv->bezeichnung . " " . $lv->orgform_kurzbz . " - " . $stsem . "
+ eingetragen.\n
+ Die Noten können jetzt ins Zeugnis übernommen werden.\n";
+
+ $htmlcontent .= $studlist;
+
+ $htmlcontent.= "
+ Anzahl der Noten:" . $neuenoten . "
+ " . $p->t('abgabetool/mailVerschicktAn') . ": " . $adressen . "
+ ";
+ $mail->setHTMLContent($htmlcontent);
+ $mail->setReplyTo($lektor_adresse);
+ $mail->send();
+ }
+
+ http_response_code(303);
+ header('Location: ' . $_SERVER['REQUEST_URI']);
+ exit;
+ }
+ else
+ {
+ $errormsg = $p->t('gesamtnote/passwortFalsch');
+ }
+}
+
echo '
@@ -145,8 +291,8 @@ echo '
position:absolute;
top:100px;
left:300px;
- width:400px;
- height:200px;
+ min-width:450px;
+ min-height:200px;
background-color:#cccccc;
visibility:hidden;
border-style:solid;
@@ -190,11 +336,14 @@ foreach ($noten_obj->result as $row)
$noten_array[$row->note]['lehre'] = $row->lehre;
$noten_array[$row->note]['lkt_ueberschreibbar'] = $row->lkt_ueberschreibbar;
$noten_array[$row->note]['anmerkung'] = $row->anmerkung;
- foreach ($sprachen->result AS $s)
+ foreach ($sprachen->result as $s)
$noten_array[$row->note]['bezeichnung_mehrsprachig'][$s->sprache] = $row->bezeichnung_mehrsprachig[$s->sprache];
}
?>
+
+ const CIS_GESAMTNOTE_PUNKTE = ;
+
function getOffset(pos)
{
var x,y;
@@ -376,7 +525,7 @@ foreach ($noten_obj->result as $row)
var datum_test = datum.split(".");
if (datum_test[0].length != 2 || datum_test[1].length != 2 || datum_test[2].length!=4
|| isNaN(datum_test[2]) || datum_test[1]>12 || datum_test[1]<1 || datum_test[0]>31 || datum_test[0]<1)
- alert("Invalid Date Format: DD.MM.YYYY");
+ alert("Das Datum entspricht nicht dem Format TT.MM.JJJJ!");
else
{
var anlegendiv = document.getElementById("nachpruefung_div");
@@ -402,6 +551,7 @@ foreach ($noten_obj->result as $row)
url += '&typ='+typ;
url += '&'+ts;
+
$.ajax({
type:"GET",
url: url,
@@ -593,8 +743,8 @@ foreach ($noten_obj->result as $row)
str += "X ";
var anlegendiv = document.getElementById("nachpruefung_div");
var y = getOffset('y'); y = y+50; anlegendiv.style.top = y+"px";
- str += 't('benotungstool/importAnweisung');?>: ';
- str += ' ';
+ str += 't('benotungstool/importAnweisung');?>:
';
+ str += ' ';
str += " ' onclick='saveGradeBulk();'>";
str += " ";
anlegendiv.innerHTML = str;
@@ -602,6 +752,25 @@ foreach ($noten_obj->result as $row)
$('#noteimporttextarea').focus();
}
+ // ****
+ // * Oeffnet ein Fenster fuer den Import von Noten für die Nachprüfung aus dem Excel
+ // ****
+ function GradeImportNachp(termin)
+ {
+ var str = "";
+ anlegendiv.innerHTML = str;
+ anlegendiv.style.visibility = "visible";
+ $('#noteimporttextareaNachp').focus();
+ }
+
// Speichert die Noten ueber den Import
function saveGradeBulk()
{
@@ -633,33 +802,48 @@ foreach ($noten_obj->result as $row)
}
?>
+ var linenumber = 0;
for(row in rows)
{
- zeile = rows[row].split(" ");
-
-
-
- if (zeile[0]!='' && zeile[1]!='')
+ linenumber++;
+ if( rows[row] == '' )
{
- gradedata['matrikelnr_'+i]=zeile[0];
-
-
- i++;
+ //skip empty lines
+ continue;
}
+ zeile = rows[row].split(" ");
+
+ if( zeile.length < 2 )
+ {
+ alertMsg = alertMsg + "Zeile " + linenumber + ': '
+ + 'Zu wenig Paramter - 2 erforderlich. '
+ + 'Die Zeile wurde uebersprungen.' + "\n\n";
+ continue;
+ }
+
+ if (CIS_GESAMTNOTE_PUNKTE == false)
+ {
+ // check for valid grades
+ if (validGrades.indexOf(zeile[1]) === -1)
+ {
+ alertMsg = alertMsg + "Zeile " + linenumber + ': '
+ + "Die Note "+zeile[1]+" ist nicht zulaessig. "
+ + "Die Zeile wurde uebersprungen. \n\n";
+ continue;
+ }
+ }
+
+ gradedata['matrikelnr_'+i]=zeile[0];
+ if (CIS_GESAMTNOTE_PUNKTE)
+ {
+ gradedata['punkte_'+i]= zeile[1];
+ }
+ else
+ {
+ gradedata['note_'+i]= zeile[1];
+ }
+
+ i++;
}
if (alertMsg != "")
@@ -698,6 +882,142 @@ foreach ($noten_obj->result as $row)
}
}
+ // Speichert die Noten der Nachprüfung ueber den Import
+ function saveGradeBulkNachp(typ)
+ {
+ data = $('#noteimporttextareaNachp').val();
+ closeDiv();
+
+ //Reihen ermitteln
+ var rows = data.split("\n");
+ var i=0;
+ var params='';
+ alertMsg = '';
+
+ var gradedata = {};
+ var validGrades = '';
+
+ result as $row_note)
+ {
+ if ($row_note->lehre && $row_note->aktiv)
+ $gradesArray[] = '"' . $row_note->anmerkung . '"';
+ }
+ // Output JS variable with valid grades
+ echo 'var validGrades = [' . implode(',', $gradesArray) . '];';
+ }
+ ?>
+
+ var linenumber = 0;
+ for(row in rows)
+ {
+ linenumber++;
+ if( rows[row] == '' )
+ {
+ //skip empty lines
+ continue;
+ }
+ zeile = rows[row].split(" ");
+
+ if( zeile.length < 3 )
+ {
+ alertMsg = alertMsg + "Zeile " + linenumber + ': '
+ + 'Zu wenig Paramter - 3 erforderlich. '
+ + 'Die Zeile wurde uebersprungen.' + "\n\n";
+ continue;
+ }
+
+ if( zeile[1] == '' && zeile[2] == '' )
+ {
+ // ignore lines just copied from excel
+ continue;
+ }
+
+ if( zeile[2] == '' )
+ {
+ alertMsg = alertMsg + "Zeile " + linenumber + ': '
+ + "Die Note oder Punkte fehlen. "
+ + "Die Zeile wurde uebersprungen. \n\n";
+ continue;
+ }
+
+ if (CIS_GESAMTNOTE_PUNKTE == false)
+ {
+ // check for valid grades
+ if (validGrades.indexOf(zeile[2]) === -1)
+ {
+ alertMsg = alertMsg + "Zeile " + linenumber + ': '
+ + "Die Note "+zeile[2]+" ist nicht zulaessig. "
+ + "Die Zeile wurde uebersprungen. \n\n";
+ continue;
+ }
+ }
+
+ if( !zeile[1].match(/[0-9]{2}\.[0-9]{2}\.[0-9]{4}/) )
+ {
+ alertMsg = alertMsg + "Zeile " + linenumber + ': '
+ + "Das Datum "+zeile[1]+" fehlt oder ist nicht zulaessig. "
+ + "Die Zeile wurde uebersprungen. \n\n";
+ continue;
+ }
+
+ gradedata['student_uid_'+i]=zeile[0];
+ gradedata['datumNachp_'+i]=zeile[1];
+ if (CIS_GESAMTNOTE_PUNKTE)
+ {
+ gradedata['punkte_'+i]= zeile[2];
+ }
+ else
+ {
+ gradedata['note_'+i]= zeile[2];
+ }
+ i++;
+ }
+
+
+ if (alertMsg != "")
+ alert(alertMsg);
+
+ if (i>0)
+ {
+
+ var jetzt = new Date();
+ var ts = jetzt.getTime();
+ var url= '';
+ url += '&sammel=1';
+ url += '&typ=' + typ;
+ url += '&submit=1&'+ts;
+ $.ajax({
+ type:"POST",
+ url: url,
+ data: gradedata,
+ success:function(result)
+ {
+ var resp = result;
+ if (resp!='')
+ {
+ alert(resp);
+ }
+ window.location.reload();
+ },
+ error:function(result)
+ {
+ alert('Request Nachprüfung fehlgeschlagen');
+ }
+ });
+
+ }
+ else
+ {
+ alert('t('benotungstool/hilfeImport');?>');
+ }
+ }
+
//-->
@@ -803,149 +1123,6 @@ if (defined('CIS_ANWESENHEITSLISTE_NOTENLISTE_ANZEIGEN') && CIS_ANWESENHEITSLIST
{
$hrefpath = "../notenliste.xls.php?stg=$stg_obj->studiengang_kz&lvid=$lvid&stsem=$stsem";
echo "" . $p->t('benotungstool/notenlisteImport') . " ";
-
-}
-
-// eingetragene lv-gesamtnoten freigeben
-if (isset($_REQUEST["freigabe"]) && ($_REQUEST["freigabe"] == 1))
-{
- // Passwort pruefen
- if (checkldapuser($user, $_REQUEST['passwort']))
- {
- $jetzt = date("Y-m-d H:i:s");
- $neuenoten = 0;
-
- $studlist = "
- ";
-
- // entweder personenbezogene Daten einbinden
- if (defined('CIS_GESAMTNOTE_FREIGABEMAIL_NOTE') && CIS_GESAMTNOTE_FREIGABEMAIL_NOTE)
- {
- $studlist .= "
- " . $p->t('global/personenkz') . "
- " . $p->t('global/studiengang') . "
- " . $p->t('global/nachname') . "
- " . $p->t('global/vorname') . "
- ";
-
- if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
- {
- $studlist .= "" . $p->t('benotungstool/punkte') . " \n";
- }
- $studlist .= "" . $p->t('benotungstool/note') . " \n";
-
- $studlist .= "" . $p->t('benotungstool/bearbeitetvon') . " \n";
- }
- // oder anonymisiert nur die UIDs einbinden
- else
- {
- $studlist .= "
- " . $p->t('global/uid') . " \n
- ";
- }
-
- // studentenquery
- $qry_stud = "SELECT
- DISTINCT uid, vorname, nachname, matrikelnr, kurzbzlang
- FROM
- campus.vw_student_lehrveranstaltung
- JOIN campus.vw_student USING(uid)
- JOIN public.tbl_studiengang ON campus.vw_student.studiengang_kz = public.tbl_studiengang.studiengang_kz
- WHERE
- studiensemester_kurzbz = " . $db->db_add_param($stsem) . "
- AND lehrveranstaltung_id = " . $db->db_add_param($lvid, FHC_INTEGER) . "
- ORDER BY nachname, vorname ";
- if ($result_stud = $db->db_query($qry_stud))
- {
- $i = 1;
- while ($row_stud = $db->db_fetch_object($result_stud))
- {
- $lvgesamtnote = new lvgesamtnote();
- if ($lvgesamtnote->load($lvid, $row_stud->uid, $stsem))
- {
- if ($lvgesamtnote->benotungsdatum > $lvgesamtnote->freigabedatum)
- {
- $lvgesamtnote->freigabedatum = $jetzt;
- $lvgesamtnote->freigabevon_uid = $user;
- $lvgesamtnote->save();
-
- if (defined('CIS_GESAMTNOTE_FREIGABEMAIL_NOTE') && CIS_GESAMTNOTE_FREIGABEMAIL_NOTE)
- {
- $studlist .= "" . trim($row_stud->matrikelnr) . " ";
- $studlist .= "" . trim($row_stud->kurzbzlang) . " ";
- $studlist .= "" . trim($row_stud->nachname) . " ";
- $studlist .= "" . trim($row_stud->vorname) . " ";
-
- if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
- {
- $studlist .= "";
- if ($lvgesamtnote->punkte != '')
- $studlist .= trim(number_format($lvgesamtnote->punkte, 2));
- $studlist .= " \n";
- }
- $studlist .= "" . $noten_array[trim($lvgesamtnote->note)]['bezeichnung_mehrsprachig'][$sprache] . " ";
-
- $studlist .= "" . $lvgesamtnote->mitarbeiter_uid;
- if ($lvgesamtnote->updatevon != '')
- $studlist .= " (" . $lvgesamtnote->updatevon . ")";
- $studlist .= " \n";
- }
- else
- {
- $studlist .= "" . trim($row_stud->uid) . " \n";
- }
-
- $neuenoten ++;
- }
- }
- }
- }
-
- $studlist .= "
";
-
- // mail an assistentin und den user selber verschicken
- if ($neuenoten > 0)
- {
- $lv = new lehrveranstaltung($lvid);
- $sg = new studiengang($lv->studiengang_kz);
- $lektor_adresse = $user . "@" . DOMAIN;
- $adressen = $sg->email . ", " . $user . "@" . DOMAIN;
-
- $studienplan = new studienplan();
- $studienplan->getStudienplanLehrveranstaltung($lvid, $stsem);
- $studienplan_bezeichnung = '';
- foreach ($studienplan->result as $row)
- $studienplan_bezeichnung .= $row->bezeichnung . ' ';
-
- $mit = new mitarbeiter();
- $mit->load($user);
- $name = $mit->anrede.' '.$mit->vorname.' '.$mit->nachname.' ('.$mit->kurzbz.')';
-
- $betreff = 'Notenfreigabe ' . $lv->bezeichnung . ' ' . $lv->orgform_kurzbz . ' - ' . $studienplan_bezeichnung;
- $mail = new mail($adressen, 'no-reply@' . DOMAIN, $betreff, '');
- $htmlcontent = "
-
- $name hat neue Noten für die Lehrveranstaltung\n\n
- " . $sg->kuerzel . ' ' . $lv->semester . '.Semester
- ' . $lv->bezeichnung . " " . $lv->orgform_kurzbz . " - " . $stsem . "
- eingetragen.\n
- Die Noten können jetzt ins Zeugnis übernommen werden.\n";
-
- $htmlcontent .= $studlist;
-
- $htmlcontent.= "
- Anzahl der Noten: " . $neuenoten . "
- " . $p->t('abgabetool/mailVerschicktAn') . ": " . $adressen . "
- ";
- $mail->setHTMLContent($htmlcontent);
- $mail->setReplyTo($lektor_adresse);
- $mail->send();
- }
- }
- else
- {
- $errormsg = $p->t('gesamtnote/passwortFalsch');
- }
}
if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
@@ -1052,11 +1229,15 @@ $htmlstring .= "" . $p->t('benotungstool/punkte') . ' / ' . $p->t('benotungs
if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2)
{
- $htmlstring .= " " . $p->t('benotungstool/nachpruefung') . " ";
+ $htmlstring .= " " . $p->t('benotungstool/nachpruefung') . "
+
+ ";
}
if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3)
{
- $htmlstring .= "" . $p->t('benotungstool/nachpruefung2') . " ";
+ $htmlstring .= " " . $p->t('benotungstool/nachpruefung2') . "
+
+ ";
}
if (defined('CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF') && CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF)
{
@@ -1184,7 +1365,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
foreach ($addon_obj->result as $row)
{
if (file_exists('../../../../addons/' . $row->kurzbz . '/cis/grades.inc.php'))
- include ('../../../../addons/' . $row->kurzbz . '/cis/grades.inc.php');
+ include('../../../../addons/' . $row->kurzbz . '/cis/grades.inc.php');
}
}
}
@@ -1193,7 +1374,6 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
foreach ($grades as $uid => $data)
//Ausgabe Array
{
-
$htmlstring .= '
' . $db->convert_html_chars($uid) . '
@@ -1325,7 +1505,6 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
// Punkte
if (CIS_GESAMTNOTE_PUNKTE)
{
-
$htmlstring .= '
checkformatDatum($datum, 'Y-m-d', true) OR die('Invalid date format');
-}
-else
- die('Fehlerhafte Parameteruebergabe');
-
-//Laden der Lehrveranstaltung
-$lv_obj = new lehrveranstaltung();
-if(!$lv_obj->load($lvid))
- die($lv_obj->errormsg);
-
-//Studiengang laden
-$stg_obj = new studiengang($lv_obj->studiengang_kz);
+ $lehreinheit_id_pr = $_GET['lehreinheit_id_pr'];
if(isset($_GET['stsem']))
$stsem = $_GET['stsem'];
else
$stsem = '';
-
-$uebung_id = (isset($_GET['uebung_id'])?$_GET['uebung_id']:'');
-$uid = (isset($_GET['uid'])?$_GET['uid']:'');
-
//Studiensemester laden
$stsem_obj = new studiensemester();
if($stsem=='')
$stsem = $stsem_obj->getaktorNext();
-$student_uid = $_REQUEST["student_uid"];
-
-$note = $_REQUEST["note"];
-if(isset($_REQUEST['punkte']))
- $punkte = $_REQUEST['punkte'];
-else
- $punkte = '';
-
-$punkte = str_replace(',','.',$punkte);
-
-if($punkte!='')
+//Notenanmerkung für Eintragung von nichtnumerischen Noten wie en (entschuldigt), ue(unentschuldigt)
+$noten_anmerkung = array();
+$noten_arr = array();
+$note_obj = new note();
+$note_obj->getAll();
+foreach($note_obj->result as $row)
{
- // Bei Punkteeingabe wird die Note nochmals geprueft und ggf korrigiert
- $notenschluessel = new notenschluessel();
- $note_pruef = $notenschluessel->getNote($punkte, $lvid, $stsem);
- if($note_pruef!=$note)
- {
- $note = $note_pruef;
- $note_dirty=true;
- }
+ $noten_anmerkung[$row->anmerkung] = $row->note;
+ $noten_arr[$row->note] = $row;
}
if(!isset($_GET['typ']))
@@ -122,22 +97,177 @@ if(!isset($_GET['typ']))
}
else
{
- if(in_array($_GET['typ'],array('Termin2','Termin3')))
+ if(in_array($_GET['typ'], array('Termin2', 'Termin3')))
$typ=$_GET['typ'];
else
die('Typ ist ungueltig');
}
-if($note=='')
- $note = 9;
-
-$old_note = $note;
-
-// lvgesamtnote für studenten speichern
-if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') )
+if (isset($_REQUEST['sammel']) && $_REQUEST["sammel"] == 1)
+{
+ $errorMatrnr = '';
+ $errorDatum = '';
+ $errorNachp = '';
+
+ foreach ($_POST as $row => $val)
+ {
+ if(mb_strstr(mb_strtolower($row), 'student_uid_'))
+ {
+ $id=mb_substr($row, mb_strlen('student_uid_'));
+
+ $student_uid = $_POST['student_uid_'.$id];
+ $note = null;
+ $punkte = null;
+ $datum = null;
+ $response = '';
+ if(isset($_POST['note_'.$id]))
+ $note = $_POST['note_'.$id];
+ elseif(isset($_POST['punkte_'.$id]))
+ $punkte = $_POST['punkte_'.$id];
+ else
+ {
+ $response.="\nNote oder Punkte fehlen";
+ continue;
+ }
+ $punkte=str_replace(',', '.', $punkte);
+ if($punkte!='')
+ {
+ // Bei Punkteeingabe wird die Note nochmals geprueft und ggf korrigiert
+ $notenschluessel = new notenschluessel();
+ $note_pruef = $notenschluessel->getNote($punkte, $lvid, $stsem);
+ if($note_pruef!=$note)
+ {
+ $note = $note_pruef;
+ $note_dirty=true;
+ }
+ }
+
+ $datum = $_POST['datumNachp_'.$id];
+ //check Datumsformat
+ $checkedDatum = $datum;
+ $datum_obj = new datum();
+ if(!$datum = $datum_obj->checkformatDatum($datum, 'Y-m-d', true))
+ {
+ $errorDatum .="\n".$p->t('benotungstool/datumsformatUnzulaessig', array($checkedDatum));
+ continue;
+ }
+
+ //check ob Matrikelnummer anstelle der student_uid übergeben wurde
+ $student = new student();
+ if (!$student->checkIfValidStudentUID($student_uid))
+ {
+ $checkedMatrnr = $student_uid;
+ //UID ermitteln
+ if(!$student_uid = $student->getUidFromMatrikelnummer($student_uid))
+ {
+ $errorMatrnr.="\n".$p->t('benotungstool/studentMitMatrikelnummerExistiertNicht', array($checkedMatrnr));
+ continue;
+ }
+ }
+
+ //check ob eine Note vorhanden ist oder (intern) angerechnet wurde
+ $lvnote = new lvgesamtnote();
+ if (!$lvnote->load($lvid, $student_uid, $stsem))
+ {
+ $errorNachp.="\n".$p->t('benotungstool/NachpruefungNichtZulaessig', array($student_uid));
+ continue;
+ }
+
+ $lehreinheit_id = getLehreinheit($db, $lvid, $student_uid, $stsem);
+
+ if(isset($_POST['student_uid_'.$id]) && (isset($_POST['note_'.$id]) || isset($_POST['punkte_'.$id])) && isset($_POST['datumNachp_'.$id]))
+ {
+ if(!is_numeric($note))
+ {
+ if(isset($noten_anmerkung[$note]))
+ $note = $noten_anmerkung[$note];
+ }
+ $response = savePruefung($lvid, $student_uid, $stsem, $lehreinheit_id, $datum, $typ, $note, $punkte);
+ if($response!='neu' && $response!='update' && $response!='update_f')
+ {
+ echo $response;
+ }
+ }
+ else
+ {
+ echo "\n fehlende oder fehlerhafte Inputparameter";
+ }
+ }
+ }
+ echo $errorMatrnr . $errorDatum . $errorNachp;
+}
+else
+{
+ // Einzelupdate
+
+ if(isset($_GET['datum']))
+ {
+ $datum = $_GET['datum'];
+ $datum_obj = new datum();
+ $datum = $datum_obj->checkformatDatum($datum, 'Y-m-d', true) or die($p->t('benotungstool/datumsformatUnzulaessig', array($checkedDatum)));
+ }
+ $student_uid = $_REQUEST["student_uid"];
+
+ $note = $_REQUEST["note"];
+ if(isset($_REQUEST['punkte']))
+ $punkte = $_REQUEST['punkte'];
+ else
+ $punkte = '';
+
+ $punkte = str_replace(',', '.', $punkte);
+
+ if($punkte!='')
+ {
+ // Bei Punkteeingabe wird die Note nochmals geprueft und ggf korrigiert
+ $notenschluessel = new notenschluessel();
+ $note_pruef = $notenschluessel->getNote($punkte, $lvid, $stsem);
+ if($note_pruef!=$note)
+ {
+ $note = $note_pruef;
+ $note_dirty=true;
+ }
+ }
+
+ if($note=='')
+ $note = 9;
+
+ $old_note = $note;
+
+ //Laden der Lehrveranstaltung
+ $lv_obj = new lehrveranstaltung();
+ if(!$lv_obj->load($lvid))
+ die($lv_obj->errormsg);
+
+ //Studiengang laden
+ $stg_obj = new studiengang($lv_obj->studiengang_kz);
+
+ $uebung_id = (isset($_GET['uebung_id'])?$_GET['uebung_id']:'');
+ $uid = (isset($_GET['uid'])?$_GET['uid']:'');
+
+ // lvgesamtnote für studenten speichern
+ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != ''))
+ {
+ // Die Pruefung muss einer Lehreinheit zugeordnet werden
+ // deshalb wird hier versucht eine passende Lehreinheit zu ermitteln.
+ $lehreinheit_id = getLehreinheit($db, $lvid, $student_uid, $stsem);
+
+ $response = savePruefung($lvid, $student_uid, $stsem, $lehreinheit_id, $datum, $typ, $note);
+ echo $response;
+ }
+ else
+ echo "Fehler beim Eintragen der Prüfungen";
+}
+
+/**
+ * Berechnet Lehreinheit auf Basis LV-Daten
+ * @param string $db Datenbankvariable
+ * @param string $student_uid student_uid
+ * @param int $lvid Lehrveranstaltungsid
+ * @param string $stsem Studiensemester im Format 'WSYYYY'
+ * @return String LehreinheitId
+ */
+function getLehreinheit($db, $lvid, $student_uid, $stsem)
{
- // Die Pruefung muss einer Lehreinheit zugeordnet werden
- // deshalb wird hier versucht eine passende Lehreinheit zu ermitteln.
$le_arr = array();
$qry_stud = "SELECT lehreinheit_id, lehrform_kurzbz
FROM
@@ -158,104 +288,159 @@ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') )
}
}
- if (!in_array($lehreinheit_id,$le_arr))
+ //if (!in_array($lehreinheit_id,$le_arr))
$lehreinheit_id = $le_arr[0];
+ return $lehreinheit_id;
+}
+
+/**
+ * Prüfung speichern
+ */
+function savePruefung($lvid, $student_uid, $stsem, $lehreinheit_id, $datum, $typ, $note, $punkte = null)
+{
$jetzt = date("Y-m-d H:i:s");
+ global $user; //, $note, $punkte, $datum;
- $pr = new Pruefung();
-
- // Wenn eine Pruefung angelegt wird, wird zuerst eine Pruefung mit 1. Termin angelegt
- // und dort die Zeugnisnote gespeichert
- if($pr->getPruefungen($student_uid, "Termin1", $lvid, $stsem))
+ if ($typ == "Termin2")
{
- if ($pr->result)
+ $pr = new Pruefung();
+ // Wenn eine Pruefung angelegt wird, wird zuerst eine Pruefung mit 1. Termin angelegt
+ // und dort die Zeugnisnote gespeichert
+ if($pr->getPruefungen($student_uid, "Termin1", $lvid, $stsem))
{
- $termin1 = 1;
- }
- else
- {
- $lvnote = new lvgesamtnote();
- if ($lvnote->load($lvid, $student_uid, $stsem))
+ if ($pr->result)
{
- $pr_note = $lvnote->note;
- $pr_punkte = $lvnote->punkte;
- $benotungsdatum = $lvnote->benotungsdatum;
+ $termin1 = 1;
}
else
{
- $pr_note = 9;
- $pr_punkte = '';
- $benotungsdatum = $jetzt;
+ $lvnote = new lvgesamtnote();
+ if ($lvnote->load($lvid, $student_uid, $stsem))
+ {
+ $pr_note = $lvnote->note;
+ $pr_punkte = $lvnote->punkte;
+ $benotungsdatum = $lvnote->benotungsdatum;
+ }
+ else
+ {
+ $pr_note = 9;
+ $pr_punkte = '';
+ $benotungsdatum = $jetzt;
+ }
+
+ $pr_1 = new Pruefung();
+ $pr_1->lehreinheit_id = $lehreinheit_id;
+ $pr_1->student_uid = $student_uid;
+ $pr_1->mitarbeiter_uid = $user;
+ $pr_1->note = $pr_note;
+ $pr_1->punkte = $pr_punkte;
+ $pr_1->pruefungstyp_kurzbz = "Termin1";
+ $pr_1->datum = $benotungsdatum;
+ $pr_1->anmerkung = "";
+ $pr_1->insertamum = $jetzt;
+ $pr_1->insertvon = $user;
+ $pr_1->updateamum = null;
+ $pr_1->updatevon = null;
+ $pr_1->ext_id = null;
+ $pr_1->new = true;
+ $pr_1->save();
+ $response = "neu T1";
}
- $pr_1 = new Pruefung();
- $pr_1->lehreinheit_id = $lehreinheit_id;
- $pr_1->student_uid = $student_uid;
- $pr_1->mitarbeiter_uid = $user;
- $pr_1->note = $pr_note;
- $pr_1->punkte = $pr_punkte;
- $pr_1->pruefungstyp_kurzbz = "Termin1";
- $pr_1->datum = $benotungsdatum;
- $pr_1->anmerkung = "";
- $pr_1->insertamum = $jetzt;
- $pr_1->insertvon = $user;
- $pr_1->updateamum = null;
- $pr_1->updatevon = null;
- $pr_1->ext_id = null;
- $pr_1->new = true;
- $pr_1->save();
+ $prTermin2 = new Pruefung();
+ $pr_2 = new Pruefung();
+
+ // Die Pruefung wird als Termin2 eingetragen
+ if ($prTermin2->getPruefungen($student_uid, 'Termin2', $lvid, $stsem))
+ {
+ if ($prTermin2->result)
+ {
+ $pr_2->load($prTermin2->result[0]->pruefung_id);
+ $pr_2->new = null;
+ $pr_2->updateamum = $jetzt;
+ $pr_2->updatevon = $user;
+ $old_note = $pr_2->note;
+ $pr_2->note = $note;
+ $pr_2->punkte = $punkte;
+ $pr_2->datum = $datum;
+ $pr_2->anmerkung = "";
+ $response = "update T2";
+ }
+ else
+ {
+ $pr_2->lehreinheit_id = $lehreinheit_id;
+ $pr_2->student_uid = $student_uid;
+ $pr_2->mitarbeiter_uid = $user;
+ $pr_2->note = $note;
+ $pr_2->punkte = $punkte;
+ $pr_2->pruefungstyp_kurzbz = $typ;
+ $pr_2->datum = $datum;
+ $pr_2->anmerkung = "";
+ $pr_2->insertamum = $jetzt;
+ $pr_2->insertvon = $user;
+ $pr_2->updateamum = null;
+ $pr_2->updatevon = null;
+ $pr_2->ext_id = null;
+ $pr_2->new = true;
+ $old_note = -1;
+ $response = "new T2";
+ }
+ $pr_2->save();
+ }
}
}
-
-
- $prTermin2 = new Pruefung();
- $pr_2 = new Pruefung();
-
- // Die Pruefung wird als Termin2 eingetragen
- if ($prTermin2->getPruefungen($student_uid, $typ, $lvid, $stsem))
+ elseif ($typ == "Termin3")
{
- if ($prTermin2->result)
+ $prTermin3 = new Pruefung();
+ $pr_3 = new Pruefung();
+
+ if ($prTermin3->getPruefungen($student_uid, 'Termin3', $lvid, $stsem))
{
- $pr_2->load($prTermin2->result[0]->pruefung_id);
- $pr_2->new = null;
- $pr_2->updateamum = $jetzt;
- $pr_2->updatevon = $user;
- $old_note = $pr_2->note;
- $pr_2->note = $note;
- $pr_2->punkte = $punkte;
- $pr_2->datum = $datum;
- $pr_2->anmerkung = "";
+ if ($prTermin3->result)
+ {
+ $pr_3->load($prTermin3->result[0]->pruefung_id);
+ $pr_3->new = null;
+ $pr_3->updateamum = $jetzt;
+ $pr_3->updatevon = $user;
+ $old_note = $pr_3->note;
+ $pr_3->note = $note;
+ $pr_3->punkte = $punkte;
+ $pr_3->datum = $datum;
+ $pr_3->anmerkung = "";
+ $response = "update T3";
+ }
+ else
+ {
+ $pr_3->lehreinheit_id = $lehreinheit_id;
+ $pr_3->student_uid = $student_uid;
+ $pr_3->mitarbeiter_uid = $user;
+ $pr_3->note = $note;
+ $pr_3->punkte = $punkte;
+ $pr_3->pruefungstyp_kurzbz = $typ;
+ $pr_3->datum = $datum;
+ $pr_3->anmerkung = "";
+ $pr_3->insertamum = $jetzt;
+ $pr_3->insertvon = $user;
+ $pr_3->updateamum = null;
+ $pr_3->updatevon = null;
+ $pr_3->ext_id = null;
+ $pr_3->new = true;
+ $old_note = -1;
+ $response = "new T3";
+ }
+ $pr_3->save();
}
- else
- {
- $pr_2->lehreinheit_id = $lehreinheit_id;
- $pr_2->student_uid = $student_uid;
- $pr_2->mitarbeiter_uid = $user;
- $pr_2->note = $note;
- $pr_2->punkte = $punkte;
- $pr_2->pruefungstyp_kurzbz = $typ;
- $pr_2->datum = $datum;
- $pr_2->anmerkung = "";
- $pr_2->insertamum = $jetzt;
- $pr_2->insertvon = $user;
- $pr_2->updateamum = null;
- $pr_2->updatevon = null;
- $pr_2->ext_id = null;
- $pr_2->new = true;
- $old_note = -1;
- }
- $pr_2->save();
+ }
+ else
+ {
+ $response = "fehlende oder fehlerhafte Inputparameter";
}
-
- // Wenn eine Pruefung eingetragen wird, wird danach die LV-Note korrigiert
- $jetzt = date("Y-m-d H:i:s");
-
- $lvid = $_REQUEST["lvid"];
+ //Gesamtnote updaten
$lvgesamtnote = new lvgesamtnote();
- if (!$lvgesamtnote->load($lvid, $student_uid, $stsem))
- {
+ if (!$lvgesamtnote->load($lvid, $student_uid, $stsem))
+ {
$lvgesamtnote->student_uid = $student_uid;
$lvgesamtnote->lehrveranstaltung_id = $lvid;
$lvgesamtnote->studiensemester_kurzbz = $stsem;
@@ -272,9 +457,9 @@ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') )
$lvgesamtnote->insertvon = $user;
$new = true;
$response = "neu";
- }
- else
- {
+ }
+ else
+ {
$lvgesamtnote->note = $note;
$lvgesamtnote->punkte = $punkte;
$lvgesamtnote->benotungsdatum = $jetzt;
@@ -286,12 +471,11 @@ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') )
else
$response = "update";
}
+
if (!$lvgesamtnote->save($new))
- echo "".$lvgesamtnote->errormsg." ";
+ return $lvgesamtnote->errormsg;
else
- echo $response;
+ return $response;
}
-else
- echo "Fehler beim Eintragen der Prüfungen";
?>
diff --git a/cis/private/lehre/fotoliste.pdf.php b/cis/private/lehre/fotoliste.pdf.php
index 475905e45..bfd2fb3e5 100644
--- a/cis/private/lehre/fotoliste.pdf.php
+++ b/cis/private/lehre/fotoliste.pdf.php
@@ -274,6 +274,8 @@ if ($result = $db->db_query($qry)) {
//add foto to document
$doc->addImage($foto_url, trim($row->person_id) . '.jpg', 'image/jpg');
+
+ $foto_url = 'Pictures/' . trim($row->person_id) . '.jpg';
}
elseif ($row->foto_sperre == 't')
{
@@ -290,7 +292,7 @@ if ($result = $db->db_query($qry)) {
'personenkennzeichen' => trim($row->matrikelnr),
'geschlecht' => $row->geschlecht,
'foto_gesperrt' => $row->foto_sperre, // f/t
- 'foto_url' => 'Pictures/' . trim($row->person_id) . '.jpg',
+ 'foto_url' => $foto_url,
'studiengruppe' => $student_studiengruppe,
'verband' => trim($row->verband),
'gruppe' => trim($row->gruppe),
diff --git a/cis/private/lehre/lvincoming.php b/cis/private/lehre/lvincoming.php
deleted file mode 100644
index f81292aab..000000000
--- a/cis/private/lehre/lvincoming.php
+++ /dev/null
@@ -1,146 +0,0 @@
-
- * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
- * Rudolf Hangl < rudolf.hangl@technikum-wien.at >
- */
-require_once('../../../config/cis.config.inc.php');
-require_once('../../../include/studiensemester.class.php');
-require_once('../../../include/studiengang.class.php');
-
-$db = new basis_db();
-
-$stsem = new studiensemester();
-$stsem->getNextStudiensemester();
-
-$stg = new studiengang();
-$stg->getAll();
-?>
-
-
-
-
-
-
-
- Lehrveranstaltungen - Übersicht
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ';
-
- $qry = "SELECT
- tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.studiengang_kz,
- tbl_lehrveranstaltung.bezeichnung, tbl_lehrveranstaltung.semester,
- tbl_lehrveranstaltung.bezeichnung_english, tbl_lehrveranstaltung.incoming,
- tbl_lehrveranstaltung.sprache,
- (
- SELECT
- count(*)
- FROM
- campus.vw_student_lehrveranstaltung
- JOIN public.tbl_student ON(uid=student_uid)
- JOIN public.tbl_prestudentstatus USING(prestudent_id)
- WHERE
- lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND
- lehreinheit_id in (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit
- WHERE lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id
- AND tbl_lehreinheit.studiensemester_kurzbz='$stsem->studiensemester_kurzbz')
- AND tbl_prestudentstatus.status_kurzbz='Incoming'
- AND tbl_prestudentstatus.status_kurzbz='$stsem->studiensemester_kurzbz'
- GROUP BY uid
- ) as anzahlincoming
- FROM
- lehre.tbl_lehrveranstaltung JOIN public.tbl_studiengang USING(studiengang_kz)
- WHERE
- tbl_lehrveranstaltung.incoming>0 AND
- tbl_lehrveranstaltung.aktiv AND
- tbl_lehrveranstaltung.lehre
- AND tbl_lehrveranstaltung.studiengang_kz>0 AND tbl_lehrveranstaltung.studiengang_kz<10000
- AND tbl_studiengang.aktiv
- ";
-
- echo '
-
-
- ID
- Studiengang
- Semester
- Sprache
- Lehrveranstaltung
- Lehrveranstaltung Englisch
- LV-Info
- Plätze gesamt
- Freie Plätze
-
-
- ';
- if($result = $db->db_query($qry))
- {
- $i=0;
- while($row = $db->db_fetch_object($result))
- {
- $freieplaetze = $row->incoming - $row->anzahlincoming;
- if($freieplaetze<0)
- $freieplaetze=0;
-
- $i++;
- echo '';
- echo '',$row->lehrveranstaltung_id,' ';
- echo '',$stg->kuerzel_arr[$row->studiengang_kz],' ';
- echo '',$row->semester,' ';
- echo '',$row->sprache,' ';
- echo '',$row->bezeichnung,' ';
- echo '',$row->bezeichnung_english,' ';
- echo '
- Deutsch
- Englisch
- ';
- echo '',$row->incoming,' ';
- echo '',$freieplaetze,' ';
- echo ' ';
- }
- }
- echo '
';
-?>
-
-
-
-
-
-
-
-
-
diff --git a/cis/private/lehre/notenliste.xls.php b/cis/private/lehre/notenliste.xls.php
index 74cb7e7c1..63cf45d29 100644
--- a/cis/private/lehre/notenliste.xls.php
+++ b/cis/private/lehre/notenliste.xls.php
@@ -35,6 +35,7 @@ require_once('../../../include/note.class.php');
require_once('../../../include/notenschluessel.class.php');
require_once('../../../include/Excel/excel.php');
require_once('../../../include/phrasen.class.php');
+require_once('../../../include/pruefung.class.php');
$uid = get_uid();
@@ -120,6 +121,13 @@ else
$format_highlightright->setBorderColor('white');
$format_highlightright->setAlign('right');
+ $format_highlightright_date=& $workbook->addFormat();
+ $format_highlightright_date->setFgColor(15);
+ $format_highlightright_date->setBorder(1);
+ $format_highlightright_date->setBorderColor('white');
+ $format_highlightright_date->setAlign('right');
+ $format_highlightright_date->setNumFormat(49);
+
$format_border_bottom =& $workbook->addFormat();
$format_border_bottom ->setBottom(2);
$format_border_bottom->setBold();
@@ -191,6 +199,19 @@ else
}
//Studenten holen
+
+ //Spaltengruppe für Nachprüfung
+ if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2)
+ {
+ $worksheet->write($lines,8,$p->t('benotungstool/nachpruefung'),$format_bold);
+ }
+
+ //Spaltengruppe für 2.Nebensprüfungstermin
+ if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3)
+ {
+ $worksheet->write($lines,12,$p->t('benotungstool/nachpruefung2'),$format_bold);
+ }
+
$lines++;
$worksheet->write($lines,1,$p->t('global/uid'),$format_border_bottom);
$worksheet->write($lines,2,$p->t('global/nachname'),$format_border_bottom);
@@ -203,6 +224,26 @@ else
else
$worksheet->write($lines,6,$p->t('benotungstool/note'),$format_border_bottom);
+ if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2)
+ {
+ $worksheet->write($lines,8,$p->t('global/personenkennzeichen'),$format_border_bottom);
+ $worksheet->write($lines,9,$p->t('global/datum'),$format_border_bottom);
+ if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
+ $worksheet->write($lines,10,$p->t('benotungstool/punkte'),$format_border_bottom);
+ else
+ $worksheet->write($lines,10,$p->t('benotungstool/note'),$format_border_bottom);
+ }
+
+ if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3)
+{
+ $worksheet->write($lines,12,$p->t('global/personenkennzeichen'),$format_border_bottom);
+ $worksheet->write($lines,13,$p->t('global/datum'),$format_border_bottom);
+ if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
+ $worksheet->write($lines,14,$p->t('benotungstool/punkte'),$format_border_bottom);
+ else
+ $worksheet->write($lines,14,$p->t('benotungstool/note'),$format_border_bottom);
+}
+
$stsem_obj = new studiensemester();
$stsem_obj->load($stsem);
$stsemdatumvon = $stsem_obj->start;
@@ -229,17 +270,18 @@ else
AND tbl_zeugnisnote.student_uid=tbl_student.student_uid
AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz)
LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid)
- LEFT JOIN bis.tbl_mobilitaet USING(prestudent_id)
+ LEFT JOIN bis.tbl_mobilitaet ON (bis.tbl_mobilitaet.prestudent_id = public.tbl_student.prestudent_id)
LEFT JOIN lehre.tbl_note USING(note)
WHERE
vw_student_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)."
- AND vw_student_lehrveranstaltung.studiensemester_kurzbz=".$db->db_add_param($stsem);";";
+ AND vw_student_lehrveranstaltung.studiensemester_kurzbz=".$db->db_add_param($stsem);";";
if($lehreinheit_id!='')
$qry.=" AND vw_student_lehrveranstaltung.lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER);
$qry.=' ORDER BY nachname, vorname, person_id, tbl_bisio.bis, doubledegree DESC';
+
if($result = $db->db_query($qry))
{
$i=1;
@@ -282,6 +324,49 @@ else
$worksheet->write($lines,4,'="'.$elem->semester.$elem->verband.$elem->gruppe.'"');
$worksheet->write($lines,5,'="'.trim($elem->matrikelnr).'"',$format_highlight);
$worksheet->write($lines,6, $note, $format_highlightright);
+
+ // Nachprüfung
+ if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2)
+ {
+ $worksheet->write($lines,8, '="'.trim($elem->matrikelnr).'"', $format_highlight);
+ $pr = new Pruefung();
+ $pr->getPruefungen($elem->uid, "Termin2", $lvid, $sem);
+ $output2 = $pr->result;
+
+ if ($output2)
+ {
+ $resultPr = $output2[0];
+ $worksheet->write($lines,9, date('d.m.Y', strtotime($resultPr->datum)), $format_highlightright_date);
+ $worksheet->write($lines,10, $resultPr->note, $format_highlightright);
+ }
+ else
+ {
+ $worksheet->write($lines,9, '', $format_highlightright_date);
+ $worksheet->write($lines,10, '', $format_highlightright);
+ }
+ }
+
+ // Nachprüfung
+ if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3)
+ {
+ $worksheet->write($lines,12, '="'.trim($elem->matrikelnr).'"', $format_highlight);
+ $pr = new Pruefung();
+ $pr->getPruefungen($elem->uid, "Termin3", $lvid, $sem);
+ $output3 = $pr->result;
+
+ if ($output3)
+ {
+ $resultPr = $output3[0];
+ $worksheet->write($lines,13, date('d.m.Y', strtotime($resultPr->datum)), $format_highlightright_date);
+ $worksheet->write($lines,14, $resultPr->note, $format_highlightright);
+ }
+ else
+ {
+ $worksheet->write($lines,13, '', $format_highlightright_date);
+ $worksheet->write($lines,14, '', $format_highlightright);
+ }
+ }
+
$i++;
$lines++;
}
@@ -335,5 +420,17 @@ else
$worksheet->setColumn(0, 3, 25);
$worksheet->setColumn(0, 4, 7);
$worksheet->setColumn(0, 5, 21);
+
+ if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2)
+ {
+ $worksheet->setColumn(8, 8, 15);
+ $worksheet->setColumn(9, 9, 10);
+ }
+ if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3)
+ {
+ $worksheet->setColumn(12, 12, 15);
+ $worksheet->setColumn(13, 13, 10);
+ }
+
$workbook->close();
?>
diff --git a/cis/private/lvplan/raumsuche.php b/cis/private/lvplan/raumsuche.php
index 0cb9677d4..7be028be8 100644
--- a/cis/private/lvplan/raumsuche.php
+++ b/cis/private/lvplan/raumsuche.php
@@ -47,11 +47,11 @@ echo '
-
-
-
-
-
+
+
+
+
+
");
if (!in_array($gebiet_id, $_SESSION['alleGebiete']))
diff --git a/cis/testtool/login.php b/cis/testtool/login.php
index 0b114b8c5..0ff84f4a0 100644
--- a/cis/testtool/login.php
+++ b/cis/testtool/login.php
@@ -362,6 +362,8 @@ if ((isset($_SESSION['prestudent_id']) && !isset($_SESSION['pruefling_id']) &&
$pruefling->idnachweis = '';
$pruefling->registriert = date('Y-m-d H:i:s');
$pruefling->prestudent_id = $_SESSION['prestudent_id'];
+ $pruefling->gesperrt = $pruefling->isGesperrt(null, $_SESSION['prestudent_id']);
+
if ($pruefling->save())
{
$_SESSION['pruefling_id']=$pruefling->pruefling_id;
@@ -385,6 +387,7 @@ if (isset($_POST['save']) && isset($_SESSION['prestudent_id']))
$pruefling->registriert = date('Y-m-d H:i:s');
$pruefling->prestudent_id = $_SESSION['prestudent_id'];
$pruefling->semester = $_POST['semester'];
+ $pruefling->gesperrt = $pruefling->isGesperrt(null, $_SESSION['prestudent_id']);
if ($pruefling->save())
{
$_SESSION['pruefling_id']=$pruefling->pruefling_id;
diff --git a/config/cis.config-default.inc.php b/config/cis.config-default.inc.php
index cb670b5dd..27e0a9a70 100644
--- a/config/cis.config-default.inc.php
+++ b/config/cis.config-default.inc.php
@@ -86,6 +86,7 @@ define("AUTH_NAME","FH-Complete");
* LDAP_BIND_USER: DN des Users falls eine Authentifizierung am LDAP noetig ist oder null
* LDAP_BIND_PASSWORD: Passwort des Users falls eine Authentifizierung am LDAP noetig ist oder null
* LDAP_USER_SEARCH_FILTER: LDAP Attribut in dem der Username steht nach dem gesucht wird (uid | sAMAccountName)
+ * LDAP_SERVICEPING: LDAP Service Ping verwenden (true | false) - wirksam für alle LDAP Server
*/
define('LDAP_SERVER','ldap://ldap.example.com');
define('LDAP_PORT',389);
@@ -94,6 +95,7 @@ define('LDAP_BASE_DN','ou=People,dc=example,dc=com');
define('LDAP_BIND_USER',null);
define('LDAP_BIND_PASSWORD',null);
define('LDAP_USER_SEARCH_FILTER','uid');
+define('LDAP_SERVICEPING',true);
// 2. LDAP Server (zB wenn Mitarbeiter und Studierende auf 2 getrennten Servern liegen)
/*
@@ -207,6 +209,26 @@ define('TABLE_ID','_id');
define('TABLE_BEGIN','tbl_');
define('VIEW_BEGIN','vw_');
+/**
+ * Signatur
+ * DEFAULT: https://signatur.example.com/api/sign
+ */
+// Generic URL
+define('SIGNATUR_URL', 'https://signatur.dev.technikum-wien.at/api');
+// Sign API
+define('SIGNATUR_SIGN_API', 'sign');
+// List API
+define('SIGNATUR_LIST_API', 'list');
+// User für Zugriff auf Signaturserver
+define('SIGNATUR_USER', 'fhcomplete');
+// Passwort für Zugriff auf Signaturserver
+define('SIGNATUR_PASSWORD', 'supersecretpassword');
+// Signaturprofil das verwendet werden soll
+define('SIGNATUR_DEFAULT_PROFILE', 'FHC_AMT_GROSS_DE');
+
+// Signaturpruefung im Abgabetool aktivieren
+define('ABGABETOOL_CHECK_SIGNATURE',false);
+
//Gibt an, ob das Studienbuchblatt im CIS gedruckt werden kann
define('CIS_DOKUMENTE_STUDIENBUCHLBATT_DRUCKEN',true);
diff --git a/config/system.config-default.inc.php b/config/system.config-default.inc.php
index 45a83837e..a1f70086a 100644
--- a/config/system.config-default.inc.php
+++ b/config/system.config-default.inc.php
@@ -52,6 +52,7 @@
* LDAP_BIND_USER: DN des Users falls eine Authentifizierung am LDAP noetig ist oder null
* LDAP_BIND_PASSWORD: Passwort des Users falls eine Authentifizierung am LDAP noetig ist oder null
* LDAP_USER_SEARCH_FILTER: LDAP Attribut in dem der Username steht nach dem gesucht wird (uid | sAMAccountName)
+ * LDAP_SERVICEPING: LDAP Service Ping verwenden (true | false) - wirksam für alle LDAP Server
*/
define('LDAP_SERVER','ldap://ldap.example.com');
define('LDAP_PORT',389);
@@ -60,6 +61,7 @@
define('LDAP_BIND_USER',null);
define('LDAP_BIND_PASSWORD',null);
define('LDAP_USER_SEARCH_FILTER','uid');
+ define('LDAP_SERVICEPING',true);
// 2. LDAP Server (zB wenn Mitarbeiter und Studierende auf 2 getrennten Servern liegen)
/*
diff --git a/config/vilesci.config-default.inc.php b/config/vilesci.config-default.inc.php
index e98de9ce0..fdd971be0 100644
--- a/config/vilesci.config-default.inc.php
+++ b/config/vilesci.config-default.inc.php
@@ -75,6 +75,7 @@ define('AUTH_NAME', 'FH Complete');
* LDAP_BIND_USER: DN des Users falls eine Authentifizierung am LDAP noetig ist oder null
* LDAP_BIND_PASSWORD: Passwort des Users falls eine Authentifizierung am LDAP noetig ist oder null
* LDAP_USER_SEARCH_FILTER: LDAP Attribut in dem der Username steht nach dem gesucht wird (uid | sAMAccountName)
+ * LDAP_SERVICEPING: LDAP Service Ping verwenden (true | false) - wirksam für alle LDAP Server
*/
define('LDAP_SERVER', 'ldap://ldap.example.com');
define('LDAP_PORT', 389);
@@ -83,6 +84,7 @@ define('LDAP_BASE_DN', 'ou=People,dc=example,dc=com');
define('LDAP_BIND_USER', null);
define('LDAP_BIND_PASSWORD', null);
define('LDAP_USER_SEARCH_FILTER', 'uid');
+define('LDAP_SERVICEPING',true);
// 2. LDAP Server (zB wenn Mitarbeiter und Studierende auf 2 getrennten Servern liegen)
/*
@@ -188,14 +190,22 @@ define('FHC_REST_PASSWORD', 'password');
* Signatur
* DEFAULT: https://signatur.example.com/api/sign
*/
-define('SIGNATUR_URL', 'https://signatur.example.com/api/sign');
+// Generic URL
+define('SIGNATUR_URL', 'https://signatur.dev.technikum-wien.at/api');
+// Sign API
+define('SIGNATUR_SIGN_API', 'sign');
+// List API
+define('SIGNATUR_LIST_API', 'list');
// User für Zugriff auf Signaturserver
-define('SIGNATUR_USER', 'username');
+define('SIGNATUR_USER', 'fhcomplete');
// Passwort für Zugriff auf Signaturserver
-define('SIGNATUR_PASSWORD', 'password');
+define('SIGNATUR_PASSWORD', 'supersecretpassword');
// Signaturprofil das verwendet werden soll
define('SIGNATUR_DEFAULT_PROFILE', 'FHC_AMT_GROSS_DE');
+// Signaturpruefung im Abgabetool aktivieren
+define('ABGABETOOL_CHECK_SIGNATURE',false);
+
/**
* Datenverbund Anbindung
*/
diff --git a/config/wawi.config-default.inc.php b/config/wawi.config-default.inc.php
index bed069e39..0081c2420 100644
--- a/config/wawi.config-default.inc.php
+++ b/config/wawi.config-default.inc.php
@@ -53,6 +53,7 @@ define("AUTH_NAME","FHComplete");
* LDAP_BIND_USER: DN des Users falls eine Authentifizierung am LDAP noetig ist oder null
* LDAP_BIND_PASSWORD: Passwort des Users falls eine Authentifizierung am LDAP noetig ist oder null
* LDAP_USER_SEARCH_FILTER: LDAP Attribut in dem der Username steht nach dem gesucht wird (uid | sAMAccountName)
+ * LDAP_SERVICEPING: LDAP Service Ping verwenden (true | false) - wirksam für alle LDAP Server
*/
define('LDAP_SERVER','ldap://ldap.example.com');
define('LDAP_PORT',389);
@@ -61,6 +62,7 @@ define('LDAP_BASE_DN','ou=People,dc=example,dc=com');
define('LDAP_BIND_USER',null);
define('LDAP_BIND_PASSWORD',null);
define('LDAP_USER_SEARCH_FILTER','uid');
+define('LDAP_SERVICEPING',true);
// 2. LDAP Server (zB wenn Mitarbeiter und Studierende auf 2 getrennten Servern liegen)
/*
diff --git a/content/fas.xul.php b/content/fas.xul.php
index 449f917b7..80efdb2f9 100644
--- a/content/fas.xul.php
+++ b/content/fas.xul.php
@@ -125,7 +125,8 @@ foreach($addon_obj->result as $addon)
-
+
+
@@ -513,6 +514,12 @@ foreach($addon_obj->result as $addon)
label = "&menu-dokumente-inskriptionsbestaetigung.label;"
command = "menu-dokumente-inskriptionsbestaetigung:command"
accesskey = "&menu-dokumente-inskriptionsbestaetigung.accesskey;"/>
+
diff --git a/content/pdfExport.php b/content/pdfExport.php
index a2a5a1a33..2f9180418 100644
--- a/content/pdfExport.php
+++ b/content/pdfExport.php
@@ -253,7 +253,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', 'projektarbeit_id', 'betreuerart_kurzbz')
+ 'abrechnungsmonat', 'form', 'projektarbeit_id', 'betreuerart_kurzbz', 'studiensemester_kurzbz')
)
)
{
diff --git a/content/student/studentkontooverlay.xul.php b/content/student/studentkontooverlay.xul.php
index a15275fac..7dec7f9a2 100644
--- a/content/student/studentkontooverlay.xul.php
+++ b/content/student/studentkontooverlay.xul.php
@@ -27,8 +27,14 @@ header("Pragma: no-cache");
header("Content-type: application/vnd.mozilla.xul+xml");
require_once('../../config/vilesci.config.inc.php');
require_once('../../config/global.config.inc.php');
+require_once('../../include/functions.inc.php');
+require_once('../../include/benutzerberechtigung.class.php');
echo '';
+$user = get_uid();
+$rechte = new benutzerberechtigung();
+$rechte->getBerechtigungen($user);
+
?>
';
-
-
-
-
@@ -218,6 +220,20 @@ echo '';
+ getBerechtigungen($user);
+ if($rechte->isBerechtigt('admin'))
+ $hidden = '';
+ ?>
+ >
+
+
+
+
+
+
diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php
index 731469957..334080fb2 100644
--- a/content/student/studentoverlay.js.php
+++ b/content/student/studentoverlay.js.php
@@ -2385,7 +2385,7 @@ function StudentAddRolle(rolle, semester, studiensemester, statusgrund_id)
// ****
// * Druckt die Instkriptionsbestaetigung
// ****
-function StudentPrintInskriptionsbestaetigung(event)
+function StudentPrintInskriptionsbestaetigung(event, xsl)
{
tree = document.getElementById('student-tree');
//Alle markierten Studenten holen
@@ -2422,7 +2422,7 @@ function StudentPrintInskriptionsbestaetigung(event)
var output='pdf';
if(anzahl>0)
- window.open('content/pdfExport.php?xml=student.rdf.php&xsl=Inskription&stg_kz='+stg_kz+'&uid='+paramList+'&ss='+stsem+'&output='+output,'Inskriptionsbestaetigung', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes');
+ window.open('content/pdfExport.php?xml=student.rdf.php&xsl='+ xsl +'&stg_kz='+stg_kz+'&uid='+paramList+'&ss='+stsem+'&output='+output,'Inskriptionsbestaetigung', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes');
else
alert('Bitte einen Studenten auswaehlen');
}
@@ -3452,6 +3452,10 @@ function StudentZeugnisDokumentArchivieren()
xml = 'ausbildungsvertrag.xml.php';
break;
+ case 'AbschlussdokumentLehrgaenge':
+ xml = 'abschlussdokument_lehrgaenge.xml.php';
+ break;
+
default:
alert('Das Archivieren fuer diesen Dokumenttyp wird derzeit nicht unterstuetzt');
return
diff --git a/content/zutrittskarte.php b/content/zutrittskarte.php
index c936400da..21f6e53d0 100644
--- a/content/zutrittskarte.php
+++ b/content/zutrittskarte.php
@@ -270,7 +270,8 @@ foreach ($uid_arr as $uid)
'matrikelnummer' => rtrim($student->matrikelnr),
'matr_nr' => $person->matr_nr,
'ausstellungsdatum' => date('M.Y'),
- 'gueltigbis' => $datum_obj->formatDatum($gueltigbis, 'd.m.Y')
+ 'gueltigbis' => $datum_obj->formatDatum($gueltigbis, 'd.m.Y'),
+ 'gueltigbis_3jahre' => date('d.m.Y', strtotime('+3 years'))
);
}
}
diff --git a/include/berechtigung.class.php b/include/berechtigung.class.php
index ab224be4d..f4c55e576 100644
--- a/include/berechtigung.class.php
+++ b/include/berechtigung.class.php
@@ -29,6 +29,10 @@ class berechtigung extends basis_db
public $rolle_kurzbz;
public $beschreibung;
public $berechtigung_kurzbz;
+ public $art;
+ public $anmerkung;
+ public $insertamum;
+ public $insertvon;
/**
* Konstruktor
@@ -79,7 +83,7 @@ class berechtigung extends basis_db
{
if(is_null($new))
$new = $this->new;
-
+
if($new)
{
$qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES(".
@@ -103,14 +107,38 @@ class berechtigung extends basis_db
return false;
}
}
+
+ /**
+ * Loescht ein Recht
+ *
+ * @param $berechtigung_kurzbz
+ */
+ public function delete($berechtigung_kurzbz)
+ {
+ $qry = "DELETE FROM system.tbl_berechtigung WHERE berechtigung_kurzbz=".$this->db_add_param($berechtigung_kurzbz).";";
+
+ if($this->db_query($qry))
+ {
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Löschen des Rechts:'.$this->db_last_error();
+ return false;
+ }
+ }
/**
* Holt alle BerechtigungsRollen
* @return true wenn erfolgreich, false im Fehlerfall
*/
- public function getRollen()
+ public function getRollen($order = null)
{
$qry = 'SELECT * FROM system.tbl_rolle';
+ if ($order != '')
+ {
+ $qry .= " ORDER BY $order";
+ }
if($this->db_query($qry))
{
@@ -152,6 +180,9 @@ class berechtigung extends basis_db
$obj->rolle_kurzbz = $row->rolle_kurzbz;
$obj->art = $row->art;
$obj->beschreibung = $row->beschreibung;
+ $obj->anmerkung = $row->anmerkung;
+ $obj->insertamum = $row->insertamum;
+ $obj->insertvon = $row->insertvon;
$this->result[] = $obj;
}
@@ -252,15 +283,22 @@ class berechtigung extends basis_db
if($this->db_num_rows()>0)
{
//Update
- $qry = "UPDATE system.tbl_rolleberechtigung SET art=".$this->db_add_param($this->art)." WHERE rolle_kurzbz=".$this->db_add_param($this->rolle_kurzbz)." AND berechtigung_kurzbz=".$this->db_add_param($this->berechtigung_kurzbz).";";
+ $qry = "UPDATE system.tbl_rolleberechtigung SET art=".$this->db_add_param($this->art).",
+ anmerkung=".$this->db_add_param($this->anmerkung).",
+ insertamum=".$this->db_add_param($this->insertamum).",
+ insertvon=".$this->db_add_param($this->insertvon)."
+ WHERE rolle_kurzbz=".$this->db_add_param($this->rolle_kurzbz)." AND berechtigung_kurzbz=".$this->db_add_param($this->berechtigung_kurzbz).";";
}
else
{
//Insert
- $qry = "INSERT INTO system.tbl_rolleberechtigung (rolle_kurzbz, berechtigung_kurzbz, art) VALUES(".
+ $qry = "INSERT INTO system.tbl_rolleberechtigung (rolle_kurzbz, berechtigung_kurzbz, art, anmerkung, insertamum, insertvon) VALUES(".
$this->db_add_param($this->rolle_kurzbz).",".
$this->db_add_param($this->berechtigung_kurzbz).",".
- $this->db_add_param($this->art).");";
+ $this->db_add_param($this->art).",".
+ $this->db_add_param($this->anmerkung).",".
+ $this->db_add_param($this->insertamum).",".
+ $this->db_add_param($this->insertvon).");";
}
if($this->db_query($qry))
diff --git a/include/content.class.php b/include/content.class.php
index f004bfb03..79d32c82c 100644
--- a/include/content.class.php
+++ b/include/content.class.php
@@ -1287,7 +1287,7 @@ class content extends basis_db
sichtbar=true
AND aktiv=true
AND version = (SELECT campus.get_highest_content_version (content_id))
- AND template_kurzbz IN('contentmittitel','contentohnetitel','redirect')";
+ AND template_kurzbz IN('contentmittitel','contentohnetitel','redirect','contentmittitel_filterwidget')";
foreach($searchItems as $value)
{
$qry .= " AND
@@ -1309,7 +1309,7 @@ class content extends basis_db
foreach($searchItems as $value)
{
$qry .= " AND
- (template_kurzbz IN('contentmittitel','contentohnetitel')
+ (template_kurzbz IN('contentmittitel','contentohnetitel','contentmittitel_filterwidget')
AND
(
lower(content::text) like lower('%".$this->db_escape($value)."%')
diff --git a/include/dokument_export.class.php b/include/dokument_export.class.php
index 0d4f2c660..7e4aef40e 100644
--- a/include/dokument_export.class.php
+++ b/include/dokument_export.class.php
@@ -557,7 +557,7 @@ class dokument_export
$ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, SIGNATUR_URL);
+ curl_setopt($ch, CURLOPT_URL, SIGNATUR_URL.'/'.SIGNATUR_SIGN_API);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 7);
curl_setopt($ch, CURLOPT_USERAGENT, "FH-Complete");
@@ -589,18 +589,19 @@ class dokument_export
curl_close($ch);
$resultdata = json_decode($result);
- if (isset($resultdata->success) && $resultdata->success == 'true')
+ // If it is success
+ if (isset($resultdata->error) && $resultdata->error == 0)
{
$this->signed_filename = $this->temp_folder .'/signed.pdf';
- file_put_contents($this->signed_filename, base64_decode($resultdata->document));
+ file_put_contents($this->signed_filename, base64_decode($resultdata->retval));
return true;
}
- else
+ else // otherwise if it is an error
{
- if(isset($resultdata->errormsg))
- $this->errormsg = $resultdata->errormsg;
+ if(isset($resultdata->retval))
+ $this->errormsg = $resultdata->retval;
else
- $this->errormsg = 'Unknown Error:'.print_r($resultdata,true);
+ $this->errormsg = 'Unknown Error:'.print_r($resultdata, true);
return false;
}
}
diff --git a/include/filter.class.php b/include/filter.class.php
index 3578d7dcf..5e820aca7 100644
--- a/include/filter.class.php
+++ b/include/filter.class.php
@@ -210,7 +210,7 @@ class filter extends basis_db
$html.="\n\t\t\t
";
break;
case 'datepicker':
- $html .= ' ';
+ $html .= ' ';
$html .= '';
diff --git a/include/functions.inc.php b/include/functions.inc.php
index 7b3560dde..e0787a0d4 100644
--- a/include/functions.inc.php
+++ b/include/functions.inc.php
@@ -1196,4 +1196,19 @@ function anzahlTage($date1, $date2)
$diff = $date2_ts - $date1_ts;
return round($diff / 86400);
}
+
+/**
+ * Gibt zurück, ob ein String ausschließlich erlaubte Zeichen enthält
+ * erlaubt: Buchstaben a-z, A-Z, 0-9, -, _
+ * @param string $stringToCheck Eingabestring
+ * @return boolena true or false
+ */
+function hasOnlyAllowedChars($stringToCheck)
+{
+ if (!preg_match("#^[a-zA-Z0-9_-]+$#", $stringToCheck))
+ return false;
+ else
+ return true;
+}
+
?>
diff --git a/include/lehrstunde.class.php b/include/lehrstunde.class.php
index 280e626a8..a0f52d799 100644
--- a/include/lehrstunde.class.php
+++ b/include/lehrstunde.class.php
@@ -41,6 +41,7 @@ class lehrstunde extends basis_db
public $unr; // @brief Unterrichtsnummer
public $lektor_uid; // @brief UID des Lektors
public $lektor_kurzbz; // @brief Kurzbezeichnung des Lektors
+ public $mitarbeiter_kurzbz; // @brief Kurzbezeichnung
public $datum; // @brief Datum
public $stunde; // @brief Unterrichts-Stunde des Tages
public $ort_kurzbz; // @brief Ort in dem der Unterricht stattfindet
@@ -116,6 +117,7 @@ class lehrstunde extends basis_db
$this->unr=$row->unr;
$this->lektor_uid=$row->uid;
$this->lektor_kurzbz=$row->lektor;
+ $this->mitarbeiter_kurzbz=$row->mitarbeiter_kurzbz;
$this->datum=$row->datum;
$this->stunde=$row->stunde;
$this->ort_kurzbz=$row->ort_kurzbz;
@@ -590,6 +592,7 @@ class lehrstunde extends basis_db
$stunde->unr=$row->unr;
$stunde->lektor_uid=$row->uid;
$stunde->lektor_kurzbz=$row->lektor;
+ $stunde->mitarbeiter_kurzbz=$row->mitarbeiter_kurzbz;
$stunde->datum=$row->datum;
$stunde->stunde=$row->stunde;
$stunde->ort_kurzbz=$row->ort_kurzbz;
@@ -663,6 +666,7 @@ class lehrstunde extends basis_db
$stunde->updateamum=$row->insertamum;
$stunde->updatevon=$row->insertvon;
$stunde->farbe='';
+ $stunde->mitarbeiter_kurzbz = $row->mitarbeiter_kurzbz;
$this->lehrstunden[]=$stunde;
}
}
diff --git a/include/organisationseinheit.class.php b/include/organisationseinheit.class.php
index 1a2e0ca16..78b0e40c3 100644
--- a/include/organisationseinheit.class.php
+++ b/include/organisationseinheit.class.php
@@ -650,11 +650,14 @@ class organisationseinheit extends basis_db
LOWER(bezeichnung) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\')
OR
LOWER(organisationseinheittyp_kurzbz) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\')
+ OR
+ LOWER(organisationseinheittyp_kurzbz) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\')
)';
foreach($searchItem as $value)
{
$qry.=' OR (LOWER(oe_kurzbz)=LOWER('.$this->db_add_param($value).'))
- OR (LOWER(bezeichnung) LIKE LOWER(\'%'.$this->db_escape($value).'%\'))';
+ OR (LOWER(bezeichnung) LIKE LOWER(\'%'.$this->db_escape($value).'%\'))
+ OR (LOWER(organisationseinheittyp_kurzbz||bezeichnung) LIKE LOWER(\'%'.$this->db_escape($value).'%\'))';
}
$qry.= ' ORDER BY organisationseinheittyp_kurzbz, bezeichnung;';
diff --git a/include/prestudent.class.php b/include/prestudent.class.php
index 3bd7cd733..557412413 100644
--- a/include/prestudent.class.php
+++ b/include/prestudent.class.php
@@ -834,6 +834,78 @@ class prestudent extends person
case "statusbestaetigt":
$qry.=" AND a.rolle='Interessent' AND bestaetigtam is not null";
break;
+ case "statusbestaetigtrtnichtangemeldet":
+ $qry.=" AND a.rolle='Interessent' AND bestaetigtam is not null
+ AND NOT EXISTS (
+ SELECT
+ 1
+ FROM
+ public.tbl_rt_person
+ JOIN public.tbl_reihungstest ON (rt_id = reihungstest_id)
+ WHERE
+ person_id=a.person_id
+ AND studienplan_id IN (
+ SELECT studienplan_id FROM lehre.tbl_studienplan
+ JOIN lehre.tbl_studienordnung USING(studienordnung_id)
+ WHERE tbl_studienordnung.studiengang_kz=a.studiengang_kz
+ )
+ AND tbl_reihungstest.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
+ )";
+ break;
+ case "statusbestaetigtrtangemeldet":
+ $qry.=" AND a.rolle='Interessent' AND bestaetigtam is not null
+ AND EXISTS (
+ SELECT
+ 1
+ FROM
+ public.tbl_rt_person
+ JOIN public.tbl_reihungstest ON (rt_id = reihungstest_id)
+ WHERE
+ person_id=a.person_id
+ AND studienplan_id IN (
+ SELECT studienplan_id FROM lehre.tbl_studienplan
+ JOIN lehre.tbl_studienordnung USING(studienordnung_id)
+ WHERE tbl_studienordnung.studiengang_kz=a.studiengang_kz
+ )
+ AND tbl_reihungstest.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
+ )";
+ break;
+ case "bewerberrtnichtangemeldet":
+ $qry.=" AND a.rolle='Bewerber'
+ AND NOT EXISTS (
+ SELECT
+ 1
+ FROM
+ public.tbl_rt_person
+ JOIN public.tbl_reihungstest ON (rt_id = reihungstest_id)
+ WHERE
+ person_id=a.person_id
+ AND studienplan_id IN (
+ SELECT studienplan_id FROM lehre.tbl_studienplan
+ JOIN lehre.tbl_studienordnung USING(studienordnung_id)
+ WHERE tbl_studienordnung.studiengang_kz=a.studiengang_kz
+ )
+ AND tbl_reihungstest.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
+ )";
+ break;
+ case "bewerberrtangemeldet":
+ $qry.=" AND a.rolle='Bewerber'
+ AND EXISTS (
+ SELECT
+ 1
+ FROM
+ public.tbl_rt_person
+ JOIN public.tbl_reihungstest ON (rt_id = reihungstest_id)
+ WHERE
+ person_id=a.person_id
+ AND studienplan_id IN (
+ SELECT studienplan_id FROM lehre.tbl_studienplan
+ JOIN lehre.tbl_studienordnung USING(studienordnung_id)
+ WHERE tbl_studienordnung.studiengang_kz=a.studiengang_kz
+ )
+ AND tbl_reihungstest.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
+ )";
+ break;
case "zgv":
$stg_obj = new studiengang();
$stg_obj->load($studiengang_kz);
diff --git a/include/pruefling.class.php b/include/pruefling.class.php
index fc64d90c4..efe660ca9 100644
--- a/include/pruefling.class.php
+++ b/include/pruefling.class.php
@@ -108,12 +108,13 @@ class pruefling extends basis_db
if($this->new) //Wenn new true ist dann ein INSERT absetzen ansonsten ein UPDATE
{
- $qry = 'BEGIN;INSERT INTO testtool.tbl_pruefling (studiengang_kz, idnachweis, registriert, prestudent_id, semester) VALUES('.
+ $qry = 'BEGIN;INSERT INTO testtool.tbl_pruefling (studiengang_kz, idnachweis, registriert, prestudent_id, semester, gesperrt) VALUES('.
$this->db_add_param($this->studiengang_kz).",".
$this->db_add_param($this->idnachweis).",".
$this->db_add_param($this->registriert).",".
$this->db_add_param($this->prestudent_id).",".
- $this->db_add_param($this->semester).");";
+ $this->db_add_param($this->semester).",".
+ $this->db_add_param($this->gesperrt, FHC_BOOLEAN).");";
}
else
{
@@ -122,7 +123,8 @@ class pruefling extends basis_db
' idnachweis='.$this->db_add_param($this->idnachweis).','.
' registriert='.$this->db_add_param($this->registriert).','.
' semester='.$this->db_add_param($this->semester).','.
- ' prestudent_id='.$this->db_add_param($this->prestudent_id, FHC_INTEGER).
+ ' prestudent_id='.$this->db_add_param($this->prestudent_id, FHC_INTEGER).','.
+ ' gesperrt='.$this->db_add_param($this->gesperrt, FHC_BOOLEAN).
" WHERE pruefling_id=".$this->db_add_param($this->pruefling_id, FHC_INTEGER, false).";";
}
@@ -557,5 +559,43 @@ class pruefling extends basis_db
return false;
}
}
+
+ public function isGesperrt($pruefling_id = null, $prestudent_id = null)
+ {
+ if (is_null($pruefling_id) && is_null($prestudent_id))
+ {
+ $this->errormsg = 'Falsche Parameterübergabe';
+ return false;
+ }
+
+ $qry = "SELECT spruefling.gesperrt
+ FROM testtool.tbl_pruefling
+ RIGHT JOIN public.tbl_prestudent USING(prestudent_id)
+ JOIN public.tbl_person USING (person_id)
+ JOIN public.tbl_prestudent pss ON pss.person_id = tbl_person.person_id
+ JOIN testtool.tbl_pruefling spruefling ON pss.prestudent_id = spruefling.prestudent_id
+ WHERE spruefling.gesperrt";
+
+ if (!is_null($pruefling_id))
+ $qry .= " AND tbl_pruefling.pruefling_id = ".$this->db_add_param($pruefling_id, FHC_INTEGER);
+
+ if (!is_null($prestudent_id))
+ $qry .= " AND tbl_prestudent.prestudent_id = ".$this->db_add_param($prestudent_id, FHC_INTEGER);
+
+ $qry .= " LIMIT 1";
+
+ if($result = $this->db_query($qry))
+ {
+ if ($this->db_num_rows($result) == 0)
+ return false;
+ else
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler bei einer Abfrage';
+ return false;
+ }
+ }
}
?>
diff --git a/include/raumtyp.class.php b/include/raumtyp.class.php
index 7cbe7a20a..7f4579d26 100644
--- a/include/raumtyp.class.php
+++ b/include/raumtyp.class.php
@@ -33,6 +33,7 @@ class raumtyp extends basis_db
//Tabellenspalten
public $beschreibung; // string
public $raumtyp_kurzbz; // string
+ public $aktiv; //boolean
/**
@@ -42,7 +43,7 @@ class raumtyp extends basis_db
public function __construct($raumtyp_kurzbz=null)
{
parent::__construct();
-
+
if($raumtyp_kurzbz != null)
$this->load($raumtyp_kurzbz);
}
@@ -51,10 +52,14 @@ class raumtyp extends basis_db
* Laedt alle verfuegbaren Raumtypen
* @return true wenn ok, false im Fehlerfall
*/
- public function getAll()
+ public function getAll($aktiv = null)
{
- $qry = 'SELECT * FROM public.tbl_raumtyp ORDER BY raumtyp_kurzbz;';
+ $qry = 'SELECT * FROM public.tbl_raumtyp';
+ if (!is_null($aktiv))
+ $qry .= ' WHERE aktiv = '.$this->db_add_param($aktiv, FHC_BOOLEAN);
+
+ $qry .= ' ORDER BY raumtyp_kurzbz';
if(!$this->db_query($qry))
{
$this->errormsg = 'Fehler beim Laden der Datensaetze';
@@ -67,7 +72,7 @@ class raumtyp extends basis_db
$raumtyp_obj->beschreibung = $row->beschreibung;
$raumtyp_obj->raumtyp_kurzbz = $row->raumtyp_kurzbz;
-
+ $raumtyp_obj->aktiv = $this->db_parse_bool($row->aktiv);
$this->result[] = $raumtyp_obj;
}
@@ -99,7 +104,7 @@ class raumtyp extends basis_db
{
$this->beschreibung = $row->beschreibung;
$this->raumtyp_kurzbz = $row->kurzbz;
-
+ $this->aktiv = $this->db_parse_bool($row->aktiv);
}
else
{
@@ -135,7 +140,7 @@ class raumtyp extends basis_db
$this->errormsg = '';
return true;
}
-
+
/**
* Speichert den aktuellen Datensatz
* @return true wenn ok, false im Fehlerfall
@@ -154,6 +159,7 @@ class raumtyp extends basis_db
$this->errormsg = 'Keine gültige ID';
return false;
}
+
//Neuen Datensatz anlegen
$qry = 'INSERT INTO public.tbl_raumtyp (beschreibung, raumtyp_kurzbz) VALUES ('.
$this->db_add_param($this->beschreibung).', '.
diff --git a/include/reihungstest.class.php b/include/reihungstest.class.php
index 30d603afc..df4134ebf 100644
--- a/include/reihungstest.class.php
+++ b/include/reihungstest.class.php
@@ -694,11 +694,17 @@ class reihungstest extends basis_db
tbl_reihungstest.studiensemester_kurzbz,
tbl_reihungstest.stufe,
tbl_reihungstest.anmeldefrist,
- tbl_reihungstest.aufnahmegruppe_kurzbz
+ tbl_reihungstest.aufnahmegruppe_kurzbz,
+ tbl_studiengang.typ,
+ UPPER(typ::varchar(1) || kurzbz) AS stg_kuerzel,
+ so.studiengangbezeichnung,
+ so.studiengangbezeichnung_englisch
FROM
public.tbl_rt_person
- JOIN
- public.tbl_reihungstest ON (rt_id=reihungstest_id)
+ JOIN public.tbl_reihungstest ON (rt_id=reihungstest_id)
+ JOIN public.tbl_studiengang ON tbl_reihungstest.studiengang_kz = tbl_studiengang.studiengang_kz
+ JOIN lehre.tbl_studienplan sp USING(studienplan_id)
+ JOIN lehre.tbl_studienordnung so USING(studienordnung_id)
WHERE
tbl_rt_person.person_id=".$this->db_add_param($person_id);
@@ -737,6 +743,10 @@ class reihungstest extends basis_db
$obj->stufe = $row->stufe;
$obj->anmeldefrist = $row->anmeldefrist;
$obj->aufnahmegruppe_kurzbz = $row->aufnahmegruppe_kurzbz;
+ $obj->typ = $row->typ;
+ $obj->stg_kuerzel = $row->stg_kuerzel;
+ $obj->studiengangbezeichnung = $row->studiengangbezeichnung;
+ $obj->studiengangbezeichnung_englisch = $row->studiengangbezeichnung_englisch;
$this->result[] = $obj;
}
diff --git a/include/tw/cis_menu_lv.inc.php b/include/tw/cis_menu_lv.inc.php
index 4b3005c07..16abdc48a 100644
--- a/include/tw/cis_menu_lv.inc.php
+++ b/include/tw/cis_menu_lv.inc.php
@@ -68,29 +68,8 @@ function checkZeilenUmbruch()
if(!defined('CIS_LEHRVERANSTALTUNG_LVINFO_ANZEIGEN') || CIS_LEHRVERANSTALTUNG_LVINFO_ANZEIGEN)
{
$text='';
-
- $qry = "SELECT * FROM campus.tbl_lvinfo WHERE lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND genehmigt=true AND sprache='".ATTR_SPRACHE_DE."' AND aktiv=true";
$need_br=false;
- if($result=$db->db_query($qry))
- {
- if($db->db_num_rows($result)>0)
- {
- $text.= "".$p->t('global/deutsch')." ";
- $need_br=true;
- }
- }
- $qry = "SELECT * FROM campus.tbl_lvinfo WHERE lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND genehmigt=true AND sprache='".ATTR_SPRACHE_EN."' AND aktiv=true";
- if($result=$db->db_query($qry))
- {
- if($db->db_num_rows($result)>0)
- {
- $row1=$db->db_fetch_object($result);
- $text.= "".$p->t('global/englisch')." ";
- $need_br=true;
- }
- }
-
// Bearbeiten Button anzeigen wenn Lektor der LV und bearbeiten fuer Lektoren aktiviert ist
// Oder Berechtigung zum Bearbeiten eingetragen ist
if((!defined('CIS_LEHRVERANSTALTUNG_LVINFO_LEKTOR_EDIT') && $lektor_der_lv)
diff --git a/include/tw/vilesci_menu_main.inc.php b/include/tw/vilesci_menu_main.inc.php
index 204feeec3..7d24f16f3 100644
--- a/include/tw/vilesci_menu_main.inc.php
+++ b/include/tw/vilesci_menu_main.inc.php
@@ -33,7 +33,7 @@ $menu=array
'Lehrveranstaltung'=>array('name'=>'Lehrveranstaltung', 'link'=>'lehre/lehrveranstaltung_frameset.html', 'target'=>'main'),
/* Leerzeile */'emptyrow1'=>array('name'=>'', 'link'=>'#empty', 'target'=>'main'),
'Verplanungsuebersicht'=>array('name'=>'Verplanungsübersicht', 'link'=>'lehre/check/verplanungsuebersicht.php', 'target'=>'main'),
- 'Reihungstest'=>array('name'=>'Reihungstest', 'link'=>'stammdaten/reihungstestverwaltung.php', 'target'=>'main','permissions'=>array('reihungstest')),
+ 'Reihungstest'=>array('name'=>'Reihungstest', 'link'=>'stammdaten/reihungstestverwaltung.php', 'target'=>'main','permissions'=>array('lehre/reihungstest')),
'LV-Planung'=>array
(
'name'=>'LV-Planung', 'permissions'=>array('admin','lv-plan','support'),
@@ -53,7 +53,7 @@ $menu=array
(
'name'=>'Mitarbeiter','permissions'=>array('admin','lv-plan','support'),
'Übersicht'=>array('name'=>'Zeitwünsche', 'link'=>'personen/lektor_uebersicht.php', 'target'=>'main','permissions'=>array('mitarbeiter')),
- 'Zeitsperren'=>array('name'=>'Zeitsperren', 'link'=>'personen/urlaubsverwaltung.php', 'target'=>'main','permissions'=>array('mitarbeiter/zeitsperre')),
+ 'Zeitsperren'=>array('name'=>'Zeitsperren', 'link'=>'personen/urlaubsverwaltung.php', 'target'=>'main','permissions'=>array('mitarbeiter/zeitsperre:begrenzt')),
),
'Vorrueckung'=> array
@@ -109,7 +109,7 @@ $menu=array
),
'Benutzer'=>array
(
- 'name'=>'Benutzer','permissions'=>array('admin','lv-plan','support'),
+ 'name'=>'Benutzer','permissions'=>array('admin','lv-plan','support','mitarbeiter'),
'Funktionen'=>array('name'=>'Funktionen', 'link'=>'personen/funktion.php', 'target'=>'main', 'permissions'=>array('mitarbeiter')),
'Berechtigungen'=>array('name'=>'Berechtigungen', 'link'=>'stammdaten/benutzerberechtigung_frameset.html', 'target'=>'main','permissions'=>array('basis/berechtigung')),
'Rollen'=>array('name'=>'Rollen', 'link'=>'stammdaten/berechtigungrolle.php', 'target'=>'main','permissions'=>array('basis/berechtigung')),
@@ -119,7 +119,7 @@ $menu=array
(
'name'=>'Mitarbeiter','permissions'=>array('admin','mitarbeiter','support'),
'Übersicht'=>array('name'=>'Übersicht', 'link'=>'personen/lektor_uebersicht.php', 'target'=>'main'),
- 'Zeitsperren'=>array('name'=>'Zeitsperren/Urlaub', 'link'=>'personen/urlaubsverwaltung.php', 'target'=>'main','permissions'=>array('mitarbeiter/zeitsperre')),
+ 'Zeitsperren'=>array('name'=>'Zeitsperren/Urlaub', 'link'=>'personen/urlaubsverwaltung.php', 'target'=>'main','permissions'=>array('mitarbeiter/zeitsperre:begrenzt')),
),
'Betriebsmittel'=>array('name'=>'Betriebsmittel', 'link'=>'stammdaten/betriebsmittel_frameset.php', 'target'=>'main','permissions'=>array('basis/betriebsmittel')),
'AnwesenheitslistenBarcode'=>array('name'=>'Anwesenheitslisten mit Barcodes', 'link'=>'personen/anwesenheitslisten_barcode.php', 'target'=>'main','permissions'=>array('basis/person')),
@@ -132,14 +132,15 @@ $menu=array
'name'=>'Stammdaten', 'opener'=>'true', 'hide'=>'true', 'permissions'=>array('admin','lv-plan','support','basis/berechtigung','basis/variable','basis/studiengang','basis/ort','basis/firma','basis/fhausweis','basis/infoscreen','basis/organisationseinheit'), 'image'=>'vilesci_stammdaten.png',
'link'=>'left.php?categorie=Stammdaten', 'target'=>'nav',
'Betriebsmittel'=>array('name'=>'Betriebsmittel', 'link'=>'stammdaten/betriebsmittel_frameset.php', 'target'=>'main','permissions'=>array('basis/betriebsmittel')),
- 'Reihungstest'=>array('name'=>'Reihungstest', 'link'=>'stammdaten/reihungstestverwaltung.php', 'target'=>'main','permissions'=>array('admin','assistenz')),
+ 'Reihungstest'=>array('name'=>'Reihungstest', 'link'=>'stammdaten/reihungstestverwaltung.php', 'target'=>'main','permissions'=>array('lehre/reihungstest')),
- 'User'=>array
+ 'Rechtemanagement'=>array
(
- 'name'=>'User', 'permissions'=>array('basis/variable','basis/berechtigung'),
+ 'name'=>'Rechtemanagement', 'permissions'=>array('basis/berechtigung','mitarbeiter'),
'Berechtigungen'=>array('name'=>'Berechtigungen', 'link'=>'stammdaten/benutzerberechtigung_frameset.html', 'target'=>'main','permissions'=>array('basis/berechtigung')),
+ 'Rechte'=>array('name'=>'Rechte', 'link'=>'stammdaten/berechtigungen.php', 'target'=>'main','permissions'=>array('basis/berechtigung')),
'Rollen'=>array('name'=>'Rollen', 'link'=>'stammdaten/berechtigungrolle.php', 'target'=>'main','permissions'=>array('basis/berechtigung')),
- 'Variablen'=>array('name'=>'Variablen', 'link'=>'stammdaten/variablen_frameset.html', 'target'=>'main', 'target'=>'main','permissions'=>array('basis/variable')),
+ 'Funktionen'=>array('name'=>'Funktionen', 'link'=>'personen/funktion.php', 'target'=>'main', 'permissions'=>array('mitarbeiter')),
),
'Personal'=>array
(
@@ -155,7 +156,7 @@ $menu=array
'Statistik'=>array('name'=>'Statistik', 'link'=>'stammdaten/statistik_frameset.html', 'target'=>'main','permissions'=>array('basis/statistik')),
'Ampel'=>array('name'=>'Ampel', 'link'=>'stammdaten/ampel_frameset.html', 'target'=>'main','permissions'=>array('basis/ampel')),
'Infoscreen'=>array('name'=>'Infoscreen', 'link'=>'stammdaten/infoscreen_frameset.html', 'target'=>'main','permissions'=>array('basis/infoscreen')),
- 'Ferien'=>array('name'=>'Ferien', 'link'=>'lehre/ferienverwaltung.php', 'target'=>'main','permissions'=>array('admin')),
+ 'Ferien'=>array('name'=>'Ferien', 'link'=>'lehre/ferienverwaltung.php', 'target'=>'main','permissions'=>array('basis/ferien')),
'Service'=>array('name'=>'Service', 'link'=>'stammdaten/service_frameset.html', 'target'=>'main','permissions'=>array('basis/service')),
'Dokumentvorlagen'=>array('name'=>'Dokumentvorlagen', 'link'=>'stammdaten/dokumentvorlagen_verwaltung.php', 'target'=>'main','permissions'=>array('basis/dokumente')),
'GSProgramm'=>array('name'=>'GSProgramm', 'link'=>'stammdaten/gsprogramm.php', 'target'=>'main','permissions'=>array('inout/uebersicht')),
diff --git a/include/wochenplan.class.php b/include/wochenplan.class.php
index f6cc94c3c..34fbadc63 100644
--- a/include/wochenplan.class.php
+++ b/include/wochenplan.class.php
@@ -445,6 +445,7 @@ class wochenplan extends basis_db
$this->std_plan[$tag][$stunde][$idx]->stundenplan_id=$this->wochenplan->lehrstunden[$i]->stundenplan_id;
$this->std_plan[$tag][$stunde][$idx]->lektor_uid=$this->wochenplan->lehrstunden[$i]->lektor_uid;
$this->std_plan[$tag][$stunde][$idx]->lektor=$this->wochenplan->lehrstunden[$i]->lektor_kurzbz;
+ $this->std_plan[$tag][$stunde][$idx]->mitarbeiter_kurzbz=$this->wochenplan->lehrstunden[$i]->mitarbeiter_kurzbz;
$this->std_plan[$tag][$stunde][$idx]->ort=$this->wochenplan->lehrstunden[$i]->ort_kurzbz;
$this->std_plan[$tag][$stunde][$idx]->stg=$this->wochenplan->lehrstunden[$i]->studiengang;
$this->std_plan[$tag][$stunde][$idx]->stg_kz=$this->wochenplan->lehrstunden[$i]->studiengang_kz;
@@ -736,7 +737,10 @@ class wochenplan extends basis_db
{
$unr[]=$lehrstunde->unr;
// Lektoren
- $lektor[]=$lehrstunde->lektor;
+ if ($lehrstunde->mitarbeiter_kurzbz === null)
+ $lektor[] = $lehrstunde->lektor;
+ else
+ $lektor[]=$lehrstunde->mitarbeiter_kurzbz;
// Lehrverband
$typ='';
if ($lehrstunde->reservierung)
@@ -1450,7 +1454,10 @@ class wochenplan extends basis_db
if ($lehrstunde->unr==$unr)
{
// Lektoren
- $lektor[]=$lehrstunde->lektor;
+ if ($lehrstunde->mitarbeiter_kurzbz === null)
+ $lektor[] = $lehrstunde->lektor;
+ else
+ $lektor[]=$lehrstunde->mitarbeiter_kurzbz;
// Lehrverband
$lvb=$lehrstunde->stg.'-'.$lehrstunde->sem;
if ($lehrstunde->ver!=null && $lehrstunde->ver!='0' && $lehrstunde->ver!='')
@@ -2364,7 +2371,10 @@ class wochenplan extends basis_db
$unr[]=$lehrstunde->unr;
// Lektoren
- $lektor[]=$lehrstunde->lektor;
+ if ($lehrstunde->mitarbeiter_kurzbz === null)
+ $lektor[] = $lehrstunde->lektor;
+ else
+ $lektor[]=$lehrstunde->mitarbeiter_kurzbz;
$lektor_uids[]=$lehrstunde->lektor_uid;
// Lehrverband
$lvb=$lehrstunde->stg.'-'.$lehrstunde->sem;
@@ -2516,6 +2526,7 @@ class wochenplan extends basis_db
if (!mb_strstr($this->std_plan[$i][$j][$idx1]->lektor,$this->std_plan[$i][$j][$idx]->lektor))
{
$this->std_plan[$i][$j][$idx]->lektor.=' / '.$this->std_plan[$i][$j][$idx1]->lektor;
+ $this->std_plan[$i][$j][$idx]->mitarbeiter_kurzbz.=' / '.$this->std_plan[$i][$j][$idx1]->mitarbeiter_kurzbz;
}
//Ort
@@ -2549,7 +2560,7 @@ class wochenplan extends basis_db
//"Betreff","Beginnt am","Beginnt um","Endet am","Endet um","Ganztaegiges Ereignis","Erinnerung Ein/Aus","Erinnerung am","Erinnerung um","Besprechungsplanung","Erforderliche Teilnehmer","Optionale Teilnehmer","Besprechungsressourcen","Abrechnungsinformationen","Beschreibung",
//"Kategorien","Ort","Prioritaet","Privat","Reisekilometer","Vertraulichkeit","Zeitspanne zeigen als"
echo $this->crlf.'"'.$this->std_plan[$i][$j][$idx]->lehrfach.(isset($this->std_plan[$i][$j][$idx]->lehrform) && $this->std_plan[$i][$j][$idx]->lehrform!=''?'-'.$this->std_plan[$i][$j][$idx]->lehrform:'').($lvb!=''?' - '.$lvb:'').'","'.$start_date.'","'.$start_time.'","'.$end_date.'","'.$end_time.'","Aus","Aus",,,,,,,,"Stundenplan';
- echo $this->crlf.$this->std_plan[$i][$j][$idx]->lehrfach.$this->crlf.$this->std_plan[$i][$j][$idx]->lektor.$this->crlf.$lvb.$this->crlf.$this->std_plan[$i][$j][$idx]->ort.(LVPLAN_ANMERKUNG_ANZEIGEN?$this->crlf.$this->std_plan[$i][$j][$idx]->anmerkung:'').'","StundenplanFH","'.$this->std_plan[$i][$j][$idx]->ort.'","Normal","Aus",,"Normal","2"';
+ echo $this->crlf.$this->std_plan[$i][$j][$idx]->lehrfach.$this->crlf.(($this->std_plan[$i][$j][$idx]->mitarbeiter_kurzbz === null) ? $this->std_plan[$i][$j][$idx]->lektor : $this->std_plan[$i][$j][$idx]->mitarbeiter_kurzbz).$this->crlf.$lvb.$this->crlf.$this->std_plan[$i][$j][$idx]->ort.(LVPLAN_ANMERKUNG_ANZEIGEN?$this->crlf.$this->std_plan[$i][$j][$idx]->anmerkung:'').'","StundenplanFH","'.$this->std_plan[$i][$j][$idx]->ort.'","Normal","Aus",,"Normal","2"';
}
elseif ($target=='ical')
{
@@ -2564,9 +2575,9 @@ class wochenplan extends basis_db
$end_date_time_ical = $eda[2].$eda[1].$eda[0].'T'.sprintf('%02s',($eta[0])).$eta[1].$eta[2]; //neu gruppieren der Startzeit und des Startdatums
echo $this->crlf.'BEGIN:VEVENT'.$this->crlf
- .'UID:'.'FH'.str_replace(',',' ',$lvb.$this->std_plan[$i][$j][$idx]->ort.$this->std_plan[$i][$j][$idx]->lektor.$lehrfach[$idx].$start_date_time_ical.$end_date_time_ical.$this->crlf)
+ .'UID:'.'FH'.str_replace(',',' ',$lvb.$this->std_plan[$i][$j][$idx]->ort.(($this->std_plan[$i][$j][$idx]->mitarbeiter_kurzbz === null) ? $this->std_plan[$i][$j][$idx]->lektor : $this->std_plan[$i][$j][$idx]->mitarbeiter_kurzbz).$lehrfach[$idx].$start_date_time_ical.$end_date_time_ical.$this->crlf)
.'SUMMARY:'.str_replace(',',' ',$lehrfach[$idx].' '.$this->std_plan[$i][$j][$idx]->ort.' - '.$lvb.$this->crlf)
- .'DESCRIPTION:'.str_replace(',',' ',$lehrfach[$idx].'\n'.$this->std_plan[$i][$j][$idx]->lektor.'\n'.$lvb.'\n'.$this->std_plan[$i][$j][$idx]->ort.(LVPLAN_ANMERKUNG_ANZEIGEN?'\n'.$this->std_plan[$i][$j][$idx]->anmerkung:'').$this->crlf)
+ .'DESCRIPTION:'.str_replace(',',' ',$lehrfach[$idx].'\n'.(($this->std_plan[$i][$j][$idx]->mitarbeiter_kurzbz === null) ? $this->std_plan[$i][$j][$idx]->lektor : $this->std_plan[$i][$j][$idx]->mitarbeiter_kurzbz).'\n'.$lvb.'\n'.$this->std_plan[$i][$j][$idx]->ort.(LVPLAN_ANMERKUNG_ANZEIGEN?'\n'.$this->std_plan[$i][$j][$idx]->anmerkung:'').$this->crlf)
.'LOCATION:'.$this->std_plan[$i][$j][$idx]->ort.$this->crlf
.'CATEGORIES:'.$lvplan_kategorie.$this->crlf
.'DTSTART;TZID=Europe/Vienna:'.$start_date_time_ical.$this->crlf
@@ -2606,9 +2617,9 @@ class wochenplan extends basis_db
$start_date_time_ical = $sda[2].$sda[1].$sda[0].'T'.sprintf('%02s',($sta[0])).$sta[1].$sta[2]; //neu gruppieren der Startzeit und des Startdatums
$end_date_time_ical = $eda[2].$eda[1].$eda[0].'T'.sprintf('%02s',($eta[0])).$eta[1].$eta[2]; //neu gruppieren der Startzeit und des Startdatums
- $UID = 'FH'.$lvb.$this->std_plan[$i][$j][$idx]->ort.$this->std_plan[$i][$j][$idx]->lektor.$lehrfach[$idx].$start_date_time_ical.$end_date_time_ical;
+ $UID = 'FH'.$lvb.$this->std_plan[$i][$j][$idx]->ort.(($this->std_plan[$i][$j][$idx]->mitarbeiter_kurzbz === null) ? $this->std_plan[$i][$j][$idx]->lektor : $this->std_plan[$i][$j][$idx]->mitarbeiter_kurzbz).$lehrfach[$idx].$start_date_time_ical.$end_date_time_ical;
$Summary = $lehrfach[$idx].' '.$this->std_plan[$i][$j][$idx]->ort.' - '.$lvb;
- $description = $lehrfach[$idx].'\n'.$this->std_plan[$i][$j][$idx]->lektor.'\n'.$lvb.'\n'.$this->std_plan[$i][$j][$idx]->ort.(LVPLAN_ANMERKUNG_ANZEIGEN?'\n'.$this->std_plan[$i][$j][$idx]->anmerkung:'');
+ $description = $lehrfach[$idx].'\n'.(($this->std_plan[$i][$j][$idx]->mitarbeiter_kurzbz === null) ? $this->std_plan[$i][$j][$idx]->lektor : $this->std_plan[$i][$j][$idx]->mitarbeiter_kurzbz).'\n'.$lvb.'\n'.$this->std_plan[$i][$j][$idx]->ort.(LVPLAN_ANMERKUNG_ANZEIGEN?'\n'.$this->std_plan[$i][$j][$idx]->anmerkung:'');
$UID = str_replace(',',' ',$UID);
$Summary = str_replace(',',' ',$Summary);
@@ -2646,7 +2657,7 @@ class wochenplan extends basis_db
else
{
echo $this->crlf.'"'.$lehrfach[$idx].'","'.$lvplan_kategorie.'","'.$this->std_plan[$i][$j][$idx]->ort.'","Stundenplan'.$this->crlf.$this->std_plan[$i][$j][$idx]->lehrfach.$this->crlf;
- echo $this->std_plan[$i][$j][$idx]->lektor.$this->crlf.$lvb.$this->crlf.$this->std_plan[$i][$j][$idx]->ort.(LVPLAN_ANMERKUNG_ANZEIGEN?$this->crlf.$this->std_plan[$i][$j][$idx]->anmerkung:'').'","Stundenplan",';
+ echo (($this->std_plan[$i][$j][$idx]->mitarbeiter_kurzbz === null) ? $this->std_plan[$i][$j][$idx]->lektor : $this->std_plan[$i][$j][$idx]->mitarbeiter_kurzbz).$this->crlf.$lvb.$this->crlf.$this->std_plan[$i][$j][$idx]->ort.(LVPLAN_ANMERKUNG_ANZEIGEN?$this->crlf.$this->std_plan[$i][$j][$idx]->anmerkung:'').'","Stundenplan",';
echo '"'.$start_date.'","'.$start_time.'","'.$end_date.'","'.$end_time.'",,,,,';
}
}
diff --git a/locale/de-AT/abgabetool.php b/locale/de-AT/abgabetool.php
index 57906695f..aae3ca2de 100644
--- a/locale/de-AT/abgabetool.php
+++ b/locale/de-AT/abgabetool.php
@@ -91,6 +91,10 @@ $this->phrasen['abgabetool/projektbeurteilungDownload']='Projektbeurteilung heru
$this->phrasen['abgabetool/projektbeurteilungErstDownload']='Erst-/Begutachter';
$this->phrasen['abgabetool/projektbeurteilungZweitDownload']='Zweitbegutachter';
$this->phrasen['abgabetool/fehlerErmittelnEndabgabeProjektarbeit']='Fehler beim Ermitteln des Enduplaods der Projektarbeit';
+$this->phrasen['abgabetool/uploadedDocumentNotSignedStudent']='Es konnte keine gültige digitale Signatur erkannt werden. Bitte wenden Sie sich an Ihren Studiengang ob Ihre Endabgabe erfolgreich war und die Arbeit zur Benotung vorgelegt werden kann.';
+$this->phrasen['abgabetool/uploadedDocumentNotSigned']='Signatur fehlt';
+$this->phrasen['abgabetool/uploadedDocumentSigned']='Signatur vorhanden';
+$this->phrasen['abgabetool/uploaddDocumentToBigForSignature']='Datei zu groß für Signaturprüfung';
$this->phrasen['abgabetool/senatsMitglied']='Mitglied Prüfungssenat';
$this->phrasen['abgabetool/abgegeben']='Abgegeben, in Beurteilung';
?>
diff --git a/locale/de-AT/benotungstool.php b/locale/de-AT/benotungstool.php
index 3c8063936..d6e77d3ce 100644
--- a/locale/de-AT/benotungstool.php
+++ b/locale/de-AT/benotungstool.php
@@ -148,8 +148,11 @@ $this->phrasen['benotungstool/anzahlKommisionellePruefungen']='Anzahl kommission
$this->phrasen['benotungstool/pruefungAnlegenFuer']='Prüfung anlegen für';
$this->phrasen['benotungstool/kreuzerltool']='Kreuzerltool';
$this->phrasen['benotungstool/studentIstLvNichtZugeordnet']='Der Student %s %s (%s) ist dieser Lehrveranstaltung nicht zugeordnet. Die Note wird nicht uebernommen!';
-$this->phrasen['benotungstool/studentMitMatrikelnummerExistiertNicht']='Student mit Matrikelnummer %s existiert nicht.';
-$this->phrasen['benotungstool/noteNichtUeberschreibbar']='Für Student mit Matrikelnummer %s eingetragene Zeugnisote %s ist nicht überschreibbar';
+$this->phrasen['benotungstool/studentMitMatrikelnummerExistiertNicht']='Student*in mit Matrikelnummer %s existiert nicht.';
+$this->phrasen['benotungstool/datumsformatUnzulaessig']='Das Datum %s entspricht nicht dem Format TT.MM.JJJJ!';
+$this->phrasen['benotungstool/NachpruefungNichtZulaessig']='Nachprüfung für Student*in %s nicht zulässig.';
+$this->phrasen['benotungstool/noteUnzulaessig']='Die Note %s ist nicht zulaessig. Die Zeile wurde uebersprungen.';
+$this->phrasen['benotungstool/noteNichtUeberschreibbar']='Für Student mit Matrikelnummer %s eingetragene Zeugnisnote %s ist nicht überschreibbar';
$this->phrasen['benotungstool/fehlerhafteNoteBeiStudent']='Fehlerhafte Note bei Student %s %s';
$this->phrasen['benotungstool/keineKreuzerllistenFuerDieseLehrveranstaltung']='Derzeit gibt es keine Kreuzerllisten für diese Lehrveranstaltung';
$this->phrasen['benotungstool/notenuebersichtFuer']='Notenübersicht für';
@@ -170,7 +173,8 @@ $this->phrasen['benotungstool/eingetrageneNoten']='Eingetragene Noten';
$this->phrasen['benotungstool/zeunis']='Zeugnis';
$this->phrasen['benotungstool/handbuch']='Handbuch';
$this->phrasen['benotungstool/punkte']='Punkte';
-$this->phrasen['benotungstool/importAnweisung']='Kopieren Sie die Spalten Personenkennzeichen und Note aus der Notenliste (bzw. StudentenUid und Note aus dem MoodleExport) und fügen Sie diese in folgendes Feld ein';
+$this->phrasen['benotungstool/importAnweisung']='Kopieren Sie die Spalten StudentenUid und Note aus der Notenliste (bzw. StudentenUid und Note aus dem MoodleExport) und fügen Sie diese in folgendes Feld ein';
+$this->phrasen['benotungstool/importAnweisungNachp']='Kopieren Sie die Spalten StudentenUid (bzw. Personenkennzeichen), Datum und Note aus der Notenliste bzw. dem Moodle Export File und fügen Sie diese in folgendes Feld ein';
$this->phrasen['benotungstool/pruefung']='Prüfung';
$this->phrasen['benotungstool/notenlisteImport']='Notenliste für den LV-Noten-Import (Excel)';
$this->phrasen['benotungstool/bearbeitetvon']='Bearbeitet von';
diff --git a/locale/de-AT/fas.dtd b/locale/de-AT/fas.dtd
index df6180904..c3d420ede 100644
--- a/locale/de-AT/fas.dtd
+++ b/locale/de-AT/fas.dtd
@@ -187,6 +187,10 @@
+
+
+
+
diff --git a/locale/en-US/abgabetool.php b/locale/en-US/abgabetool.php
index 84a882e94..c13ebd90d 100644
--- a/locale/en-US/abgabetool.php
+++ b/locale/en-US/abgabetool.php
@@ -91,6 +91,10 @@ $this->phrasen['abgabetool/projektbeurteilungDownload']='Thesis-Assessment downl
$this->phrasen['abgabetool/projektbeurteilungErstDownload']='First-/Assessor';
$this->phrasen['abgabetool/projektbeurteilungZweitDownload']='Second Assessor';
$this->phrasen['abgabetool/fehlerErmittelnEndabgabeProjektarbeit']='Error when getting endupload of project work';
+$this->phrasen['abgabetool/uploadedDocumentNotSignedStudent']='The document does not contain an electronic signature. Please inform your Dregree Programm to verify the upload';
+$this->phrasen['abgabetool/uploadedDocumentNotSigned']='Signature not found';
+$this->phrasen['abgabetool/uploadedDocumentSigned']='Signature found';
+$this->phrasen['abgabetool/uploaddDocumentToBigForSignature']='File to big for Signaturecheck';
$this->phrasen['abgabetool/senatsMitglied']='Examiner';
$this->phrasen['abgabetool/abgegeben']='handed in, in assessment';
?>
diff --git a/locale/en-US/benotungstool.php b/locale/en-US/benotungstool.php
index 17f78d2ba..73a3bd343 100644
--- a/locale/en-US/benotungstool.php
+++ b/locale/en-US/benotungstool.php
@@ -148,6 +148,8 @@ $this->phrasen['benotungstool/pruefungAnlegenFuer']='Create an examination for '
$this->phrasen['benotungstool/kreuzerltool']='"Kreuzerl" tool';
$this->phrasen['benotungstool/studentIstLvNichtZugeordnet']='Student is not assigned to this course. The grade was not accepted!';
$this->phrasen['benotungstool/studentMitMatrikelnummerExistiertNicht']='Student with student ID number %s does not exist.';
+$this->phrasen['benotungstool/NachpruefungNichtZulaessig']='Re-examination for student %s not allowed.';
+$this->phrasen['benotungstool/datumsformatUnzulaessig']='The date %s is not in valid format TT.MM.JJJJ.';
$this->phrasen['benotungstool/noteNichtUeberschreibbar']='Transcript grade %2$s for student with Personal identifier %1$s is not rewritable';
$this->phrasen['benotungstool/fehlerhafteNoteBeiStudent']='Incorrect grade for student %s %s';
$this->phrasen['benotungstool/keineKreuzerllistenFuerDieseLehrveranstaltung']='There are currently no checklists for this course';
@@ -170,6 +172,7 @@ $this->phrasen['benotungstool/zeunis']='Transcript';
$this->phrasen['benotungstool/handbuch']='Handbook';
$this->phrasen['benotungstool/punkte']='Points';
$this->phrasen['benotungstool/importAnweisung']='Copy the columns "personal identifier" and "grade" from the grade list (or "student ID number" and "grade" from the moodle export file) and insert them in the following field';
+$this->phrasen['benotungstool/importAnweisungNachp']='Copy the columns "student ID number" (or "personal identifier"), "date" and "grade" from the grade list or from the moodle export file and insert them in the following field';
$this->phrasen['benotungstool/pruefung']='Examination';
$this->phrasen['benotungstool/notenlisteImport']='Grade list for the subject grade import (Excel)';
$this->phrasen['benotungstool/geaenderteNotenVorhanden']='There are changed grades. Please send the changes to the assistant by clicking "Approval"';
diff --git a/public/css/issues/issuesKonfiguration.css b/public/css/issues/issuesKonfiguration.css
new file mode 100644
index 000000000..4d582e9e1
--- /dev/null
+++ b/public/css/issues/issuesKonfiguration.css
@@ -0,0 +1,7 @@
+#konfigSelect, #fehlercodeSelect {
+ float: left;
+}
+
+#konfigurationstypInfoIcon,#fehlercodeInfoIcon {
+ cursor: pointer;
+}
diff --git a/public/js/components/filter/Filter.js b/public/js/components/filter/Filter.js
index e153042ad..2bf878e5a 100644
--- a/public/js/components/filter/Filter.js
+++ b/public/js/components/filter/Filter.js
@@ -23,6 +23,8 @@ import {CoreFetchCmpt} from '../../components/Fetch.js';
const FILTER_COMPONENT_NEW_FILTER = 'Filter Component New Filter';
const FILTER_COMPONENT_NEW_FILTER_TYPE = 'Filter Component New Filter Type';
+var _uuid = 0;
+
/**
*
*/
@@ -42,10 +44,12 @@ export const CoreFilterCmpt = {
required: true
},
tabulatorOptions: Object,
- tabulatorEvents: Array
+ tabulatorEvents: Array,
+ tableOnly: Boolean
},
data: function() {
return {
+ uuid: 0,
// FilterCmpt properties
filterName: null,
fields: null,
@@ -54,7 +58,6 @@ export const CoreFilterCmpt = {
selectedFields: null,
notSelectedFields: null,
filterFields: null,
- columnsAlias: null,
availableFilters: null,
@@ -64,104 +67,136 @@ export const CoreFilterCmpt = {
fetchCmptApiFunctionParams: null,
fetchCmptDataFetched: null,
- tabulator: null
+ tabulator: null,
+ tableBuilt: false
};
},
- created: function() {
- this.getFilter(); // get the filter data
- },
- updated: function() {
- //
- let dataset = JSON.parse(JSON.stringify(this.dataset));
- let fields = JSON.parse(JSON.stringify(this.fields));
- let selectedFields = JSON.parse(JSON.stringify(this.selectedFields));
+ computed: {
+ filteredData() {
+ if (!this.dataset)
+ return [];
+ return JSON.parse(JSON.stringify(this.dataset));
+ },
+ filteredColumns() {
+ let fields = JSON.parse(JSON.stringify(this.fields)) || [];
+ let selectedFields = JSON.parse(JSON.stringify(this.selectedFields)) || [];
- //
- let columns = null;
+ let columns = null;
- // If the tabulator options has been provided and it contains the property columns
- if (this.tabulatorOptions != null && this.tabulatorOptions.hasOwnProperty('columns'))
- {
- columns = this.tabulatorOptions.columns;
- }
+ // If the tabulator options has been provided and it contains the property columns
+ if (this.tabulatorOptions && this.tabulatorOptions.hasOwnProperty('columns'))
+ columns = this.tabulatorOptions.columns;
- // If columns is not an array or it is an array with less elements then the array fields
- if (!Array.isArray(columns) || (Array.isArray(columns) && columns.length < fields.length))
- {
- columns = []; // set it as an empty array
-
- // Loop throught all the retrieved columns from database
- for (let i = 0; i < fields.length; i++)
+ // If columns is not an array or it is an array with less elements then the array fields
+ if (!Array.isArray(columns) || (Array.isArray(columns) && columns.length < fields.length))
{
- // Create a new column having the title equal to the field name
- let column = {
- title: fields[i],
- field: fields[i]
- };
+ columns = []; // set it as an empty array
- // If the column has to be displayed or not
- selectedFields.indexOf(fields[i]) >= 0 ? column.visible = true : column.visible = false;
-
- // Add the new column to the list of columns
- columns.push(column);
- }
- }
- else // the property columns has been provided in the tabulator options
- {
- // Loop throught the property columns of the tabulator options
- for (let i = 0; i < columns.length; i++)
- {
- // If the column has to be displayed or not
- selectedFields.indexOf(columns[i].field) >= 0 ? columns[i].visible = true : columns[i].visible = false;
-
- if (columns[i].hasOwnProperty('resizable'))
+ // Loop throught all the retrieved columns from database
+ for (let field of fields)
{
- columns[i].visible ? columns[i].resizable = true : columns[i].resizable = false;
- }
+ // Create a new column having the title equal to the field name
+ let column = {
+ title: field,
+ field: field
+ };
+
+ // If the column has to be displayed or not
+ column.visible = selectedFields.indexOf(field) >= 0;
+
+ // Add the new column to the list of columns
+ columns.push(column);
+ }
}
- }
-
- this.columnsAlias = columns;
-
- // Define a default tabulator options in case it was not provided
- let tabulatorOptions = {
- height: 500,
- layout: "fitColumns",
- movableColumns: true,
- reactiveData: true,
- columns: columns,
- data: JSON.parse(JSON.stringify(this.dataset))
- };
-
- // If it was provided
- if (this.tabulatorOptions != null)
- {
- // Then copy it...
- tabulatorOptions = this.tabulatorOptions;
- // ...and overwrite the properties data, reactiveData, movableColumns and columns
- tabulatorOptions.data = JSON.parse(JSON.stringify(this.dataset));
- tabulatorOptions.columns = columns;
- tabulatorOptions.reactiveData = true;
- tabulatorOptions.movableColumns = true;
- }
-
- // Start the tabulator with the buid options
- this.tabulator = new Tabulator(
- "#filterTableDataset",
- tabulatorOptions
- );
-
- // If event handlers have been provided
- if (Array.isArray(this.tabulatorEvents) && this.tabulatorEvents.length > 0)
- {
- // Attach all the provided event handlers to the started tabulator
- for (let i = 0; i < this.tabulatorEvents.length; i++)
+ else // the property columns has been provided in the tabulator options
{
- this.tabulator.on(this.tabulatorEvents[i].event, this.tabulatorEvents[i].handler);
+ // Loop throught the property columns of the tabulator options
+ for (let col of columns)
+ {
+ // If the column has to be displayed or not
+ col.visible = selectedFields.indexOf(col.field) >= 0;
+
+ if (col.hasOwnProperty('resizable'))
+ col.resizable = col.visible;
+ }
}
+
+ return columns;
+ },
+ fieldNames() {
+ if (!this.tableBuilt)
+ return {};
+ return this.tabulator.getColumns().reduce((res, col) => {
+ res[col.getField()] = col.getDefinition().title;
+ return res;
+ }, {});
+ },
+ idExtra() {
+ if (!this.uuid)
+ return '';
+ return '-' + this.uuid;
}
},
+ beforeCreate() {
+ if (!this.tableOnly == !this.filterType)
+ alert('You can not have a filter-type in table-only mode!');
+ },
+ created() {
+ this.uuid = _uuid++;
+ if (!this.tableOnly)
+ this.getFilter(); // get the filter data
+ },
+ mounted() {
+ this.initTabulator();
+ },
methods: {
+ initTabulator() {
+ // Define a default tabulator options in case it was not provided
+ let tabulatorOptions = {...{
+ height: 500,
+ layout: "fitColumns",
+ movableColumns: true,
+ reactiveData: true
+ }, ...(this.tabulatorOptions || {})};
+
+ if (!this.tableOnly) {
+ tabulatorOptions.data = this.filteredData;
+ tabulatorOptions.columns = this.filteredColumns;
+ }
+
+ // Start the tabulator with the build options
+ this.tabulator = new Tabulator(
+ this.$refs.table,
+ tabulatorOptions
+ );
+ // If event handlers have been provided
+ if (Array.isArray(this.tabulatorEvents) && this.tabulatorEvents.length > 0)
+ {
+ // Attach all the provided event handlers to the started tabulator
+ for (let evt of this.tabulatorEvents)
+ this.tabulator.on(evt.event, evt.handler);
+ }
+ this.tabulator.on('tableBuilt', () => this.tableBuilt = true);
+ if (this.tableOnly) {
+ this.tabulator.on('tableBuilt', () => {
+ const cols = this.tabulator.getColumns();
+ this.fields = cols.map(col => col.getField());
+ this.selectedFields = cols.filter(col => col.isVisible()).map(col => col.getField());
+ });
+ }
+ },
+ updateTabulator() {
+ if (this.tabulator) {
+ if (this.tableBuilt)
+ this._updateTabulator();
+ else
+ this.tabulator.on('tableBuilt', this._updateTabulator);
+ }
+ },
+ _updateTabulator() {
+ this.tabulator.setData(this.filteredData);
+ this.tabulator.setColumns(this.filteredColumns);
+ },
/**
*
*/
@@ -209,6 +244,7 @@ export const CoreFilterCmpt = {
{
this.setDropDownMenu(data);
}
+ this.updateTabulator();
}
else
{
@@ -335,7 +371,7 @@ export const CoreFilterCmpt = {
this.startFetchCmpt(
CoreFilterAPIs.saveCustomFilter,
{
- customFilterName: document.getElementById('customFilterName').value
+ customFilterName: this.$refscustomFilterName.value
},
this.getFilter
);
@@ -463,22 +499,22 @@ export const CoreFilterCmpt = {
/*
*
*/
- handlerToggleSelectedField: function(event) {
+ handlerToggleSelectedField(field) {
// If it is a selected field
- if (this.selectedFields.indexOf(event.target.innerText) != -1)
+ if (this.selectedFields.indexOf(field) != -1)
{
// then hide it
- this.tabulator.hideColumn(event.target.innerText);
+ this.tabulator.hideColumn(field);
// and remove it from the this.selectedFields property
- this.selectedFields.splice(this.selectedFields.indexOf(event.target.innerText), 1);
+ this.selectedFields.splice(this.selectedFields.indexOf(field), 1);
}
else // otherwise
{
// show it
- this.tabulator.showColumn(event.target.innerText);
+ this.tabulator.showColumn(field);
// and add it to the this.selectedFields property
- this.selectedFields.push(event.target.innerText);
+ this.selectedFields.push(field);
}
},
/**
@@ -527,6 +563,7 @@ export const CoreFilterCmpt = {
template: `
-
+
-
+
@@ -558,9 +595,9 @@ export const CoreFilterCmpt = {
- {{ fieldToDisplay }}
+ {{ fieldNames[fieldToDisplay] || fieldToDisplay }}
@@ -568,7 +605,7 @@ export const CoreFilterCmpt = {
-
+
@@ -591,7 +628,7 @@ export const CoreFilterCmpt = {
+
-
+
@@ -605,7 +642,7 @@ export const CoreFilterCmpt = {
@change="handlerChangeFilterField(filterField.name, $event.target.value)"
>
Feld zum Filter hinzufügen...
-
+
{{ columnAlias.title }}
@@ -704,7 +741,7 @@ export const CoreFilterCmpt = {
@@ -718,7 +755,7 @@ export const CoreFilterCmpt = {
-
+
`
};
diff --git a/public/js/issues/issuesKonfiguration.js b/public/js/issues/issuesKonfiguration.js
new file mode 100644
index 000000000..f2e7aa5c3
--- /dev/null
+++ b/public/js/issues/issuesKonfiguration.js
@@ -0,0 +1,345 @@
+/**
+ * Javascript file for Issues Zuständigkeiten assignment page
+ */
+
+const FEHLERAPP_DROPDOWN_ID = "fehlerappSelect";
+const FEHLERCODE_DROPDOWN_ID = "fehlercodeSelect";
+const FEHLERKONFIGURATIONSTYP_DROPDOWN_ID = "konfigSelect";
+
+var IssuesKonfiguration = {
+
+ fehlerkonfigArr: [], // for saving received fehlerkonfigs
+ fehlercodesArr: [], // for saving received fehlercodes
+
+ getApps: function()
+ {
+ FHC_AjaxClient.ajaxCallGet(
+ 'system/issues/IssuesKonfiguration/getApps',
+ null,
+ {
+ successCallback: function(data, textStatus, jqXHR) {
+ if (FHC_AjaxClient.hasData(data))
+ {
+ // save loaded apps
+ let apps = FHC_AjaxClient.getData(data);
+
+ // fill dropdown with apps
+ IssuesKonfiguration._fillDropdown(
+ FEHLERAPP_DROPDOWN_ID,
+ "app",
+ apps,
+ null,
+ false,
+ "core"
+ );
+
+ // Initiate getting of fehlercodes with apps
+ IssuesKonfiguration.getFehlerKonfigurationByApp($("#"+FEHLERAPP_DROPDOWN_ID).val());
+ }
+ },
+ errorCallback: function(jqXHR, textStatus, errorThrown) {
+ FHC_DialogLib.alertError(textStatus);
+ }
+ }
+ );
+ },
+ getFehlerKonfigurationByApp: function(app)
+ {
+ FHC_AjaxClient.ajaxCallGet(
+ 'system/issues/IssuesKonfiguration/getFehlerKonfigurationByApp',
+ {
+ app: app
+ },
+ {
+ successCallback: function(data, textStatus, jqXHR) {
+ if (FHC_AjaxClient.hasData(data))
+ {
+ let fehlerKonfigurationData = FHC_AjaxClient.getData(data);
+
+ // save konfig and fehler data for displaying info later
+ IssuesKonfiguration.fehlerkonfigArr = fehlerKonfigurationData.konfigurationstypen;
+ IssuesKonfiguration.fehlercodesArr = fehlerKonfigurationData.fehler;
+
+ // display fehlercodes in dropdown
+ let fehlerCodes = [];
+
+ for (let i = 0; i < fehlerKonfigurationData.fehler.length; i++)
+ {
+ let fe = fehlerKonfigurationData.fehler[i];
+
+ fehlerCodes.push(
+ {
+ fehlercode: fe.fehlercode,
+ fullFehlerBezeichnung: fe.fehlercode + (!fe.fehler_kurzbz ? '' : ' - ' + fe.fehler_kurzbz)
+ }
+ );
+ }
+
+ IssuesKonfiguration._fillDropdown(
+ FEHLERCODE_DROPDOWN_ID,
+ "fehlercode",
+ fehlerCodes,
+ "fullFehlerBezeichnung"
+ );
+
+ // display fehlerkonfiguration in dropdown
+ let konfigurationstypen = [];
+
+ for (let i = 0; i < fehlerKonfigurationData.konfigurationstypen.length; i++)
+ {
+ let konf = fehlerKonfigurationData.konfigurationstypen[i];
+
+ konfigurationstypen.push(
+ {
+ konfigurationstyp_kurzbz: konf.konfigurationstyp_kurzbz
+ }
+ );
+ }
+
+ IssuesKonfiguration._fillDropdown(
+ FEHLERKONFIGURATIONSTYP_DROPDOWN_ID,
+ "konfigurationstyp_kurzbz",
+ konfigurationstypen
+ );
+
+ // set delete event on buttons
+ IssuesKonfiguration._setDeleteEvents();
+ }
+ },
+ errorCallback: function(jqXHR, textStatus, errorThrown) {
+ FHC_DialogLib.alertError(textStatus);
+ }
+ }
+ );
+ },
+ saveFehlerKonfiguration: function(konfigurationstyp_kurzbz, fehlercode, konfigurationsWert)
+ {
+ FHC_AjaxClient.ajaxCallPost(
+ 'system/issues/IssuesKonfiguration/saveFehlerKonfiguration',
+ {
+ konfigurationstyp_kurzbz: konfigurationstyp_kurzbz,
+ fehlercode: fehlercode,
+ konfigurationsWert: konfigurationsWert
+ },
+ {
+ successCallback: function(data, textStatus, jqXHR) {
+ if (FHC_AjaxClient.hasData(data))
+ {
+ // show message, reset input fields and reload data after Zuständigkeit added
+ FHC_DialogLib.alertSuccess(FHC_PhrasesLib.t('fehlermonitoring', 'konfigurationGespeichert'))
+ IssuesKonfiguration._reloadKonfigurationOverview();
+ }
+ else
+ {
+ // show error if no data
+ let errorMsg = FHC_PhrasesLib.t('fehlermonitoring', 'konfigurationGespeichertFehler');
+ if (FHC_AjaxClient.isError(data))
+ errorMsg += ": "+FHC_AjaxClient.getError(data);
+ FHC_DialogLib.alertError(errorMsg);
+ }
+ },
+ errorCallback: function(jqXHR, textStatus, errorThrown) {
+ FHC_DialogLib.alertError(textStatus);
+ }
+ }
+ );
+ },
+ deleteKonfigurationsWerte: function(konfigurationstyp_kurzbz, fehlercode, konfigurationsWert)
+ {
+ FHC_AjaxClient.ajaxCallPost(
+ 'system/issues/IssuesKonfiguration/deleteKonfigurationsWerte',
+ {
+ konfigurationstyp_kurzbz: konfigurationstyp_kurzbz,
+ fehlercode: fehlercode,
+ konfigurationsWert: konfigurationsWert
+ },
+ {
+ successCallback: function(data, textStatus, jqXHR) {
+ if (FHC_AjaxClient.hasData(data))
+ {
+ FHC_DialogLib.alertSuccess(FHC_PhrasesLib.t('fehlermonitoring', 'konfigurationGeloescht'))
+ // reload dataset to see change
+ IssuesKonfiguration._reloadKonfigurationOverview();
+ }
+ else
+ {
+ FHC_DialogLib.alertError(FHC_PhrasesLib.t('fehlermonitoring', 'konfigurationGeloeschtFehler'));
+ }
+ },
+ errorCallback: function(jqXHR, textStatus, errorThrown) {
+ FHC_DialogLib.alertError(textStatus);
+ }
+ }
+ );
+ },
+ deleteKonfiguration: function(konfigurationstyp_kurzbz, fehlercode)
+ {
+ FHC_AjaxClient.ajaxCallPost(
+ 'system/issues/IssuesKonfiguration/deleteKonfiguration',
+ {
+ konfigurationstyp_kurzbz: konfigurationstyp_kurzbz,
+ fehlercode: fehlercode
+ },
+ {
+ successCallback: function(data, textStatus, jqXHR) {
+ if (FHC_AjaxClient.hasData(data))
+ {
+ FHC_DialogLib.alertSuccess(FHC_PhrasesLib.t('fehlermonitoring', 'konfigurationGeloescht'))
+ // reload dataset to see change
+ IssuesKonfiguration._reloadKonfigurationOverview();
+ }
+ else
+ {
+ FHC_DialogLib.alertError(FHC_PhrasesLib.t('fehlermonitoring', 'konfigurationGeloeschtFehler'));
+ }
+ },
+ errorCallback: function(jqXHR, textStatus, errorThrown) {
+ FHC_DialogLib.alertError(textStatus);
+ }
+ }
+ );
+ },
+ _reloadKonfigurationOverview: function()
+ {
+ FHC_FilterWidget.reloadDataset();
+ IssuesKonfiguration._setDeleteEvents();
+ },
+ _setDeleteEvents: function()
+ {
+ // set events on delete buttons
+ $(".deleteBtn").click(
+ function()
+ {
+ IssuesKonfiguration.deleteKonfiguration($(this).attr("data-konfigurationstyp-kurzbz"), $(this).attr("data-fehlercode"));
+ }
+ )
+ },
+ _fillDropdown: function(dropdownId, valueName, data, textName, includeNoSelectionOption, defaultValue)
+ {
+ // by default, displayed text in dropdown is the value
+ if (!textName)
+ textName = valueName;
+
+ // clear dropdown
+ $("#"+dropdownId).empty();
+
+ // optionally include default "no selection" value
+ if (includeNoSelectionOption === true)
+ $("#"+dropdownId).append(" -- "+FHC_PhrasesLib.t('fehlermonitoring', 'keineAuswahl')+" -- ");
+
+ // fill dropdown with values
+ for (let i = 0; i < data.length; i++)
+ {
+ let val = data[i];
+
+ // the value selected by default
+ let selected = val[valueName] === defaultValue ? " selected" : "";
+
+ // append option
+ $("#"+dropdownId).append(""+val[textName]+" ");
+ }
+ }
+};
+
+/**
+ * When JQuery is up
+ */
+$(document).ready(function() {
+
+ // initiate cascade of getting data, first apps
+ IssuesKonfiguration.getApps();
+
+ // get new fehlercodes each time app is changed
+ $("#"+FEHLERAPP_DROPDOWN_ID).change(
+ function()
+ {
+ IssuesKonfiguration.getFehlerKonfigurationByApp($(this).val());
+ }
+ );
+
+ // set assign configuration event
+ $("#assignKonfiguration").click(
+ function()
+ {
+ IssuesKonfiguration.saveFehlerKonfiguration(
+ $("#"+FEHLERKONFIGURATIONSTYP_DROPDOWN_ID).val(),
+ $("#"+FEHLERCODE_DROPDOWN_ID).val(),
+ $("#konfigurationsWert").val()
+ );
+ }
+ );
+
+ // set delete configuration event
+ $("#deleteKonfiguration").click(
+ function()
+ {
+ IssuesKonfiguration.deleteKonfigurationsWerte(
+ $("#"+FEHLERKONFIGURATIONSTYP_DROPDOWN_ID).val(),
+ $("#"+FEHLERCODE_DROPDOWN_ID).val(),
+ $("#konfigurationsWert").val()
+ );
+ }
+ );
+
+ // set events for showing info modals
+ $("#fehlercodeInfoIcon").click(
+ function()
+ {
+ let fehlercode = $("#"+FEHLERCODE_DROPDOWN_ID).val();
+ let fehlercodeData = {};
+
+ for (let i = 0; i < IssuesKonfiguration.fehlercodesArr.length; i++)
+ {
+ let fc = IssuesKonfiguration.fehlercodesArr[i];
+ console.log(fc);
+
+ if (fc.fehlercode === fehlercode)
+ {
+ fehlercodeData = fc;
+ break;
+ }
+ }
+
+ if (!fehlercodeData)
+ return;
+
+ $("#fehlerInfoLabel").text(fehlercodeData.fehlercode + " - " + fehlercodeData.fehler_kurzbz);
+ $("#fehlercodeInfo").text(fehlercodeData.fehlercode);
+ $("#fehlerkurzbzInfo").text(fehlercodeData.fehler_kurzbz);
+ $("#fehlertypInfo").text(fehlercodeData.fehlertyp_kurzbz);
+ $("#fehlertextInfo").text(fehlercodeData.fehlertext);
+
+ $("#fehlerInfo").modal("show");
+ }
+ );
+
+ $("#konfigurationstypInfoIcon").click(
+ function()
+ {
+ let konfigurationstyp_kurzbz = $("#"+FEHLERKONFIGURATIONSTYP_DROPDOWN_ID).val();
+ let konfigurationstypData = {};
+
+ for (let i = 0; i < IssuesKonfiguration.fehlerkonfigArr.length; i++)
+ {
+ let konf = IssuesKonfiguration.fehlerkonfigArr[i];
+ console.log(konf);
+
+ if (konf.konfigurationstyp_kurzbz === konfigurationstyp_kurzbz)
+ {
+ konfigurationstypData = konf;
+ break;
+ }
+ }
+
+ if (!konfigurationstypData)
+ return;
+
+ $("#konfigurationstypInfo").text(konfigurationstypData.konfigurationstyp_kurzbz);
+ $("#konfigurationsbeschreibungInfo").text(konfigurationstypData.beschreibung);
+ $("#konfigurationsdatentypInfo").text(konfigurationstypData.konfigurationsdatentyp);
+
+ $("#konfigurationsInfo").modal("show");
+ }
+ );
+
+});
diff --git a/public/js/issues/issuesZustaendigkeiten.js b/public/js/issues/issuesZustaendigkeiten.js
index 605868295..2c56fd2da 100644
--- a/public/js/issues/issuesZustaendigkeiten.js
+++ b/public/js/issues/issuesZustaendigkeiten.js
@@ -289,7 +289,7 @@ var IssuesZustaendigkeiten = {
let val = data[i];
// the value selected by default
- let selected = val === defaultValue ? " selected" : "";
+ let selected = val[valueName] === defaultValue ? " selected" : "";
// append option
$("#"+dropdownId).append(""+val[textName]+" ");
diff --git a/public/js/issues/plausichecks.js b/public/js/issues/plausichecks.js
index f679c9434..cf55cf463 100644
--- a/public/js/issues/plausichecks.js
+++ b/public/js/issues/plausichecks.js
@@ -20,21 +20,22 @@ var Plausichecks = {
if (FHC_AjaxClient.hasData(data))
{
- let issueTexts = FHC_AjaxClient.getData(data);
+ let issueData = FHC_AjaxClient.getData(data);
- for (let fehler_kurzbz in issueTexts)
+ for (let fehler_kurzbz in issueData)
{
- messageStr += "Prüfe " + fehler_kurzbz + "... ";
- let texts = issueTexts[fehler_kurzbz];
+ let issues = issueData[fehler_kurzbz]['data'];
+ messageStr += "Prüfe " + fehler_kurzbz + " ("+issueData[fehler_kurzbz]['fehlercode']+")... ";
- if (texts.length == 0) {
+ if (issues.length == 0) {
messageStr += "Keine Issues für " + fehler_kurzbz + " ";
continue;
}
- for (i = 0; i < texts.length; i++)
+ for (i = 0; i < issues.length; i++)
{
- messageStr += "" + texts[i] + " ";
+ let className = issues[i].type == 'warning' ? 'text-warning' : 'text-danger';
+ messageStr += "" + issues[i].fehlertext + " ";
}
}
}
@@ -46,7 +47,7 @@ var Plausichecks = {
}
}
);
- },
+ }
};
diff --git a/public/js/lehre/anrechnung/requestAnrechnung.js b/public/js/lehre/anrechnung/requestAnrechnung.js
index 5edb4e162..2947aebe9 100644
--- a/public/js/lehre/anrechnung/requestAnrechnung.js
+++ b/public/js/lehre/anrechnung/requestAnrechnung.js
@@ -1,6 +1,9 @@
const ANRECHNUNGSTATUS_APPROVED = 'approved';
const ANRECHNUNGSTATUS_REJECTED = 'rejected';
-const HERKUNFT_DER_KENNTNISSE_MAX_LENGTH = 125;
+const CHAR_LENGTH125 = 125;
+const CHAR_LENGTH150 = 150;
+const CHAR_LENGTH500 = 500;
+const CHAR_LENGTH1000 = 1000;
const COLOR_DANGER = '#f2dede';
@@ -25,7 +28,7 @@ $(function(){
// Alert message inside Begruendungsbox, if maximum ECTS exceeded
requestAnrechnung.alertIfMaxEctsExceededInsideBegruendungsbox();
- // Set chars counter for textarea 'Herkunft der Kenntnisse'
+ // Set chars counter for textareas
requestAnrechnung.setCharsCounter();
// If Sperregrund exists: display Sperre panel, hide Status panel and disable all form elements
@@ -98,6 +101,8 @@ $(function(){
begruendung: this.begruendung.value,
lv_id: this.lv_id.value,
studiensemester: this.studiensemester.value,
+ begruendung_ects: this.begruendung_ects.value,
+ begruendung_lvinhalt: this.begruendung_lvinhalt.value,
bestaetigung: this.bestaetigung.value,
uploadfile: this.uploadfile.files
},
@@ -207,11 +212,22 @@ var requestAnrechnung = {
},
setCharsCounter: function(){
$('#requestAnrechnung-herkunftDerKenntnisse').keyup(function() {
-
- let length = HERKUNFT_DER_KENNTNISSE_MAX_LENGTH - $(this).val().length;
-
+ let length = CHAR_LENGTH125 - $(this).val().length;
$('#requestAnrechnung-herkunftDerKenntnisse-charCounter').text(length);
});
+
+ $('#requestAnrechnung-begruendungEcts').keyup(function() {
+ let length = CHAR_LENGTH150 - $(this).val().length;
+ $('#requestAnrechnung-begruendungEcts-charCounter').text(length);
+ });
+
+ $('#requestAnrechnung-begruendungLvinhalt').keyup(function() {
+ let maxlength = CHAR_LENGTH1000 - $(this).val().length;
+ $('#requestAnrechnung-begruendungLvinhalt-charCounterMax').text(maxlength);
+
+ let minlength = CHAR_LENGTH500 - $(this).val().length;
+ $('#requestAnrechnung-begruendungLvinhalt-charCounterMin').text(minlength);
+ });
},
formatAnrechnungIsApplied: function (antragdatum, dms_id, filename){
$('#requestAnrechnung-antragdatum').text(antragdatum);
diff --git a/rdf/lehrverbandsgruppe.rdf.php b/rdf/lehrverbandsgruppe.rdf.php
index 79ac0c948..19affa245 100644
--- a/rdf/lehrverbandsgruppe.rdf.php
+++ b/rdf/lehrverbandsgruppe.rdf.php
@@ -246,6 +246,24 @@ function draw_orgformsubmenu($stg_kz, $orgform)
+
+ Nicht zum Reihungstest angemeldet
+
+
+ studiensemester_kurzbz.']]>
+ statusbestaetigtrtnichtangemeldet
+
+
+
+
+ Reihungstest angemeldet
+
+
+ studiensemester_kurzbz.']]>
+ statusbestaetigtrtangemeldet
+
+
+
Nicht zum Reihungstest angemeldet
@@ -272,6 +290,24 @@ function draw_orgformsubmenu($stg_kz, $orgform)
bewerber
+
+
+ Nicht zum Reihungstest angemeldet
+
+
+ studiensemester_kurzbz.']]>
+ bewerberrtnichtangemeldet
+
+
+
+
+ Reihungstest angemeldet
+
+
+ studiensemester_kurzbz.']]>
+ bewerberrtangemeldet
+
+
Aufgenommen
@@ -316,13 +352,24 @@ function draw_orgformsubmenu($stg_kz, $orgform)
$orgform_sequence[$stg_kz].= "\t\t\t\tstudiensemester_kurzbz/interessenten/bewerbungnichtabgeschickt\" />\n";
$orgform_sequence[$stg_kz].= "\t\t\t\tstudiensemester_kurzbz/interessenten/bewerbungabgeschickt\" />\n";
$orgform_sequence[$stg_kz].= "\t\t\t\tstudiensemester_kurzbz/interessenten/zgv\" />\n";
- $orgform_sequence[$stg_kz].= "\t\t\t\tstudiensemester_kurzbz/interessenten/statusbestaetigt\" />\n";
+ $orgform_sequence[$stg_kz].= "\t\t\t";
+ $orgform_sequence[$stg_kz].= "\t\t\t\tstudiensemester_kurzbz/interessenten/statusbestaetigt\">\n";
+ $orgform_sequence[$stg_kz].= "\t\t\t\tstudiensemester_kurzbz/interessenten/statusbestaetigt/reihungstestnichtangemeldet\" />\n";
+ $orgform_sequence[$stg_kz].= "\t\t\t\tstudiensemester_kurzbz/interessenten/statusbestaetigt/reihungstestangemeldet\" />\n";
+ $orgform_sequence[$stg_kz].= "\t\t\t\t ";
+ $orgform_sequence[$stg_kz].= "\n\t\t\t \n";
$orgform_sequence[$stg_kz].= "\t\t\t\tstudiensemester_kurzbz/interessenten/reihungstestnichtangemeldet\" />\n";
$orgform_sequence[$stg_kz].= "\t\t\t\tstudiensemester_kurzbz/interessenten/reihungstestangemeldet\" />\n";
$orgform_sequence[$stg_kz].= "\t\t\t\t";
$orgform_sequence[$stg_kz].= "\n\t\t\t \n";
-
- $orgform_sequence[$stg_kz].= "\t\t\tstudiensemester_kurzbz/bewerber\" />\n";
+
+ $orgform_sequence[$stg_kz].= "\t\t\t";
+ $orgform_sequence[$stg_kz].= "\n\t\t\t\tstudiensemester_kurzbz/bewerber\">\n";
+ $orgform_sequence[$stg_kz].= "\t\t\tstudiensemester_kurzbz/bewerber/reihungstestnichtangemeldet\" />\n";
+ $orgform_sequence[$stg_kz].= "\t\t\tstudiensemester_kurzbz/bewerber/reihungstestangemeldet\" />\n";
+ $orgform_sequence[$stg_kz].= "\t\t\t\t ";
+ $orgform_sequence[$stg_kz].= "\n\t\t\t \n";
+
$orgform_sequence[$stg_kz].= "\t\t\tstudiensemester_kurzbz/aufgenommen\" />\n";
$orgform_sequence[$stg_kz].= "\t\t\tstudiensemester_kurzbz/warteliste\" />\n";
$orgform_sequence[$stg_kz].= "\t\t\tstudiensemester_kurzbz/absage\" />\n";
@@ -561,6 +608,22 @@ while ($row=$dbo->db_fetch_object())
+
+
+ ]]>
+ studiengang_kz; ?>]]>
+ studiensemester_kurzbz; ?>]]>
+
+
+
+
+
+ ]]>
+ studiengang_kz; ?>]]>
+ studiensemester_kurzbz; ?>]]>
+
+
+
]]>
@@ -585,6 +648,22 @@ while ($row=$dbo->db_fetch_object())
+
+
+ ]]>
+ studiengang_kz; ?>]]>
+ studiensemester_kurzbz; ?>]]>
+
+
+
+
+
+ ]]>
+ studiengang_kz; ?>]]>
+ studiensemester_kurzbz; ?>]]>
+
+
+
]]>
@@ -783,13 +862,24 @@ draw_orgformpart($stg_kz);
echo "\t\t\t\tstudiensemester_kurzbz/interessenten/bewerbungnichtabgeschickt\" />\n";
echo "\t\t\t\tstudiensemester_kurzbz/interessenten/bewerbungabgeschickt\" />\n";
echo "\t\t\t\tstudiensemester_kurzbz/interessenten/zgv\" />\n";
- echo "\t\t\t\tstudiensemester_kurzbz/interessenten/statusbestaetigt\" />\n";
+ echo "\t\t\t";
+ echo "\t\t\t\tstudiensemester_kurzbz/interessenten/statusbestaetigt\">\n";
+ echo "\t\t\t\tstudiensemester_kurzbz/interessenten/statusbestaetigt/reihungstestnichtangemeldet\" />\n";
+ echo "\t\t\t\tstudiensemester_kurzbz/interessenten/statusbestaetigt/reihungstestangemeldet\" />\n";
+ echo "\t\t\t\t ";
+ echo "\n\t\t\t \n";
echo "\t\t\t\tstudiensemester_kurzbz/interessenten/reihungstestnichtangemeldet\" />\n";
echo "\t\t\t\tstudiensemester_kurzbz/interessenten/reihungstestangemeldet\" />\n";
echo "\t\t\t\t";
echo "\n\t\t\t \n";
+
+ echo "\t\t\t";
+ echo "\t\t\t\tstudiensemester_kurzbz/bewerber\">\n";
+ echo "\t\t\t\tstudiensemester_kurzbz/bewerber/reihungstestnichtangemeldet\" />\n";
+ echo "\t\t\t\tstudiensemester_kurzbz/bewerber/reihungstestangemeldet\" />\n";
+ echo "\t\t\t\t ";
+ echo "\n\t\t\t \n";
- echo "\t\t\t\tstudiensemester_kurzbz/bewerber\" />\n";
echo "\t\t\t\tstudiensemester_kurzbz/aufgenommen\" />\n";
echo "\t\t\t\tstudiensemester_kurzbz/warteliste\" />\n";
echo "\t\t\t\tstudiensemester_kurzbz/absage\" />\n";
diff --git a/rdf/ort.rdf.php b/rdf/ort.rdf.php
index e9f575428..f4512851a 100644
--- a/rdf/ort.rdf.php
+++ b/rdf/ort.rdf.php
@@ -38,7 +38,7 @@ require_once('../include/basis_db.class.php');
// Orte holen
$sql_query="SELECT * FROM (public.tbl_ort JOIN public.tbl_ortraumtyp USING (ort_kurzbz)) JOIN public.tbl_raumtyp USING (raumtyp_kurzbz)
- WHERE aktiv AND raumtyp_kurzbz!='LM' ORDER BY raumtyp_kurzbz, hierarchie,ort_kurzbz";
+ WHERE tbl_ort.aktiv AND tbl_raumtyp.aktiv AND raumtyp_kurzbz!='LM' ORDER BY raumtyp_kurzbz, hierarchie,ort_kurzbz";
$db = new basis_db();
if(!$result = $db->db_query($sql_query))
$error_msg.=$db->db_last_error();
@@ -67,7 +67,9 @@ for ($i=0;$i<$num_rows;$i++)
$nextTYP=(($i<$num_rows-1)?$ortNEXT->raumtyp_kurzbz:null);
//echo "current:$currentTYP last:$lastTYP next:$nextTYP";
$raumtypen='';
- $qry = "SELECT raumtyp_kurzbz FROM public.tbl_ortraumtyp WHERE ort_kurzbz='$ort->ort_kurzbz'";
+ $qry = "SELECT tbl_ortraumtyp.raumtyp_kurzbz FROM public.tbl_ortraumtyp
+ JOIN tbl_raumtyp USING(raumtyp_kurzbz)
+ WHERE tbl_raumtyp.aktiv AND ort_kurzbz='$ort->ort_kurzbz'";
if($result_rt = $db->db_query($qry))
{
while($row_rt = $db->db_fetch_object($result_rt))
diff --git a/rdf/raumtyp.rdf.php b/rdf/raumtyp.rdf.php
index 06b429380..1f7289747 100644
--- a/rdf/raumtyp.rdf.php
+++ b/rdf/raumtyp.rdf.php
@@ -56,13 +56,14 @@ foreach ($raumtypDAO->result as $rt)
{
?>
-
- raumtyp_kurzbz ?>
- beschreibung ?>
-
+
+ raumtyp_kurzbz ?>
+ beschreibung ?>
+ aktiv ? "true" : "false") ?>
+
-
\ No newline at end of file
+
diff --git a/rdf/student.rdf.php b/rdf/student.rdf.php
index af0bbe82d..1625f161c 100644
--- a/rdf/student.rdf.php
+++ b/rdf/student.rdf.php
@@ -737,7 +737,7 @@ if($xmlformat=='rdf')
}
elseif(in_array($typ, array('prestudent', 'interessenten', 'bewerber', 'aufgenommen',
'warteliste', 'absage', 'zgv', 'reihungstestangemeldet', 'reihungstestnichtangemeldet', 'absolvent',
- 'diplomand', 'bewerbungnichtabgeschickt', 'bewerbungabgeschickt', 'statusbestaetigt')))
+ 'diplomand', 'bewerbungnichtabgeschickt', 'bewerbungabgeschickt', 'statusbestaetigt', 'statusbestaetigtrtnichtangemeldet', 'statusbestaetigtrtangemeldet', 'bewerberrtangemeldet', 'bewerberrtnichtangemeldet')))
{
$prestd = new prestudent();
@@ -939,6 +939,8 @@ if($xmlformat=='rdf')
UPPER(nachname || ' ' || vorname) ~* UPPER(".$db->db_add_param($searchItems_string).") OR
UPPER(nachname || ' ' || wahlname) ~* UPPER(".$db->db_add_param($searchItems_string).") OR
UPPER(wahlname || ' ' || nachname) ~* UPPER(".$db->db_add_param($searchItems_string).") OR
+ UPPER(vorname) ~* UPPER(".$db->db_add_param($searchItems_string).") OR
+ UPPER(nachname) ~* UPPER(".$db->db_add_param($searchItems_string).") OR
student_uid ~* LOWER(".$db->db_add_param($searchItems_string).")";
}
else
@@ -1195,6 +1197,20 @@ else
else
$studienjahr = intval($semester/2)+1;
+ $abbrecher = ($prestudent->status_kurzbz === 'Abbrecher' ? 'true' : 'false');
+
+ $abbrecher_ende = '';
+ $studiensemester_abbrecher_kurzbz='';
+ $qry = "SELECT * FROM public.tbl_prestudentstatus
+ WHERE prestudent_id='$student->prestudent_id' AND status_kurzbz = 'Abbrecher' ORDER BY datum LIMIT 1";
+ if($db->db_query($qry))
+ {
+ if($row = $db->db_fetch_object())
+ {
+ $abbrecher_ende = $row->datum;
+ $studiensemester_abbrecher_kurzbz = $row->studiensemester_kurzbz;
+ }
+ }
echo '
uid.']]>
@@ -1218,6 +1234,7 @@ else
bezeichnung.']]>
bezeichnung.']]>
+ english.']]>
typ.']]>
orgform_kurzbz.']]>
@@ -1241,6 +1258,9 @@ else
studienjahr_kurzbz.']]>
bezeichnung.']]>
convertISODate($stsem->start).']]>
+
+ convertISODate($abbrecher_ende).']]>
+
max_semester.']]>
anmerkung.']]>
diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php
index 708b18690..55f8a9d29 100644
--- a/system/dbupdate_3.3.php
+++ b/system/dbupdate_3.3.php
@@ -7148,7 +7148,7 @@ $tabellen=array(
"public.tbl_preoutgoing_status" => array("preoutgoing_status_kurzbz","bezeichnung"),
"public.tbl_prestudent" => array("prestudent_id","aufmerksamdurch_kurzbz","person_id","studiengang_kz","berufstaetigkeit_code","ausbildungcode","zgv_code","zgvort","zgvdatum","zgvmas_code","zgvmaort","zgvmadatum","aufnahmeschluessel","facheinschlberuf","reihungstest_id","anmeldungreihungstest","reihungstestangetreten","rt_gesamtpunkte","rt_punkte1","rt_punkte2","bismelden","anmerkung","dual","insertamum","insertvon","updateamum","updatevon","ext_id","ausstellungsstaat","rt_punkte3", "zgvdoktor_code", "zgvdoktorort", "zgvdoktordatum","mentor","zgvnation","zgvmanation","zgvdoktornation","gsstudientyp_kurzbz","aufnahmegruppe_kurzbz","udf_values","priorisierung","foerderrelevant","standort_code","zgv_erfuellt","zgvmas_erfuellt","zgvdoktor_erfuellt"),
"public.tbl_prestudentstatus" => array("prestudent_id","status_kurzbz","studiensemester_kurzbz","ausbildungssemester","datum","orgform_kurzbz","insertamum","insertvon","updateamum","updatevon","ext_id","studienplan_id","bestaetigtam","bestaetigtvon","fgm","faktiv", "anmerkung","bewerbung_abgeschicktamum","rt_stufe","statusgrund_id"),
- "public.tbl_raumtyp" => array("raumtyp_kurzbz","beschreibung","kosten"),
+ "public.tbl_raumtyp" => array("raumtyp_kurzbz","beschreibung","kosten", "aktiv"),
"public.tbl_reihungstest" => array("reihungstest_id","studiengang_kz","ort_kurzbz","anmerkung","datum","uhrzeit","updateamum","updatevon","insertamum","insertvon","ext_id","freigeschaltet","max_teilnehmer","oeffentlich","studiensemester_kurzbz","aufnahmegruppe_kurzbz","stufe","anmeldefrist"),
"public.tbl_rt_ort" => array("rt_id","ort_kurzbz","uid"),
"public.tbl_rt_person" => array("rt_person_id","person_id","rt_id","studienplan_id","anmeldedatum","teilgenommen","ort_kurzbz","punkte","insertamum","insertvon","updateamum","updatevon"),
diff --git a/system/dbupdate_3.4.php b/system/dbupdate_3.4.php
index 6f29ae9a2..379e90b0d 100644
--- a/system/dbupdate_3.4.php
+++ b/system/dbupdate_3.4.php
@@ -27,6 +27,7 @@ require_once('dbupdate_3.4/example.php');
require_once('dbupdate_3.4/example2.php');
...
*/
+require_once('dbupdate_3.4/25003_notenimport_nachpruefung.php');
require_once('dbupdate_3.4/feature_17513_EWteam.php');
require_once('dbupdate_3.4/26173_index_webservicelog.php');
@@ -34,7 +35,15 @@ require_once('dbupdate_3.4/24682_reihungstest_zugangscode_fuer_login.php');
require_once('dbupdate_3.4/17512_fehlercode_constraints.php');
require_once('dbupdate_3.4/27388_anrechnungen_zeitfenster_pflegen.php');
require_once('dbupdate_3.4/19154_beurteilungsformulare_pruefungssenat.php');
+require_once('dbupdate_3.4/10001_tempus_mitarbeiter_kurzbz_bei_reservierungen_anzeigen.php');
require_once('dbupdate_3.4/27949_infocenter_zurueckstellen_mit_grund.php');
+require_once('dbupdate_3.4/27107_vilesci_erfassung_abwesenheiten_reinigung.php');
+require_once('dbupdate_3.4/24913_tabelle_raumtyp_neues_attribut_aktiv.php');
+require_once('dbupdate_3.4/28089_plausichecks_in_extension_hinzufuegen.php');
+require_once('dbupdate_3.4/29133_einzelne_studiengaenge_aus_issuechecks_ausnehmen.php');
+require_once('dbupdate_3.4/30537_anmerkung_in_tbl_rolleberechtigung.php');
+require_once('dbupdate_3.4/30181_tabelle_anrechnung_neue_attribute_fuer_begruendung.php');
+require_once('dbupdate_3.4/29529_infocenter_anpassungen.php');
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo 'Pruefe Tabellen und Attribute! ';
@@ -145,7 +154,7 @@ $tabellen=array(
"lehre.tbl_abschlusspruefung" => array("abschlusspruefung_id","student_uid","vorsitz","pruefer1","pruefer2","pruefer3","abschlussbeurteilung_kurzbz","akadgrad_id","pruefungstyp_kurzbz","datum","uhrzeit","sponsion","anmerkung","updateamum","updatevon","insertamum","insertvon","ext_id","note","protokoll","endezeit","pruefungsantritt_kurzbz","freigabedatum"),
"lehre.tbl_abschlusspruefung_antritt" => array("pruefungsantritt_kurzbz","bezeichnung","bezeichnung_english","sort"),
"lehre.tbl_akadgrad" => array("akadgrad_id","akadgrad_kurzbz","studiengang_kz","titel","geschlecht"),
- "lehre.tbl_anrechnung" => array("anrechnung_id","prestudent_id","lehrveranstaltung_id","begruendung_id","lehrveranstaltung_id_kompatibel","genehmigt_von","insertamum","insertvon","updateamum","updatevon","ext_id", "dms_id", "studiensemester_kurzbz", "anmerkung_student", "empfehlung_anrechnung"),
+ "lehre.tbl_anrechnung" => array("anrechnung_id","prestudent_id","lehrveranstaltung_id","begruendung_id","lehrveranstaltung_id_kompatibel","genehmigt_von","insertamum","insertvon","updateamum","updatevon","ext_id", "dms_id", "studiensemester_kurzbz", "anmerkung_student", "empfehlung_anrechnung", "begruendung_ects", "begruendung_lvinhalt"),
"lehre.tbl_anrechnungstatus" => array("status_kurzbz", "bezeichnung_mehrsprachig"),
"lehre.tbl_anrechnung_anrechnungstatus" => array("anrechnungstatus_id", "anrechnung_id", "status_kurzbz", "datum", "insertamum", "insertvon"),
"lehre.tbl_anrechnung_begruendung" => array("begruendung_id","bezeichnung"),
@@ -306,6 +315,9 @@ $tabellen=array(
"system.tbl_extensions" => array("extension_id","name","version","description","license","url","core_version","dependencies","enabled"),
"system.tbl_fehler" => array("fehlercode","fehler_kurzbz","fehlercode_extern","fehlertext","fehlertyp_kurzbz","app"),
"system.tbl_fehlertyp" => array("fehlertyp_kurzbz","bezeichnung_mehrsprachig"),
+ "system.tbl_fehler_konfiguration" => array("konfigurationstyp_kurzbz","fehlercode","konfiguration","insertamum","insertvon","updateamum","updatevon"),
+ "system.tbl_fehler_konfigurationsdatentyp" => array("konfigurationsdatentyp"),
+ "system.tbl_fehler_konfigurationstyp" => array("konfigurationstyp_kurzbz","beschreibung","konfigurationsdatentyp","app"),
"system.tbl_fehler_zustaendigkeiten" => array("fehlerzustaendigkeiten_id","fehlercode","person_id","oe_kurzbz","funktion_kurzbz", "insertamum", "insertvon"),
"system.tbl_issue" => array("issue_id","fehlercode","fehlercode_extern","inhalt","inhalt_extern","person_id","oe_kurzbz","datum","verarbeitetvon","verarbeitetamum","status_kurzbz","behebung_parameter","insertvon","insertamum","updatevon","updateamum"),
"system.tbl_issue_status" => array("status_kurzbz","bezeichnung_mehrsprachig"),
@@ -319,7 +331,7 @@ $tabellen=array(
"system.tbl_phrase" => array("phrase_id","app","phrase","insertamum","insertvon","category"),
"system.tbl_phrasentext" => array("phrasentext_id","phrase_id","sprache","orgeinheit_kurzbz","orgform_kurzbz","text","description","insertamum","insertvon"),
"system.tbl_rolle" => array("rolle_kurzbz","beschreibung"),
- "system.tbl_rolleberechtigung" => array("berechtigung_kurzbz","rolle_kurzbz","art"),
+ "system.tbl_rolleberechtigung" => array("berechtigung_kurzbz","rolle_kurzbz","art","anmerkung","insertamum","insertvon"),
"system.tbl_verarbeitungstaetigkeit" => array("taetigkeit_kurzbz", "bezeichnung", "bezeichnung_mehrsprachig","aktiv"),
"system.tbl_webservicelog" => array("webservicelog_id","webservicetyp_kurzbz","request_id","beschreibung","request_data","execute_time","execute_user"),
"system.tbl_webservicerecht" => array("webservicerecht_id","berechtigung_kurzbz","methode","attribut","insertamum","insertvon","updateamum","updatevon","klasse"),
diff --git a/system/dbupdate_3.4/10001_tempus_mitarbeiter_kurzbz_bei_reservierungen_anzeigen.php b/system/dbupdate_3.4/10001_tempus_mitarbeiter_kurzbz_bei_reservierungen_anzeigen.php
new file mode 100644
index 000000000..fed80b786
--- /dev/null
+++ b/system/dbupdate_3.4/10001_tempus_mitarbeiter_kurzbz_bei_reservierungen_anzeigen.php
@@ -0,0 +1,130 @@
+db_query("SELECT mitarbeiter_kurzbz FROM lehre.vw_stundenplandev LIMIT 1"))
+{
+ $qry = "
+ CREATE OR REPLACE VIEW lehre.vw_stundenplandev
+ (stundenplandev_id, unr, uid, lehreinheit_id, lehrfach_id, datum, stunde, ort_kurzbz, studiengang_kz,
+ semester, verband, gruppe, gruppe_kurzbz, titel, anmerkung, fix, lehrveranstaltung_id, stg_kurzbz,
+ stg_kurzbzlang, stg_bezeichnung, stg_typ, fachbereich_kurzbz, lehrfach, lehrfach_bez, farbe, lehrform,
+ lektor, updateamum, updatevon, insertamum, insertvon, anmerkung_lehreinheit, mitarbeiter_kurzbz)
+ AS
+ SELECT tbl_stundenplandev.stundenplandev_id,
+ tbl_stundenplandev.unr,
+ tbl_stundenplandev.mitarbeiter_uid AS uid,
+ tbl_stundenplandev.lehreinheit_id,
+ tbl_lehreinheit.lehrfach_id,
+ tbl_stundenplandev.datum,
+ tbl_stundenplandev.stunde,
+ tbl_stundenplandev.ort_kurzbz,
+ tbl_stundenplandev.studiengang_kz,
+ tbl_stundenplandev.semester,
+ tbl_stundenplandev.verband,
+ tbl_stundenplandev.gruppe,
+ tbl_stundenplandev.gruppe_kurzbz,
+ tbl_stundenplandev.titel,
+ tbl_stundenplandev.anmerkung,
+ tbl_stundenplandev.fix,
+ tbl_lehreinheit.lehrveranstaltung_id,
+ tbl_studiengang.kurzbz AS stg_kurzbz,
+ tbl_studiengang.kurzbzlang AS stg_kurzbzlang,
+ tbl_studiengang.bezeichnung AS stg_bezeichnung,
+ tbl_studiengang.typ AS stg_typ,
+ (SELECT tbl_fachbereich.fachbereich_kurzbz
+ FROM tbl_fachbereich
+ WHERE tbl_fachbereich.oe_kurzbz::text = lehrfach.oe_kurzbz::text) AS fachbereich_kurzbz,
+ lehrfach.kurzbz AS lehrfach,
+ lehrfach.bezeichnung AS lehrfach_bez,
+ lehrfach.farbe,
+ tbl_lehreinheit.lehrform_kurzbz AS lehrform,
+ tbl_mitarbeiter.kurzbz AS lektor,
+ tbl_stundenplandev.updateamum,
+ tbl_stundenplandev.updatevon,
+ tbl_stundenplandev.insertamum,
+ tbl_stundenplandev.insertvon,
+ tbl_lehreinheit.anmerkung AS anmerkung_lehreinheit,
+ tbl_mitarbeiter.kurzbz AS mitarbeiter_kurzbz
+ FROM lehre.tbl_stundenplandev
+ JOIN tbl_studiengang USING (studiengang_kz)
+ JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
+ JOIN lehre.tbl_lehrveranstaltung lehrfach ON tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id
+ JOIN tbl_mitarbeiter USING (mitarbeiter_uid)
+ JOIN tbl_benutzer ON mitarbeiter_uid = uid
+ JOIN tbl_person USING(person_id);
+ ";
+
+ if (!$db->db_query($qry))
+ echo 'lehre.vw_stundenplandev: ' . $db->db_last_error() . ' ';
+ else
+ echo 'lehre.vw_stundenplandev: Neue Spalte mitarbeiter_kurzbz hinzugefuegt ';
+}
+
+// lehre.vw_stundenplan erweitern
+if (!$result = @$db->db_query("SELECT mitarbeiter_kurzbz FROM lehre.vw_stundenplan LIMIT 1"))
+{
+ $qry = "CREATE OR REPLACE VIEW lehre.vw_stundenplan AS
+ SELECT
+ tbl_stundenplan.stundenplan_id, tbl_stundenplan.unr, tbl_stundenplan.mitarbeiter_uid AS uid,
+ tbl_stundenplan.lehreinheit_id, tbl_lehreinheit.lehrfach_id AS lehrfach_id, tbl_stundenplan.datum,
+ tbl_stundenplan.stunde, tbl_stundenplan.ort_kurzbz, tbl_stundenplan.studiengang_kz,
+ tbl_stundenplan.semester, tbl_stundenplan.verband, tbl_stundenplan.gruppe, tbl_stundenplan.gruppe_kurzbz,
+ tbl_stundenplan.titel, tbl_stundenplan.anmerkung, tbl_stundenplan.fix, tbl_lehreinheit.lehrveranstaltung_id,
+ tbl_studiengang.kurzbz AS stg_kurzbz, tbl_studiengang.kurzbzlang AS stg_kurzbzlang,
+ tbl_studiengang.bezeichnung AS stg_bezeichnung, tbl_studiengang.typ AS stg_typ,
+ (SELECT fachbereich_kurzbz FROM public.tbl_fachbereich WHERE oe_kurzbz=lehrfach.oe_kurzbz) as fachbereich_kurzbz,
+ lehrfach.kurzbz AS lehrfach, lehrfach.bezeichnung AS lehrfach_bez, lehrfach.farbe,
+ tbl_lehreinheit.lehrform_kurzbz AS lehrform, tbl_mitarbeiter.kurzbz AS lektor,
+ tbl_stundenplan.updateamum, tbl_stundenplan.updatevon, tbl_stundenplan.insertamum,
+ tbl_stundenplan.insertvon, tbl_lehreinheit.anmerkung AS anmerkung_lehreinheit,
+ tbl_mitarbeiter.kurzbz as mitarbeiter_kurzbz
+ FROM lehre.tbl_stundenplan
+ JOIN public.tbl_studiengang USING (studiengang_kz)
+ JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
+ JOIN lehre.tbl_lehrveranstaltung as lehrfach ON (tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id)
+ JOIN public.tbl_mitarbeiter USING (mitarbeiter_uid)
+ JOIN tbl_benutzer ON mitarbeiter_uid = uid
+ JOIN tbl_person USING(person_id);";
+
+ if (!$db->db_query($qry))
+ echo 'lehre.vw_stundenplan: ' . $db->db_last_error() . ' ';
+ else
+ echo 'lehre.vw_stundenplan: Neue Spalte mitarbeiter_kurzbz hinzugefuegt ';
+}
+
+// campus.vw_reservierung erweitern
+if (!$result = @$db->db_query("SELECT mitarbeiter_kurzbz FROM campus.vw_reservierung LIMIT 1"))
+{
+ $qry = "CREATE OR REPLACE view campus.vw_reservierung
+ (reservierung_id, ort_kurzbz, studiengang_kz, uid, stunde, datum, titel, beschreibung, semester, verband,
+ gruppe, gruppe_kurzbz, stg_kurzbz, insertamum, insertvon, mitarbeiter_kurzbz)
+ AS
+ SELECT tbl_reservierung.reservierung_id,
+ tbl_reservierung.ort_kurzbz,
+ tbl_reservierung.studiengang_kz,
+ tbl_reservierung.uid,
+ tbl_reservierung.stunde,
+ tbl_reservierung.datum,
+ tbl_reservierung.titel,
+ tbl_reservierung.beschreibung,
+ tbl_reservierung.semester,
+ tbl_reservierung.verband,
+ tbl_reservierung.gruppe,
+ tbl_reservierung.gruppe_kurzbz,
+ tbl_studiengang.kurzbz AS stg_kurzbz,
+ tbl_reservierung.insertamum,
+ tbl_reservierung.insertvon,
+ tbl_mitarbeiter.kurzbz as mitarbeiter_kurzbz
+ FROM campus.tbl_reservierung
+ JOIN tbl_studiengang USING (studiengang_kz)
+ LEFT JOIN tbl_benutzer ON tbl_reservierung.uid = tbl_benutzer.uid
+ LEFT JOIN tbl_mitarbeiter ON tbl_benutzer.uid = tbl_mitarbeiter.mitarbeiter_uid
+ LEFT JOIN tbl_person USING (person_id);";
+
+ if (!$db->db_query($qry))
+ echo 'campus.vw_reservierung: ' . $db->db_last_error() . ' ';
+ else
+ echo 'campus.vw_reservierung: Neue Spalte mitarbeiter_kurzbz hinzugefuegt ';
+}
+
diff --git a/system/dbupdate_3.4/24913_tabelle_raumtyp_neues_attribut_aktiv.php b/system/dbupdate_3.4/24913_tabelle_raumtyp_neues_attribut_aktiv.php
new file mode 100644
index 000000000..98381776c
--- /dev/null
+++ b/system/dbupdate_3.4/24913_tabelle_raumtyp_neues_attribut_aktiv.php
@@ -0,0 +1,15 @@
+db_query("SELECT aktiv FROM public.tbl_raumtyp LIMIT 1"))
+{
+ $qry = "ALTER TABLE public.tbl_raumtyp ADD COLUMN aktiv boolean NOT NULL DEFAULT true;
+ COMMENT ON COLUMN public.tbl_raumtyp.aktiv IS 'Zeigt an, ob Raumtyp aktuell ist.';
+ ";
+
+ if(!$db->db_query($qry))
+ echo 'public.tbl_raumtyp '.$db->db_last_error().' ';
+ else
+ echo ' Spalte aktiv zu Tabelle public.tbl_raumtyp hinzugefügt';
+}
\ No newline at end of file
diff --git a/system/dbupdate_3.4/25003_notenimport_nachpruefung.php b/system/dbupdate_3.4/25003_notenimport_nachpruefung.php
new file mode 100644
index 000000000..7c2406d0e
--- /dev/null
+++ b/system/dbupdate_3.4/25003_notenimport_nachpruefung.php
@@ -0,0 +1,15 @@
+db_query("SELECT 1 FROM lehre.tbl_pruefungstyp WHERE pruefungstyp_kurzbz='Termin3'"))
+{
+ if($db->db_num_rows($result)==0)
+ {
+ $qry = "INSERT INTO lehre.tbl_pruefungstyp(pruefungstyp_kurzbz, beschreibung, abschluss) VALUES('Termin3', '3.Termin', false);";
+
+ if(!$db->db_query($qry))
+ echo 'Prüfungstyp: '.$db->db_last_error().' ';
+ else
+ echo ' Prüfungstyp 3.Termin in lehre.tbl_pruefungstyp hinzugefügt';
+ }
+}
diff --git a/system/dbupdate_3.4/27107_vilesci_erfassung_abwesenheiten_reinigung.php b/system/dbupdate_3.4/27107_vilesci_erfassung_abwesenheiten_reinigung.php
new file mode 100644
index 000000000..a0d71b753
--- /dev/null
+++ b/system/dbupdate_3.4/27107_vilesci_erfassung_abwesenheiten_reinigung.php
@@ -0,0 +1,16 @@
+db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz='mitarbeiter/zeitsperre:begrenzt'"))
+{
+ if($db->db_num_rows($result)==0)
+ {
+ $qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('mitarbeiter/zeitsperre:begrenzt', 'Vilesci Verwaltung');";
+
+ if(!$db->db_query($qry))
+ echo 'Berechtigung: '.$db->db_last_error().' ';
+ else
+ echo ' Neue Berechtigung mitarbeiter/zeitsperre:begrenzt zu system.tbl_berechtigung hinzugefügt';
+ }
+}
diff --git a/system/dbupdate_3.4/28089_plausichecks_in_extension_hinzufuegen.php b/system/dbupdate_3.4/28089_plausichecks_in_extension_hinzufuegen.php
new file mode 100644
index 000000000..84a85629a
--- /dev/null
+++ b/system/dbupdate_3.4/28089_plausichecks_in_extension_hinzufuegen.php
@@ -0,0 +1,16 @@
+db_query("SELECT 1 FROM system.tbl_fehler WHERE fehlertyp_kurzbz='error' AND fehler_kurzbz IN ('AbschlussstatusFehlt', 'AusbildungssemPrestudentUngleichAusbildungssemStatus', 'BewerberNichtZumRtAngetreten', 'GbDatumWeitZurueck', 'InaktiverStudentAktiverStatus')"))
+{
+ if($db->db_num_rows($result)>0)
+ {
+ $qry = "UPDATE system.tbl_fehler SET fehlertyp_kurzbz='warning' WHERE fehler_kurzbz IN ('AbschlussstatusFehlt', 'AusbildungssemPrestudentUngleichAusbildungssemStatus', 'BewerberNichtZumRtAngetreten', 'GbDatumWeitZurueck', 'InaktiverStudentAktiverStatus') AND fehlertyp_kurzbz = 'error';";
+
+ if(!$db->db_query($qry))
+ echo 'System Tabelle Fehler: '.$db->db_last_error().' ';
+ else
+ echo ' Bestimmte Fehler mit Typ error zu warnings umgewandelt';
+ }
+}
diff --git a/system/dbupdate_3.4/29133_einzelne_studiengaenge_aus_issuechecks_ausnehmen.php b/system/dbupdate_3.4/29133_einzelne_studiengaenge_aus_issuechecks_ausnehmen.php
new file mode 100644
index 000000000..7102806e3
--- /dev/null
+++ b/system/dbupdate_3.4/29133_einzelne_studiengaenge_aus_issuechecks_ausnehmen.php
@@ -0,0 +1,108 @@
+db_query("SELECT 1 FROM system.tbl_app WHERE app='personalverwaltung' LIMIT 1"))
+{
+ if ($db->db_num_rows($result) == 0)
+ {
+ $qry = "INSERT INTO system.tbl_app(app) VALUES('personalverwaltung');";
+
+ if(!$db->db_query($qry))
+ echo 'system.tbl_app: '.$db->db_last_error().' ';
+ else
+ echo ' system.tbl_app: Personalverwaltung hinzugefügt ';
+ }
+}
+
+if (!$result = @$db->db_query('SELECT 1 FROM system.tbl_fehler_konfigurationsdatentyp LIMIT 1'))
+{
+ $qry = 'CREATE TABLE system.tbl_fehler_konfigurationsdatentyp
+ (
+ konfigurationsdatentyp varchar(32)
+ );
+
+ COMMENT ON TABLE system.tbl_fehler_konfigurationsdatentyp IS \'Konfigurationsparameter Datentypen\';
+ COMMENT ON COLUMN system.tbl_fehler_konfigurationsdatentyp.konfigurationsdatentyp IS \'Datentyp der Konfigurationsparameter, z.B. integer oder string\';
+
+ ALTER TABLE system.tbl_fehler_konfigurationsdatentyp ADD CONSTRAINT pk_fehler_konfigurationsdatentyp PRIMARY KEY (konfigurationsdatentyp);
+
+ GRANT SELECT ON system.tbl_fehler_konfigurationsdatentyp TO web;
+ GRANT SELECT, UPDATE, INSERT, DELETE ON system.tbl_fehler_konfigurationsdatentyp TO vilesci;
+
+ -- prefill values
+ INSERT INTO system.tbl_fehler_konfigurationsdatentyp(konfigurationsdatentyp) VALUES(\'integer\');
+ INSERT INTO system.tbl_fehler_konfigurationsdatentyp(konfigurationsdatentyp) VALUES(\'float\');
+ INSERT INTO system.tbl_fehler_konfigurationsdatentyp(konfigurationsdatentyp) VALUES(\'string\');
+ ';
+
+ if(!$db->db_query($qry))
+ echo 'system.tbl_fehler_konfigurationsdatentyp: '.$db->db_last_error().' ';
+ else
+ echo ' system.tbl_fehler_konfigurationsdatentyp: Tabelle hinzugefuegt ';
+}
+
+if (!$result = @$db->db_query('SELECT 1 FROM system.tbl_fehler_konfigurationstyp LIMIT 1'))
+{
+ $qry = 'CREATE TABLE system.tbl_fehler_konfigurationstyp
+ (
+ konfigurationstyp_kurzbz varchar(64),
+ beschreibung text,
+ konfigurationsdatentyp varchar(32),
+ app varchar(32) NOT NULL
+ );
+
+ COMMENT ON TABLE system.tbl_fehler_konfigurationstyp IS \'Konfigurationsparameter Typen\';
+ COMMENT ON COLUMN system.tbl_fehler_konfigurationstyp.konfigurationstyp_kurzbz IS \'Art der Konfiguration\';
+ COMMENT ON COLUMN system.tbl_fehler_konfigurationstyp.beschreibung IS \'Kurze Erklärung, was die Konfiguration bewirkt\';
+ COMMENT ON COLUMN system.tbl_fehler_konfigurationstyp.app IS \'App, für welche die Konfiguration gilt\';
+
+ ALTER TABLE system.tbl_fehler_konfigurationstyp ADD CONSTRAINT pk_fehler_konfigurationstyp PRIMARY KEY (konfigurationstyp_kurzbz);
+ ALTER TABLE system.tbl_fehler_konfigurationstyp ADD CONSTRAINT fk_fehler_konfigurationstyp_app FOREIGN KEY (app) REFERENCES system.tbl_app(app) ON UPDATE CASCADE ON DELETE RESTRICT;
+ ALTER TABLE system.tbl_fehler_konfigurationstyp ADD CONSTRAINT fk_fehler_konfigurationstyp_konfigurationsdatentyp FOREIGN KEY (konfigurationsdatentyp) REFERENCES system.tbl_fehler_konfigurationsdatentyp(konfigurationsdatentyp) ON UPDATE CASCADE ON DELETE RESTRICT;
+
+ GRANT SELECT, UPDATE, INSERT, DELETE ON system.tbl_fehler_konfigurationstyp TO web;
+ GRANT SELECT, UPDATE, INSERT, DELETE ON system.tbl_fehler_konfigurationstyp TO vilesci;
+
+ -- prefill values
+ INSERT INTO system.tbl_fehler_konfigurationstyp(konfigurationstyp_kurzbz, beschreibung, konfigurationsdatentyp, app)
+ VALUES(\'exkludierteStudiengaenge\', \'Studiengangskennzahlen von Studiengängen, die nicht bei den Studierendenplausichecks berücksichtigt werden\', \'integer\', \'core\');
+ ';
+
+ if(!$db->db_query($qry))
+ echo 'system.tbl_fehler_konfigurationstyp: '.$db->db_last_error().' ';
+ else
+ echo ' system.tbl_fehler_konfigurationstyp: Tabelle hinzugefuegt ';
+}
+
+if (!$result = @$db->db_query('SELECT 1 FROM system.tbl_fehler_konfiguration LIMIT 1'))
+{
+ $qry = 'CREATE TABLE system.tbl_fehler_konfiguration
+ (
+ konfigurationstyp_kurzbz varchar(64),
+ fehlercode varchar(64),
+ konfiguration jsonb NOT NULL,
+ insertamum timestamp default NOW(),
+ insertvon varchar(32),
+ updateamum timestamp,
+ updatevon varchar(32)
+ );
+
+ COMMENT ON TABLE system.tbl_fehler_konfiguration IS \'Konfigurationsparameter pro Fehler\';
+ COMMENT ON COLUMN system.tbl_fehler_konfiguration.konfigurationstyp_kurzbz IS \'Art der Konfiguration\';
+ COMMENT ON COLUMN system.tbl_fehler_konfiguration.konfiguration IS \'Konfigruationsparameter \';
+
+ ALTER TABLE system.tbl_fehler_konfiguration ADD CONSTRAINT pk_fehler_konfiguration PRIMARY KEY (konfigurationstyp_kurzbz, fehlercode);
+ ALTER TABLE system.tbl_fehler_konfiguration ADD CONSTRAINT fk_fehler_konfiguration_konfigurationstyp_kurzbz FOREIGN KEY (konfigurationstyp_kurzbz) REFERENCES system.tbl_fehler_konfigurationstyp(konfigurationstyp_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
+ ALTER TABLE system.tbl_fehler_konfiguration ADD CONSTRAINT fk_fehler_konfiguration_fehlercode FOREIGN KEY (fehlercode) REFERENCES system.tbl_fehler(fehlercode) ON UPDATE CASCADE ON DELETE RESTRICT;
+
+ GRANT SELECT, UPDATE, INSERT, DELETE ON system.tbl_fehler_konfiguration TO web;
+ GRANT SELECT, UPDATE, INSERT, DELETE ON system.tbl_fehler_konfiguration TO vilesci;
+ ';
+
+ if(!$db->db_query($qry))
+ echo 'system.tbl_fehler_konfiguration: '.$db->db_last_error().' ';
+ else
+ echo ' system.tbl_fehler_konfiguration: Tabelle hinzugefuegt ';
+}
diff --git a/system/dbupdate_3.4/29529_infocenter_anpassungen.php b/system/dbupdate_3.4/29529_infocenter_anpassungen.php
new file mode 100644
index 000000000..e11f3ed39
--- /dev/null
+++ b/system/dbupdate_3.4/29529_infocenter_anpassungen.php
@@ -0,0 +1,34 @@
+db_query("SELECT has_sequence_privilege('web', 'testtool.tbl_pruefling_pruefling_id_seq', 'UPDATE')"))
+{
+
+ if($db->db_fetch_object($result)->has_sequence_privilege === "f")
+ {
+ $qry = "GRANT SELECT, UPDATE ON SEQUENCE testtool.tbl_pruefling_pruefling_id_seq to web;";
+
+ if(!$db->db_query($qry))
+ echo 'testtool.tbl_pruefling Berechtigungen: '.$db->db_last_error().' ';
+ else
+ echo ' Web User fuer testtool.tbl_pruefling berechtigt';
+ }
+}
+
+// Update Berechtigungen fuer vilesci User erteilen fuer tbl_pruefling_pruefling_id_seq
+if($result = @$db->db_query("SELECT has_sequence_privilege('vilesci', 'testtool.tbl_pruefling_pruefling_id_seq', 'UPDATE')"))
+{
+ if($db->db_fetch_object($result)->has_sequence_privilege === "f")
+ {
+ $qry = "GRANT SELECT, UPDATE ON SEQUENCE testtool.tbl_pruefling_pruefling_id_seq to vilesci;";
+
+ if(!$db->db_query($qry))
+ echo 'testtool.tbl_pruefling Berechtigungen: '.$db->db_last_error().' ';
+ else
+ echo ' vilesci User fuer testtool.tbl_pruefling berechtigt';
+ }
+}
+
+
diff --git a/system/dbupdate_3.4/30181_tabelle_anrechnung_neue_attribute_fuer_begruendung.php b/system/dbupdate_3.4/30181_tabelle_anrechnung_neue_attribute_fuer_begruendung.php
new file mode 100644
index 000000000..922920071
--- /dev/null
+++ b/system/dbupdate_3.4/30181_tabelle_anrechnung_neue_attribute_fuer_begruendung.php
@@ -0,0 +1,28 @@
+db_query("SELECT begruendung_ects FROM lehre.tbl_anrechnung LIMIT 1"))
+{
+ $qry = "ALTER TABLE lehre.tbl_anrechnung ADD COLUMN begruendung_ects text;
+ COMMENT ON COLUMN lehre.tbl_anrechnung.begruendung_ects IS 'Begruendung gleichwertiger ECTS';
+ ";
+
+ if(!$db->db_query($qry))
+ echo 'lehre.tbl_anrechnung '.$db->db_last_error().' ';
+ else
+ echo ' Spalte begruendung_ects zu Tabelle lehre.tbl_anrechnung hinzugefügt';
+}
+
+//Add column begruendung_lvinhalt to lehre.tbl_anrechnung
+if(!@$db->db_query("SELECT begruendung_lvinhalt FROM lehre.tbl_anrechnung LIMIT 1"))
+{
+ $qry = "ALTER TABLE lehre.tbl_anrechnung ADD COLUMN begruendung_lvinhalt text;
+ COMMENT ON COLUMN lehre.tbl_anrechnung.begruendung_lvinhalt IS 'Begruendung gleichwertiger LV-Inhalte';
+ ";
+
+ if(!$db->db_query($qry))
+ echo 'lehre.tbl_anrechnung '.$db->db_last_error().' ';
+ else
+ echo ' Spalte begruendung_lvinhalt zu Tabelle lehre.tbl_anrechnung hinzugefügt';
+}
\ No newline at end of file
diff --git a/system/dbupdate_3.4/30537_anmerkung_in_tbl_rolleberechtigung.php b/system/dbupdate_3.4/30537_anmerkung_in_tbl_rolleberechtigung.php
new file mode 100644
index 000000000..0d7b43b8f
--- /dev/null
+++ b/system/dbupdate_3.4/30537_anmerkung_in_tbl_rolleberechtigung.php
@@ -0,0 +1,15 @@
+db_query("SELECT anmerkung FROM system.tbl_rolleberechtigung LIMIT 1"))
+{
+ $qry = "ALTER TABLE system.tbl_rolleberechtigung ADD COLUMN anmerkung varchar(256);
+ ALTER TABLE system.tbl_rolleberechtigung ADD COLUMN insertamum timestamp DEFAULT now();
+ ALTER TABLE system.tbl_rolleberechtigung ADD COLUMN insertvon varchar(32);";
+
+ if(!$db->db_query($qry))
+ echo 'system.tbl_rolleberechtigung '.$db->db_last_error().' ';
+ else
+ echo ' Spalten anmerkung, insertamum, insertvon in system.tbl_rolleberechtigung hinzugefügt';
+}
diff --git a/system/filtersupdate.php b/system/filtersupdate.php
index 2ed253422..cc9abfb98 100644
--- a/system/filtersupdate.php
+++ b/system/filtersupdate.php
@@ -520,7 +520,29 @@ $filters = array(
{"name": "Studiengang"},
{"name": "AbgewiesenAm"},
{"name": "Nachricht"},
- {"name": "Kaution"}
+ {"name": "Kaution"},
+ {"name": "LockUser"}
+ ],
+ "filters": []
+ }
+ ',
+ 'oe_kurzbz' => null,
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'dataset_name' => 'aufgenommen',
+ 'filter_kurzbz' => 'InfoCenterAufgenommenAlle',
+ 'description' => '{Alle}',
+ 'sort' => 1,
+ 'default_filter' => true,
+ 'filter' => '
+ {
+ "name": "Aufgenommen - Lehrgänge",
+ "columns": [
+ {"name": "PersonId"},
+ {"name": "Vorname"},
+ {"name": "Nachname"},
+ {"name": "Studiengang"}
],
"filters": []
}
@@ -1038,6 +1060,7 @@ $filters = array(
{"name": "Note"},
{"name": "ErstNachname"},
{"name": "ErstAbgeschickt"},
+ {"name": "ZweitNachname"},
{"name": "ZweitAbgeschickt"}
],
"filters": []
@@ -1124,6 +1147,72 @@ $filters = array(
',
'oe_kurzbz' => null,
),
+ array(
+ 'app' => 'personalverwaltung',
+ 'dataset_name' => 'personalIssueViewer',
+ 'filter_kurzbz' => 'offeneFehlerPersonal',
+ 'description' => '{Alle offenen Fehler}',
+ 'sort' => 1,
+ 'default_filter' => true,
+ 'filter' => '
+ {
+ "name": "Alle offenen Fehler",
+ "columns": [
+ {"name": "Datum"},
+ {"name": "Inhalt"},
+ {"name": "Vorname"},
+ {"name": "Nachname"},
+ {"name": "PersonId"},
+ {"name": "Statuscode"}
+ ],
+ "filters": [
+ {
+ "name": "Statuscode",
+ "operation": "ncontains",
+ "condition": "resolved"
+ }
+ ]
+ }
+ ',
+ 'oe_kurzbz' => null,
+ ),
+ array(
+ 'app' => 'personalverwaltung',
+ 'dataset_name' => 'personalIssueViewer',
+ 'filter_kurzbz' => 'FehlerLetzte7TageBearbeitetPersonal',
+ 'description' => '{Letzten 7 Tage bearbeitet}',
+ 'sort' => 2,
+ 'default_filter' => false,
+ 'filter' => '
+ {
+ "name": "Alle in den letzten 7 Tagen bearbeiteten Fehler",
+ "columns": [
+ {"name": "Datum"},
+ {"name": "Inhalt"},
+ {"name": "Vorname"},
+ {"name": "Nachname"},
+ {"name": "PersonId"},
+ {"name": "Statuscode"},
+ {"name": "Verarbeitet von"},
+ {"name": "Verarbeitet am"}
+ ],
+ "filters": [
+ {
+ "name": "Verarbeitet am",
+ "operation": "lt",
+ "condition": "7",
+ "option": "days"
+ },
+ {
+ "name": "Statuscode",
+ "operation": "contains",
+ "condition": "resolved"
+ }
+ ]
+ }
+ ',
+ 'oe_kurzbz' => null,
+ ),
array(
'app' => 'core',
'dataset_name' => 'fehlerZustaendigkeiten',
@@ -1147,6 +1236,28 @@ $filters = array(
',
'oe_kurzbz' => null
),
+ array(
+ 'app' => 'core',
+ 'dataset_name' => 'fehlerKonfiguration',
+ 'filter_kurzbz' => 'fehlerKonfiguration',
+ 'description' => '{Fehler Konfiguration}',
+ 'sort' => 1,
+ 'default_filter' => true,
+ 'filter' => '
+ {
+ "name": "Fehler Konfiguration",
+ "columns": [
+ {"name": "konfigurationstyp_kurzbz"},
+ {"name": "fehlercode"},
+ {"name": "fehler_kurzbz"},
+ {"name": "konfiguration"},
+ {"name": "app"}
+ ],
+ "filters": []
+ }
+ ',
+ 'oe_kurzbz' => null
+ ),
array(
'app' => 'core',
'dataset_name' => 'gruppenmanagement',
diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php
index 80d6b1328..9114c36a9 100644
--- a/system/phrasesupdate.php
+++ b/system/phrasesupdate.php
@@ -10909,6 +10909,178 @@ Any unusual occurrences
)
)
),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'begruendungEcts',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Begründen Sie die Gleichwertigkeit der ECTS',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Give reasons for the equivalence of ECTS',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'begruendungLvinhalt',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Begründen Sie die Gleichwertigkeit der Lehrveranstaltungsinhalte',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Give reasons for the equivalence of the course contents',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'anrechnungBegruendungEctsTooltipText',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Hinsichtlich des Umfangs der LV, die Sie anrechnen lassen wollen: Bitte erläutern Sie, warum Ihr Zeugnis bzw. Ihre berufliche Praxis mit dem Umfang der LV gleichwertig ist. Referenzbeispiele für die ECTS-Berechnung finden Sie rechts in der Infobox.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Regarding the scope of the course you want to have credited: Please explain why your certificate or your professional practice is equivalent to the scope of the course. Reference examples for the ECTS calculation can be found in the info box on the right.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'anrechnungBegruendungLvinhaltTooltipText',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Hinsichtlich der Lernergebnisse der LV (vgl. CIS), die Sie anrechnen lassen wollen: Bitte erläutern Sie, warum die von Ihnen erworbenen Kompetenzen mit diesen Lernergebnissen gleichwertig sind.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'With regard to the learning outcomes of the course (cf. CIS) for which you want to receive credit: Please explain why the competences you have acquired are equivalent to these learning outcomes.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'requestAnrechnungInfoEctsBerechnungTitle',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Referenzbeispiele ECTS-Berechnung',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Reference examples of ECTS calculation',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'requestAnrechnungInfoEctsBerechnungBody',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "1 ECTS an der FH Technikum Wien entspricht einem Arbeitsaufwand von 25 Stunden.
+ Schulisches Zeugnis:
+ Bitte die Unterrichtsstunden nachvollziehbar in ECTS umrechnen (ein Schuljahr besteht aus ca. 40 Wochen; d.h., eine Unterrichtsstunde pro Woche sind insgesamt ca. 40 Stunden Jahresaufwand.)
+ Hochschulzeugnis:
+ Bitte die ECTS angeben.
+ Berufliche Praxis:
+ Bitte die Dauer der einschlägigen beruflichen Praxis nachvollziehbar in ECTS umrechnen (1,5 ECTS sind ungefähr eine Arbeitswoche im Umfang von 37,5 Stunden).",
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => " 1 ECTS at the FH Technikum Wien corresponds to a workload of 25 hours.
+ School certificate:
+ Please convert the teaching hours into ECTS in a comprehensible way (a school year consists of approx. 40 weeks; i.e. one teaching hour per week is a total of approx. 40 hours of annual work).
+ University certificate:
+ Please indicate the ECTS.
+ Professional practice:
+ Please convert the duration of the relevant professional practice into ECTS in a comprehensible way (1.5 ECTS are approximately one working week of 37.5 hours).",
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'begruendungEctsLabel',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Begründung Gleichwertigkeit ECTS',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Reason Equivalency of ECTS',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'begruendungLvinhaltLabel',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Begründung Gleichwertigkeit LV-Inhalt',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Reason Equivalency of Course content',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
array(
'app' => 'core',
'category' => 'anrechnung',
@@ -13745,6 +13917,26 @@ array(
)
)
),
+ array(
+ 'app' => 'core',
+ 'category' => 'ui',
+ 'phrase' => 'fehlendeMinZeichen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "Fehlende min. Zeichen",
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "Missing min. Characters",
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
array(
'app' => 'core',
'category' => 'anrechnung',
@@ -17823,6 +18015,326 @@ array(
)
)
),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'fehlerFehlerKonfigurationLaden',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Fehler beim Laden der Fehlerkonfiguration',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Error when loading error configuration',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'fehlerFehlerLaden',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Fehler beim Laden der Fehler',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Error when loading errors',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'ungueltigerKonfigurationstyp',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Ungültiger Konfigurationstyp',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Invalid configuration type',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'ungueltigerKonfigurationswert',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Ungültiger Konfigurationswert für Datentyp {0}, Sonderzeichen nicht erlaubt',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Invalid configuration value for data type {0}, special characters not allowed',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'fehlerKonfiguration',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Fehler Konfiguration',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Error configuration',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'konfigurationstyp',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Konfigurationstyp',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'configuration type',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'konfigurationswert',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Konfigurationswert',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'configuration value',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'konfigurationswertPlatzhalter',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'wert1;wert2;wert3',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'value1;value2;value3',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'konfigurationswertZuweisen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Konfigurationswert(e) zuweisen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Assign configuration value(s)',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'konfigurationsbeschreibung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Konfigurationsbeschreibung',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Configuration description',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'konfigurationsdatentyp',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Konfigurationsdatentyp',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Configuration data type',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'konfigurationGespeichert',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Konfiguration gespeichert',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Configuration saved',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'konfigurationGespeichertFehler',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Fehler beim Speichern der Konfiguration',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Error when saving configuration',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'konfigurationGeloescht',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Konfiguration gelöscht',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Deleted configuration',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'konfigurationGeloeschtFehler',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Fehler beim Löschen der Konfiguration',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Error when deleting configuration',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'konfigurationswertLoeschen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Konfigurationswert(e) löschen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Delete configuration value(s)',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
);
diff --git a/system/vorlage_zip/Inskription.odt b/system/vorlage_zip/Inskription.odt
index d1933cdcb..6471c5cc2 100644
Binary files a/system/vorlage_zip/Inskription.odt and b/system/vorlage_zip/Inskription.odt differ
diff --git a/system/vorlage_zip/InskriptionEng.odt b/system/vorlage_zip/InskriptionEng.odt
new file mode 100644
index 000000000..e26be218e
Binary files /dev/null and b/system/vorlage_zip/InskriptionEng.odt differ
diff --git a/system/xsl/inskription_eng_0.xsl b/system/xsl/inskription_eng_0.xsl
new file mode 100644
index 000000000..c2080a5ec
--- /dev/null
+++ b/system/xsl/inskription_eng_0.xsl
@@ -0,0 +1,347 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+
+
+ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+
+
+ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+
+
+ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+
+
+
+
+
+ Certificate of Enrolment University of Applied Sciences Demo
+
+
+
+
+
+ To be submitted to (place where the certificate is to be submitted and its reference number, e.g. social security number).
+
+
+ Student number
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ born on , is enrolled as a regular student in
+ (beginning )
+ in the
+
+
+ Bachelor Degree program
+
+
+ Master Degree program
+
+
+ Degree Program
+
+
+
+
+
+
+
+
+
+
+
+ ( ),
+
+ st
+ nd
+ rd
+ th
+
+ semester (beginning , ).
+
+
+
+
+
+
+
+ Date:
+
+
+ Rector:
+
+
+
+
+
\ No newline at end of file
diff --git a/vilesci/lehre/check/ueberbuchung.php b/vilesci/lehre/check/ueberbuchung.php
index 3cb6b62e5..1e133384a 100644
--- a/vilesci/lehre/check/ueberbuchung.php
+++ b/vilesci/lehre/check/ueberbuchung.php
@@ -50,31 +50,47 @@ echo '
-
-
-
+ ';
+
+ include('../../../include/meta/jquery.php');
+ include('../../../include/meta/jquery-tablesorter.php');
+
+echo '
-
-
+
+
LV-Plan Überbuchungen - '.$db_stpl_table.'
';
@@ -93,8 +109,8 @@ if($beginn=='' || $ende=='')
$dontloadcontent=true;
}
-echo " Beginn ";
-echo " Ende ";
+echo " Beginn ";
+echo " Ende ";
$stg = new studiengang();
$stg->getAll('typ, kurzbzlang', true);
@@ -128,7 +144,7 @@ foreach ($ort_obj->result as $row)
$ort[$row->ort_kurzbz] = new stdClass(); // Prevents the warning "Creating default object from empty value"
$ort[$row->ort_kurzbz]->max_person = $row->max_person;
}
-$qry = "SELECT DISTINCT vw_".$db_stpl_table.".unr,datum, stunde, ort_kurzbz, studiensemester_kurzbz, vw_".$db_stpl_table.".studiengang_kz, vw_".$db_stpl_table.".semester, verband, gruppe, gruppe_kurzbz, UPPER(stg_typ || stg_kurzbz) as stg_kurzbz, lehrfach, lehrfach_bez
+$qry = "SELECT DISTINCT vw_".$db_stpl_table.".unr,datum, stunde, ort_kurzbz, studiensemester_kurzbz, vw_".$db_stpl_table.".studiengang_kz, vw_".$db_stpl_table.".semester, verband, gruppe, gruppe_kurzbz, UPPER(stg_typ || stg_kurzbz) as stg_kurzbz, lehrfach, lehrfach_bez, lehrform
FROM lehre.vw_".$db_stpl_table." JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehrveranstaltung ON(tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id)
WHERE datum>='".addslashes($beginn)."' AND datum<='".addslashes($ende)."'";
if($stg_kz!='')
@@ -144,7 +160,8 @@ echo '
Ort
Studierende aktuell (Plätze maximal)
Gruppen (Studierende aktuell)
- Lehrfach
+ Lehrveranstaltung
+ Lehrform
';
@@ -156,6 +173,7 @@ $lastort=0;
$anzahl_studenten=0;
$lehrfach='';
$lehrfach_bez='';
+$lehrform='';
$arr=array();
function getAnzahl($studiengang_kz, $semester, $verband, $gruppe, $gruppe_kurzbz, $studiensemester_kurzbz)
@@ -192,7 +210,7 @@ if($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
{
- if($lastdatum==$row->datum && $laststunde==$row->stunde && $lastort==$row->ort_kurzbz && $lehrfach==$row->lehrfach && $lehrfach_bez==$row->lehrfach_bez)
+ if($lastdatum==$row->datum && $laststunde==$row->stunde && $lastort==$row->ort_kurzbz && $lehrfach==$row->lehrfach && $lehrfach_bez==$row->lehrfach_bez && $lehrform==$row->lehrform)
{
//Solange alles gleich ist zusammenzaehlen
$anzahl = getAnzahl($row->studiengang_kz, $row->semester, $row->verband, $row->gruppe, $row->gruppe_kurzbz, $row->studiensemester_kurzbz);
@@ -222,7 +240,13 @@ if($result = $db->db_query($qry))
$style='style="background-color: a00404; color: d3d3d3"';
//echo "$lastdatum $laststunde $lastort $anzahl_studenten (".$ort[$lastort]->max_person.") $gruppen $lehrfach - $lehrfach_bez ";
- $arr[]="$lastdatum $lastort $anzahl_studenten (".$ort[$lastort]->max_person.") $gruppen $lehrfach - $lehrfach_bez ";
+ $arr[]="
+ $lastdatum
+ $lastort
+ $anzahl_studenten (".$ort[$lastort]->max_person.")
+ $gruppen
+ $lehrfach - $lehrfach_bez
+ $lehrform ";
}
$anzahl_studenten=0;
@@ -238,6 +262,7 @@ if($result = $db->db_query($qry))
$lastort = $row->ort_kurzbz;
$lehrfach = $row->lehrfach;
$lehrfach_bez = $row->lehrfach_bez;
+ $lehrform = $row->lehrform;
}
}
else
diff --git a/vilesci/lehre/lehrveranstaltung_details.php b/vilesci/lehre/lehrveranstaltung_details.php
index b7a9d7b8a..bad2a7d93 100644
--- a/vilesci/lehre/lehrveranstaltung_details.php
+++ b/vilesci/lehre/lehrveranstaltung_details.php
@@ -402,7 +402,12 @@
$selected='selected';
else
$selected='';
- $htmlstr .= ''.$row->raumtyp_kurzbz.' ';
+
+ $inaktiv = '';
+ if (!$db->db_parse_bool($row->aktiv))
+ $inaktiv = 'disabled';
+
+ $htmlstr .= ''.$row->raumtyp_kurzbz.' ';
}
}//#'.$lv->farbe.'
$htmlstr .= '
diff --git a/vilesci/personen/urlaubsverwaltung.php b/vilesci/personen/urlaubsverwaltung.php
index f631aa081..274a04b94 100644
--- a/vilesci/personen/urlaubsverwaltung.php
+++ b/vilesci/personen/urlaubsverwaltung.php
@@ -33,6 +33,7 @@ require_once('../../include/mitarbeiter.class.php');
require_once('../../include/datum.class.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/addon.class.php');
+require_once('../../include/benutzerfunktion.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
@@ -130,24 +131,37 @@ echo '
+
+
+
+
+
+ Rechte Übersicht
+
+ berechtigung_kurzbz = $kurzbzPost;
+ $berechtigung->beschreibung = $beschreibung;
+ $berechtigung->new = true;
+
+ if($berechtigung->save())
+ {
+ echo 'Recht '.$kurzbzPost.' wurde angelegt ';
+ }
+ else
+ {
+ echo 'Fehler beim Speichern:'.$berechtigung->errormsg.' ';
+ }
+ }
+ else
+ {
+ echo 'Zum Speichern der Daten muss die Kurzbz und die Beschreibung angegeben werden ';
+ }
+ }
+
+ if(isset($delete) && isset($kurzbz))
+ {
+ $berechtigung = new berechtigung();
+ if($berechtigung->delete($kurzbz))
+ echo 'Das Recht "'.$kurzbz.'" wurde erfolgreich gelöscht ';
+ else
+ echo 'Fehler beim Löschen des Rechts:'.$berechtigung->errormsg.' ';
+ }
+
+ if(isset($save))
+ {
+ $berechtigung = new berechtigung();
+ $berechtigung->load($berechtigung_kurzbz);
+ $berechtigung->beschreibung = $beschreibung;
+ if (!$berechtigung->save(false))
+ echo 'Fehler beim Speichern:'.$berechtigung->errormsg.' ';
+ }
+
+ //Tabelle mit Rollen anzeigen
+ $berechtigung = new berechtigung();
+ $berechtigung->getBerechtigungen();
+
+ echo 'Reset Filter ';
+ echo '
+
+
+ ';
+
+ echo '
+ Neues Recht einfügen
+ Kurzbz:
+ Beschreibung:
+ 256
+
+
+
+
+