diff --git a/application/controllers/person/Gradelist.php b/application/controllers/person/Gradelist.php new file mode 100644 index 000000000..bf179ad35 --- /dev/null +++ b/application/controllers/person/Gradelist.php @@ -0,0 +1,349 @@ + array('student:r', 'student/noten:r') + ) + ); + + // Loads models + $this->load->model('person/person_model', 'PersonModel'); + $this->load->model('organisation/studiengang_model', 'StudiengangModel'); + $this->load->model('crm/student_model', 'StudentModel'); + $this->load->model('crm/prestudentstatus_model', 'PrestudentstatusModel'); + $this->load->model('education/zeugnisnote_model', 'ZeugnisnoteModel'); + $this->load->model('education/lehrveranstaltung_model', 'LehrveranstaltungModel'); + $this->load->model('codex/note_model', 'NoteModel'); + + $this->loadPhrases( + array( + 'global', + 'person', + 'lehre', + 'ui' + ) + ); + + $result_noten = $this->NoteModel->load(); + foreach ($result_noten->retval as $row) + { + $this->_grades[$row->note]['positiv'] = $row->positiv; + $this->_grades[$row->note]['anmerkung'] = $row->anmerkung; + $this->_grades[$row->note]['notenwert'] = $row->notenwert; + } + } + + /** + * Print all Grades of a person + * @param $uid UID of the Person + */ + public function index($uid = null) + { + if (is_null($uid)) + $uid = getAuthUID(); + + // load student + $student = $this->StudentModel->load(array($uid)); + if (!isSuccess($student) || !hasData($student)) + { + echo "You have no Permission or User does not exists"; + exit; + } + + // Check if logged in User has permission to see grades of this person + $stg = $this->StudiengangModel->load($student->retval[0]->studiengang_kz); + if (!$this->hasPermission($uid, $stg->retval[0]->oe_kurzbz)) + { + echo "You have no Permission or User does not exists"; + exit; + } + $person = $this->PersonModel->getByUid($uid); + + $courses = $this->loadCourseInformation($student->retval[0]->prestudent_id, $student->retval[0]->student_uid); + + $data = array ( + "user" => $uid, + "person" => $person->retval[0], + "courses" => $courses, + "grades" => $this->_grades + ); + + $this->load->view('person/gradelist/gradelist.php', $data); + } + + /** + * Check if the Logged in User has permission to see the grades of this person + * @param $uid UID of the Person we want to see + * @param $oe_kurzbz Organisation Unit of the Person we want to see + * @return true if the logged in User is allowed to see the content, false if not + */ + private function hasPermission($uid, $oe_kurzbz) + { + $loggedinUser = getAuthUID(); + if($uid != $loggedinUser) + { + $this->load->library('PermissionLib'); + if($this->permissionlib->isBerechtigt('student/noten','s',$oe_kurzbz)) + { + return true; + } + return false; + } + else + { + return true; + } + } + + /** + * Loads the Courses and Grades of the Student + * + * @param $prestudent_id of the Student + * @return array with the courses + */ + private function loadCourseInformation($prestudent_id, $uid) + { + $this->load->library('StudienplanLib'); + + // Get status of Student + $result_status = $this->PrestudentstatusModel->getStatusByFilter($prestudent_id); + + if (isError($result_status) || !hasData($result_status)) + { + return error('No Status Found'); + } + + // Get Courses from studyplan for each semester of the student + foreach ($result_status->retval as $row_status) + { + if (in_array($row_status->status_kurzbz, + array('Student','Diplomand','Incoming','Abbrecher','Unterbrecher','Absolvent'))) + { + // LVs fuer das Semester holen lt Studienplan + $lvtree = $this->studienplanlib->getLehrveranstaltungTree( + $row_status->studienplan_id, + $row_status->ausbildungssemester, + true + ); + $courses['semester'][$row_status->studiensemester_kurzbz]['lvs'] = $lvtree; + $courses['semester'][$row_status->studiensemester_kurzbz]['lvs_nonstpl'] = array(); + + $result_stpl = $this->StudienplanModel->load($row_status->studienplan_id); + if(isSuccess($result_stpl) && hasData($result_stpl)) + { + $stpl_bezeichnung = $result_stpl->retval[0]->bezeichnung; + } + else + $stpl_bezeichnung = 'unknown'; + + $courses['semester'][$row_status->studiensemester_kurzbz]['data'] = array( + 'status' => $row_status->status_kurzbz, + 'ausbildungssemester' => $row_status->ausbildungssemester, + 'studiensemester_kurzbz' => $row_status->studiensemester_kurzbz, + 'studienplan_id' => $row_status->studienplan_id, + 'studienplan_bezeichnung' => $stpl_bezeichnung, + ); + } + } + + // Load Grades and add to studyplan + $result_zeugnis = $this->ZeugnisnoteModel->loadWhere(array("student_uid" => $uid)); + + if (isSuccess($result_zeugnis) && hasData($result_zeugnis)) + { + foreach ($courses['semester'] as $key=>$value) + { + $this->fillNotenPart( + $result_zeugnis, + $courses['semester'][$key]['lvs'], + $value['data']['studiensemester_kurzbz'] + ); + } + } + + // Build Array of Courses that are not part of the studyplan + foreach ($result_zeugnis->retval as $row_noten) + { + if (!isset($row_noten->found)) + { + $result_lv = $this->LehrveranstaltungModel->load($row_noten->lehrveranstaltung_id); + $courses['semester'][$row_noten->studiensemester_kurzbz]['lvs_nonstpl'][] = array( + 'lehrveranstaltung_id' => $row_noten->lehrveranstaltung_id, + 'lehrtyp_kurzbz' => $result_lv->retval[0]->lehrtyp_kurzbz, + 'pflicht' => false, + 'bezeichnung' => $result_lv->retval[0]->bezeichnung, + 'ects' => $result_lv->retval[0]->ects, + 'note' => $row_noten->note, + 'datum' => $row_noten->benotungsdatum + ); + if(!isset($courses['semester'][$row_noten->studiensemester_kurzbz]['data']['ectssumme_nonstpl'])) + $courses['semester'][$row_noten->studiensemester_kurzbz]['data']['ectssumme_nonstpl'] = 0; + $courses['semester'][$row_noten->studiensemester_kurzbz]['data']['ectssumme_nonstpl'] += $result_lv->retval[0]->ects; + } + } + + $sum_gradeweighted_overall = 0; + $sum_ectsweighted_overall = 0; + $sum_grades_overall = 0; + $num_grades_overall = 0; + $sum_ects_overall = 0; + $sum_ects_positiv_overall = 0; + + // Calculate Sum and Average + foreach ($courses['semester'] as $stsem => $row_lvs) + { + $grades = $this->getGrades($row_lvs['lvs']); + + $num_grades = 0; + $sum_ects = 0; + $sum_ects_positiv = 0; + $sum_grades = 0; + $notendurchschnitt = 0; + $sum_gradeweighted = 0; + $sum_ectsweighted = 0; + + foreach ($grades as $row) + { + if ($this->_grades[$row['note']]['notenwert'] != '') + { + $num_grades++; + $sum_grades += $this->_grades[$row['note']]['notenwert']; + + $sum_ectsweighted += $row['ects']; + $sum_gradeweighted += $row['ects'] * $this->_grades[$row['note']]['notenwert']; + } + $sum_ects += $row['ects']; + if ($this->_grades[$row['note']]['positiv']) + $sum_ects_positiv += $row['ects']; + } + if ($num_grades > 0) + $notendurchschnitt = $sum_grades / $num_grades; + else + $notendurchschnitt = 0; + + if ($sum_ectsweighted > 0) + $notendurchschnittgewichtet = $sum_gradeweighted / $sum_ectsweighted; + else + $notendurchschnittgewichtet = 0; + + $num_grades_overall += $num_grades; + $sum_grades_overall += $sum_grades; + $sum_gradeweighted_overall += $sum_gradeweighted; + $sum_ectsweighted_overall += $sum_ectsweighted; + $sum_ects_overall += $sum_ects; + $sum_ects_positiv_overall += $sum_ects_positiv; + + $courses['semester'][$stsem]['data']['notendurchschnitt'] = number_format($notendurchschnitt, 2); + $courses['semester'][$stsem]['data']['notendurchschnittgewichtet'] = number_format($notendurchschnittgewichtet, 2); + $courses['semester'][$stsem]['data']['ectssumme'] = number_format($sum_ects,2); + $courses['semester'][$stsem]['data']['ectssumme_positiv'] = number_formaT($sum_ects_positiv,2); + } + + if ($num_grades_overall > 0) + $notendurchschnitt = $sum_grades_overall / $num_grades_overall; + else + $notendurchschnitt = 0; + + if ($sum_ectsweighted_overall > 0) + $notendurchschnittgewichtet = $sum_gradeweighted_overall / $sum_ectsweighted_overall; + else + $notendurchschnittgewichtet = 0; + + $courses['overall'] = array( + 'notendurchschnitt' => number_format($notendurchschnitt, 2), + 'notendurchschnittgewichtet' => number_format($notendurchschnittgewichtet, 2), + 'ectssumme' => $sum_ects_overall, + 'ectssumme_positiv' => $sum_ects_positiv_overall + ); + return $courses; + } + + /** + * Combines the Studyplan Courses recursively with the Grades of the Student + * Grades that are found in the Studyplan are marked, the others are added to a separate list + * @param $noten reference to array of all grades. + * @param $courses reference to array of all courses. + * @param $studiensemester_kurzbz Studiensemester of the Course and Grades + */ + private function fillNotenPart(&$noten, &$courses, $studiensemester_kurzbz) + { + foreach ($courses as $key => $value) + { + foreach ($noten->retval as $notenkey => $row_noten) + { + if ($row_noten->lehrveranstaltung_id == $value['lehrveranstaltung_id'] + && $row_noten->studiensemester_kurzbz == $studiensemester_kurzbz) + { + $courses[$key]['note'] = $row_noten->note; + $courses[$key]['datum'] = $row_noten->benotungsdatum; + $noten->retval[$notenkey]->found = true; + } + if (isset($value['childs'])) + $this->fillNotenPart($noten, $courses[$key]['childs'], $studiensemester_kurzbz); + } + } + } + + /** + * Reads all the Courses recursivly and Returns an Array with the Grades and ECTS + * @param $courses array of courses + * @return array with grades and ects + */ + public function getGrades($courses) + { + $grades = array(); + foreach ($courses as $row) + { + if (isset($row['note']) && $row['note'] != '') + { + $grades[] = array( + 'note' => $row['note'], + 'ects' => $row['ects'] + ); + } + + if ($row['childs']) + { + $childgrades = $this->getGrades($row['childs']); + $grades = array_merge($grades, $childgrades); + } + } + return $grades; + } + + /** + * Helper Function to Display recursive Courses + * @param $course array if courses + * @param $depth integer defines the number parent elements + */ + static function printRow($course, $depth) + { + $ci =& get_instance(); + $ci->load->view('person/gradelist/course.php', + array( + 'course' => $course, + 'depth' => $depth + ) + ); + + if (isset($course['childs'])) + { + foreach ($course['childs'] as $row_course) + Gradelist::printRow($row_course, $depth + 1); + } + } +} diff --git a/application/libraries/StudienplanLib.php b/application/libraries/StudienplanLib.php new file mode 100644 index 000000000..c40120721 --- /dev/null +++ b/application/libraries/StudienplanLib.php @@ -0,0 +1,72 @@ +ci =& get_instance(); + + // Loads model Organisationseinheit_model + $this->ci->load->model('organisation/Studienplan_model', 'StudienplanModel'); + } + + public function getLehrveranstaltungTree($studienplan_id, $semester, $studplan = null) + { + $tree = array(); + $data = $this->ci->StudienplanModel->getStudienplanLehrveranstaltung($studienplan_id, $semester); + if(isSuccess($data) && hasData($data)) + { + $this->lehrveranstaltungen = $data->retval; + foreach($this->lehrveranstaltungen as $row) + { + if (!is_null($studplan) && $row->export != $studplan) + continue; + + if (is_null($row->studienplan_lehrveranstaltung_id_parent)) + { + $treeitem = array( + 'lehrveranstaltung_id' => $row->lehrveranstaltung_id, + 'lehrtyp_kurzbz' => $row->lehrtyp_kurzbz, + 'pflicht' => $row->pflicht, + 'bezeichnung' => $row->bezeichnung, + 'ects' => $row->ects + ); + $childs = $this->getChildElements($row->studienplan_lehrveranstaltung_id); + if(is_array($childs) && count($childs) > 0) + $treeitem['childs'] = $childs; + $tree[] = $treeitem; + } + } + } + return $tree; + } + + private function getChildElements($studienplan_lehrveranstaltung_id) + { + $subtree = array(); + + foreach($this->lehrveranstaltungen as $row) + { + if($studienplan_lehrveranstaltung_id == $row->studienplan_lehrveranstaltung_id_parent) + { + $treeitem = array( + 'lehrveranstaltung_id' => $row->lehrveranstaltung_id, + 'lehrtyp_kurzbz' => $row->lehrtyp_kurzbz, + 'pflicht' => $row->pflicht, + 'bezeichnung' => $row->bezeichnung, + 'ects' => $row->ects + ); + $childs = $this->getChildElements($row->studienplan_lehrveranstaltung_id); + if(is_array($childs)) + $treeitem['childs'] = $childs; + $subtree[] = $treeitem; + } + } + return $subtree; + } +} diff --git a/application/models/crm/Student_model.php b/application/models/crm/Student_model.php index 0d03fd50f..532658208 100644 --- a/application/models/crm/Student_model.php +++ b/application/models/crm/Student_model.php @@ -14,13 +14,13 @@ class Student_model extends DB_Model } // **** -// * Generiert die Matrikelnummer -// * FORMAT: 0710254001 -// * 07 = Jahr -// * 1/2/0 = WS/SS/incoming -// * 0254 = Studiengangskennzahl vierstellig -// * 001 = Laufende Nummer -// **** + // * Generiert die Matrikelnummer + // * FORMAT: 0710254001 + // * 07 = Jahr + // * 1/2/0 = WS/SS/incoming + // * 0254 = Studiengangskennzahl vierstellig + // * 001 = Laufende Nummer + // **** public function generateMatrikelnummer($studiengang_kz, $studiensemester_kurzbz) { $jahr = mb_substr($studiensemester_kurzbz, 4); diff --git a/application/models/organisation/Studienplan_model.php b/application/models/organisation/Studienplan_model.php index 5fe7ef44d..2c3b36c03 100644 --- a/application/models/organisation/Studienplan_model.php +++ b/application/models/organisation/Studienplan_model.php @@ -11,35 +11,46 @@ class Studienplan_model extends DB_Model $this->dbTable = "lehre.tbl_studienplan"; $this->pk = "studienplan_id"; } - + public function getStudienplaene($studiengang_kz) { $this->addJoin("lehre.tbl_studienordnung", "studienordnung_id"); - + return $this->loadWhere(array("studiengang_kz" => $studiengang_kz)); } - + public function getStudienplaeneBySemester($studiengang_kz, $studiensemester_kurzbz, $ausbildungssemester = null, $orgform_kurzbz = null) { $this->addJoin("lehre.tbl_studienordnung", "studienordnung_id"); $this->addJoin("lehre.tbl_studienplan_semester", "studienplan_id"); - + $whereArray = array( "tbl_studienplan.aktiv" => "TRUE", "tbl_studienordnung.studiengang_kz" => $studiengang_kz, "tbl_studienplan_semester.studiensemester_kurzbz" => $studiensemester_kurzbz ); - + if(!is_null($ausbildungssemester)) { $whereArray["tbl_studienplan_semester.semester"] = $ausbildungssemester; } - + if(!is_null($orgform_kurzbz)) { $whereArray["orgform_kurzbz"] = $orgform_kurzbz; } - + return $this->StudienplanModel->loadWhere($whereArray); } -} \ No newline at end of file + + public function getStudienplanLehrveranstaltung($studienplan_id, $semester) + { + $this->addJoin('lehre.tbl_studienplan_lehrveranstaltung', 'studienplan_id'); + $this->addJoin('lehre.tbl_lehrveranstaltung', 'lehrveranstaltung_id'); + $this->addOrder('tbl_lehrveranstaltung.sort'); + return $this->loadWhere(array( + 'studienplan_id' => $studienplan_id, + 'tbl_studienplan_lehrveranstaltung.semester' => $semester + )); + } +} diff --git a/application/views/person/gradelist/course.php b/application/views/person/gradelist/course.php new file mode 100644 index 000000000..1f1f1911b --- /dev/null +++ b/application/views/person/gradelist/course.php @@ -0,0 +1,16 @@ + + + + + + + + diff --git a/application/views/person/gradelist/gradelist.php b/application/views/person/gradelist/gradelist.php new file mode 100644 index 000000000..f00978294 --- /dev/null +++ b/application/views/person/gradelist/gradelist.php @@ -0,0 +1,52 @@ +load->view( + 'templates/FHC-Header', + array( + 'title' => 'Gradelist', + 'jquery' => true, + 'jqueryui' => true, + 'bootstrap' => true, + 'fontawesome' => true, + 'ajaxlib' => true, + 'customCSSs' => array( + 'public/css/tools/gradelist.css' + ), + 'customJSs' => array( + 'public/js/bootstrapper.js' + ) + ) + ); +?> + +
+
+
+
+
+

