Notenverwaltung und Notenimport bei Lehrveranstaltungsansicht

This commit is contained in:
Andreas Österreicher
2007-06-20 14:34:00 +00:00
parent b7efc63b72
commit 3bb1ca3864
6 changed files with 664 additions and 25 deletions
+34
View File
@@ -139,4 +139,38 @@ function ConvertDateToISO(datum)
}
else
return '';
}
// ****
// * Liefert die Daten aus der Zwischenablage
// ****
function getDataFromClipboard()
{
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
var clip = Components.classes["@mozilla.org/widget/clipboard;1"].getService(Components.interfaces.nsIClipboard);
if (!clip)
return false;
var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
if (!trans)
return false;
trans.addDataFlavor("text/unicode");
clip.getData(trans,clip.kGlobalClipboard);
var str = new Object();
var strLength = new Object();
trans.getTransferData("text/unicode",str,strLength);
if (str) str = str.value.QueryInterface(Components.interfaces.nsISupportsString);
if (str) pastetext = str.data.substring(0,strLength.value / 2);
return pastetext;
}
// ****
// * Liefert das Aktuelle Studiensemester
// ****
function getStudiensemester()
{
return document.getElementById('statusbarpanel-semester').label;
}
@@ -52,15 +52,15 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/bindings.css\" type=\"text/css
>
<treecols>
<treecol id="lehrveranstaltung-noten-tree-student_vorname" label="vorname" flex="2" hidden="true"
<treecol id="lehrveranstaltung-noten-tree-student_vorname" label="Vorname" flex="2" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/zeugnisnote/rdf#student_vorname" />
<splitter class="tree-splitter"/>
<treecol id="lehrveranstaltung-noten-tree-student_nachname" label="Nachname" flex="2" hidden="true"
<treecol id="lehrveranstaltung-noten-tree-student_nachname" label="Nachname" flex="2" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/zeugnisnote/rdf#student_nachname" />
<splitter class="tree-splitter"/>
<treecol id="lehrveranstaltung-noten-tree-lehrveranstaltung_bezeichnung" label="Lehrveranstaltung" flex="2" hidden="false"
<treecol id="lehrveranstaltung-noten-tree-lehrveranstaltung_bezeichnung" label="Lehrveranstaltung" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/zeugnisnote/rdf#lehrveranstaltung_bezeichnung"/>
<splitter class="tree-splitter"/>
@@ -136,7 +136,7 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/bindings.css\" type=\"text/css
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/lvgesamtnote/rdf#student_nachname"/>
<splitter class="tree-splitter"/>
<treecol id="lehrveranstaltung-lvgesamtnoten-tree-lehrveranstaltung_bezeichnung" label="Lehrveranstaltung" flex="2" hidden="false"
<treecol id="lehrveranstaltung-lvgesamtnoten-tree-lehrveranstaltung_bezeichnung" label="Lehrveranstaltung" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/lvgesamtnote/rdf#lehrveranstaltung_bezeichnung"/>
<splitter class="tree-splitter"/>
@@ -211,7 +211,7 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/bindings.css\" type=\"text/css
</menulist>
<button id="lehrveranstaltung-noten-button-speichern" oncommand="LehrveranstaltungNoteSpeichern()" label="Speichern" disabled="true"/>
<spacer flex="1" />
<button id="lehrveranstaltung-noten-button-import" label="Notenimport" />
<button id="lehrveranstaltung-noten-button-import" label="Notenimport" oncommand="LehrveranstaltungNotenImport();" />
</hbox>
</vbox>
</overlay>
@@ -37,6 +37,10 @@ var LeDetailLektorDatasource; //Datasource fuer Lektren DropDown
var LvSelectLehreinheit_id; //Lehreinheit_id die nach dem Rebuild des Trees markiert werden soll
var leDetailLektorUid; // UID der Lektorzuordnung die nach dem Rebuild markiert werden soll
var leDetailLektorLehreinheit_id; // Lehreinheit_id der Lektorzuordnung die nach dem Rebuild markiert werden soll
var lehrveranstaltungNotenTreeDatasource; //Datasource des Noten Trees
var lehrveranstaltungNotenSelectUID=null; //UID des Noten Eintrages der nach dem Refresh markiert werden soll
var lehrveranstaltungLvGesamtNotenTreeDatasource; //Datasource des Noten Trees
var lehrveranstaltungLvGesamtNotenSelectUID=null; //LehreinheitID des Noten Eintrages der nach dem Refresh markiert werden soll
// ********** Observer und Listener ************* //
@@ -132,6 +136,74 @@ var LeDetailLehrfachSinkObserver =
}
};
// ****
// * Observer fuer Noten Tree
// * startet Rebuild nachdem das Refresh
// * der datasource fertig ist
// ****
var LehrveranstaltungNotenTreeSinkObserver =
{
onBeginLoad : function(pSink) {},
onInterrupt : function(pSink) {},
onResume : function(pSink) {},
onError : function(pSink, pStatus, pError) {},
onEndLoad : function(pSink)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
document.getElementById('lehrveranstaltung-noten-tree').builder.rebuild();
}
};
// ****
// * Nach dem Rebuild wird der Eintrag wieder
// * markiert
// ****
var LehrveranstaltungNotenTreeListener =
{
willRebuild : function(builder) { },
didRebuild : function(builder)
{
//timeout nur bei Mozilla notwendig da sonst die rows
//noch keine values haben. Ab Seamonkey funktionierts auch
//ohne dem setTimeout
window.setTimeout(LehrveranstaltungNotenTreeSelectID,10);
}
};
// ****
// * Observer fuer LvGesamtNoten Tree
// * startet Rebuild nachdem das Refresh
// * der datasource fertig ist
// ****
var LehrveranstaltungLvGesamtNotenTreeSinkObserver =
{
onBeginLoad : function(pSink) {},
onInterrupt : function(pSink) {},
onResume : function(pSink) {},
onError : function(pSink, pStatus, pError) {},
onEndLoad : function(pSink)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
document.getElementById('lehrveranstaltung-lvgesamtnoten-tree').builder.rebuild();
}
};
// ****
// * Nach dem Rebuild wird der Eintrag wieder
// * markiert
// ****
var LehrveranstaltungLvGesamtNotenTreeListener =
{
willRebuild : function(builder) { },
didRebuild : function(builder)
{
//timeout nur bei Mozilla notwendig da sonst die rows
//noch keine values haben. Ab Seamonkey funktionierts auch
//ohne dem setTimeout
window.setTimeout(LehrveranstaltungLvGesamtNotenTreeSelectID,10);
}
};
// ***************** KEY Events ************************* //
// ****
@@ -559,6 +631,9 @@ function LeAuswahl()
//Ausgewaehlte Lehreinheit holen
var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-lehreinheit_id"] : "lehrveranstaltung-treecol-lehreinheit_id";
var lehreinheit_id=tree.view.getCellText(tree.currentIndex,col);
var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-lehrveranstaltung_id"] : "lehrveranstaltung-treecol-lehrveranstaltung_id";
var lehrveranstaltung_id=tree.view.getCellText(tree.currentIndex,col);
if(lehreinheit_id=='')
{
//Lehrveranstaltung wurde markiert
@@ -566,6 +641,12 @@ function LeAuswahl()
document.getElementById('lehrveranstaltung-toolbar-neu').disabled=false;
document.getElementById('lehrveranstaltung-toolbar-del').disabled=true;
//Noten Tab aktivieren
LehrveranstaltungNotenDisableFields(false);
//Noten Laden
LehrveranstaltungNotenLoad(lehrveranstaltung_id);
LeDetailDisableFields(true);
//Details zuruecksetzen
LeDetailReset();
@@ -574,6 +655,8 @@ function LeAuswahl()
else
{
LeDetailDisableFields(false);
LehrveranstaltungNotenDisableFields(true);
document.getElementById('lehrveranstaltung-toolbar-neu').disabled=true;
document.getElementById('lehrveranstaltung-toolbar-del').disabled=false;
}
@@ -687,6 +770,13 @@ function LeAuswahl()
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
lektortree.builder.rebuild();
try
{
lektortree.builder.removeListener(LvLektorTreeListener);
}
catch(e)
{}
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
LeDetailLektorDatasource = rdfService.GetDataSource(url);
@@ -715,7 +805,7 @@ function LeAuswahl()
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
gruppentree.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
LeDetailGruppeDatasource = rdfService.GetDataSource(url);
LeDetailGruppeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
@@ -1039,3 +1129,380 @@ function LeDetailGruppeTreeRefresh()
debug(e);
}
}
// ****************** NOTEN ****************** //
// ****
// * De-/Aktiviert die Noten Felder
// ****
function LehrveranstaltungNotenDisableFields(val)
{
document.getElementById('lehrveranstaltung-note-copy').disabled=val;
document.getElementById('lehrveranstaltung-noten-button-import').disabled=val;
if(val)
LehrveranstaltungNotenDetailDisableFields(val);
}
// ****
// * De-/Aktiviert die Noten Detail Felder
// ****
function LehrveranstaltungNotenDetailDisableFields(val)
{
document.getElementById('lehrveranstaltung-noten-button-speichern').disabled=val;
document.getElementById('lehrveranstaltung-noten-menulist-note').disabled=val;
}
// ****
// * Laedt die Notentrees
// ****
function LehrveranstaltungNotenLoad(lehrveranstaltung_id)
{
// *** ZeugnisNoten ***
notentree = document.getElementById('lehrveranstaltung-noten-tree');
url='<?php echo APP_ROOT;?>rdf/zeugnisnote.rdf.php?lehrveranstaltung_id='+lehrveranstaltung_id+"&"+gettimestamp();
//Alte DS entfernen
var oldDatasources = notentree.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
notentree.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
notentree.builder.rebuild();
try
{
LehrveranstaltungNotenTreeDatasource.removeXMLSinkObserver(LehrveranstaltungNotenTreeSinkObserver);
notentree.builder.removeListener(LehrveranstaltungNotenTreeListener);
}
catch(e)
{}
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
LehrveranstaltungNotenTreeDatasource = rdfService.GetDataSource(url);
LehrveranstaltungNotenTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
LehrveranstaltungNotenTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
notentree.database.AddDataSource(LehrveranstaltungNotenTreeDatasource);
LehrveranstaltungNotenTreeDatasource.addXMLSinkObserver(LehrveranstaltungNotenTreeSinkObserver);
notentree.builder.addListener(LehrveranstaltungNotenTreeListener);
// *** LvGesamtNoten ***
var lvgesamtnotentree = document.getElementById('lehrveranstaltung-lvgesamtnoten-tree');
url='<?php echo APP_ROOT;?>rdf/lvgesamtnote.rdf.php?lehrveranstaltung_id='+lehrveranstaltung_id+"&"+gettimestamp();
//Alte DS entfernen
var oldDatasources = lvgesamtnotentree.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
lvgesamtnotentree.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
lvgesamtnotentree.builder.rebuild();
try
{
LehrveranstaltungLvGesamtNotenTreeDatasource.removeXMLSinkObserver(LehrveranstaltungLvGesamtNotenTreeSinkObserver);
lvgesamtnotentree.builder.removeListener(LehrveranstaltungLvGesamtNotenTreeListener);
}
catch(e)
{}
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
LehrveranstaltungLvGesamtNotenTreeDatasource = rdfService.GetDataSource(url);
LehrveranstaltungLvGesamtNotenTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
LehrveranstaltungLvGesamtNotenTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
lvgesamtnotentree.database.AddDataSource(LehrveranstaltungLvGesamtNotenTreeDatasource);
LehrveranstaltungLvGesamtNotenTreeDatasource.addXMLSinkObserver(LehrveranstaltungLvGesamtNotenTreeSinkObserver);
lvgesamtnotentree.builder.addListener(LehrveranstaltungLvGesamtNotenTreeListener);
}
// ****
// * Markiert einen Eintrag im LVGesamtNotenTree
// ****
function LehrveranstaltungLvGesamtNotenTreeSelectID()
{
var tree=document.getElementById('lehrveranstaltung-lvgesamtnoten-tree');
if(tree.view)
var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln
else
return false;
//In der globalen Variable ist die zu selektierende Eintrag gespeichert
if(lehrveranstaltungLvGesamtNotenSelectUID!=null)
{
for(var i=0;i<items;i++)
{
//ID der row holen
col = tree.columns ? tree.columns["lehrveranstaltung-lvgesamtnoten-tree-student_uid"] : "lehrveranstaltung-lvgesamtnoten-tree-student_uid";
var uid=tree.view.getCellText(i,col);
//wenn dies die zu selektierende Zeile ist
if(uid == lehrveranstaltungLvGesamtNotenSelectUID)
{
//Zeile markieren
tree.view.selection.select(i);
//Sicherstellen, dass die Zeile im sichtbaren Bereich liegt
tree.treeBoxObject.ensureRowIsVisible(i);
LehrveranstaltungNotenSelectUID=null;
return true;
}
}
}
}
// ****
// * Markiert einen Eintrag im ZeugnisnotenTree
// ****
function LehrveranstaltungNotenTreeSelectID()
{
var tree=document.getElementById('lehrveranstaltung-noten-tree');
if(tree.view)
var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln
else
return false;
//In der globalen Variable ist die zu selektierende Eintrag gespeichert
if(lehrveranstaltungNotenSelectUID!=null)
{
for(var i=0;i<items;i++)
{
//ID der row holen
col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-student_uid"] : "lehrveranstaltung-noten-tree-student_uid";
var uid=tree.view.getCellText(i,col);
//wenn dies die zu selektierende Zeile
if(uid == lehrveranstaltungNotenSelectUID)
{
//Zeile markieren
tree.view.selection.select(i);
//Sicherstellen, dass die Zeile im sichtbaren Bereich liegt
tree.treeBoxObject.ensureRowIsVisible(i);
LehrveranstaltungNotenSelectUID=null;
return true;
}
}
}
}
// ****
// * Uebernimmt die Noten der Lektoren fuer die Zeugnisnote
// ****
function LehrveranstaltungNotenMove()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tree = document.getElementById('lehrveranstaltung-lvgesamtnoten-tree');
var start = new Object();
var end = new Object();
var numRanges = tree.view.selection.getRangeCount();
var paramList= '';
var i = 0;
var url = '<?php echo APP_ROOT ?>content/student/studentDBDML.php';
var req = new phpRequest(url,'','');
req.add('type', 'movenote');
for (var t = 0; t < numRanges; t++)
{
tree.view.selection.getRangeAt(t,start,end);
for (var v = start.value; v <= end.value; v++)
{
col = tree.columns ? tree.columns["lehrveranstaltung-lvgesamtnoten-tree-lehrveranstaltung_id"] : "lehrveranstaltung-lvgesamtnoten-tree-lehrveranstaltung_id";
lehrveranstaltung_id = tree.view.getCellText(v,col);
col = tree.columns ? tree.columns["lehrveranstaltung-lvgesamtnoten-tree-student_uid"] : "lehrveranstaltung-lvgesamtnoten-tree-student_uid";
student_uid = tree.view.getCellText(v,col);
col = tree.columns ? tree.columns["lehrveranstaltung-lvgesamtnoten-tree-studiensemester_kurzbz"] : "lehrveranstaltung-lvgesamtnoten-tree-studiensemester_kurzbz";
studiensemester_kurzbz = tree.view.getCellText(v,col);
req.add('lehrveranstaltung_id_'+i, lehrveranstaltung_id);
req.add('student_uid_'+i, student_uid);
req.add('studiensemester_kurzbz_'+i, studiensemester_kurzbz);
i++;
}
}
req.add('anzahl', i);
var response = req.executePOST();
var val = new ParseReturnValue(response)
if (!val.dbdml_return)
{
if(val.dbdml_errormsg=='')
alert(response)
else
alert(val.dbdml_errormsg)
}
else
{
LehrveranstaltungNotenTreeDatasource.Refresh(false); //non blocking
SetStatusBarText('Daten wurden gespeichert');
LehrveranstaltungNotenDetailDisableFields(true);
}
}
// ****
// * Speichert die Noten
// ****
function LehrveranstaltungNoteSpeichern()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tree = document.getElementById('lehrveranstaltung-noten-tree');
if (tree.currentIndex==-1)
{
alert('Speichern nicht moeglich! Es muss eine Note im Tree ausgewaehlt sein');
return;
}
//Ausgewaehlte Nr holen
var col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-lehrveranstaltung_id"] : "lehrveranstaltung-noten-tree-lehrveranstaltung_id";
var lehrveranstaltung_id=tree.view.getCellText(tree.currentIndex,col);
var col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-student_uid"] : "lehrveranstaltung-noten-tree-student_uid";
var student_uid=tree.view.getCellText(tree.currentIndex,col);
var col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-studiensemester_kurzbz"] : "lehrveranstaltung-noten-tree-studiensemester_kurzbz";
var studiensemester_kurzbz=tree.view.getCellText(tree.currentIndex,col);
note = document.getElementById('lehrveranstaltung-noten-menulist-note').value;
var url = '<?php echo APP_ROOT ?>content/student/studentDBDML.php';
var req = new phpRequest(url,'','');
req.add('type', 'savenote');
req.add('lehrveranstaltung_id', lehrveranstaltung_id);
req.add('student_uid', student_uid);
req.add('studiensemester_kurzbz', studiensemester_kurzbz);
req.add('note', note);
var response = req.executePOST();
var val = new ParseReturnValue(response)
if (!val.dbdml_return)
{
if(val.dbdml_errormsg=='')
alert(response)
else
alert(val.dbdml_errormsg)
}
else
{
LehrveranstaltungLvGesamtNotenSelectUID=student_uid;
LehrveranstaltungNotenTreeDatasource.Refresh(false); //non blocking
SetStatusBarText('Daten wurden gespeichert');
LehrveranstaltungNotenDetailDisableFields(true);
}
}
// ***
// * Nach dem Auswaehlen einer Note kann diese veraendert werden
// ***
function LehrveranstaltungNotenAuswahl()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tree = document.getElementById('lehrveranstaltung-noten-tree');
if (tree.currentIndex==-1) return;
LehrveranstaltungNotenDetailDisableFields(false);
//Ausgewaehlte Nr holen
var col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-lehrveranstaltung_id"] : "lehrveranstaltung-noten-tree-lehrveranstaltung_id";
var lehrveranstaltung_id=tree.view.getCellText(tree.currentIndex,col);
var col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-student_uid"] : "lehrveranstaltung-noten-tree-student_uid";
var student_uid=tree.view.getCellText(tree.currentIndex,col);
var col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-studiensemester_kurzbz"] : "lehrveranstaltung-noten-tree-studiensemester_kurzbz";
var studiensemester_kurzbz=tree.view.getCellText(tree.currentIndex,col);
//Daten holen
var url = '<?php echo APP_ROOT ?>rdf/zeugnisnote.rdf.php?lehrveranstaltung_id='+lehrveranstaltung_id+'&uid='+student_uid+'&studiensemester_kurzbz='+studiensemester_kurzbz+'&'+gettimestamp();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
getService(Components.interfaces.nsIRDFService);
var dsource = rdfService.GetDataSourceBlocking(url);
var subject = rdfService.GetResource("http://www.technikum-wien.at/zeugnisnote/" + lehrveranstaltung_id+'/'+student_uid+'/'+studiensemester_kurzbz);
var predicateNS = "http://www.technikum-wien.at/zeugnisnote/rdf";
//Daten holen
note = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#note" ));
if(note=='')
note='9';
document.getElementById('lehrveranstaltung-noten-menulist-note').value=note;
}
// ****
// * Importiert Note aus der Zwischenablage
// * Die Daten in der Zwischenablage sind im Format
// * Matrikelnummer[Tabulator]Note
// ****
function LehrveranstaltungNotenImport()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var data = getDataFromClipboard();
var tree=document.getElementById('lehrveranstaltung-tree');
if (tree.currentIndex==-1)
{
alert("Bitte zuerst eine Lehrveranstaltung auswaehlen");
return false;
}
var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-lehrveranstaltung_id"] : "lehrveranstaltung-treecol-lehrveranstaltung_id";
var lehrveranstaltung_id=tree.view.getCellText(tree.currentIndex,col);
if(lehrveranstaltung_id=='')
{
alert("Bitte zuerst eine Lehrveranstaltung auswaehlen");
return false;
}
var url = '<?php echo APP_ROOT ?>content/student/studentDBDML.php';
var req = new phpRequest(url,'','');
req.add('type', 'importnoten');
req.add('lehrveranstaltung_id', lehrveranstaltung_id);
//Reihen ermitteln
var rows = data.split("\n");
var i=0;
for(row in rows)
{
zeile = rows[row].split(" ");
req.add('matrikelnummer_'+i, zeile[0]);
req.add('note_'+i, zeile[1]);
i++;
}
req.add('anzahl', i);
var response = req.executePOST();
var val = new ParseReturnValue(response)
if (!val.dbdml_return)
{
if(val.dbdml_errormsg=='')
alert(response)
else
alert(val.dbdml_errormsg)
}
else
{
LehrveranstaltungNotenTreeDatasource.Refresh(false); //non blocking
SetStatusBarText('Daten wurden gespeichert');
}
}
+79 -2
View File
@@ -1170,8 +1170,8 @@ if(!$error)
for($i=0;$i<$_POST['anzahl'];$i++)
{
$lvgesamtnote = new lvgesamtnote($conn);
$zeugnisnote = new zeugnisnote($conn);
$lvgesamtnote = new lvgesamtnote($conn, null, true);
$zeugnisnote = new zeugnisnote($conn, null, true);
if($lvgesamtnote->load($_POST['lehrveranstaltung_id_'.$i], $_POST['student_uid_'.$i], $_POST['studiensemester_kurzbz_'.$i]))
{
@@ -1211,6 +1211,83 @@ if(!$error)
else
$return = false;
}
elseif(isset($_POST['type']) && $_POST['type']=='importnoten')
{
//Importiert die Noten einer Lehrveranstaltung
//als Parameter wird die Matrikelnummer und die Note uebergeben
//Die Felder sind durchnummeriert zB matrikelnummer_0, matrikelnummer_1, ...
//Die Anzahl der Gesamten Daten wird auch als Parameter uebergeben
$errormsg = '';
for($i=0;$i<$_POST['anzahl'];$i++)
{
if($_POST['matrikelnummer_'.$i]!='')
{
$zeugnisnote = new zeugnisnote($conn, null, true);
$error = false;
if(!is_numeric($_POST['matrikelnummer_'.$i]) || !is_numeric($_POST['note_'.$i]))
{
$error = true;
$errormsg = "\nMatrikelnummer oder Note ist ungueltig: ".$_POST['matrikelnummer_'.$i].' - '.$_POST['note_'.$i];
}
if(!$error)
{
$qry = "SELECT student_uid FROM public.tbl_student WHERE matrikelnr='".$_POST['matrikelnummer_'.$i]."'";
if($result = pg_query($conn, $qry))
{
if($row = pg_fetch_object($result))
{
$uid = $row->student_uid;
}
else
{
$error = true;
$errormsg.="\nMatrikelnummer ".$_POST['matrikelnummer_'.$i]." wurde nicht gefunden";
}
}
else
{
$error = true;
$errormsg.="\nFehler beim ermitteln der UID";
}
if(!$error)
{
if($zeugnisnote->load($_POST['lehrveranstaltung_id'], $uid, $semester_aktuell))
{
$zeugnisnote->new = false;
$zeugnisnote->updateamum = date('Y-m-d H:i:s');
$zeugnisnote->updatevon = $user;
}
else
{
$zeugnisnote->new = true;
$zeugnisnote->insertamum = date('Y-m-d H:i:s');
$zeugnisnote->insertvon = $user;
$zeugnisnote->lehrveranstaltung_id = $_POST['lehrveranstaltung_id'];
$zeugnisnote->student_uid = $uid;
$zeugnisnote->studiensemester_kurzbz = $semester_aktuell;
}
$zeugnisnote->note = $_POST['note_'.$i];
$zeugnisnote->uebernahmedatum = date('Y-m-d H:i:s');
$zeugnisnote->benotungsdatum = date('Y-m-d H:i:s');
if(!$zeugnisnote->save())
{
$errormsg .= "\n".$zeugnisnote->errormsg;
}
}
}
}
}
if($errormsg=='')
$return = true;
else
$return = false;
}
else
{
$return = false;
+77 -16
View File
@@ -864,6 +864,14 @@ function StudentAuswahl()
//Refresh damit die entfernten DS auch wirklich entfernt werden
kontotree.builder.rebuild();
try
{
StudentKontoTreeDatasource.removeXMLSinkObserver(StudentKontoTreeSinkObserver);
kontotree.builder.removeListener(StudentKontoTreeListener);
}
catch(e)
{}
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
StudentKontoTreeDatasource = rdfService.GetDataSource(url);
StudentKontoTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
@@ -902,6 +910,14 @@ function StudentAuswahl()
//Refresh damit die entfernten DS auch wirklich entfernt werden
betriebsmitteltree.builder.rebuild();
try
{
StudentBetriebsmittelTreeDatasource.removeXMLSinkObserver(StudentBetriebsmittelTreeSinkObserver);
betriebsmitteltree.builder.removeListener(StudentBetriebsmittelTreeListener);
}
catch(e)
{}
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
StudentBetriebsmittelTreeDatasource = rdfService.GetDataSource(url);
StudentBetriebsmittelTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
@@ -924,6 +940,14 @@ function StudentAuswahl()
//Refresh damit die entfernten DS auch wirklich entfernt werden
bisiotree.builder.rebuild();
try
{
StudentIOTreeDatasource.removeXMLSinkObserver(StudentIOTreeSinkObserver);
bisiotree.builder.removeListener(StudentIOTreeListener);
}
catch(e)
{}
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
StudentIOTreeDatasource = rdfService.GetDataSource(url);
StudentIOTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
@@ -932,7 +956,7 @@ function StudentAuswahl()
StudentIOTreeDatasource.addXMLSinkObserver(StudentIOTreeSinkObserver);
bisiotree.builder.addListener(StudentIOTreeListener);
// *** Noten ***
// *** ZeugnisNoten ***
notentree = document.getElementById('student-noten-tree');
url='<?php echo APP_ROOT;?>rdf/zeugnisnote.rdf.php?uid='+uid+"&"+gettimestamp();
@@ -946,6 +970,14 @@ function StudentAuswahl()
//Refresh damit die entfernten DS auch wirklich entfernt werden
notentree.builder.rebuild();
try
{
StudentNotenTreeDatasource.removeXMLSinkObserver(StudentNotenTreeSinkObserver);
notentree.builder.removeListener(StudentNotenTreeListener);
}
catch(e)
{}
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
StudentNotenTreeDatasource = rdfService.GetDataSource(url);
StudentNotenTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
@@ -954,7 +986,7 @@ function StudentAuswahl()
StudentNotenTreeDatasource.addXMLSinkObserver(StudentNotenTreeSinkObserver);
notentree.builder.addListener(StudentNotenTreeListener);
// *** Noten ***
// *** LvGesamtNoten ***
lvgesamtnotentree = document.getElementById('student-lvgesamtnoten-tree');
url='<?php echo APP_ROOT;?>rdf/lvgesamtnote.rdf.php?uid='+uid+"&"+gettimestamp();
@@ -968,6 +1000,14 @@ function StudentAuswahl()
//Refresh damit die entfernten DS auch wirklich entfernt werden
lvgesamtnotentree.builder.rebuild();
try
{
StudentLvGesamtNotenTreeDatasource.removeXMLSinkObserver(StudentLvGesamtNotenTreeSinkObserver);
lvgesamtnotentree.builder.removeListener(StudentLvGesamtNotenTreeListener);
}
catch(e)
{}
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
StudentLvGesamtNotenTreeDatasource = rdfService.GetDataSource(url);
StudentLvGesamtNotenTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
@@ -1362,6 +1402,14 @@ function StudentKontoFilter()
StudentKontoSelectBuchung = buchungsnr;
try
{
StudentKontoTreeDatasource.removeXMLSinkObserver(StudentKontoTreeSinkObserver);
kontotree.builder.removeListener(StudentKontoTreeListener);
}
catch(e)
{}
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
StudentKontoTreeDatasource = rdfService.GetDataSource(url);
StudentKontoTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
@@ -1632,28 +1680,41 @@ function StudentKontoZahlungsbestaetigung()
// *********** Zeugnis *****************
// ****
// * Erstellt das Zeugnis fuer einen oder mehrere Studenten
// ****
function StudentCreateZeugnis()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
tree = document.getElementById('student-tree');
if (tree.currentIndex==-1) return;
//Markierte Studenten holen
var start = new Object();
var end = new Object();
var numRanges = tree.view.selection.getRangeCount();
var paramList= '';
//Ausgewaehlte UID holen
var col = tree.columns ? tree.columns["student-treecol-uid"] : "student-treecol-uid";
var uid=tree.view.getCellText(tree.currentIndex,col);
for (var t = 0; t < numRanges; t++)
{
tree.view.selection.getRangeAt(t,start,end);
for (var v = start.value; v <= end.value; v++)
{
if(!tree.view.getParentIndex(v))
{
alert('Zum Drucken der Bestaetigung bitte die oberste Buchung waehlen');
return false;
}
var col = tree.columns ? tree.columns["student-treecol-uid"] : "student-treecol-uid";
var uid=tree.view.getCellText(v,col);
paramList += ';'+uid;
}
}
//Studiensemester holen
var ss = getStudiensemester();
//Studiengang holen
var tree_lvb = document.getElementById('tree-verband');
col = tree_lvb.columns ? tree_lvb.columns["stg_kz"] : "stg_kz";
studiengang_kz=tree_lvb.view.getCellText(tree_lvb.currentIndex,col);
col = tree_lvb.columns ? tree_lvb.columns["sem"] : "sem";
semester=tree_lvb.view.getCellText(tree_lvb.currentIndex,col);
window.open('<?php echo APP_ROOT; ?>content/student/zeugnis.php?uid='+uid+'&studiengang_kz='+studiengang_kz+'&semester='+semester,'Zeugnis', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes');
//PDF erzeugen
window.open('<?php echo APP_ROOT; ?>content/pdfExport.php?xml=zeugnisnote.rdf.php&xsl=Zeugnis&uid='+paramList+'&ss='+ss,'Zeugnis', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes');
}
// ****
+1 -1
View File
@@ -12,7 +12,7 @@ function get_uid()
{
return strtolower(trim($_SERVER['REMOTE_USER']));
// fuer Testzwecke
//return 'pam';
//return 'weisss';
}
function crlf()