mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-23 18:02:18 +00:00
Neuer Regeltyp lvpositivabschluss fuer Modul-Abschluss; Fehler beim verschieben von Lehrveranstaltungen im Studienplan behoben wenn die ID kleiner als die Semesteranzahl ist
This commit is contained in:
@@ -314,20 +314,18 @@ function drawTree($tree, $depth)
|
||||
$lvkompatibel_arr = $lvkompatibel->loadLVkompatibel($row_tree->lehrveranstaltung_id);
|
||||
$lvkompatibel_arr[]=$row_tree->lehrveranstaltung_id;
|
||||
|
||||
$abgeschlossen=false;
|
||||
$lvregel = new lvregel();
|
||||
if($lvregel->exists($row_tree->studienplan_lehrveranstaltung_id))
|
||||
{
|
||||
if($lvregel->isAbgeschlossen($uid, $row_tree->studienplan_lehrveranstaltung_id))
|
||||
echo '<span class="ok">';
|
||||
$abgeschlossen=true;
|
||||
else
|
||||
echo '<span class="error">';
|
||||
$abgeschlossen=false;
|
||||
}
|
||||
else
|
||||
echo '<span>';
|
||||
|
||||
// Bezeichnung der Lehrveranstaltung
|
||||
echo $row_tree->bezeichnung;
|
||||
echo '</span>';
|
||||
echo '</td>';
|
||||
|
||||
// ECTS Punkte
|
||||
@@ -354,7 +352,9 @@ function drawTree($tree, $depth)
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!$row_tree->stpllv_pflicht)
|
||||
if($abgeschlossen)
|
||||
echo '<span>'.$p->t('studienplan/regelabgeschlossen'),'</span>';
|
||||
elseif(!$row_tree->stpllv_pflicht)
|
||||
echo '<span>'.$p->t('studienplan/optional').'</span>';
|
||||
else
|
||||
echo '<span>'.$p->t('studienplan/offen').'</span>';
|
||||
@@ -474,7 +474,7 @@ function drawTree($tree, $depth)
|
||||
}
|
||||
}
|
||||
}
|
||||
$class=implode(',',$tdclass);
|
||||
$class=implode(' ',$tdclass);
|
||||
echo '<td align="center" class="'.$class.'">';
|
||||
echo $tdinhalt;
|
||||
echo '</td>';
|
||||
|
||||
+50
-13
@@ -503,6 +503,7 @@ class lvregel extends basis_db
|
||||
{
|
||||
|
||||
list($testval,$ects_tmp) = $this->Test($uid, $regel, $studiensemester_kurzbz, $retval);
|
||||
$this->debug("<br>Compare ".$regel[0]->operator.", ".($retval?'T':'F').", ".($testval?'T':'F'),5);
|
||||
$retval = $this->Compare($regel[0]->operator, $retval, $testval);
|
||||
|
||||
if($regel[0]->operator=='x' && $ects==0 && $ects_tmp>0)
|
||||
@@ -519,7 +520,7 @@ class lvregel extends basis_db
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->debug('<br>keine Anrechnung von ECTS Punkten für diesen Eintrag',3);
|
||||
$this->debug('<br>keine Anrechnung von ECTS Punkten für diesen Eintrag OP:'.$regel[0]->operator.' ECTS:'.$ects_tmp,3);
|
||||
}
|
||||
|
||||
$this->debug('<br>Zwischenergebnis :'.($retval?'TRUE':'FALSE'),5);
|
||||
@@ -570,6 +571,7 @@ class lvregel extends basis_db
|
||||
$regel = $regel_obj[0];
|
||||
$ects=0;
|
||||
$this->debug('<br><b>Teste Regel '.$regel->lvregel_id.'</b>',2);
|
||||
$this->debug("<br>UID:$uid OP:$regel->operator STSEM:$studiensemester_kurzbz RETVAL:".($retvalglobal?'T':'F'),5);
|
||||
|
||||
switch($regel->lvregeltyp_kurzbz)
|
||||
{
|
||||
@@ -630,6 +632,40 @@ class lvregel extends basis_db
|
||||
AND student_uid=".$this->db_add_param($uid)."
|
||||
AND lehrveranstaltung_id=".$this->db_add_param($regel->lehrveranstaltung_id);
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$this->debug('Positive Note gefunden:'.$row->note,3);
|
||||
$retval = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->debug('Keine positive Note',3);
|
||||
$retval = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->debug('Fehler bei Abfrage',1);
|
||||
$this->errormsg = 'Fehler bei Abfrage';
|
||||
$retval = false;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'lvpositivabschluss':
|
||||
$this->debug('Regeltyp lvpositivabschluss:'.$regel->lehrveranstaltung_id,3);
|
||||
$qry = "SELECT
|
||||
tbl_lehrveranstaltung.ects, tbl_zeugnisnote.note
|
||||
FROM
|
||||
lehre.tbl_zeugnisnote
|
||||
JOIN lehre.tbl_note USING(note)
|
||||
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||
WHERE
|
||||
tbl_note.positiv
|
||||
AND student_uid=".$this->db_add_param($uid)."
|
||||
AND lehrveranstaltung_id=".$this->db_add_param($regel->lehrveranstaltung_id);
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object($result))
|
||||
@@ -665,21 +701,22 @@ class lvregel extends basis_db
|
||||
list($testval,$ects_tmp) = $this->TestRegeln($uid, $regel_obj['childs'],null, $retval);
|
||||
$retval = $this->Compare($regel->operator, $retval, $testval);
|
||||
|
||||
/*
|
||||
if($regel->operator=='x' && $ects==0 && $ects_tmp>0)
|
||||
if($testval)
|
||||
{
|
||||
$this->debug('<br>Aufgrund des XOR Vergleichs werden '.$ects_tmp.' ECTS dazugerechnet');
|
||||
$ects+=$ects_tmp;
|
||||
if($regel->operator=='x' && $ects==0 && $ects_tmp>0)
|
||||
{
|
||||
$this->debug('<br>Aufgrund des XOR Vergleichs werden '.$ects_tmp.' ECTS dazugerechnet');
|
||||
$ects+=$ects_tmp;
|
||||
}
|
||||
if(($regel->operator=='u' || $regel->operator=='o'))
|
||||
{
|
||||
$this->debug('<br>Aufgrund des AND / OR Operators werden '.$ects_tmp.' ECTS dazugerechnet');
|
||||
$ects+=$ects_tmp;
|
||||
}
|
||||
}
|
||||
if(($regel->operator=='u' || $regel->operator=='o'))
|
||||
{
|
||||
$this->debug('<br>Aufgrund des AND / OR Operators werden '.$ects_tmp.' ECTS dazugerechnet');
|
||||
$ects+=$ects_tmp;
|
||||
}
|
||||
*/
|
||||
$this->debug('<br> == <b>Subregel '.$regel->lvregel_id.'</b> Ende ==<br>',2);
|
||||
}
|
||||
|
||||
$this->debug('<br> TEST Return Retval:'.($retval?'T':'F').' ECTS:'.$ects);
|
||||
return array($retval,$ects);
|
||||
}
|
||||
|
||||
@@ -741,7 +778,7 @@ class lvregel extends basis_db
|
||||
$lv->load($stpllv->lehrveranstaltung_id);
|
||||
|
||||
$this->debug('Abgeschlossen:'.$retval.' ECTS:'.$ects,1);
|
||||
if($ects>=$lv->ects && $retval)
|
||||
if($ects>=$lv->ects)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
|
||||
@@ -22,5 +22,6 @@ $this->phrasen['studienplan/zuWenigCP']='Sie haben zu wenig Credit Points für e
|
||||
$this->phrasen['studienplan/reduzierteCP']='Für dieses Semester sind die verfügbaren ECTS Punkte reduziert. Noch verfügbare ECTS Punkte: %s';
|
||||
$this->phrasen['studienplan/einschreibungErfolgreich']='Sie wurden erfolgreich in die Lehrveranstaltung eingeschrieben';
|
||||
$this->phrasen['studienplan/AnmeldungNichtMoeglich']='Keine Anmeldung moeglich';
|
||||
$this->phrasen['studienplan/regelabgeschlossen']='abgeschlossen';
|
||||
?>
|
||||
|
||||
|
||||
+7
-4
@@ -927,15 +927,18 @@ ul.menu
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
|
||||
/* LV Angebot im Studienplan */
|
||||
.angebot
|
||||
{
|
||||
border: 3px solid #edd400;
|
||||
}
|
||||
|
||||
/* Empfehlung im Studienplan */
|
||||
.empfehlung
|
||||
{
|
||||
border: 3px solid green;
|
||||
}
|
||||
.angebot
|
||||
{
|
||||
border: 3px solid #edd400;
|
||||
}
|
||||
|
||||
/*
|
||||
==== Menubox-Effekt am Seitenrand. Nettes Feature aber dzt. nicht sinnvoll einsetzbar ====
|
||||
|
||||
@@ -289,6 +289,10 @@ if(!$result = @$db->db_query("SELECT 1 FROM lehre.tbl_lvregel LIMIT 1;"))
|
||||
ALTER TABLE lehre.tbl_lvregel ADD CONSTRAINT fk_lvregel_lehrveranstaltung_lehrveranstaltung_id FOREIGN KEY (lehrveranstaltung_id) REFERENCES lehre.tbl_lehrveranstaltung (lehrveranstaltung_id) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
ALTER TABLE lehre.tbl_lvregel ADD CONSTRAINT fk_lvregel_studienplan_lehrveranstaltung FOREIGN KEY (studienplan_lehrveranstaltung_id) REFERENCES lehre.tbl_studienplan_lehrveranstaltung (studienplan_lehrveranstaltung_id) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
INSERT INTO lehre.tbl_lvregeltyp(lvregeltyp_kurzbz, bezeichnung) VALUES('ausbsemmin','Ausbildungssemester Min');
|
||||
INSERT INTO lehre.tbl_lvregeltyp(lvregeltyp_kurzbz, bezeichnung) VALUES('lvpositiv','LV Positiv für Anmeldung');
|
||||
INSERT INTO lehre.tbl_lvregeltyp(lvregeltyp_kurzbz, bezeichnung) VALUES('lvpositivabschluss','LV Positiv für Abschluss');
|
||||
|
||||
GRANT SELECT ON lehre.tbl_lvregel TO web;
|
||||
GRANT SELECT, UPDATE, INSERT, DELETE ON lehre.tbl_lvregel TO vilesci;
|
||||
GRANT SELECT, UPDATE ON lehre.seq_lvregel_lvregel_id TO vilesci;
|
||||
|
||||
@@ -245,10 +245,11 @@ $rechte->getBerechtigungen($user);
|
||||
$lehrveranstaltung_id = $_GET["lehrveranstaltung_id"];
|
||||
$type = isset($_GET["type"]) ? $_GET["type"] : "";
|
||||
$lv = new lehrveranstaltung();
|
||||
$lv->load($lehrveranstaltung_id);
|
||||
|
||||
echo '<h3>Kompatible Lehrveranstaltungen - '.$lv->bezeichnung.'</h3>';
|
||||
$kompatibleLvs = $lv->loadLVkompatibel($lehrveranstaltung_id);
|
||||
//var_dump($kompatibleLvs);
|
||||
echo '<h3>Kompatible Lehrveranstaltungen</h3>';
|
||||
if(count($kompatibleLvs)>0)
|
||||
{
|
||||
echo '<table style="width: auto;" class="tablesorter" id="t1">
|
||||
|
||||
@@ -116,7 +116,7 @@ function loadStudienordnung()
|
||||
*/
|
||||
function drawStudienordnungen(data)
|
||||
{
|
||||
var obj='<a href="#Neu" onclick="neueStudienordnung();return false;">Neue Studienordnung</a><ul>';
|
||||
var obj='<a href="#Neu" onclick="neueStudienordnung();return false;">Neue Studienordnung</a><ul style="padding-left: 15px">';
|
||||
|
||||
for(i in data)
|
||||
{
|
||||
@@ -188,7 +188,7 @@ function loadStudienplanSTO(neue_studienordnung_id,bezeichnung)
|
||||
*/
|
||||
function drawStudienplan(data)
|
||||
{
|
||||
var obj='<a href="#Neu" onclick="neuerStudienplan();return false;">Neuer Studienplan</a><ul>';
|
||||
var obj='<a href="#Neu" onclick="neuerStudienplan();return false;">Neuer Studienplan</a><ul style="padding-left: 15px">';
|
||||
|
||||
for(i in data)
|
||||
{
|
||||
@@ -286,7 +286,7 @@ function loadLehrveranstaltungSTPL(studienplan_id, bezeichnung, max_semester)
|
||||
|
||||
var obj = {
|
||||
"data":sem+'. Semester',
|
||||
"attr":{"id":sem,"rel":"semester"},
|
||||
"attr":{"id":"Semester"+sem,"rel":"semester","semester":sem},
|
||||
"children":children
|
||||
};
|
||||
treeData.push(obj);
|
||||
@@ -595,11 +595,12 @@ function loadLVKompatibilitaet(lvid)
|
||||
var html='';
|
||||
for(i in data.result)
|
||||
{
|
||||
if(data.result[i].metadata)
|
||||
if(data.result[i])
|
||||
{
|
||||
lvdata = data.result[i].metadata;
|
||||
html = html+'<br>'+lvdata.bezeichnung+' (Studiengang '+lvdata.studiengang_kz+', Semester '+lvdata.semester+')';
|
||||
lvdata = data.result[i];
|
||||
html = html+'<br>'+lvdata.kurzbz+' - '+lvdata.bezeichnung+' (Studiengang '+lvdata.studiengang_kz+', Semester '+lvdata.semester+')';
|
||||
}
|
||||
html = html+'<br><br><a href="lehrveranstaltung_kompatibel.php?lehrveranstaltung_id='+lvid+'&type=edit" target="_blank">kompatible Lehrveranstaltungen hinzufügen</a>';
|
||||
}
|
||||
$("#tab-kompatibel").html(html);
|
||||
|
||||
@@ -878,10 +879,11 @@ function hideAllTreeColumns()
|
||||
*/
|
||||
function saveJsondataFromTree(nodeId, studienplan_id, studienplan_lehrveranstaltung_id)
|
||||
{
|
||||
var obj = $("#treeData").find("li[id="+nodeId+"]");
|
||||
var jsonData = $("#treeData").jstree("get_json", $("#treeData").find("li[id="+nodeId+"]"));
|
||||
|
||||
var copy = false;
|
||||
|
||||
|
||||
|
||||
if(jsonData.length !== 1)
|
||||
{
|
||||
jsonData = $("#treeData").jstree("get_json", $("#copy_"+nodeId));
|
||||
@@ -903,7 +905,9 @@ function saveJsondataFromTree(nodeId, studienplan_id, studienplan_lehrveranstalt
|
||||
}
|
||||
|
||||
var lehrveranstaltung_id = jsonData[0]["metadata"]["lehrveranstaltung_id"];
|
||||
var semester = node.closest("li[rel=semester]").attr("id");
|
||||
var semester = node.closest("li[rel=semester]").attr("semester");
|
||||
|
||||
// Wenn die Lehrveranstaltung ausserhalb des Semester platziert wird, werden diese ins 0er Semester gelegt
|
||||
if(semester === undefined)
|
||||
{
|
||||
semester = 0;
|
||||
|
||||
@@ -203,14 +203,14 @@ function drawRegel(regel)
|
||||
|
||||
// Parameter
|
||||
// Input Feld verstecken wenn der Typ LVpositiv ist
|
||||
if(regel.lvregeltyp_kurzbz=='lvpositiv')
|
||||
if(regel.lvregeltyp_kurzbz=='lvpositiv' || regel.lvregeltyp_kurzbz=='lvpositivabschluss')
|
||||
var style='style="display:none"';
|
||||
else
|
||||
var style='';
|
||||
|
||||
val = val+'<input type="text" '+style+' size="1" id="lvregel_parameter'+regel.lvregel_id+'" value="'+ClearNull(regel.parameter)+'" />';
|
||||
|
||||
if(regel.lvregeltyp_kurzbz=='lvpositiv')
|
||||
if(regel.lvregeltyp_kurzbz=='lvpositiv' || regel.lvregeltyp_kurzbz=='lvpositivabschluss')
|
||||
var style='';
|
||||
else
|
||||
var style='style="display: none"';
|
||||
@@ -220,7 +220,12 @@ function drawRegel(regel)
|
||||
val = val+'<input type="hidden" size="4" id="lvregel_lehrveranstaltung_id'+regel.lvregel_id+'" value="'+ClearNull(regel.lehrveranstaltung_id)+'" />';
|
||||
|
||||
// Autocomplete Feld fuer Lehrveranstaltung
|
||||
val = val+'<input type="text" size="12" id="lvregel_lehrveranstaltung_id_autocomplete'+regel.lvregel_id+'" value="'+ClearNull(regel.lehrveranstaltung_bezeichnung)+'" lvregel_id="'+regel.lvregel_id+'"/>';
|
||||
var autocompletebezeichnung = ClearNull(regel.lehrveranstaltung_bezeichnung);
|
||||
if(regel.lehrveranstaltung_bezeichnung==undefined)
|
||||
{
|
||||
autocompletebezeichnung='Lehrveranstaltungsname eingeben';
|
||||
}
|
||||
val = val+'<input type="text" size="12" id="lvregel_lehrveranstaltung_id_autocomplete'+regel.lvregel_id+'" value="'+autocompletebezeichnung+'" lvregel_id="'+regel.lvregel_id+'"/>';
|
||||
if(regel.lehrveranstaltung_bezeichnung==null || regel.lehrveranstaltung_bezeichnung=='undefined' || regel.lehrveranstaltung_bezeichnung=='')
|
||||
var lvbezeichnung = 'klicken um LV auszuwählen';
|
||||
else
|
||||
@@ -229,7 +234,7 @@ function drawRegel(regel)
|
||||
val = val+' <a href="#" style="font-size: x-small" onclick="LVRegelShowAutocomplete(\''+regel.lvregel_id+'\',true);return false;" id="lvregel_lehrveranstaltung_span'+regel.lvregel_id+'">'+lvbezeichnung+'</a>';
|
||||
// Die Autocomplete Funktionalitaet wird erst hinzugefuegt, wenn das Input Feld tatsaechlich existiert und
|
||||
// bis dort hin zwischengespeichert
|
||||
LVREGELLehrveranstaltungAutocompleteArray[LVREGELLehrveranstaltungAutocompleteArray.length]=regel.lvregel_id; // WORKING
|
||||
LVREGELLehrveranstaltungAutocompleteArray[LVREGELLehrveranstaltungAutocompleteArray.length]=regel.lvregel_id;
|
||||
val = val+'</span>';
|
||||
|
||||
// Speichern Button
|
||||
@@ -256,7 +261,7 @@ function LVRegelTypChange(id)
|
||||
{
|
||||
var typ = $('#lvregel_lvregeltyp'+id+' option:selected').val();
|
||||
|
||||
if(typ=='lvpositiv')
|
||||
if(typ=='lvpositiv' || typ=='lvpositivabschluss')
|
||||
{
|
||||
$('#lvregel_lehrveranstaltung_data'+id).show();
|
||||
$('#lvregel_parameter'+id).hide();
|
||||
|
||||
Reference in New Issue
Block a user