- Lehrveranstaltungssyncro prüft nun die FKs der Lehreinheiten

- Erweiterungen Tempus-Lehrveranstaltungen
This commit is contained in:
Andreas Österreicher
2007-03-02 13:55:17 +00:00
parent 7a6c656090
commit ee9b937d63
5 changed files with 234 additions and 28 deletions
@@ -18,6 +18,7 @@
$insert_error=0;
$double_error=0;
$double_lva_error=0;
$missing_lva=0;
$anz_update=0;
$anz_insert=0;
$headtext='';
@@ -166,6 +167,16 @@
{
$studiensemester[$row->studiensemester_pk]=$row->stsem;
}
// Lehreinheiten ohne Lehrveranstaltung suchen
$qry = "SELECT bezeichnung, semester, kennzahl, studiensemester_fk FROM lehreinheit, studiengang, ausbildungssemester WHERE ausbildungssemester_fk=ausbildungssemester_pk AND lehreinheit.studiengang_fk=studiengang_pk AND lehrveranstaltung_fk NOT IN(SELECT lehrveranstaltung_pk FROM lehrveranstaltung)";
$result = pg_query($conn_fas, $qry);
while($row = pg_fetch_object($result))
{
$stg_data[$row->kennzahl]['text'] .= ' Lehreinheit '.$stg_data[$row->kennzahl]['kuerzel'].' '.$row->semester.' ('.$studiensemester[$row->studiensemester_fk].') '.$row->bezeichnung." hat keine zugehoerige Lehrveranstaltung\n";
$missing_lva++;
}
// Anzahl der Lehrveranstaltungen in VileSci
$sql_query="SELECT count(*) AS anz FROM lehre.tbl_lehrveranstaltung";
$result=pg_query($conn, $sql_query);
@@ -389,6 +400,7 @@
$headtext.="$double_lva_error Lehrveranstaltungen kommen in VileSci mehrmals vor!\n";
$headtext.="$anz_update LVAs wurden aktualisiert.\n";
$headtext.="$anz_insert LVAs wurden neu angelegt.\n";
$headtext.="$missing_lva Lehreinheiten haben keine LV.\n";
$qry = "Select count(*) as anzahl FROM (SELECT distinct lv1.lehrveranstaltung_pk
FROM lehrveranstaltung lv1, lehrveranstaltung lv2
@@ -407,7 +419,7 @@
if(count($double_lva)>0)
{
$headtext.="Doppelte Lehrveranstaltungen:\n\n";
$headtext.="\nDoppelte Lehrveranstaltungen:\n\n";
foreach ($double_lva as $bez)
$headtext.=$bez."\n";
}
+12
View File
@@ -8,6 +8,7 @@ require_once('../vilesci/config.inc.php');
require_once('../include/functions.inc.php');
require_once('../include/lehreinheit.class.php');
require_once('../include/lehreinheitmitarbeiter.class.php');
require_once('../include/lehreinheitgruppe.class.php');
require_once('../include/benutzerberechtigung.class.php');
$user = get_uid();
@@ -67,6 +68,17 @@ if(isset($_POST['type']) && $_POST['type']=='lehreinheit_mitarbeiter_add')
else
echo $lem->errormsg;
}
elseif(isset($_POST['type']) && $_POST['type']=='lehreinheit_gruppe_del')
{
if(isset($_POST['lehreinheitgruppe_id']) && is_numeric($_POST['lehreinheitgruppe_id']))
{
$leg = new lehreinheitgruppe($conn);
if($leg->delete($_POST['lehreinheitgruppe_id']))
echo 'ok';
else
echo $leg->errormsg;
}
}
else
{
if ($_POST['do']=='create' || ($_POST['do']=='update'))
+26 -21
View File
@@ -14,13 +14,17 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/lfvt.css\" type=\"text/css\" ?
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
>
<popupset>
<popup id="lfvt_detail_gruppe_tree_popup">
<menuitem label="Entfernen" oncommand="lfvt_LehreinheitGruppeDel();" />
</popup>
</popupset>
<!-- *************************** LEHREINHEIT DETAILS ************************* -->
<vbox id="lfvt-detail" class="lvaDetail" style="margin:0px;" >
<hbox style="background:#eeeeee;margin:0px;padding:2px">
<label value="Details" style="font-size:12pt;font-weight:bold;margin-top:5px;" flex="1" />
<spacer flex="1" />
<button id="btnLFVTSave" label="speichern" oncommand="lfvtDetailSave();"/>
<button id="lfvt_detail_button_save" label="speichern" oncommand="lfvtDetailSave();" disabled="true"/>
</hbox>
<checkbox id="lfvt_detail_checkbox_new" hidden="true"/>
<textbox id="lfvt_detail_textbox_lehreinheit_id" hidden="true"/>
@@ -38,16 +42,16 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/lfvt.css\" type=\"text/css\" ?
<!-- fehlt hier die eindeutige ID ? -->
<row >
<label value="LVNR" />
<textbox id="lfvt_detail_textbox_lvnr" maxlength="20" />
<textbox id="lfvt_detail_textbox_lvnr" maxlength="20" disabled="true" />
<label value="UNR" />
<textbox id="lfvt_detail_textbox_unr"/>
<textbox id="lfvt_detail_textbox_unr" disabled="true"/>
</row>
<row>
<label value="Sprache" />
<menulist id="lfvt_detail_menulist_sprache"
datasources="<?php echo APP_ROOT; ?>rdf/sprache.rdf.php" flex="1"
ref="http://www.technikum-wien.at/sprachen/liste">
ref="http://www.technikum-wien.at/sprachen/liste" disabled="true">
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/sprachen/rdf#bezeichnung"
@@ -61,7 +65,7 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/lfvt.css\" type=\"text/css\" ?
</row>
<row>
<label value="Lehrfach" />
<menulist id="lfvt_detail_menulist_lehrfach"
<menulist id="lfvt_detail_menulist_lehrfach" disabled="true"
datasources="rdf:null" flex="1"
ref="http://www.technikum-wien.at/lehrfach/liste" >
<template>
@@ -74,7 +78,7 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/lfvt.css\" type=\"text/css\" ?
</menulist>
<label value="Lehrform" />
<menulist id="lfvt_detail_menulist_lehrform"
<menulist id="lfvt_detail_menulist_lehrform" disabled="true"
datasources="<?php echo APP_ROOT ?>rdf/lehrform.rdf.php" flex="1"
ref="http://www.technikum-wien.at/lehrform/liste" >
<template>
@@ -88,7 +92,7 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/lfvt.css\" type=\"text/css\" ?
</row>
<row>
<label value="Raumtyp" />
<menulist id="lfvt_detail_menulist_raumtyp"
<menulist id="lfvt_detail_menulist_raumtyp" disabled="true"
datasources="<?php echo APP_ROOT ?>rdf/raumtyp.rdf.php" flex="1"
ref="http://www.technikum-wien.at/raumtyp/liste" >
<template>
@@ -101,7 +105,7 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/lfvt.css\" type=\"text/css\" ?
</menulist>
<label value="Raumtyp alternativ" />
<menulist id="lfvt_detail_menulist_raumtypalternativ"
<menulist id="lfvt_detail_menulist_raumtypalternativ" disabled="true"
datasources="<?php echo APP_ROOT ?>rdf/raumtyp.rdf.php" flex="1"
ref="http://www.technikum-wien.at/raumtyp/liste" >
<template>
@@ -115,22 +119,22 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/lfvt.css\" type=\"text/css\" ?
</row>
<row>
<label value="Lehre" />
<checkbox id="lfvt_detail_checkbox_lehre" />
<checkbox id="lfvt_detail_checkbox_lehre" disabled="true"/>
<label value="Stundenblockung" />
<textbox id="lfvt_detail_textbox_stundenblockung" />
<textbox id="lfvt_detail_textbox_stundenblockung" disabled="true" />
</row>
<row>
<label value="Wochenrythmus" />
<textbox id="lfvt_detail_textbox_wochenrythmus" />
<textbox id="lfvt_detail_textbox_wochenrythmus" disabled="true"/>
<label value="Start KW" />
<textbox id="lfvt_detail_textbox_startkw" />
<textbox id="lfvt_detail_textbox_startkw" disabled="true"/>
</row>
<row>
<label value="Studiensemester" />
<vbox>
<menulist id="lfvt_detail_menulist_studiensemester"
<menulist id="lfvt_detail_menulist_studiensemester" disabled="true"
datasources="<?php echo APP_ROOT ?>rdf/studiensemester.rdf.php" flex="0"
ref="http://www.technikum-wien.at/studiensemester/liste" >
<template>
@@ -144,18 +148,19 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/lfvt.css\" type=\"text/css\" ?
<spacer flex="1"/>
</vbox>
<label value="Anmerkung" />
<textbox id="lfvt_detail_textbox_anmerkung" rows="2" multiline="true" />
<textbox id="lfvt_detail_textbox_anmerkung" rows="2" multiline="true" disabled="true"/>
</row>
<row>
<!-- ************* GRUPPEN ************** -->
<label value="Gruppen" />
<vbox height="150" flex="1">
<hbox flex="1">
<tree id="lfvt_detail_tree_lehreinheitgruppe" seltype="single" hidecolumnpicker="false" flex="1"
<tree id="lfvt_detail_tree_lehreinheitgruppe" seltype="single" hidecolumnpicker="false" flex="1" disabled="true"
datasources="rdf:null"
ref="http://www.technikum-wien.at/lehreinheitgruppe/liste"
onselect="lfvt_LehreinheitGruppeAuswahl();" flags="dont-build-content"
flags="dont-build-content"
style="border: 1px solid black;"
contextmenu="lfvt_detail_gruppe_tree_popup"
>
<treecols>
<treecol id="lfvt_detail_tree_lehreinheitgruppe-col-bezeichnung" label="Bezeichnung" flex="2" hidden="false"
@@ -183,8 +188,8 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/lfvt.css\" type=\"text/css\" ?
</hbox>
<hbox>
<button label="+" oncommand="lfvt_LehreinheitGruppeAdd()" style="max-width: 30px;"/>
<button label="-" oncommand="lfvt_LehreinheitGruppeDel()" style="max-width: 30px;"/>
<button label="+" id="lfvt_detail_gruppe_button_add" oncommand="lfvt_LehreinheitGruppeAdd()" style="max-width: 30px;" disabled="true"/>
<!--<button label="-" id="lfvt_detail_gruppe_button_del" oncommand="lfvt_LehreinheitGruppeDel()" style="max-width: 30px;" disabled="true"/>-->
</hbox>
</vbox>
@@ -242,8 +247,8 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/lfvt.css\" type=\"text/css\" ?
</hbox>
<hbox>
<button label="+" oncommand="lfvt_LehreinheitMitarbeiterAdd()" style="max-width: 30px;"/>
<button label="-" oncommand="lfvt_LehreinheitMitarbeiterDel()" style="max-width: 30px;"/>
<button label="+" id="lfvt_lehreinheitmitarbeiter_button_add" oncommand="lfvt_LehreinheitMitarbeiterAdd()" style="max-width: 30px;" disabled="true"/>
<button label="-" id="lfvt_lehreinheitmitarbeiter_button_del" oncommand="lfvt_LehreinheitMitarbeiterDel()" style="max-width: 30px;" disabled="true"/>
</hbox>
</vbox>
+141 -6
View File
@@ -1,5 +1,11 @@
<?php
require_once('../vilesci/config.inc.php');
require_once('../include/functions.inc.php');
$conn = pg_pconnect(CONN_STRING);
$user = get_uid();
loadVariables($conn, $user);
?>
var lfvt_detail_lehrfach_id;
@@ -20,11 +26,22 @@ function listElementHandlers(aObj)
dump(list+'\n');
}
function lfvt_tree_refresh()
{
var tree = document.getElementById('treeLFVT');
tree.builder.refresh();
}
// ****
// * neue Lehreinheit anlegen
// ****
function lvaNeu()
{
lfvtDetailDisableFields(false);
// Trick 17 (sonst gibt's ein Permission denied)
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tree = document.getElementById('treeLFVT');
var lvaDetail=document.getElementById('lvaDetail');
//Details zuruecksetzen
@@ -33,6 +50,34 @@ function lvaNeu()
var col = tree.columns ? tree.columns["lva_lehrveranstaltung_id"] : "lva_lehrveranstaltung_id";
var lehrveranstaltung_id=tree.view.getCellText(tree.currentIndex,col);
//Lehrfach drop down setzen
//ID in globale Variable speichern
lfvt_detail_lehrfach_id='';
lehrfachmenulist = document.getElementById('lfvt_detail_menulist_lehrfach');
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
//Entfernen der alten Datasources
var oldDatasources = lehrfachmenulist.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
lehrfachmenulist.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
lehrfachmenulist.builder.refresh();
//Url zusammenbauen
var url = '<?php echo APP_ROOT;?>rdf/lehrfach.rdf.php?lehrveranstaltung_id='+lehrveranstaltung_id+'&'+gettimestamp();
//RDF holen
var newDs = rdfService.GetDataSource(url);
lehrfachmenulist.database.AddDataSource(newDs);
//SinkObserver hinzufuegen
var sink = newDs.QueryInterface(Components.interfaces.nsIRDFXMLSink);
sink.addXMLSinkObserver(lfvt_detail_lehrfach_observer);
document.getElementById('lfvt_detail_textbox_lehrveranstaltung').value=lehrveranstaltung_id;
document.getElementById('lfvt_detail_checkbox_new').checked=true;
}
@@ -70,7 +115,7 @@ function lvaDelete()
if (response!='ok')
alert(response);
tree.builder.rebuild();
lfvt_tree_refresh();
lfvtDetailReset();
}
}
@@ -111,13 +156,36 @@ function lfvtDetailReset()
document.getElementById('lfvt_detail_textbox_startkw').value='';
document.getElementById('lfvt_detail_textbox_anmerkung').value='';
document.getElementById('lfvt_detail_menulist_sprache').value='German';
document.getElementById('lfvt_detail_menulist_lehrfach').value='';
//document.getElementById('lfvt_detail_menulist_lehrfach').value='';
document.getElementById('lfvt_detail_menulist_raumtyp').value='Dummy';
document.getElementById('lfvt_detail_menulist_raumtypalternativ').value='Dummy';
document.getElementById('lfvt_detail_menulist_studiensemester').value='';
document.getElementById('lfvt_detail_menulist_studiensemester').value='<?php echo $semester_aktuell; ?>';
document.getElementById('lfvt_detail_menulist_lehrform').value='UE';
}
// ****
// * Deaktiviert alle Eingabe- und Auswahlfelder
// ****
function lfvtDetailDisableFields(val)
{
document.getElementById('lfvt_detail_textbox_lvnr').disabled=val;
document.getElementById('lfvt_detail_textbox_unr').disabled=val;
document.getElementById('lfvt_detail_textbox_lehrveranstaltung').disabled=val;
document.getElementById('lfvt_detail_checkbox_lehre').disabled=val;
document.getElementById('lfvt_detail_textbox_stundenblockung').disabled=val;
document.getElementById('lfvt_detail_textbox_wochenrythmus').disabled=val;
document.getElementById('lfvt_detail_textbox_startkw').disabled=val;
document.getElementById('lfvt_detail_textbox_anmerkung').disabled=val;
document.getElementById('lfvt_detail_menulist_sprache').disabled=val;
document.getElementById('lfvt_detail_menulist_lehrfach').disabled=val;
document.getElementById('lfvt_detail_menulist_raumtyp').disabled=val;
document.getElementById('lfvt_detail_menulist_raumtypalternativ').disabled=val;
document.getElementById('lfvt_detail_menulist_studiensemester').disabled=val;
document.getElementById('lfvt_detail_menulist_lehrform').disabled=val;
document.getElementById('lfvt_detail_tree_lehreinheitgruppe').disabled=val;
document.getElementById('lfvt_detail_button_save').disabled=val;
}
function lfvtDetailSave()
{
lvnr = document.getElementById('lfvt_detail_textbox_lvnr').value;
@@ -175,6 +243,7 @@ function lfvtDetailSave()
else
{
document.getElementById('lfvt_detail_checkbox_new').checked=false;
lfvt_tree_refresh();
alert('Daten wurden gespeichert');
}
}
@@ -207,15 +276,21 @@ function lvaAuswahl()
//Lehreinheitmitarbeiter tree deaktivieren
document.getElementById('lfvt_detail_tree_lehreinheitmitarbeiter').datasources='';
document.getElementById('lfvt_detail_tree_lehreinheitgruppe').datasources='';
document.getElementById('lfvt_lehreinheitmitarbeiter_button_add').disabled=true;
document.getElementById('lfvt_lehreinheitmitarbeiter_button_del').disabled=true;
lfvtDetailDisableFields(true);
//Details zuruecksetzen
lfvtDetailReset();
return false;
}
else
{
lfvtDetailDisableFields(false);
document.getElementById('lfvt_toolbar_neu').disabled=true;
document.getElementById('lfvt_toolbar_del').disabled=false;
document.getElementById('lfvt_toolbar_del').disabled=false;
document.getElementById('lfvt_lehreinheitmitarbeiter_button_add').disabled=false;
document.getElementById('lfvt_lehreinheitmitarbeiter_button_del').disabled=false;
}
var col = tree.columns ? tree.columns["lva_lehrveranstaltung_id"] : "lva_lehrveranstaltung_id";
@@ -264,7 +339,7 @@ function lvaAuswahl()
anmerkung=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anmerkung" ));
studiensemester=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#studiensemester_kurzbz" ));
lehrform=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#lehrform_kurzbz" ));
//Lehrfach drop down setzen
//document.getElementById('gridLFVTLehrfach').setAttribute('datasources',"<?php echo APP_ROOT;?>rdf/lehrfach.rdf.php");
//debug("datasource="+document.getElementById('gridLFVTLehrfach').datasources);
@@ -316,7 +391,7 @@ function lvaAuswahl()
document.getElementById('lfvt_detail_menulist_lehrform').value=lehrform;
document.getElementById('lfvt_detail_checkbox_new').checked=false;
document.getElementById('lfvt_detail_textbox_lehreinheit_id').value=lehreinheit_id;
//Lehreinheitmitarbeiter tree setzen
url='../rdf/lehreinheitmitarbeiter.rdf.php?lehreinheit_id='+lehreinheit_id;
document.getElementById('lfvt_detail_tree_lehreinheitmitarbeiter').setAttribute('datasources',url);
@@ -607,3 +682,63 @@ function lfvt_LehreinheitMitarbeiterAuswahl()
else
document.getElementById('lfvt_lehreinheitmitarbeiter_checkbox_bismelden').checked=false;
}
// ************* GRUPPEN ******************** //
// ****
// * Loescht die Zuordnung einer Gruppe zu einer
// * Lehreinheit
// ****
function lfvt_LehreinheitGruppeDel()
{
alert('del');
return false;
tree = document.getElementById('lfvt_detail_tree_lehreinheitgruppe');
//Falls kein Eintrag gewaehlt wurde, den ersten auswaehlen
var idx;
if(tree.currentIndex>=0)
idx = tree.currentIndex;
else
{
alert('Bitte zuerst eine Gruppe markieren');
return false;
}
try
{
//Lehreinheit_id holen
var col = tree.columns ? tree.columns["lfvt_detail_tree_lehreinheitgruppe-col-lehreinheitgruppe_id"] : "lfvt_detail_tree_lehreinheitgruppe-col-lehreinheitgruppe_id";
var lehreinheitgruppe_id=tree.view.getCellText(idx,col);
}
catch(e)
{
alert(e);
return false;
}
var req = new phpRequest('lfvtCUD.php','','');
neu = document.getElementById('lfvt_detail_checkbox_new').checked;
req.add('type', 'lehreinheit_gruppe_del');
req.add('lehreinheitgruppe_id', lehreinheitgruppe_id);
var response = req.executePOST();
if (response!='ok')
{
alert(response);
}
else
{
//refresh des Trees
}
}
// ****
// * Fuegt eine Gruppe zu einer
// * Lehreinheit hinzu
// ****
function lfvt_LehreinheitGruppeAdd()
{
}
+42
View File
@@ -204,6 +204,17 @@ class lehreinheitgruppe
}
}
// ****************************************************
// * Sieht nach ob Gruppe schon zu dieser Lehreinheit
// * zugeordnet ist.
// * @param lehreinheit_id
// * studiengang_kz
// * semester
// * verband
// * gruppe
// * gruppe_kurzbz
// * @return true wenn vorhanden, false wenn nicht
// ****************************************************
function exists($lehreinheit_id, $studiengang_kz, $semester, $verband, $gruppe, $gruppe_kurzbz)
{
$qry = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id='$lehreinheit_id'";
@@ -235,6 +246,13 @@ class lehreinheitgruppe
}
}
// *******************************************
// * Liefert alle Gruppenzuordnungen zu einer
// * Lehreinheit.
// * @param lehreinheit_id Lehreinheit zu der
// * die Gruppen geladen werden sollen
// * @return true wenn ok, false im fehlerfall
// *******************************************
function getLehreinheitgruppe($lehreinheit_id)
{
if(!is_numeric($lehreinheit_id))
@@ -273,5 +291,29 @@ class lehreinheitgruppe
return false;
}
}
// ***************************************************************
// * Loescht die Zuornung Gruppe-Lehreinheit
// * @param lehreinheigruppe_id ID des zu loeschenden Datensatzes
// * @return true wenn ok, false im fehlerfall
// ***************************************************************
function delete($lehreinheitgruppe_id)
{
if(!is_numeric($lehreinheitgruppe_id))
{
$this->errormsg = 'Lehreinheitgruppe_id muss eine gueltige Zahl sein';
return false;
}
$qry = "DELETE FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheitgruppe_id='$lehreinheitgruppe_id'";
if(pg_query($this->conn, $qry))
return true;
else
{
$this->errormsg = 'Fehler beim Loeschen';
return false;
}
}
}
?>