From 1c12d72318be5e7ea51fa2481b11dcce7a0a3003 Mon Sep 17 00:00:00 2001 From: cris-technikum <31620366+cris-technikum@users.noreply.github.com> Date: Mon, 30 Oct 2017 16:20:06 +0100 Subject: [PATCH] VILESCI: Studienordnung modified / REMOVE tbl_studienordnung_semester . All affected files are adapted to work without tbl_studienordnung_semester --> functions modified to use tbl_studienplan_semester INSTEAD OF tbl_studienordnung_semester --> unnececary functions deleted . VILESCI GUI in Lehre -> Studienordnung is modified --> Extended Dropdown --> No Matrix Studienordnung/Semester anymore --> studienordnung- and studienplan-ICONS now presented correctly --- include/studienordnung.class.php | 208 +-------------------------- include/studienplan.class.php | 41 +----- soap/studienordnung.json.php | 19 --- vilesci/lehre/saveStudienordnung.php | 2 - vilesci/lehre/studienordnung.inc.php | 84 +---------- vilesci/lehre/studienordnung.js | 154 +++----------------- vilesci/lehre/studienordnung.php | 69 +++++---- 7 files changed, 70 insertions(+), 507 deletions(-) diff --git a/include/studienordnung.class.php b/include/studienordnung.class.php index 2dbf270f2..58c033057 100644 --- a/include/studienordnung.class.php +++ b/include/studienordnung.class.php @@ -22,6 +22,7 @@ * * Authors: Christian Paminger * Andreas Österreicher + * Cristina Hainberger */ require_once(dirname(__FILE__).'/basis_db.class.php'); @@ -413,7 +414,7 @@ class studienordnung extends basis_db { $obj = new stdClass(); - $obj->studienordnung_id= $row->studienordnung_id; + $obj->studienordnung_id = $row->studienordnung_id; $obj->studiengang_kz = $row->studiengang_kz; $obj->version = $row->version; $obj->bezeichnung = $row->bezeichnung; @@ -460,113 +461,6 @@ class studienordnung extends basis_db return $data; } - /** - * speichert die Semesterzuordnung für die Studieordnung - * @param int $studienordnung_id Die ID der Studienordnung - * @param string $studiensemester_kurzbz Kurzbezeichnung des Studiensemesters - * @param int $ausbildungssemester Ausbildungssemester als Zahl - */ - public function saveSemesterZuordnung($studienordnung_id, $studiensemester_kurzbz, $ausbildungssemester) - { - if(!is_numeric($studienordnung_id)) - { - $this->errormsg = 'studienordnung_id muss eine gueltige Zahl sein'; - return false; - } - - if(!is_string($studiensemester_kurzbz) || strlen($studiensemester_kurzbz)!=6) - { - $this->errormsg = 'studiensemester_kurzbz muss ein String mit 6 Zeichen sein'; - return false; - } - - if(!is_numeric($ausbildungssemester)) - { - $this->errormsg = 'ausbildungssemester muss eine gueltige Zahl sein'; - return false; - } - - //lvar_dump($this->isZuordnungGuelitg($studiensemester_kurzbz)); - - //Prüfung ob Zuordnung im Gültigkeitszeitraum der Studienordnung - //if(($studiensemester_kurzbz >= $this->gueltigvon && $studiensemester_kurzbz <= $this->gueltigbis) || ($studiensemester_kurzbz >= $this->gueltigvon && $this->gueltigbis == null)) - if($this->isZuordnungGuelitg($studiensemester_kurzbz)) - { - //im gültigen Bereich - //Prüfung ob Semester schon zugeordnet wurde - if(!$this->isSemesterZugeordnet($studienordnung_id, $studiensemester_kurzbz, $ausbildungssemester)) - { - $qry = 'INSERT INTO lehre.tbl_studienordnung_semester (studienordnung_id, studiensemester_kurzbz, semester) VALUES ('. - $this->db_add_param($studienordnung_id).', '. - $this->db_add_param($studiensemester_kurzbz).', '. - $this->db_add_param($ausbildungssemester).');'; - - if(!$this->db_query($qry)) - { - $this->errormsg = 'Fehler beim Speichern des Datensatzes'; - return false; - } - } - else { - $this->errormsg = $ausbildungssemester.'. Semester ist bereits zurgeordnet!'; - return false; - } - } - else - { - //im ungültigen Bereich - $this->errormsg = 'Studiensemester ist nicht im Gültigkeitsbereich der Studienordnung!'; - return false; - } - return true; - } - - /** - * prüft ob die Semesterzuordnung für die Studieordnung bereits vorhanden ist - * @param int $studienordnung_id Die ID der Studienordnung - * @param string $studiensemester_kurzbz Kurzbezeichnung des Studiensemesters - * @param int $ausbildungssemester Ausbildungssemester als Zahl - */ - protected function isSemesterZugeordnet($studienordnung_id, $studiensemester_kurzbz, $ausbildungssemester) - { - if(!is_numeric($studienordnung_id)) - { - $this->errormsg = 'studienordnung_id muss eine gueltige Zahl sein'; - return false; - } - - if(!is_string($studiensemester_kurzbz) || strlen($studiensemester_kurzbz)!=6) - { - $this->errormsg = 'studiensemester_kurzbz muss ein String mit 6 Zeichen sein'; - return false; - } - - if(!is_numeric($ausbildungssemester)) - { - $this->errormsg = 'ausbildungssemester muss eine gueltige Zahl sein'; - return false; - } - - $qry = 'SELECT * FROM lehre.tbl_studienordnung_semester WHERE - studienordnung_id='.$this->db_add_param($studienordnung_id).' AND - studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz).' AND - semester='.$this->db_add_param($ausbildungssemester).';'; - - if($this->db_query($qry)) - { - if($this->db_num_rows() == 1) - { - return true; - } - if($this->db_num_rows() == 0) - { - return false; - } - return false; - } - return false; - } - /** * prüft ob die Studienordnung aktiv ist * @param int $studienordnung_id Die ID der Studienordnung @@ -581,8 +475,10 @@ class studienordnung extends basis_db return false; } - $qry = 'SELECT * FROM lehre.tbl_studienordnung_semester WHERE - studienordnung_id='.$this->db_add_param($studienordnung_id).';'; + $qry = 'SELECT 1 FROM lehre.tbl_studienplan_semester + WHERE studienplan_id + IN (SELECT studienplan_id FROM lehre.tbl_studienplan + WHERE studienordnung_id ='.$this->db_add_param($studienordnung_id).';'; if($this->db_query($qry)) { @@ -595,98 +491,6 @@ class studienordnung extends basis_db return false; } - /** - * lädt alle zugeordneten Semester einer Studienordnung - * @param int $studienordnung_id ID der Studienordnung - */ - public function loadStudiensemesterFromStudienordnung($studienordnung_id) - { - if(!is_numeric($studienordnung_id)) - { - $this->errormsg = 'studienordnung_id muss eine gueltige Zahl sein'; - return false; - } - -/* $qry = 'SELECT DISTINCT studiensemester_kurzbz, MAX(semester) - FROM lehre.tbl_studienordnung_semester - WHERE studienordnung_id='.$this->db_add_param($studienordnung_id).' GROUP BY studiensemester_kurzbz ORDER BY MAX(semester);'; -*/ - $qry = 'SELECT DISTINCT studiensemester_kurzbz, tbl_studiensemester.start - FROM - lehre.tbl_studienordnung_semester - JOIN public.tbl_studiensemester USING(studiensemester_kurzbz) - WHERE studienordnung_id='.$this->db_add_param($studienordnung_id).' - ORDER BY tbl_studiensemester.start, studiensemester_kurzbz'; - - if(!$this->db_query($qry)) - { - $this->errormsg = 'Fehler bei einer Datenbankabfrage'; - return false; - } - - $data = array(); - while($row = $this->db_fetch_object()) - { - $obj = new stdClass(); - $data[] = $row->studiensemester_kurzbz; - } - return $data; - } - - public function loadAusbildungsemesterFromStudiensemester($studienordnung_id, $studiensemester_kurzbz) - { - $qry = 'SELECT semester - FROM lehre.tbl_studienordnung_semester - WHERE studienordnung_id='.$this->db_add_param($studienordnung_id).' AND - studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz).' - ORDER BY semester;'; - - if(!$this->db_query($qry)) - { - return false; - } - - $data = array(); - while($row = $this->db_fetch_object()) - { - $data[] = $row->semester; - } - return $data; - } - - public function deleteSemesterZuordnung($studienordnung_id, $studiensemester_kurzbz, $studiensemester=NULL) - { - if(!is_numeric($studienordnung_id)) - { - $this->errormsg = 'studienordnung_id muss eine gueltige Zahl sein'; - return false; - } - - if(!is_string($studiensemester_kurzbz) || strlen($studiensemester_kurzbz)!=6) - { - $this->errormsg = 'studiensemester_kurzbz muss ein String mit 6 Zeichen sein'; - return false; - } - - $qry = 'DELETE FROM lehre.tbl_studienordnung_semester - WHERE studienordnung_id='.$this->db_add_param($studienordnung_id).' AND - studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz).''; - if($studiensemester !== null) - $qry.=' AND semester='.$this->db_add_param ($studiensemester).''; - - $qry.=';'; - - if($this->db_query($qry)) - { - return true; - } - else - { - $this->errormsg = 'Fehler beim Löschen der Daten'."\n"; - return false; - } - } - protected function isZuordnungGuelitg($studiensemester_kurzbz) { $studiensemester = new studiensemester(); diff --git a/include/studienplan.class.php b/include/studienplan.class.php index 11d223226..cb7fad8f1 100644 --- a/include/studienplan.class.php +++ b/include/studienplan.class.php @@ -23,6 +23,7 @@ * Authors: Andreas Österreicher * Stefan Puraner * Andreas Moik + * Cristina Hainberger */ require_once(dirname(__FILE__).'/basis_db.class.php'); @@ -792,12 +793,12 @@ class studienplan extends basis_db FROM lehre.tbl_studienplan JOIN lehre.tbl_studienordnung USING(studienordnung_id) - JOIN lehre.tbl_studienordnung_semester USING(studienordnung_id) + JOIN lehre.tbl_studienplan_semester USING (studienplan_id) WHERE tbl_studienplan.aktiv AND tbl_studienordnung.studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER)." - AND tbl_studienordnung_semester.studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)." - AND tbl_studienordnung_semester.semester=".$this->db_add_param($ausbildungssemester); + AND tbl_studienplan_semester.studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)." + AND tbl_studienplan_semester.semester=".$this->db_add_param($ausbildungssemester); if($orgform_kurzbz!='') { @@ -1096,40 +1097,6 @@ class studienplan extends basis_db return false; } - public function deleteSemesterZuordnung($studienplan_id, $studiensemester_kurzbz, $ausbildungssemester = NULL) - { - if (!is_numeric($studienplan_id)) - { - $this->errormsg = 'studienplan_id muss eine gueltige Zahl sein'; - return false; - } - - if (!is_string($studiensemester_kurzbz) || strlen($studiensemester_kurzbz) != 6) - { - $this->errormsg = 'studiensemester_kurzbz muss ein String mit 6 Zeichen sein'; - return false; - } - - $qry = 'DELETE FROM lehre.tbl_studienplan_semester - WHERE studienplan_id=' . $this->db_add_param($studienplan_id) . ' AND - studiensemester_kurzbz=' . $this->db_add_param($studiensemester_kurzbz) . ''; - - if ($ausbildungssemester !== null) - $qry.=' AND semester=' . $this->db_add_param($ausbildungssemester) . ''; - - $qry.=';'; - - if ($this->db_query($qry)) - { - return true; - } - else - { - $this->errormsg = 'Fehler beim Löschen der Zuordnung' . "\n"; - return false; - } - } - /** * prüft ob dem Studienplan Semester zugeordnet sind (Gültigkeit) * @param int $studienplan_id Die ID des Studienplans diff --git a/soap/studienordnung.json.php b/soap/studienordnung.json.php index 55bba0488..c178474ad 100644 --- a/soap/studienordnung.json.php +++ b/soap/studienordnung.json.php @@ -38,25 +38,6 @@ switch($method) $data['errormsg']=$studienordnung->errormsg; } break; - case 'saveSemesterZuordnung': - $studienordnung_id=$_REQUEST['studienordnung_id']; - $studiensemester_kurzbz=$_REQUEST['studiensemester_kurzbz']; - $ausbildungssemester=$_REQUEST['ausbildungssemester']; - - $studienordnung = new studienordnung(); - $studienordnung->loadStudienordnung($studienordnung_id); - if($result = $studienordnung->saveSemesterZuordnung($studienordnung_id, $studiensemester_kurzbz, $ausbildungssemester)) - { - $data['result']=$result; - $data['error']='false'; - $data['errormsg']=''; - } - else - { - $data['error']='true'; - $data['errormsg']=$studienordnung->errormsg; - } - break; case 'copyStudienordnung': $studienordnung_id=$_REQUEST['studienordnung_id']; diff --git a/vilesci/lehre/saveStudienordnung.php b/vilesci/lehre/saveStudienordnung.php index dcf901528..31fcbea76 100644 --- a/vilesci/lehre/saveStudienordnung.php +++ b/vilesci/lehre/saveStudienordnung.php @@ -77,7 +77,6 @@ $error=false; // Bei Save Funktionen werden alle Parameter zugewiesen if(mb_stristr($method,'save')) { - $loaddata=json_decode($_REQUEST['loaddata'], true); $savedata=json_decode($_REQUEST['savedata'], true); if(!$rechte->isBerechtigt('lehre/studienordnung')) @@ -158,7 +157,6 @@ elseif(mb_stristr($method,'delete')) $studienplan->loadStudienplanLehrveranstaltung($_REQUEST['parameter_0']); $studienordnung = new studienordnung(); $studienordnung->getStudienordnungFromStudienplan($studienplan->studienplan_id); - if($studienordnung->isAktiv($studienordnung->studienordnung_id)) die('Sie haben keine Berechtigung fuer diesen Vorgang. Studienordnung ist aktiv.'); } diff --git a/vilesci/lehre/studienordnung.inc.php b/vilesci/lehre/studienordnung.inc.php index 699985bf4..de719c2df 100644 --- a/vilesci/lehre/studienordnung.inc.php +++ b/vilesci/lehre/studienordnung.inc.php @@ -312,88 +312,8 @@ switch($method) '; break; - case 'semesterStoZuordnung': - $studienordnung_id = $_GET["studienordnung_id"]; -// $studiensemester_kurzbz = isset($_GET["studiensemester_kurzbz"]) ? $_GET["studiensemester_kurzbz"] : ""; -// $semester = isset($_GET["semester"]) ? $_GET["semester"] : ""; - - $studienordnung = new studienordnung(); - $studienordnung->loadStudienordnung($studienordnung_id); - - $studienSemesterResult = $studienordnung->loadStudiensemesterFromStudienordnung($studienordnung_id); - foreach ($studienSemesterResult as $studienSem) - { - $obj = new stdClass(); - $obj->studiensemester = $studienSem; - $obj->ausbildungssemester = $studienordnung->loadAusbildungsemesterFromStudiensemester($studienordnung_id, $studienSem); - $ausbildungssemesterResult[] = $obj; - } - - $studiengang = new studiengang(); - $studiengang->load($studienordnung->studiengang_kz); -// $ausbildungssemester = $studiengang->getSemesterFromStudiengang($studienordnung->studiengang_kz) - $ausbildungssemester = $studiengang->max_semester; - - $studiensemester = new studiensemester(); - $studiensemester->getAll(); - echo ' - - - - - '; - for($i = 1; $i<=$ausbildungssemester; $i++) - { - echo '"; - } - echo ''; - echo ' - - '; - - if($studienSemesterResult != null) - { - foreach($ausbildungssemesterResult as $row) - { - echo ''; - for($i = 1; $i<=$ausbildungssemester; $i++) - { - if(in_array($i, $row->ausbildungssemester)) - { - echo ''; - } - else - { - echo ''; - } - } - echo ''; - } - } - echo ' - '; - for($j=1; $j<=$ausbildungssemester; $j++) - { - echo ''; - } - echo ' - - - - - '; - echo ' -
Studiensemester'.$i.". Semester 
'.$row->studiensemester.'Löschen
- '; - break; - - case 'semesterSTPLZuordnung': + + case 'semesterSTPLZuordnung': $studienplan_id = $_GET["studienplan_id"]; $studienplan = new studienplan(); diff --git a/vilesci/lehre/studienordnung.js b/vilesci/lehre/studienordnung.js index 95458b8d3..5f81eeaf1 100755 --- a/vilesci/lehre/studienordnung.js +++ b/vilesci/lehre/studienordnung.js @@ -17,6 +17,7 @@ * Authors: Andreas Oesterreicher , * Stefan Puraner * Andreas Moik + * Cristina Hainberger */ var global_studiengang_kz=''; var global_studiengang_bezeichnung=''; @@ -124,7 +125,8 @@ function loadStudienordnung() $("#studienplan").html("Bitte wählen Sie zuerst eine Studienordnung aus!"); drawStudienordnungen(data.result); //jqUi( "#menueLinks" ).accordion("option","active",1); - } + } + neueStudienordnung(); }); } @@ -140,11 +142,13 @@ function drawStudienordnungen(data) { if(data[i].studienordnung_id !== null) { - obj=obj+'
  • '+data[i].bezeichnung+'' - +' ' - +'    ' - +' ' - +'
  • '; + obj = obj + '
  • ' + +' '+data[i].bezeichnung+'' + +' ' + +'    ' + +' ' + +' ' + +'
  • '; } } obj=obj+''; @@ -156,7 +160,7 @@ function drawStudienordnungen(data) /** * Laedt die Studienplaene zu einer Studienordnung */ -function loadStudienplanSTO(neue_studienordnung_id, studienplan_id,bezeichnung, callback) +function loadStudienplanSTO(neue_studienordnung_id, studienplan_id,bezeichnung) { global_studienordnung_bezeichnung=bezeichnung; global_studienordnung_id=neue_studienordnung_id; @@ -171,7 +175,7 @@ function loadStudienplanSTO(neue_studienordnung_id, studienplan_id,bezeichnung, "typ": "json", "class": "studienplan", "method": "loadStudienplanSTO", - "parameter_0": global_studienordnung_id + "parameter_0": global_studienordnung_id }, error: loadError }).success(function(data) @@ -185,7 +189,7 @@ function loadStudienplanSTO(neue_studienordnung_id, studienplan_id,bezeichnung, drawStudienplan(data.result); //jqUi( "#menueLinks" ).accordion("option","active",2); } - callback(); + editStudienordnung(global_studienordnung_id); }); $.ajax({ dataType: "json", @@ -212,16 +216,18 @@ function loadStudienplanSTO(neue_studienordnung_id, studienplan_id,bezeichnung, */ function drawStudienplan(data) { - var obj ='Neuer Studienplan
      '; + var obj ='Neuer Studienplan\n\ +
        '; for(i in data) { if(data[i].studienplan_id !== null) { + global_studienplan_id = data[i].studienplan_id; obj=obj+'
      • ' +' '+data[i].bezeichnung+'' +' ' - +' ' + +' ' +'
      • '; } } @@ -1296,7 +1302,6 @@ function saveStudienordnung() "standort_id":standort_id }; - $.ajax( { dataType: "json", @@ -1316,7 +1321,7 @@ function saveStudienordnung() { $("#submsg").css("visibility", "visible"); window.setTimeout(function(){$("#submsg").css("visibility", "hidden");}, 1500); - loadStudienordnung(); + loadStudienordnung(); } }, error: loadError @@ -1388,7 +1393,7 @@ function saveStudienplan() { $("#submsg").css("visibility", "visible"); window.setTimeout(function(){$("#submsg").css("visibility", "hidden");}, 1500); - loadStudienplanSTO(global_studienordnung_id, studienplan_id, global_studienordnung_bezeichnung, semesterStoZuordnung); + loadStudienplanSTO(global_studienordnung_id, studienplan_id, global_studienordnung_bezeichnung); } }, error: loadError @@ -1445,91 +1450,16 @@ function writeOverallSum(root) $("#stplDetails").show(); } -/** - * Laedt die Daten zum Eintragen der Studienordnung/Semester zuordnung - */ -function semesterStoZuordnung() -{ - drawHeader('Neue Semester Zuordnung'); - $("#data").load('studienordnung.inc.php?method=semesterStoZuordnung&studienordnung_id='+global_studienordnung_id); -} /** * Laedt die Daten zum Eintragen der Studienplan/Semester zuordnung */ function semesterSTPLZuordnung() { - drawHeader('Neue Studienplan Zuordnung'); + drawHeader('Neue Studienplan Zuordnung'); $("#data").load('studienordnung.inc.php?method=semesterSTPLZuordnung&studienplan_id='+global_studienplan_id); } -/** - * Speichert die Studienordnung/Semester zuordnung - */ -function saveSemesterStoZuordnung(studiensemester, ausbildungssemester) -{ - if(studiensemester == undefined && ausbildungssemester == undefined) - { - var sem = $("#studiensemester").val(); - var cells = $("#studiensemester").parents().closest("tr").find("input[type=checkbox]"); - var semester = new Array(); - var semesterKurzbz = ""; - - for(var i = 0; i < cells.length; i++) - { - //semester[cells[i].getAttribute("semester")] = cells[i].checked; - semester.push(cells[i].checked); - } - - var studiensemester = $("#studiensemester").val(); - for(var j=0; jisBerechtigt('lehre/studienordnung')) && (!$rechte->isBerechtigt(' if(($rechte->isBerechtigt('lehre/studienordnungInaktiv')) && (!$rechte->isBerechtigt('lehre/studienordnung'))) echo ""; + $stg_arr = $rechte->getStgKz('lehre/studienordnung'); if(empty($stg_arr)) $stg_arr = $rechte->getStgKz('lehre/studienordnungInaktiv'); + $studiengang = new studiengang(); $studiengang->loadArray($stg_arr,'typ,kurzbz'); +$types = new studiengang(); +$types->getAllTypes(); +$typ = ''; echo ' @@ -173,38 +178,40 @@ echo '

        Studiengang

        - + '; + foreach($studiengang->result as $row) + { + if ($typ != $row->typ || $typ == '') + { + if ($typ != '') + echo ''; + + echo ''; + } + echo ''; + $typ = $row->typ; + } + echo '
        + +

        +
        + +

        Studienordnung

        +
        +

        + Bitte wählen Sie einen Studiengang aus! +

        +
        -foreach($studiengang->result as $row) -{ - if($studiengang_kz==$row->studiengang_kz) - $selected='selected'; - else - $selected=''; - - echo ''; -} -echo ' - -
        -

        - -

        Studienordnung

        -
        -

        - Bitte wählen Sie einen Studiengang aus! -

        -
        - -

        Studienplan

        -
        -

        - Bitte wählen Sie zuerst eine Studienordnung aus! -

        -
        - - +

        Studienplan

        +
        +

        + Bitte wählen Sie zuerst eine Studienordnung aus! +

        +
        + +