diff --git a/admin/sync/fas/sync_fas_vilesci_lehrveranstaltungen.php b/admin/sync/fas/sync_fas_vilesci_lehrveranstaltungen.php
index 63ea43278..d8bb05c96 100644
--- a/admin/sync/fas/sync_fas_vilesci_lehrveranstaltungen.php
+++ b/admin/sync/fas/sync_fas_vilesci_lehrveranstaltungen.php
@@ -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";
}
diff --git a/content/lfvtCUD.php b/content/lfvtCUD.php
index d70530640..492340e4b 100644
--- a/content/lfvtCUD.php
+++ b/content/lfvtCUD.php
@@ -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'))
diff --git a/content/lfvtdetailoverlay.xul.php b/content/lfvtdetailoverlay.xul.php
index 02024b2ff..43ca2e3a1 100644
--- a/content/lfvtdetailoverlay.xul.php
+++ b/content/lfvtdetailoverlay.xul.php
@@ -14,13 +14,17 @@ echo "
-
+
+
+
-
+
@@ -38,16 +42,16 @@ echo "
-
+
-
+
diff --git a/content/lfvtoverlay.js.php b/content/lfvtoverlay.js.php
index 0ede1d5a9..b86c7f934 100644
--- a/content/lfvtoverlay.js.php
+++ b/content/lfvtoverlay.js.php
@@ -1,5 +1,11 @@
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 = '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='';
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',"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()
+{
+
+}
\ No newline at end of file
diff --git a/include/lehreinheitgruppe.class.php b/include/lehreinheitgruppe.class.php
index 5be23a457..4c659ceab 100644
--- a/include/lehreinheitgruppe.class.php
+++ b/include/lehreinheitgruppe.class.php
@@ -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;
+ }
+ }
}
?>
\ No newline at end of file