+ p->t('global', 'uebersicht')); ?> - + vorname.' '.$person->nachname.' ('.$user.')';?> +

+
+
+
+ p->t('lehre', 'notendurchschnitt'); ?>: +
+ p->t('lehre', 'gewichteternotendurchschnitt'); ?>: +
+ p->t('lehre', 'ects'); ?>: +
+
+ $row_semester) + { + $this->load->view('person/gradelist/semester.php', $row_semester); + } + ?> +
+
+
+
+ + +load->view('templates/FHC-Footer'); ?> diff --git a/application/views/person/gradelist/semester.php b/application/views/person/gradelist/semester.php new file mode 100644 index 000000000..ae9bbc5bc --- /dev/null +++ b/application/views/person/gradelist/semester.php @@ -0,0 +1,117 @@ + +
+
+
+ +
+
+ 0): + + echo '

Lehrveranstaltungen laut Studienplan '.$semesterdata['studienplan_bezeichnung'].'

'; + ?> + + + + + + + + + + + + + + + + + + +
p->t('lehre','lehrveranstaltung');?>p->t('lehre','ects');?>p->t('lehre','note');?>
+ +
+ 0): + ?> +

p->t('lehre','nichtstudienplanrelevanteKurse'); ?>

+ + + + + + + + + + + + + + + + + + +
p->t('lehre','lehrveranstaltung');?>p->t('lehre','ects');?>p->t('lehre','note');?>
+ +
+ +
+
+
+
diff --git a/application/views/templates/FHC-Header.php b/application/views/templates/FHC-Header.php index f48c97cc1..6a96eb6f9 100644 --- a/application/views/templates/FHC-Header.php +++ b/application/views/templates/FHC-Header.php @@ -93,10 +93,11 @@ // NavigationWidget CSS if ($navigationwidget === true) generateCSSsInclude('public/css/NavigationWidget.css'); + generateCSSsInclude('public/css/fhcomplete.css'); + // Eventually required CSS generateCSSsInclude($customCSSs); // Eventually required CSS - // -------------------------------------------------------------------------------------------------------- // Javascripts diff --git a/content/fas.xul.php b/content/fas.xul.php index 9f31ec1c3..6f6c3a19a 100644 --- a/content/fas.xul.php +++ b/content/fas.xul.php @@ -110,6 +110,7 @@ foreach($addon_obj->result as $addon) + @@ -371,6 +372,12 @@ foreach($addon_obj->result as $addon) label = "&menu-statistic-notenspiegel.label;" command = "menu-statistic-notenspiegel:command" accesskey = "&menu-statistic-notenspiegel.accesskey;"/> + diff --git a/content/fasoverlay.js.php b/content/fasoverlay.js.php index a4a2c4347..0e8f5fb12 100644 --- a/content/fasoverlay.js.php +++ b/content/fasoverlay.js.php @@ -1077,6 +1077,26 @@ function StatistikPrintNotenspiegelErweitert(typ) window.open('content/statistik/notenspiegel_erweitert.php?studiengang_kz='+studiengang_kz+'&semester='+semester+'&typ='+typ+'&orgform='+orgform,'Notenspiegel'); } +function StatistikPrintNotenspiegelStudent() +{ + var tree = document.getElementById('student-tree'); + var data=''; + //Wenn nichts markiert wurde -> alle exportieren + if(tree.currentIndex==-1) + { + alert("Bitte zuerst einen Studenten markieren"); + return; + } + + var student_uid = getTreeCellText(tree, 'student-treecol-uid', tree.currentIndex); + if (student_uid == '') + { + alert('Markierte Person ist kein Student'); + return; + } + window.open('index.ci.php/person/gradelist/index/'+student_uid,'Notenspiegel'); +} + // **** // * Liefert eine statistik ueber die Anzahl der Interessenten/Bewerber Studenten // **** diff --git a/locale/de-AT/fas.dtd b/locale/de-AT/fas.dtd index cad80671f..1fb4fde7f 100644 --- a/locale/de-AT/fas.dtd +++ b/locale/de-AT/fas.dtd @@ -114,6 +114,10 @@ + + + + diff --git a/public/css/fhcomplete.css b/public/css/fhcomplete.css new file mode 100644 index 000000000..1f8de48b9 --- /dev/null +++ b/public/css/fhcomplete.css @@ -0,0 +1,23 @@ +.page-header { + margin: 10px 0 5px; +} +h1 { + font-size: 2rem; +} +h2 { + font-size: 1.8rem; +} +h3 { + font-size: 1.6rem; +} + +h4 { + font-size: 1.4rem; +} +h5 { + font-size: 1.2rem; +} +h6 { + font-size: 1rem; + +} diff --git a/public/css/sbadmin2/tablesort_bootstrap.css b/public/css/sbadmin2/tablesort_bootstrap.css index e190f77e3..d10d7306e 100644 --- a/public/css/sbadmin2/tablesort_bootstrap.css +++ b/public/css/sbadmin2/tablesort_bootstrap.css @@ -19,6 +19,10 @@ border-bottom: #ccc 2px solid !important; } +/* Remove black border at top of table footer */ +.tablesorter-default tfoot > tr > th { + border-top: #ccc 2px solid !important; +} /* set colors of zebra widget */ table.tablesorter tbody tr.even td, table.tablesorter tbody tr.even:hover, table.tablesorter tbody tr.even td:hover{ background-color: #ffff; @@ -57,4 +61,4 @@ table.tablesort-hover tr:hover, .tablesort-active{ /* bring datepicker to front */ #ui-datepicker-div{ z-index: 9999 !important; -} \ No newline at end of file +} diff --git a/public/css/tools/gradelist.css b/public/css/tools/gradelist.css new file mode 100644 index 000000000..68c7fff36 --- /dev/null +++ b/public/css/tools/gradelist.css @@ -0,0 +1,40 @@ +.gradetable > thead > tr > th{ + border-bottom: 1px solid black; +} +.gradetable > tbody > tr > td{ + border-bottom: 1px solid #eeeeee; +} +.gradetable > tfoot > tr > th { + border-top: 1px solid black; +} +.gradelist_row_lv { +} +.gradelist_row_modul > td { + border-bottom: 1px solid black; + background-color: #eeeeee; +} + +.gradelist_row_grade_positiv { + color: green; +} +.gradelist_row_grade_negativ { + color: red; +} +.gradelist_row_depth_1 > td:first-child { + padding-left: 15px !important; +} +.gradelist_row_depth_2 > td:first-child { + padding-left: 30px !important; +} +.gradelist_row_depth_3 > td:first-child { + padding-left: 45px !important; +} +.gradelist_row_depth_4 > td:first-child { + padding-left: 60px !important; +} +.gradelist_row_depth_5 > td:first-child { + padding-left: 75px !important; +} +.gradelist_row_depth_6 > td:first-child { + padding-left: 90px !important; +} diff --git a/public/js/PhrasesLib.js b/public/js/PhrasesLib.js index 64b10759d..adedfa33d 100644 --- a/public/js/PhrasesLib.js +++ b/public/js/PhrasesLib.js @@ -25,7 +25,10 @@ var FHC_PhrasesLib = { * @param {Object} params : parameters to be replaced instead of {} in phraseObj.text * @returns {String} : phrase-text */ - t: function(category, phrase, params = {}) { + t: function(category, phrase, params) { + + if (typeof(params)=='undefined') + params = {}; // Checks if FHC_JS_PHRASES_STORAGE_OBJECT is an array if ($.isArray(FHC_JS_PHRASES_STORAGE_OBJECT)) diff --git a/system/checksystem.php b/system/checksystem.php index 73b16e3b3..7bdf96446 100644 --- a/system/checksystem.php +++ b/system/checksystem.php @@ -92,6 +92,7 @@ $beschreibung=1; $berechtigungen = array( array('admin','Super User Rechte'), array('assistenz','Assistenz'), + array('student','Defaultberechtigung für Studierende'), array('basis/addon','Addons verwalten'), array('basis/ampel','Ampeln Administrieren'), array('basis/ampeluebersicht','Ampel Übersicht für Leiter'), diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 4f9d885d0..95cefaa85 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -1519,7 +1519,6 @@ $phrases = array( ) ) ), - array( 'app' => 'core', 'category' => 'filter', @@ -1541,9 +1540,6 @@ $phrases = array( ) ), - - - //**************************** CORE/person array( 'app' => 'core', @@ -2207,8 +2203,126 @@ $phrases = array( ) ) ), - - + array( + 'app' => 'core', + 'category' => 'lehre', + 'phrase' => 'ects', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'ECTS', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'ECTS', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'lehre', + 'phrase' => 'notendurchschnitt', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Notendurchschnitt', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Grade average', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'lehre', + 'phrase' => 'gewichteternotendurchschnitt', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'gewichteter Notendurchschnitt', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'weighted grade point average', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'lehre', + 'phrase' => 'note', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Note', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Grade', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'lehre', + 'phrase' => 'lehrveranstaltung', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Lehrveranstaltung', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Course', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'lehre', + 'phrase' => 'nichtstudienplanrelevanteKurse', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Nicht studienplanrelevante Lehrveranstaltung', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'additional Courses', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), //********************** INFOCENTER/infocenter array(