From fab06f9ddbde45e34bffbe91a0fc3592c9f3c7cb Mon Sep 17 00:00:00 2001 From: oesi Date: Tue, 21 Jun 2016 14:30:11 +0200 Subject: [PATCH 1/7] =?UTF-8?q?Neue=20Funktionen=20f=C3=BCr=20Zugriff=20au?= =?UTF-8?q?f=20Studienplaene=20hinzguef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/lehrveranstaltung.class.php | 7 +- include/studiengang.class.php | 206 ++++++++++++++++++---------- include/studienordnung.class.php | 12 +- include/studienplan.class.php | 71 +++++----- locale/de-AT/lehre.php | 3 + 5 files changed, 188 insertions(+), 111 deletions(-) diff --git a/include/lehrveranstaltung.class.php b/include/lehrveranstaltung.class.php index ec8c272a4..40b8f64f7 100755 --- a/include/lehrveranstaltung.class.php +++ b/include/lehrveranstaltung.class.php @@ -1177,7 +1177,7 @@ class lehrveranstaltung extends basis_db * @param $semeser Semester optional * @return boolean true wenn ok, false im Fehlerfall */ - public function loadLehrveranstaltungStudienplan($studienplan_id, $semester = null) + public function loadLehrveranstaltungStudienplan($studienplan_id, $semester = null, $order=null) { if (!is_numeric($studienplan_id) || $studienplan_id === '') { @@ -1204,7 +1204,10 @@ class lehrveranstaltung extends basis_db { $qry.=" AND tbl_studienplan_lehrveranstaltung.semester=" . $this->db_add_param($semester, FHC_INTEGER); } - $qry.=" ORDER BY stpllv_sort, semester, sort"; + if(is_null($order)) + $qry.=" ORDER BY stpllv_sort, semester, sort"; + else + $qry.=' ORDER BY '.$order; $this->lehrveranstaltungen = array(); if ($result = $this->db_query($qry)) { diff --git a/include/studiengang.class.php b/include/studiengang.class.php index 00317acf8..73c35f4b5 100755 --- a/include/studiengang.class.php +++ b/include/studiengang.class.php @@ -16,15 +16,15 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher , - * Rudolf Hangl and - * Gerald Raab . + * Andreas Oesterreicher , + * Rudolf Hangl and + * Gerald Raab . */ require_once(dirname(__FILE__).'/basis_db.class.php'); class studiengang extends basis_db { - public $new; // boolean + public $new; // boolean public $result = array(); // studiengang Objekt public $studiengang_kz; // integer @@ -63,7 +63,7 @@ class studiengang extends basis_db public $projektarbeit_note_anzeige; // boolean public $bezeichnung_arr = array(); - public $beschreibung; + public $beschreibung; /** * Konstruktor @@ -75,13 +75,6 @@ class studiengang extends basis_db if(!is_null($studiengang_kz)) $this->load($studiengang_kz); - - //$this->getAllTypes(); -/* $this->studiengang_typ_arr["b"] = "Bachelor"; - $this->studiengang_typ_arr["d"] = "Diplom"; - $this->studiengang_typ_arr["m"] = "Master"; - $this->studiengang_typ_arr["l"] = "LLL"; - $this->studiengang_typ_arr["e"] = "Erhalter"; */ } public function __get($value) @@ -234,22 +227,16 @@ class studiengang extends basis_db /** * Gibt alle Studiengaenge zurueck, fuer die man sich online bewerben kann - * @param array $studiensemester_kurzbz default: null Array aus Studiensemestern fuer die man sich onlinebewerben kann * @return boolean */ - public function getAllForBewerbung($studiensemester_kurzbz_arr=null) + public function getAllForBewerbung() { $qry = 'SELECT DISTINCT studiengang_kz, typ, organisationseinheittyp_kurzbz, studiengangbezeichnung, standort, studiengangbezeichnung_englisch, lgartcode, tbl_lgartcode.bezeichnung ' . 'FROM lehre.vw_studienplan ' . 'LEFT JOIN bis.tbl_lgartcode USING (lgartcode) ' . 'WHERE onlinebewerbung IS TRUE ' . 'AND aktiv IS TRUE '; - - /*if (!is_null($studiensemester_kurzbz_arr)) - { - $studiensemester_kurzbz_arr = $this->implode4SQL($studiensemester_kurzbz_arr); - $qry .= ' AND studiensemester_kurzbz IN('.$studiensemester_kurzbz_arr.')'; - }*/ + $qry .= ' ORDER BY typ, studiengangbezeichnung, tbl_lgartcode.bezeichnung ASC'; if(!$result = $this->db_query($qry)) @@ -693,56 +680,62 @@ class studiengang extends basis_db return $result; } - public function getStudiengangTyp($typ) - { - $qry = "SELECT * FROM public.tbl_studiengangstyp WHERE typ =".$this->db_add_param($typ,FHC_STRING).";"; + /** + * Laedt einen Studiengangstyp + * + * @param $typ Studiengangstyp + * @return boolean true wenn erfolgreich geladen, false im Fehlerfall + */ + public function getStudiengangTyp($typ) + { + $qry = "SELECT * FROM public.tbl_studiengangstyp WHERE typ =".$this->db_add_param($typ,FHC_STRING).";"; - if($result = $this->db_query($qry)) - { - if($row = $this->db_fetch_object($result)) - { - $this->typ = $row->typ; - $this->bezeichnung = $row->bezeichnung; - $this->beschreibung = $row->beschreibung; - } + if($result = $this->db_query($qry)) + { + if($row = $this->db_fetch_object($result)) + { + $this->typ = $row->typ; + $this->bezeichnung = $row->bezeichnung; + $this->beschreibung = $row->beschreibung; + } - return true; - } - else - { - $this->errormsg = "Fehler bei der Abfrage aufgetreten"; - return false; - } - } + return true; + } + else + { + $this->errormsg = "Fehler bei der Abfrage aufgetreten"; + return false; + } + } - /** - * @param $studiengaenge array - * @return array|bool - */ - public function getTypes($studiengaenge) { + /** + * @param $studiengaenge array + * @return array|bool + */ + public function getTypes($studiengaenge) { - $qry = 'SELECT distinct typ ' . - 'FROM public.tbl_studiengang ' . - 'WHERE studiengang_kz IN (' . implode(',', $studiengaenge) . ')'; + $qry = 'SELECT distinct typ ' . + 'FROM public.tbl_studiengang ' . + 'WHERE studiengang_kz IN (' . implode(',', $studiengaenge) . ')'; - $types = array(); + $types = array(); - if($result = $this->db_query($qry)) - { - while($row = $this->db_fetch_object($result)) { + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) { - $types[] = $row->typ; + $types[] = $row->typ; - } + } - return $types; - } - else - { - $this->errormsg = "Fehler bei der Abfrage aufgetreten"; - return false; - } - } + return $types; + } + else + { + $this->errormsg = "Fehler bei der Abfrage aufgetreten"; + return false; + } + } /** * Sucht nach einem Studiengang @@ -751,13 +744,13 @@ class studiengang extends basis_db */ public function search($searchItem) { - $qry = 'SELECT * FROM public.tbl_studiengang WHERE - LOWER(bezeichnung) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\') OR - LOWER(english) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\') - ORDER BY typ,bezeichnung;'; + $qry = 'SELECT * FROM public.tbl_studiengang WHERE + LOWER(bezeichnung) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\') OR + LOWER(english) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\') + ORDER BY typ,bezeichnung;'; - if($this->db_query($qry)) - { + if($this->db_query($qry)) + { while($row = $this->db_fetch_object()) { $obj = new studiengang(); @@ -799,12 +792,12 @@ class studiengang extends basis_db $this->result[] = $obj; } return true; - } - else - { + } + else + { $this->errormsg = 'Fehler beim Laden des Studiengangs'; return false; - } + } } /** @@ -911,4 +904,75 @@ class studiengang extends basis_db return false; } } + + /** + * Laedt die Studiengänge die innerhalb eines Studiensemesters gültig sind + * @param $studiensemester_kurzbz + */ + public function loadStudiengangFromStudiensemester($studiensemester_kurzbz) + { + $qry = "SELECT + distinct tbl_studiengang.* + FROM + public.tbl_studiengang + JOIN lehre.tbl_studienordnung USING(studiengang_kz) + JOIN lehre.tbl_studienplan USING(studienordnung_id) + JOIN lehre.tbl_studienplan_semester USING(studienplan_id) + WHERE + tbl_studienplan_semester.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)." + ORDER BY + typ, kurzbz"; + + if($this->db_query($qry)) + { + while($row = $this->db_fetch_object()) + { + $obj = new studiengang(); + + $obj->studiengang_kz = $row->studiengang_kz; + $obj->kurzbz = $row->kurzbz; + $obj->kurzbzlang = $row->kurzbzlang; + $obj->bezeichnung = $row->bezeichnung; + $obj->english = $row->english; + $obj->typ = $row->typ; + $obj->farbe = $row->farbe; + $obj->email = $row->email; + $obj->max_semester = $row->max_semester; + $obj->max_verband = $row->max_verband; + $obj->max_gruppe = $row->max_gruppe; + $obj->erhalter_kz = $row->erhalter_kz; + $obj->bescheid = $row->bescheid; + $obj->bescheidbgbl1 = $row->bescheidbgbl1; + $obj->bescheidbgbl2 = $row->bescheidbgbl2; + $obj->bescheidgz = $row->bescheidgz; + $obj->bescheidvom = $row->bescheidvom; + $obj->ext_id = $row->ext_id; + $obj->kuerzel = mb_strtoupper($row->typ . $row->kurzbz); + $obj->orgform_kurzbz = $row->orgform_kurzbz; + $obj->zusatzinfo_html = $row->zusatzinfo_html; + $obj->sprache = $row->sprache; + $obj->testtool_sprachwahl = $this->db_parse_bool($row->testtool_sprachwahl); + $obj->studienplaetze = $row->studienplaetze; + $obj->oe_kurzbz = $row->oe_kurzbz; + $obj->lgartcode = $row->lgartcode; + $obj->telefon = $row->telefon; + $obj->titelbescheidvom = $row->titelbescheidvom; + $obj->onlinebewerbung = $this->db_parse_bool($row->onlinebewerbung); + $obj->moodle = $this->db_parse_bool($row->moodle); + $obj->mischform = $this->db_parse_bool($row->mischform); + $obj->projektarbeit_note_anzeige = $this->db_parse_bool($row->projektarbeit_note_anzeige); + + $obj->bezeichnung_arr['German'] = $obj->bezeichnung; + $obj->bezeichnung_arr['English'] = $obj->english; + + $this->result[] = $obj; + } + return true; + } + else + { + $this->errormsg = "Fehler bei der Datenbankabfrage aufgetreten."; + return false; + } + } } diff --git a/include/studienordnung.class.php b/include/studienordnung.class.php index 73c05709b..2dbf270f2 100644 --- a/include/studienordnung.class.php +++ b/include/studienordnung.class.php @@ -149,24 +149,30 @@ class studienordnung extends basis_db if(is_null($studiensemester_kurzbz)) { - $qry = 'SELECT sto.*, s.bezeichnung as status_bezeichnung FROM lehre.tbl_studienordnung sto + $qry = 'SELECT sto.*, s.bezeichnung as status_bezeichnung, tbl_studiensemester.start as gueltig_startdatum + FROM lehre.tbl_studienordnung sto LEFT JOIN lehre.tbl_studienordnungstatus s USING(status_kurzbz) + LEFT JOIN public.tbl_studiensemester ON(sto.gueltigvon=tbl_studiensemester.studiensemester_kurzbz) WHERE studiengang_kz='.$this->db_add_param($studiengang_kz, FHC_INTEGER, false); } else { - $qry = 'SELECT distinct sto.*, s.bezeichnung as status_bezeichnung, sem.* FROM lehre.tbl_studienordnung sto + $qry = 'SELECT distinct sto.*, s.bezeichnung as status_bezeichnung, sem.*, tbl_studiensemester.start as gueltig_startdatum + FROM lehre.tbl_studienordnung sto JOIN lehre.tbl_studienordnungstatus s USING(status_kurzbz) LEFT JOIN lehre.tbl_studienplan USING(studienordnung_id) LEFT JOIN lehre.tbl_studienplan_semester sem USING (studienplan_id) + LEFT JOIN public.tbl_studiensemester ON(sto.gueltigvon=tbl_studiensemester.studiensemester_kurzbz) WHERE studiengang_kz='.$this->db_add_param($studiengang_kz, FHC_INTEGER, false); if (!is_null($studiensemester_kurzbz)) - $qry.=" AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz, FHC_STRING,false); + $qry.=" AND sem.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz, FHC_STRING,false); if (!is_null($semester)) $qry.=" AND semester=".$this->db_add_param($semester, FHC_INTEGER,false); } + $qry.=" ORDER BY gueltig_startdatum desc"; + if(!$this->db_query($qry)) { $this->errormsg = 'Fehler bei einer Datenbankabfrage'; diff --git a/include/studienplan.class.php b/include/studienplan.class.php index 9cc117d85..f71c37d2a 100644 --- a/include/studienplan.class.php +++ b/include/studienplan.class.php @@ -157,6 +157,7 @@ class studienplan extends basis_db if(!is_null($orgform_kurzbz)) $qry.=" AND orgform_kurzbz=".$this->db_add_param($orgform_kurzbz); + $qry.=" ORDER BY bezeichnung"; if($this->db_query($qry)) { @@ -703,42 +704,42 @@ class studienplan extends basis_db function getStudienplaeneFromSem($studiengang_kz, $studiensemester_kurzbz, $ausbildungssemester="", $orgform_kurzbz = "") { $qry = "SELECT - studienplan_id, - studienordnung_id, - orgform_kurzbz, - tbl_studienplan.version AS version_studienplan, - tbl_studienplan.bezeichnung AS bezeichnung_studienplan, - regelstudiendauer, - sprache, - aktiv, - semesterwochen, - testtool_sprachwahl, - tbl_studienplan.insertamum AS insertamum_studienplan, - tbl_studienplan.insertvon AS insertvon_studienplan, - tbl_studienplan.updateamum AS updateamum_studienplan, - tbl_studienplan.updatevon AS updatevon_studienplan, - ects_stpl, - pflicht_sws, - pflicht_lvs, - studiengang_kz, + studienplan_id, + studienordnung_id, + orgform_kurzbz, + tbl_studienplan.version AS version_studienplan, + tbl_studienplan.bezeichnung AS bezeichnung_studienplan, + regelstudiendauer, + sprache, + aktiv, + semesterwochen, + testtool_sprachwahl, + tbl_studienplan.insertamum AS insertamum_studienplan, + tbl_studienplan.insertvon AS insertvon_studienplan, + tbl_studienplan.updateamum AS updateamum_studienplan, + tbl_studienplan.updatevon AS updatevon_studienplan, + ects_stpl, + pflicht_sws, + pflicht_lvs, + studiengang_kz, tbl_studienordnung.version AS version_studienordnung, - gueltigvon, - gueltigbis, - tbl_studienordnung.bezeichnung AS bezeichnung_studienordnung, - ects, - studiengangbezeichnung, - studiengangbezeichnung_englisch, - studiengangkurzbzlang, - akadgrad_id, - tbl_studienordnung.insertamum AS insertamum_studienordnung, - tbl_studienordnung.insertvon AS insertvon_studienordnung, - tbl_studienordnung.updateamum AS updateamum_studienordnung, - tbl_studienordnung.updatevon AS updatevon_studienordnung, - status_kurzbz, - standort_id, - studienplan_semester_id, - studiensemester_kurzbz, - semester + gueltigvon, + gueltigbis, + tbl_studienordnung.bezeichnung AS bezeichnung_studienordnung, + ects, + studiengangbezeichnung, + studiengangbezeichnung_englisch, + studiengangkurzbzlang, + akadgrad_id, + tbl_studienordnung.insertamum AS insertamum_studienordnung, + tbl_studienordnung.insertvon AS insertvon_studienordnung, + tbl_studienordnung.updateamum AS updateamum_studienordnung, + tbl_studienordnung.updatevon AS updatevon_studienordnung, + status_kurzbz, + standort_id, + studienplan_semester_id, + studiensemester_kurzbz, + semester FROM lehre.tbl_studienplan JOIN lehre.tbl_studienordnung USING(studienordnung_id) diff --git a/locale/de-AT/lehre.php b/locale/de-AT/lehre.php index 97f73c35a..69a144ca5 100755 --- a/locale/de-AT/lehre.php +++ b/locale/de-AT/lehre.php @@ -41,4 +41,7 @@ $this->phrasen['lehre/AbmeldungErfolgreich']='Sie wurden erfolgreich von der Leh $this->phrasen['lehre/AbmeldungAusGruppeNichtMoeglich']='Sie können sich nicht von dieser Lehrveranstaltung abmelden'; $this->phrasen['lehre/confirmAbmeldung']='Wollen Sie sich wirklich von der Lehrveranstaltung "%s" abmelden?'; $this->phrasen['lehre/nichtzugeteilt']='Sie sind nicht zu dieser Lehrveranstaltung zugeteilt'; + +$this->phrasen['lehre/studienordnung']='Studienordnung'; +$this->phrasen['lehre/studienplan']='Studienplan'; ?> From 3c93439955aefcfe93b28257f5560cc507be9872 Mon Sep 17 00:00:00 2001 From: Gerald Raab Date: Tue, 21 Jun 2016 15:09:49 +0200 Subject: [PATCH 2/7] ital phrases --- locale/it-IT/pruefung.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/locale/it-IT/pruefung.php b/locale/it-IT/pruefung.php index 90b7a7ad7..20a8c92f0 100755 --- a/locale/it-IT/pruefung.php +++ b/locale/it-IT/pruefung.php @@ -73,8 +73,8 @@ $this->phrasen['pruefung/lvErfolgreichEntfernt'] = 'Insegnamento tolto con succe $this->phrasen['pruefung/pruefungStorniert'] = 'Esame cancellato'; $this->phrasen['pruefung/terminGeloescht'] = 'Appello eliminato'; $this->phrasen['pruefung/unbegrenzt'] = ''; -$this->phrasen['pruefung/bewertungenZu'] = 'Bewertungen zu'; -$this->phrasen['pruefung/keineAuswahl'] = 'Keine Auswahl'; +$this->phrasen['pruefung/bewertungenZu'] = 'Studenti iscritti all’appello di'; +$this->phrasen['pruefung/keineAuswahl'] = 'Nessuna selezione'; // pruefungsbewertung $this->phrasen['pruefung/pruefungsbewertungTitle'] = 'Voti d’esame'; @@ -105,7 +105,7 @@ $this->phrasen['pruefung/keineLvAngegeben'] = 'Nessun corso definito.'; $this->phrasen['pruefung/kollisionMitAnderemTermin'] = 'Date sovrapposte.'; $this->phrasen['pruefung/terminNichtInDerVergangenheit'] = 'La data dell’appello non è nel passato.'; $this->phrasen['pruefung/keineLehreinheitenVorhanden'] = 'Nessun corso disponibile.'; -$this->phrasen['pruefung/keineAnmeldungenVorhanden'] = 'Nessuna studente iscritto.'; +$this->phrasen['pruefung/keineAnmeldungenVorhanden'] = 'Nessun studente iscritto.'; // anmeldungen Verwalten $this->phrasen['pruefung/anmeldungenVerwaltenTitle'] = 'Gestione delle prenotazioni degli appelli'; From 0701a4dd2e68d412429a6baeabb819e5e5ad5d91 Mon Sep 17 00:00:00 2001 From: oesi Date: Tue, 21 Jun 2016 17:22:40 +0200 Subject: [PATCH 3/7] =?UTF-8?q?Neues=20Menu=20Addon=20f=C3=BCr=20Studienpl?= =?UTF-8?q?an-Basierte=20Ansicht?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...on_lehrveranstaltungen_studienplan.inc.php | 352 ++++++++++++++++++ 1 file changed, 352 insertions(+) create mode 100644 cms/menu/menu_addon_lehrveranstaltungen_studienplan.inc.php diff --git a/cms/menu/menu_addon_lehrveranstaltungen_studienplan.inc.php b/cms/menu/menu_addon_lehrveranstaltungen_studienplan.inc.php new file mode 100644 index 000000000..df4da04ea --- /dev/null +++ b/cms/menu/menu_addon_lehrveranstaltungen_studienplan.inc.php @@ -0,0 +1,352 @@ + + */ +/** + * Menue Addon zur Auswahl von LVs + * + * Dieses Addon erstellt ein Formular zur Auswahl von + * Studiensemester, Studiengang, Ausbildungssemester, Studienplan und zeigt die + * zugehoerigen LVs an + * + * Parameter fuer das Params Array: + * - studiengang_kz + * - semester + * - studiensemester_kurzbz + * - studienplan_id + * - studiengang_kurzbz_lo 3-stelliges Studiengangskuerzel kleingeschrieben + * - studiengang_kurzbz_hi 3-stelliges Studiengangskuerzel grossgeschrieben + */ +require_once(dirname(__FILE__).'/menu_addon.class.php'); +require_once(dirname(__FILE__).'/../../include/studiengang.class.php'); +require_once(dirname(__FILE__).'/../../include/studienordnung.class.php'); +require_once(dirname(__FILE__).'/../../include/studienplan.class.php'); +require_once(dirname(__FILE__).'/../../include/lehrveranstaltung.class.php'); +require_once(dirname(__FILE__).'/../../include/organisationsform.class.php'); +require_once(dirname(__FILE__).'/../../include/functions.inc.php'); +require_once(dirname(__FILE__).'/../../include/phrasen.class.php'); +require_once(dirname(__FILE__).'/../../include/student.class.php'); + +class menu_addon_lehrveranstaltungen_studienplan extends menu_addon +{ + public function __construct() + { + global $params; + + parent::__construct(); + + $this->link=false; + + $sprache = getSprache(); + $user = get_uid(); + $student = new student(); + $studiengang_kz=''; + $semester=''; + $studienplan_id=''; + $studienordnung_id=''; + $db = new basis_db(); + + if($student->load($user)) + { + $studiengang_kz=$student->studiengang_kz; + $semester=$student->semester; + } + + $p = new phrasen($sprache); + + $sprachen_obj = new sprache(); + $sprachen_obj->getAll(); + $sprachen_arr=array(); + + foreach($sprachen_obj->result as $row) + { + if(isset($row->bezeichnung_arr[$sprache])) + $sprachen_arr[$row->sprache]=$row->bezeichnung_arr[$sprache]; + else + $sprachen_arr[$row->sprache]=$row->sprache; + } + + $orgform_obj = new organisationsform(); + $orgform_obj->getAll(); + $orgform_arr=array(); + foreach($orgform_obj->result as $row) + $orgform_arr[$row->orgform_kurzbz]=$row->bezeichnung; + + + $stsem = new studiensemester(); + $studiensemester_kurzbz=$stsem->getaktornext(); + + if(isset($params['studiensemester_kurzbz'])) + $studiensemester_kurzbz=$params['studiensemester_kurzbz']; + + if(isset($params['studiengang_kz']) && is_numeric($params['studiengang_kz'])) + $studiengang_kz=$params['studiengang_kz']; + + if(isset($params['semester']) && is_numeric($params['semester'])) + $semester=$params['semester']; + else + { + if(!isset($semester)) + $semester=1; + } + if(isset($params['studienplan_id'])) + $studienplan_id=$params['studienplan_id']; + + $this->block.=' + '; + + $this->block.=' + '; + + // Studiensemester + + $this->block.=' + + + '; + + // Studiengang + $this->block.=' + + + + + + + + '; + + $this->block.='
+ Studiensemester
+ '; + } + else + + $errormsg .= $studiensemester->errormsg; + $this->block.=' +
+ Studiengang
+ +
+ Semester
+ +
+ Studienplan
+


'; + + $this->block.= ''; + + if (!$lv_obj = new lehrveranstaltung()) + die('Fehler beim Oeffnen der Lehrveranstaltung'); + + $lv_obj->lehrveranstaltungen=array(); + if($lv_obj->loadLehrveranstaltungStudienplan($studienplan_id, $semester,'bezeichnung')) + { + $tree = $lv_obj->getLehrveranstaltungTree(); + $this->printTree($tree, $sprache); + } + + $this->output(); + } + + /** + * Stellt die Lehrveranstaltungen in einer Baumstruktur dar. + */ + private function printTree($tree, $sprache) + { + $this->block.='"; + } + + private function CutString($strVal, $limit) + { + if(mb_strlen($strVal) > $limit+3) + { + return mb_substr($strVal, 0, $limit) . "..."; + } + else + { + return $strVal; + } + } +} +new menu_addon_lehrveranstaltungen_studienplan(); +?> From 942dfb8633287d9c37d9cc42484f9df5d52167a8 Mon Sep 17 00:00:00 2001 From: oesi Date: Thu, 23 Jun 2016 11:09:42 +0200 Subject: [PATCH 4/7] =?UTF-8?q?Noteneintr=C3=A4ge=20werden=20nicht=20mehr?= =?UTF-8?q?=20zur=20=C3=9Cbernahme=20markiert=20wenn=20die=20Zeungisnote?= =?UTF-8?q?=20neuer=20ist=20als=20die=20LVGesamtnote,=20die=20Note=20die?= =?UTF-8?q?=20selbe=20aber=20die=20Punkte=20unterschiedlich=20sind,=20da?= =?UTF-8?q?=20sonst=20die=20Punkte=20der=20komm.=20Pruefung=20=C3=BCbersch?= =?UTF-8?q?rieben=20werden=20falls=20die=20Note=20die=20selbe=20bleibt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/lvplanung/lehrveranstaltungoverlay.js.php | 3 +-- content/student/studentoverlay.js.php | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/content/lvplanung/lehrveranstaltungoverlay.js.php b/content/lvplanung/lehrveranstaltungoverlay.js.php index f2ff916a7..e927a1a17 100644 --- a/content/lvplanung/lehrveranstaltungoverlay.js.php +++ b/content/lvplanung/lehrveranstaltungoverlay.js.php @@ -1605,12 +1605,11 @@ function LehrveranstaltungGesamtNotenTreeSelectDifferent() break; } - //Wenn die Noten unterschiedlich sind, aber das benotungsdatum im Zeugnis + //Wenn das benotungsdatum im Zeugnis //nach dem benotungsdatum des lektors liegt, dann wird die zeile auch nicht markiert. //damit wird verhindert, dass pruefungsnoten die nur von der assistenz eingetragen wurden, //durch den alten eintrag des lektors wieder ueberschrieben werden if(zeugnisuid==lvgesamtuid - && zeugnisnote!=lvgesamtnote && zeugnisbenotungsdatum>lvgesamtbenotungsdatum) { found=true; diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php index e5cb83c94..8ae0ad39e 100644 --- a/content/student/studentoverlay.js.php +++ b/content/student/studentoverlay.js.php @@ -3557,12 +3557,11 @@ function StudentNotenTreeSelectDifferent() break; } - //Wenn die Noten unterschiedlich sind, aber das benotungsdatum im Zeugnis + //Wenn das benotungsdatum im Zeugnis //nach dem benotungsdatum des lektors liegt, dann wird die zeile auch nicht markiert. //damit wird verhindert, dass pruefungsnoten die nur von der assistenz eingetragen wurden, //durch den alten eintrag des lektors wieder ueberschrieben werden if(zeugnislehrveranstaltung_id==lvgesamtlehrveranstaltung_id - && zeugnisnote!=lvgesamtnote && zeugnisbenotungsdatum>lvgesamtbenotungsdatum) { found=true; From ad335ad240e591442cb36cdbe850ad3ccaa28cb7 Mon Sep 17 00:00:00 2001 From: oesi Date: Fri, 24 Jun 2016 17:04:56 +0200 Subject: [PATCH 5/7] =?UTF-8?q?RTPunkte1,=20RTPunkte2=20und=20Private=20EM?= =?UTF-8?q?ail=20hinzugef=C3=BCgt.=20Funktion=20aus=20Klasse=20entfernt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/prestudent.class.php | 99 ------------- vilesci/personen/aliquote_reduktion.json.php | 140 ++++++++++++++++++- vilesci/personen/aliquote_reduktion.php | 8 ++ 3 files changed, 146 insertions(+), 101 deletions(-) diff --git a/include/prestudent.class.php b/include/prestudent.class.php index 0656aa110..f12ac7fc6 100755 --- a/include/prestudent.class.php +++ b/include/prestudent.class.php @@ -1733,103 +1733,4 @@ class prestudent extends person return false; } } - - - /** - * Laedt alle Studenten eines Studienplans und eines Studiensemesters - * @param $studienplan_id - * @param $studiensemester_kurzbz - * @param $studiengang_kz - * @return array mit allen Prestudenten, welche sich für den angegebenen Studienplan im angegebenen Semester beworben haben - */ - public function getAllStudentenFromStudienplanAndStudsem($studienplan_id, $studiensemester_kurzbz, $studiengang_kz) - { - if(!is_numeric($studienplan_id)) - { - $this->errormsg = 'studienplan_id ist ungueltig'; - return false; - } - - if(!$studiensemester_kurzbz || $studiensemester_kurzbz == "") - { - $this->errormsg = 'studiensemester_kurzbz ist ungueltig'; - return false; - } - - $stg_obj = new studiengang(); - $stg_obj->load($studiengang_kz); - - if($stg_obj->typ=='m') - { - $qry = "SELECT DISTINCT prestudent_id, vorname, nachname, gebdatum, rt_gesamtpunkte, tbl_prestudent.studiengang_kz, bis.tbl_zgvgruppe.bezeichnung, get_rolle_prestudent(prestudent_id, null) as laststatus, - (Select anmerkung from public.tbl_prestudentstatus where prestudent_id=tbl_prestudent.prestudent_id AND studiensemester_kurzbz=". $this->db_add_param($studiensemester_kurzbz)." - AND status_kurzbz='Bewerber') as anmerkung - FROM - public.tbl_prestudent - JOIN public.tbl_person USING(person_id) - LEFT JOIN bis.tbl_zgvgruppe_zuordnung USING(zgvmas_code) - LEFT JOIN bis.tbl_zgvgruppe USING(gruppe_kurzbz) - WHERE - tbl_prestudent.studiengang_kz=". $this->db_add_param($studiengang_kz)." - AND EXISTS( - SELECT - 1 - FROM - public.tbl_prestudentstatus - WHERE - tbl_prestudent.prestudent_id=tbl_prestudentstatus.prestudent_id - AND studiensemester_kurzbz=". $this->db_add_param($studiensemester_kurzbz)." - AND status_kurzbz='Bewerber' - AND ( - studienplan_id=". $this->db_add_param($studienplan_id)." - OR - (anmerkung like '%' || (SELECT orgform_kurzbz || '_' || sprache FROM lehre.tbl_studienplan WHERE studienplan_id=". $this->db_add_param($studienplan_id).") || '%') - ) - );"; - } - else - { - $qry = "SELECT DISTINCT prestudent_id, vorname, nachname, gebdatum, rt_gesamtpunkte, tbl_prestudent.studiengang_kz, bis.tbl_zgvgruppe.bezeichnung, get_rolle_prestudent(prestudent_id, null) as laststatus, - (Select anmerkung from public.tbl_prestudentstatus where prestudent_id=tbl_prestudent.prestudent_id AND studiensemester_kurzbz=". $this->db_add_param($studiensemester_kurzbz)." - AND status_kurzbz='Bewerber') as anmerkung - FROM - public.tbl_prestudent - JOIN public.tbl_person USING(person_id) - LEFT JOIN bis.tbl_zgvgruppe_zuordnung USING(zgv_code) - LEFT JOIN bis.tbl_zgvgruppe USING(gruppe_kurzbz) - WHERE - tbl_prestudent.studiengang_kz=". $this->db_add_param($studiengang_kz)." - AND EXISTS( - SELECT - 1 - FROM - public.tbl_prestudentstatus - WHERE - tbl_prestudent.prestudent_id=tbl_prestudentstatus.prestudent_id - AND studiensemester_kurzbz=". $this->db_add_param($studiensemester_kurzbz)." - AND status_kurzbz='Bewerber' - AND ( - studienplan_id=". $this->db_add_param($studienplan_id)." - OR - (anmerkung like '%' || (SELECT orgform_kurzbz || '_' || sprache FROM lehre.tbl_studienplan WHERE studienplan_id=". $this->db_add_param($studienplan_id).") || '%') - ) - );"; - } - - - if($result = $this->db_query($qry)) - { - $ret = array(); - - while($row = $this->db_fetch_object($result)) - $ret[] = $row; - - return $ret; - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } } diff --git a/vilesci/personen/aliquote_reduktion.json.php b/vilesci/personen/aliquote_reduktion.json.php index d7e50134a..891f4eabc 100644 --- a/vilesci/personen/aliquote_reduktion.json.php +++ b/vilesci/personen/aliquote_reduktion.json.php @@ -62,8 +62,7 @@ switch($action) die("keine studiensemester_kurzbz erhalten"); $studiensemester_kurzbz = $_REQUEST["studiensemester_kurzbz"]; - $prestudent = new prestudent(); - $return = $prestudent->getAllStudentenFromStudienplanAndStudsem($studienplan_id, $studiensemester_kurzbz, $studiengang_kz); + $return = getAllStudentenFromStudienplanAndStudsem($studienplan_id, $studiensemester_kurzbz, $studiengang_kz); $db = new basis_db(); foreach($return as $key=>$value) @@ -170,10 +169,16 @@ switch($action) $maxlength[$spalte]=10; $worksheet->write($zeile,++$spalte,'Reihung',$format_bold); $maxlength[$spalte]=8; + $worksheet->write($zeile,++$spalte,'RT Punkte 1',$format_bold); + $maxlength[$spalte]=8; + $worksheet->write($zeile,++$spalte,'RT Punkte 2',$format_bold); + $maxlength[$spalte]=8; $worksheet->write($zeile,++$spalte,'RT Gesamt',$format_bold); $maxlength[$spalte]=8; $worksheet->write($zeile,++$spalte,'Interviewbogen',$format_bold); $maxlength[$spalte]=14; + $worksheet->write($zeile,++$spalte,'EMail',$format_bold); + $maxlength[$spalte]=8; $worksheet->write($zeile,++$spalte,'Status',$format_bold); $maxlength[$spalte]=8; $worksheet->write($zeile,++$spalte,'Auswahl',$format_bold); @@ -215,6 +220,31 @@ switch($action) if(mb_strlen((isset($s->seqPlace)?$s->seqPlace:''))>$maxlength[$spalte]) $maxlength[$spalte]=mb_strlen((isset($s->seqPlace)?$s->seqPlace:'')); + if(isset($s->rt_punkte1) && $s->rt_punkte1) + { + $worksheet->writeNumber($zeile,++$spalte, $s->rt_punkte1, $format_float); + if(mb_strlen($s->rt_punkte1)>$maxlength[$spalte]) + $maxlength[$spalte]=mb_strlen($s->rt_punkte1); + } + else + { + $worksheet->write($zeile,++$spalte, ""); + if(mb_strlen("")>$maxlength[$spalte]) + $maxlength[$spalte]=mb_strlen(""); + } + if(isset($s->rt_punkte2) && $s->rt_punkte2) + { + $worksheet->writeNumber($zeile,++$spalte, $s->rt_punkte2, $format_float); + if(mb_strlen($s->rt_punkte2)>$maxlength[$spalte]) + $maxlength[$spalte]=mb_strlen($s->rt_punkte2); + } + else + { + $worksheet->write($zeile,++$spalte, ""); + if(mb_strlen("")>$maxlength[$spalte]) + $maxlength[$spalte]=mb_strlen(""); + } + if(isset($s->rt_gesamtpunkte) && $s->rt_gesamtpunkte) { $worksheet->writeNumber($zeile,++$spalte, $s->rt_gesamtpunkte, $format_float); @@ -240,6 +270,11 @@ switch($action) if(mb_strlen("")>$maxlength[$spalte]) $maxlength[$spalte]=mb_strlen(""); } + + $worksheet->write($zeile,++$spalte, $s->email_privat); + if(mb_strlen($s->email_privat)>$maxlength[$spalte]) + $maxlength[$spalte]=mb_strlen($s->email_privat); + $worksheet->write($zeile,++$spalte, $s->laststatus); if(mb_strlen($s->laststatus)>$maxlength[$spalte]) $maxlength[$spalte]=mb_strlen($s->laststatus); @@ -279,4 +314,105 @@ function studentsSort($a, $b) } +/** + * Laedt die Studenten fuer die Reduktion + * @param $studienplan_id + * @param $studiensemester_kurzbz + * @param $studiengang_kz + * @return array mit allen Prestudenten, welche sich für den angegebenen Studienplan im angegebenen Semester beworben haben + */ +function getAllStudentenFromStudienplanAndStudsem($studienplan_id, $studiensemester_kurzbz, $studiengang_kz) +{ + $db = new basis_db(); + + if(!is_numeric($studienplan_id)) + { + $errormsg = 'studienplan_id ist ungueltig'; + return false; + } + + if(!$studiensemester_kurzbz || $studiensemester_kurzbz == "") + { + $errormsg = 'studiensemester_kurzbz ist ungueltig'; + return false; + } + + $stg_obj = new studiengang(); + $stg_obj->load($studiengang_kz); + + if($stg_obj->typ=='m') + { + $qry = "SELECT DISTINCT prestudent_id, vorname, nachname, gebdatum, rt_gesamtpunkte, tbl_prestudent.studiengang_kz, bis.tbl_zgvgruppe.bezeichnung, get_rolle_prestudent(prestudent_id, null) as laststatus, + (Select anmerkung from public.tbl_prestudentstatus where prestudent_id=tbl_prestudent.prestudent_id AND studiensemester_kurzbz=". $this->db_add_param($studiensemester_kurzbz)." + AND status_kurzbz='Bewerber') as anmerkung, rt_punkte1, rt_punkte2, + (SELECT kontakt FROM public.tbl_kontakt where kontakttyp='email' AND zustellung AND person_id=tbl_person.person_id limit 1) as email_privat + FROM + public.tbl_prestudent + JOIN public.tbl_person USING(person_id) + LEFT JOIN bis.tbl_zgvgruppe_zuordnung USING(zgvmas_code) + LEFT JOIN bis.tbl_zgvgruppe USING(gruppe_kurzbz) + WHERE + tbl_prestudent.studiengang_kz=". $db->db_add_param($studiengang_kz)." + AND EXISTS( + SELECT + 1 + FROM + public.tbl_prestudentstatus + WHERE + tbl_prestudent.prestudent_id=tbl_prestudentstatus.prestudent_id + AND studiensemester_kurzbz=". $db->db_add_param($studiensemester_kurzbz)." + AND status_kurzbz='Bewerber' + AND ( + studienplan_id=". $db->db_add_param($studienplan_id)." + OR + (anmerkung like '%' || (SELECT orgform_kurzbz || '_' || sprache FROM lehre.tbl_studienplan WHERE studienplan_id=". $this->db_add_param($studienplan_id).") || '%') + ) + );"; + } + else + { + $qry = "SELECT DISTINCT prestudent_id, vorname, nachname, gebdatum, rt_gesamtpunkte, tbl_prestudent.studiengang_kz, bis.tbl_zgvgruppe.bezeichnung, get_rolle_prestudent(prestudent_id, null) as laststatus, + (Select anmerkung from public.tbl_prestudentstatus where prestudent_id=tbl_prestudent.prestudent_id AND studiensemester_kurzbz=". $db->db_add_param($studiensemester_kurzbz)." + AND status_kurzbz='Bewerber') as anmerkung, rt_punkte1, rt_punkte2, + (SELECT kontakt FROM public.tbl_kontakt where kontakttyp='email' AND zustellung AND person_id=tbl_person.person_id limit 1) as email_privat + FROM + public.tbl_prestudent + JOIN public.tbl_person USING(person_id) + LEFT JOIN bis.tbl_zgvgruppe_zuordnung USING(zgv_code) + LEFT JOIN bis.tbl_zgvgruppe USING(gruppe_kurzbz) + WHERE + tbl_prestudent.studiengang_kz=". $db->db_add_param($studiengang_kz)." + AND EXISTS( + SELECT + 1 + FROM + public.tbl_prestudentstatus + WHERE + tbl_prestudent.prestudent_id=tbl_prestudentstatus.prestudent_id + AND studiensemester_kurzbz=". $db->db_add_param($studiensemester_kurzbz)." + AND status_kurzbz='Bewerber' + AND ( + studienplan_id=". $db->db_add_param($studienplan_id)." + OR + (anmerkung like '%' || (SELECT orgform_kurzbz || '_' || sprache FROM lehre.tbl_studienplan WHERE studienplan_id=". $db->db_add_param($studienplan_id).") || '%') + ) + );"; + } + + + if($result = $db->db_query($qry)) + { + $ret = array(); + + while($row = $db->db_fetch_object($result)) + $ret[] = $row; + + return $ret; + } + else + { + $errormsg = 'Fehler beim Laden der Daten'; + return false; + } +} ?> diff --git a/vilesci/personen/aliquote_reduktion.php b/vilesci/personen/aliquote_reduktion.php index dd2f86df2..990cd428e 100644 --- a/vilesci/personen/aliquote_reduktion.php +++ b/vilesci/personen/aliquote_reduktion.php @@ -446,6 +446,8 @@ Vorname ZGV Gruppe Reihung + RT Punkte 1 + RT Punkte 2 RT Gesamt Interviewbogen Anmerkung/Prio @@ -462,6 +464,8 @@ {{stud.bezeichnung}} Keine Angabe {{stud.seqPlace}} + {{stud.rt_punkte1}} + {{stud.rt_punkte2}} {{stud.rt_gesamtpunkte}} {{stud.interviewbogen?'vorhanden':'nicht vorhanden'}} {{stud.anmerkung}} @@ -514,6 +518,8 @@ Vorname ZGV Gruppe Reihung + RT Punkte 1 + RT Punkte 2 RT Gesamt Interviewbogen Anmerkung/Prio @@ -529,6 +535,8 @@ {{stud.bezeichnung}} Keine Angabe {{stud.seqPlace}} + {{stud.rt_punkte1}} + {{stud.rt_punkte2}} {{stud.rt_gesamtpunkte}} {{stud.interviewbogen?'vorhanden':'nicht vorhanden'}} {{stud.anmerkung}} From 673e7a2a2fb514ef947ced28cb1cef839d4ccb98 Mon Sep 17 00:00:00 2001 From: oesi Date: Fri, 24 Jun 2016 17:15:13 +0200 Subject: [PATCH 6/7] Berechnung korrigiert damit alle Bewerber einberechnet werden und nicht nur die noch nicht aufgenommenen --- vilesci/personen/aliquote_reduktion.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/vilesci/personen/aliquote_reduktion.php b/vilesci/personen/aliquote_reduktion.php index 990cd428e..ef9499a63 100644 --- a/vilesci/personen/aliquote_reduktion.php +++ b/vilesci/personen/aliquote_reduktion.php @@ -241,17 +241,17 @@ var neededStudentsCount = aqr.selectedStudienplatz.apz - aqr.getAcceptedCount(); var perZGV = aqr.studenten.length; var zgvElems = []; - var allApplicants = []; + var allCountedStudents = []; aqr.studenten.forEach(function(j) { - if(j.applicant) - allApplicants.push(j); + if((j.applicant || j.selected)) + allCountedStudents.push(j); }); var applicantCount = aqr.selectedStudienplatz.apz; - if(applicantCount > allApplicants.length) - applicantCount = allApplicants.length; + if(applicantCount > allCountedStudents.length) + applicantCount = allCountedStudents.length; zgvs.forEach(function(i) @@ -259,12 +259,12 @@ var applicantsFromZGV = []; aqr.studenten.forEach(function(j) { - if(j.applicant && j.bezeichnung === i) + if((j.applicant || j.selected) && j.bezeichnung === i) applicantsFromZGV.push(j); }); // calculate the aliquote reduction for every ZGV - var percent = applicantsFromZGV.length / allApplicants.length * 100; + var percent = applicantsFromZGV.length / allCountedStudents.length * 100; var neededFromZGV = (applicantCount / 100 * percent) - aqr.getAcceptedCount(i); if(neededFromZGV < 0) From fbf33e708ea98b35dff9403055703269fdb386ed Mon Sep 17 00:00:00 2001 From: oesi Date: Mon, 27 Jun 2016 09:31:01 +0200 Subject: [PATCH 7/7] Fixed Typo --- vilesci/personen/aliquote_reduktion.json.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vilesci/personen/aliquote_reduktion.json.php b/vilesci/personen/aliquote_reduktion.json.php index 891f4eabc..7cadce97d 100644 --- a/vilesci/personen/aliquote_reduktion.json.php +++ b/vilesci/personen/aliquote_reduktion.json.php @@ -343,7 +343,7 @@ function getAllStudentenFromStudienplanAndStudsem($studienplan_id, $studiensemes if($stg_obj->typ=='m') { $qry = "SELECT DISTINCT prestudent_id, vorname, nachname, gebdatum, rt_gesamtpunkte, tbl_prestudent.studiengang_kz, bis.tbl_zgvgruppe.bezeichnung, get_rolle_prestudent(prestudent_id, null) as laststatus, - (Select anmerkung from public.tbl_prestudentstatus where prestudent_id=tbl_prestudent.prestudent_id AND studiensemester_kurzbz=". $this->db_add_param($studiensemester_kurzbz)." + (Select anmerkung from public.tbl_prestudentstatus where prestudent_id=tbl_prestudent.prestudent_id AND studiensemester_kurzbz=". $db->db_add_param($studiensemester_kurzbz)." AND status_kurzbz='Bewerber') as anmerkung, rt_punkte1, rt_punkte2, (SELECT kontakt FROM public.tbl_kontakt where kontakttyp='email' AND zustellung AND person_id=tbl_person.person_id limit 1) as email_privat FROM @@ -365,7 +365,7 @@ function getAllStudentenFromStudienplanAndStudsem($studienplan_id, $studiensemes AND ( studienplan_id=". $db->db_add_param($studienplan_id)." OR - (anmerkung like '%' || (SELECT orgform_kurzbz || '_' || sprache FROM lehre.tbl_studienplan WHERE studienplan_id=". $this->db_add_param($studienplan_id).") || '%') + (anmerkung like '%' || (SELECT orgform_kurzbz || '_' || sprache FROM lehre.tbl_studienplan WHERE studienplan_id=". $db->db_add_param($studienplan_id).") || '%') ) );"; }