This commit is contained in:
Andreas Österreicher
2008-01-15 13:56:22 +00:00
parent ddea205b0c
commit 37c658c82b
17 changed files with 267 additions and 89 deletions
+22 -1
View File
@@ -417,9 +417,30 @@ Studenten<br>
<hr>
<h2>Erledigte Anforderungen</h2>
<ul>
<li>im Tab Lektoren kann jetzt per rechter Maustaste ein Mail an die
markierten Lektoren versendet werden<br>
15.01.2008 oesi<br>
<br>
</li>
<li>Die Zuteilung eines Studenten zu einer Lehrverbandsgruppe ist
jetzt, wie bei den Spezialgruppen, auch per Drag&amp;Drop m&ouml;glich.<br>
15.01.2008 oesi<br>
<br>
</li>
<li>Beim &Uuml;bernehmen und Importieren von Noten werden
angerechnete Noten nun nicht mehr &uuml;berschrieben.<br>
15.01.2008 oesi<br>
<br>
</li>
<li>Beim Klicken auf den Studiensemesterbutton in der Statusleiste
wird das tats&auml;chlich in der Datenbank gespeicherte Studiensemester
geholt.<br>
15.01.2008 oesi<br>
<br>
</li>
<li>Beim Filtern der Studentenliste erscheint nun eine Fehlermeldung
wenn kein Studiengang markiert ist<br>
14.01.2007 oesi<br>
14.01.2008 oesi<br>
<br>
</li>
<li>Studiensemester ist jetzt in der Statusleiste mit Pfeiltasten
+1 -1
View File
@@ -587,7 +587,7 @@ echo '<?xml-stylesheet href="datepicker/datepicker.css" type="text/css"?>';
image="../skin/images/left.png"
oncommand="studiensemesterChange('', -1)"
/>
<toolbarbutton id="statusbarpanel-semester" label="<?php echo $semester_aktuell; ?>"/>
<toolbarbutton id="statusbarpanel-semester" label="<?php echo $semester_aktuell; ?>" oncommand="getStudiensemesterVariable()"/>
<toolbarbutton id="statusbarpanel-studiensemester-right"
tooltiptext="1 Studiensemester vor"
image="../skin/images/right.png"
+15
View File
@@ -490,6 +490,21 @@ if(!$error)
$errormsg = 'Falsche Paramenteruebergabe';
}
}
elseif(isset($_POST['type']) && $_POST['type']=='getvariable')
{
$variable = new variable($conn, null, null, true);
if($variable->load($user, $_POST['name']))
{
$return = true;
$data = $variable->wert;
}
else
{
$return = false;
$errormsg = 'Fehler: '.$variable->errormsg;
}
}
else
{
$return = false;
+38
View File
@@ -167,6 +167,44 @@ function LektorFunktionDel()
}
}
// ****
// * Sendet ein Mail an die Mitarbeiter die im Lektor Tree
// * markiert wurden.
// ****
function LektorFunktionMail()
{
mailempfaenger='';
var tree=document.getElementById('tree-lektor');
var numRanges = tree.view.selection.getRangeCount();
var start = new Object();
var end = new Object();
var anzfault=0;
//Markierte Datensaetze holen
for (var t=0; t<numRanges; t++)
{
tree.view.selection.getRangeAt(t,start,end);
for (v=start.value; v<=end.value; v++)
{
var col = tree.columns ? tree.columns["uid"] : "uid";
if(tree.view.getCellText(v,col).length>1)
{
if(mailempfaenger!='')
mailempfaenger=mailempfaenger+','+tree.view.getCellText(v,col)+'@<?php echo DOMAIN; ?>';
else
mailempfaenger='mailto:'+tree.view.getCellText(v,col)+'@<?php echo DOMAIN; ?>';
}
else
{
anzfault=anzfault+1;
}
}
}
if(anzfault!=0)
alert(anzfault+' Mitarbeiter konnten nicht hinzugefuegt werden weil keine UID eingetragen ist!');
if(mailempfaenger!='')
window.location.href=mailempfaenger;
}
function auswahlValues()
{
this.stg_kz=null;
+4 -2
View File
@@ -149,7 +149,7 @@ echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';*/
</vbox>
<tree id="tree-lektor" onmouseup="onLektorSelect(event);"
seltype="single" hidecolumnpicker="false" flex="1"
seltype="multi" hidecolumnpicker="false" flex="1"
enableColumnDrag="true"
ondraggesture="nsDragAndDrop.startDrag(event,mitarbeiterDDObserver);"
ondragdrop="nsDragAndDrop.drop(event,LektorFunktionDDObserver)"
@@ -278,7 +278,9 @@ echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';*/
<vbox id="vbox-main">
<popupset>
<popup id="fasoverlay-lektor-tree-popup">
<menuitem label="Entfernen" oncommand="LektorFunktionDel();" />
<menuitem label="Mail senden" oncommand="LektorFunktionMail();" />
<menuseparator />
<menuitem label="Entfernen" oncommand="LektorFunktionDel();" />
</popup>
</popupset>
<tabbox id="tabbox-main" flex="3" orient="vertical">
+1 -1
View File
@@ -155,7 +155,7 @@ $num_rows_stunde=pg_numrows($result_stunde);
/>
</hbox>
</row>
<row style="background-color^: rdf:http://www.technikum-wien.at/lehreinheit-lvplan/rdf#lehrfach_farbe^;" >
<row> <!-- style="background-color^: rdf:http://www.technikum-wien.at/lehreinheit-lvplan/rdf#lehrfach_farbe^;" -->
<label value="rdf:http://www.technikum-wien.at/lehreinheit-lvplan/rdf#lehrfach rdf:http://www.technikum-wien.at/lehreinheit-lvplan/rdf#lehrform"
tooltiptext="rdf:http://www.technikum-wien.at/lehreinheit-lvplan/rdf#lehrfach_bez" />
<label align="right" value="rdf:http://www.technikum-wien.at/lehreinheit-lvplan/rdf#raumtyp"
+24 -2
View File
@@ -1826,7 +1826,8 @@ if(!$error)
//Die Daten werden per POST uebermittelt. Es wird ein Feld Anzahl mituebergeben
//mit der Anzahl der Felder. Die Felder sind durchnummeriert zB lehreinheit_id_0, lehreinheit_id_1, ...
$errormsg = '';
$angerechnet=false;
for($i=0;$i<$_POST['anzahl'];$i++)
{
$lvgesamtnote = new lvgesamtnote($conn, null, true);
@@ -1893,6 +1894,12 @@ if(!$error)
$zeugnisnote->new = false;
$zeugnisnote->updateamum = date('Y-m-d H:i:s');
$zeugnisnote->updatevon = $user;
//Angerechnete Noten werden nicht ueberschrieben
if($zeugnisnote->note=='6') //Angerechnet
{
$angerechnet=true;
continue;
}
}
else
{
@@ -1921,6 +1928,11 @@ if(!$error)
}
}
}
if($angerechnet)
{
$errormsg.="\nAngerechnete Noten wurden nicht ueberschrieben";
}
if($errormsg=='')
$return = true;
else
@@ -2006,6 +2018,12 @@ if(!$error)
$zeugnisnote->new = false;
$zeugnisnote->updateamum = date('Y-m-d H:i:s');
$zeugnisnote->updatevon = $user;
//Angerechnete Noten werden nicht ueberschrieben
if($zeugnisnote->note=='6') //Angerechnet
{
$angerechnet=true;
continue;
}
}
else
{
@@ -2030,7 +2048,11 @@ if(!$error)
}
}
}
if($angerechnet)
{
$errormsg.="\nAngerechnete Noten wurden nicht ueberschrieben";
}
if($errormsg=='')
$return = true;
else
+27 -1
View File
@@ -39,6 +39,11 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/student/studentabschlusspruefungov
echo '<?xul-overlay href="'.APP_ROOT.'content/student/studentprojektarbeitoverlay.xul.php"?>';
echo '<?xul-overlay href="'.APP_ROOT.'content/student/studentgruppenoverlay.xul.php"?>';
echo '<?xul-overlay href="'.APP_ROOT.'content/student/interessentdokumenteoverlay.xul.php"?>';
if(isset($_GET['xulapp']))
$xulapp=$_GET['xulapp'];
else
$xulapp='';
?>
<!DOCTYPE overlay >
@@ -64,6 +69,10 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/student/interessentdokumenteoverla
<hbox>
<toolbox flex="1">
<toolbar id="student-nav-toolbar">
<?php
if($xulapp!='tempus')
{
?>
<toolbarbutton id="interessent-toolbar-neu" label="Neu" oncommand="InteressentNeu()" disabled="false" image="../skin/images/NeuDokument.png" tooltiptext="Interessent neu anlegen" />
<toolbarbutton id="student-toolbar-buchung" label="Neue Buchung" oncommand="StudentKontoNeu()" disabled="false" tooltiptext="neue Buchung anlegen"/>
@@ -85,9 +94,16 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/student/interessentdokumenteoverla
</toolbarbutton>
<toolbarbutton id="student-toolbar-export" label="Export" oncommand="StudentExport()" disabled="false" image="../skin/images/ExcelIcon.png" tooltiptext="Daten ins Excel Exportieren"/>
<?php
}
?>
<toolbarbutton id="student-toolbar-refresh" label="Aktualisieren" oncommand="StudentTreeRefresh()" disabled="false" image="../skin/images/refresh.png" tooltiptext="Liste neu laden"/>
<textbox id="student-toolbar-textbox-suche" control="student-toolbar-button-search" onkeypress="StudentSearchFieldKeyPress(event)" />
<button id="student-toolbar-button-search" oncommand="StudentSuche()" label="Suchen"/>
<?php
if($xulapp!='tempus')
{
?>
<toolbarbutton label="Filter " id="student-toolbar-filter" type="menu">
<menupopup id="student-filter-menu-popup" >
<menuitem id="student-toolbar-filter-dokumente" label="fehlende Dokumente" oncommand="InteressentDokumenteFilter()" disabled="false" tooltiptext="Liste aller Studenten mit Fehlenden Dokumenten"/>
@@ -95,6 +111,9 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/student/interessentdokumenteoverla
<menuitem id="student-toolbar-filter-studiengebuehr" label="nicht gebuchte Studiengebuehr" oncommand="StudentKontoFilterStudenten('studiengebuehr')" disabled="false" tooltiptext="Liste aller Studenten die noch nicht mit Studienbebuehr belastet wurden" />
</menupopup>
</toolbarbutton>
<?php
}
?>
<spacer flex="1"/>
<label id="student-toolbar-label-anzahl"/>
</toolbar>
@@ -106,7 +125,7 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/student/interessentdokumenteoverla
<!-- ************* -->
<tree id="student-tree" seltype="multi" hidecolumnpicker="false" flex="1"
datasources="rdf:null" ref="http://www.technikum-wien.at/student/alle"
onselect="StudentAuswahl();"
<?php echo ($xulapp!='tempus'?'onselect="StudentAuswahl();"':'') ?>
flags="dont-build-content"
enableColumnDrag="true"
style="margin:0px;"
@@ -246,6 +265,10 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/student/interessentdokumenteoverla
</template>
</tree>
<?php
if($xulapp!='tempus')
{
?>
<splitter collapse="after" persist="state">
<grippy />
</splitter>
@@ -289,5 +312,8 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/student/interessentdokumenteoverla
</tabpanels>
</tabbox>
</vbox>
<?php
}
?>
</vbox>
</overlay>
+5 -1
View File
@@ -3532,7 +3532,11 @@ function StudentSuche()
treeStudent.builder.addListener(StudentTreeListener);
//Detailfelder Deaktivieren
StudentDisableDetails();
try
{
StudentDisableDetails();
}
catch(e){}
}
else
alert('Es muessen mindestens 3 Zeichen eingegeben werden');
+67
View File
@@ -253,6 +253,73 @@ function variableChange(variable, id)
}
}
function getvariable(variable)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
// Request absetzen
var url = '<?php echo APP_ROOT ?>content/fasDBDML.php';
var req = new phpRequest(url,'','');
req.add('type', 'getvariable');
req.add('name', variable);
var response = req.executePOST();
var val = new ParseReturnValue(response)
if (!val.dbdml_return)
{
if(val.dbdml_errormsg=='')
alert(response)
else
alert(val.dbdml_errormsg)
return false;
}
else
{
return val.dbdml_data;
}
}
function getStudiensemesterVariable()
{
if(stsem = getvariable('semester_aktuell'))
{
//Statusbar setzen
document.getElementById("statusbarpanel-text").label = "Studiensemester erfolgreich geaendert";
document.getElementById("statusbarpanel-semester").label = stsem;
//Menue setzen
var items = document.getElementsByTagName('menuitem');
for(i in items)
{
if(items[i].label==stsem && items[i].id=='menu-properies-studiensemester-name')
{
items[i].setAttribute('checked',true);
break;
}
}
//Ansichten Refreshen
try
{
StudentTreeRefresh();
}
catch(e)
{}
try
{
LvTreeRefresh();
}
catch(e)
{}
}
}
// ****
// * Laedt das Undo Menue Neu
// ****
+1 -1
View File
@@ -229,7 +229,7 @@ echo '<?xml-stylesheet href="datepicker/datepicker.css" type="text/css"?>';
image="../skin/images/left.png"
oncommand="studiensemesterChange('', -1)"
/>
<toolbarbutton id="statusbarpanel-semester" label="<?php echo $semester_aktuell; ?>"/>
<toolbarbutton id="statusbarpanel-semester" label="<?php echo $semester_aktuell; ?>" oncommand="getStudiensemesterVariable()"/>
<toolbarbutton id="statusbarpanel-studiensemester-right"
tooltiptext="1 Studiensemester vor"
image="../skin/images/right.png"
+12 -41
View File
@@ -91,41 +91,17 @@ function onVerbandSelect()
// Studenten
if(typ=='')
{
/*try
{
url = "<?php echo APP_ROOT; ?>rdf/student.rdf.php?"+"stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"&gruppe="+gruppe+"&"+gettimestamp();
var treeStudent=document.getElementById('student-tree');
//Alte DS entfernen
var oldDatasources = treeStudent.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
treeStudent.database.RemoveDataSource(oldDatasources.getNext());
}
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
StudentTreeDatasource = rdfService.GetDataSource(url);
StudentTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
StudentTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
treeStudent.database.AddDataSource(StudentTreeDatasource);
StudentTreeDatasource.addXMLSinkObserver(StudentTreeSinkObserver);
treeStudent.builder.addListener(StudentTreeListener);
}
catch(e)
{
debug(e);
}*/
//Bei Ansicht von Ab-/Unterbrecher den Button "->Student" anzeigen
if(sem=='0')
document.getElementById('student-toolbar-student').hidden=false;
else
document.getElementById('student-toolbar-student').hidden=true;
//Wenn der Interessenten Tab markiert ist, dann den Studenten Tab markieren
//if(document.getElementById('main-content-tabs').selectedItem==document.getElementById('tab-interessenten'))
// document.getElementById('main-content-tabs').selectedItem=document.getElementById('tab-studenten');
try
{
//Bei Ansicht von Ab-/Unterbrecher den Button "->Student" anzeigen
if(sem=='0')
document.getElementById('student-toolbar-student').hidden=false;
else
document.getElementById('student-toolbar-student').hidden=true;
}
catch(e){}
// -------------- Studenten --------------------------
try
{
@@ -167,10 +143,7 @@ function onVerbandSelect()
document.getElementById('student-betriebsmittel').setAttribute('src','');
StudentAbschlusspruefungDisableFields(true);
}
catch(e)
{
debug(e);
}
catch(e){}
}
else
{
@@ -218,9 +191,7 @@ function onVerbandSelect()
StudentAbschlusspruefungDisableFields(true);
}
catch(e)
{
debug(e);
}
{}
}
// Lehrveranstaltung
+1 -1
View File
@@ -4,7 +4,7 @@ echo '<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>';
include('../vilesci/config.inc.php');
echo '<?xul-overlay href="'.APP_ROOT.'content/student/studentenoverlay.xul.php"?>';
echo '<?xul-overlay href="'.APP_ROOT.'content/student/studentenoverlay.xul.php?xulapp=tempus"?>';
echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/lehrveranstaltungoverlay.xul.php"?>';
echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/stpl-week-overlay.xul.php"?>';
echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/stpl-semester-overlay.xul.php"?>';
+18
View File
@@ -39,4 +39,22 @@ function generateUID($stgkzl,$jahr, $stgtyp, $matrikelnummer)
$nr = $nr+500;
return $stgkzl.$jahr.($art!='0'?$stgtyp:'x').$nr;
}
// ****
// * Gerneriert die Mitarbeiter UID
// ****
function generateMitarbeiterUID($conn, $vorname, $nachname)
{
$bn = new benutzer($conn);
for($nn=8,$vn=0;$nn!=0;$nn--,$vn++)
{
$uid = substr($nachname,0,$nn);
$uid .= substr($vorname,0,$vn);
if(!$bn->uid_exists($uid))
if($bn->errormsg=='')
return $uid;
}
}
?>
+17 -2
View File
@@ -141,6 +141,21 @@ if(isset($_GET['lvid']) && is_numeric($_GET['lvid']))
}
//Fachbereichskoordinatoren holen
if($stg_kz!='')
{
$where = "studiengang_kz='$stg_kz'";
$where2=$where;
$tables='lehre.tbl_lehrveranstaltung';
}
else
{
$where = "fachbereich_kurzbz='$fachbereich_kurzbz'";
$where2 = $where." AND
tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND
tbl_lehreinheit.lehrfach_id=tbl_lehrfach.lehrfach_id";
$tables='lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehrfach';
}
$qry = "
SELECT
distinct
@@ -149,9 +164,9 @@ SELECT
uid
FROM
campus.vw_mitarbeiter JOIN
(SELECT uid FROM public.tbl_benutzerfunktion WHERE funktion_kurzbz='fbk' AND studiengang_kz='$stg_kz'
(SELECT uid FROM public.tbl_benutzerfunktion WHERE funktion_kurzbz='fbk' AND $where
UNION
SELECT koordinator as uid from lehre.tbl_lehrveranstaltung WHERE studiengang_kz='$stg_kz') as a USING(uid) ORDER BY nachname, vorname";
SELECT koordinator as uid from $tables WHERE $where2) as a USING(uid) ORDER BY nachname, vorname";
$fbk = array();
if($result = pg_query($conn, $qry))
@@ -22,6 +22,7 @@
require_once('../../config.inc.php');
require_once('../../../system/sync/sync_config.inc.php');
require_once('../../../include/'.EXT_FKT_PATH.'/generateuid.inc.php');
require_once('../../../include/functions.inc.php');
require_once('../../../include/benutzerberechtigung.class.php');
require_once('../../../include/studiengang.class.php');
@@ -177,29 +178,6 @@ function generateMatrikelnummer($conn, $studiengang_kz, $studiensemester_kurzbz)
}
}
// ****
// * Generiert die UID
// * FORMAT: el07b001
// * el = studiengangskuerzel
// * 07 = Jahr
// * b/m/d/x = Bachelor/Master/Diplom/incoming
// * 001 = Laufende Nummer ( Wenn StSem==SS dann wird zur nummer 500 dazugezaehlt)
// ****
function generateUID($conn, $matrikelnummer)
{
$jahr = substr($matrikelnummer,0, 2);
$art = substr($matrikelnummer, 2, 1);
$stg = substr($matrikelnummer, 3, 4);
$nr = substr($matrikelnummer, 7);
if($art=='2')
$nr = $nr+500;
$stg_obj = new studiengang($conn);
$stg_obj->load(ltrim($stg,'0'));
return $stg_obj->kurzbz.$jahr.($art!='0'?$stg_obj->typ:'x').$nr;
}
function clean_string($string)
{
$trans = array("ä" => "ae",
@@ -470,7 +448,14 @@ if(isset($_POST['save']))
{
//Matrikelnummer und UID generieren
$matrikelnr = generateMatrikelnummer($conn, $studiengang_kz, $studiensemester_kurzbz);
$uid = generateUID($conn, $matrikelnr);
$jahr = substr($matrikelnr,0, 2);
$stg = substr($matrikelnr, 3, 4);
$stg_obj = new studiengang($conn);
$stg_obj->load(ltrim($stg,'0'));
$uid = generateUID($stg_obj->kurzbz,$jahr, $stg_obj->typ, $matrikelnr);
//Benutzerdatensatz anlegen
$benutzer = new benutzer($conn);
+5 -11
View File
@@ -29,6 +29,7 @@ require_once('../../../include/mitarbeiter.class.php');
require_once('../../../include/kontakt.class.php');
require_once('../../../include/adresse.class.php');
require_once('../../../include/datum.class.php');
require_once('../../../include/'.EXT_FKT_PATH.'/generateuid.inc.php');
if(!$conn=pg_pconnect(CONN_STRING))
die('Fehler beim Herstellen der DB Connection');
@@ -213,18 +214,11 @@ if(isset($_POST['save']))
$nachname_clean = strtolower(clean_string($nachname));
$vorname_clean = strtolower(clean_string($vorname));
$uid='';
$uid = generateMitarbeiterUID($conn, $vorname_clean, $nachname_clean);
$bn = new benutzer($conn);
for($nn=8,$vn=0;$nn!=0;$nn--,$vn++)
{
$uid = substr($nachname_clean,0,$nn);
$uid .= substr($vorname_clean,0,$vn);
if(!$bn->uid_exists($uid))
if($bn->errormsg=='')
break;
}
if($bn->uid_exists($uid))
{
$error = true;