diff --git a/application/controllers/components/stv/Config.php b/application/controllers/components/stv/Config.php index a0fd4f53a..efc93e3d8 100644 --- a/application/controllers/components/stv/Config.php +++ b/application/controllers/components/stv/Config.php @@ -23,6 +23,10 @@ class Config extends FHC_Controller 'title' => 'Kontakt', 'component' => './Stv/Studentenverwaltung/Details/Kontakt.js' ]; + $result['noten'] = [ + 'title' => 'Noten', + 'component' => './Stv/Studentenverwaltung/Details/Noten.js' + ]; $result['notizen'] = [ 'title' => 'Notizen', 'component' => './Stv/Studentenverwaltung/Details/Notizen.js' diff --git a/application/controllers/components/stv/Noten.php b/application/controllers/components/stv/Noten.php new file mode 100644 index 000000000..6ba5863c5 --- /dev/null +++ b/application/controllers/components/stv/Noten.php @@ -0,0 +1,43 @@ + 'student/noten:r' + ]); + + // Load Libraries + $this->load->library('VariableLib', ['uid' => getAuthUID()]); + } + + public function getZeugnis($prestudent_id) + { + $this->load->model('crm/Student_model', 'StudentModel'); + $this->load->model('education/Zeugnisnote_model', 'ZeugnisnoteModel'); + + $result = $this->StudentModel->loadWhere([ + 'prestudent_id' => $prestudent_id + ]); + if (isError($result)) { + $this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR); + return $this->outputJson($result); + } + if (!hasData($result)) + return $this->outputJsonSuccess(null); + + $student_uid = current(getData($result))->student_uid; + + $studiensemester_kurzbz = $this->variablelib->getVar('semester_aktuell'); + + $result = $this->ZeugnisnoteModel->getZeugnisnoten($student_uid, $studiensemester_kurzbz); + if (isError($result)) { + $this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR); + } + + return $this->outputJson($result); + } +} diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Noten.js b/public/js/components/Stv/Studentenverwaltung/Details/Noten.js new file mode 100644 index 000000000..8e8269ee5 --- /dev/null +++ b/public/js/components/Stv/Studentenverwaltung/Details/Noten.js @@ -0,0 +1,19 @@ +import NotenZeugnis from './Noten/Zeugnis.js'; + +export default { + components: { + NotenZeugnis + }, + props: { + modelValue: Object + }, + methods: { + reload() { + this.$refs.zeugnis.$refs.table.reloadTable(); + } + }, + template: ` +
+ +
` +}; \ No newline at end of file diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Noten/Zeugnis.js b/public/js/components/Stv/Studentenverwaltung/Details/Noten/Zeugnis.js new file mode 100644 index 000000000..8dcc52d96 --- /dev/null +++ b/public/js/components/Stv/Studentenverwaltung/Details/Noten/Zeugnis.js @@ -0,0 +1,72 @@ +import {CoreFilterCmpt} from "../../../../filter/Filter.js"; +import {CoreRESTClient} from '../../../../../RESTClient.js'; + +export default { + components: { + CoreFilterCmpt + }, + props: { + student: Object + }, + data() { + return { + validStudent: true, + tabulatorEvents: [] + }; + }, + computed: { + ajaxURL() { + return CoreRESTClient._generateRouterURI('components/stv/Noten/getZeugnis/' + this.student.prestudent_id); + }, + tabulatorOptions() { + return { + ajaxURL: this.ajaxURL, + ajaxResponse: (url, params, response) => { + if (!response.retval) + this.validStudent = false; + else + this.validStudent = true; + return response.retval || []; + }, + columns: [ + { field: 'zeugnis', title: 'Zeugnis', formatter: 'tickCross' }, + { field: 'lehrveranstaltung_bezeichnung', title: 'Lehrveranstaltung' }, + { field: 'note_bezeichnung', title: 'Note' }, + { field: 'uebernahmedatum', title: 'Übernahmedatum', visible: false }, + { field: 'benotungsdatum', title: 'Benotungsdatum', visible: false }, + { field: 'benotungsdatum-iso', title: 'Benotungsdatum ISO', visible: false }, + { field: 'studiensemester_kurzbz', title: 'Studiensemester', visible: false }, + { field: 'note', title: 'Note Numerisch', visible: false }, + { field: 'lehrveranstaltung_id', title: 'Lehrveranstaltung ID', visible: false }, + { field: 'studiengang', title: 'Studiengang', visible: false }, + { field: 'studiengang_kz', title: 'Studiengang Kennzahl', visible: false }, + { field: 'studiengang_lv', title: 'StudiengangLV', visible: false }, + { field: 'studiengang_kz_lv', title: 'Studiengang_kzLV', visible: false }, + { field: 'semester_lv', title: 'SemesterLV', visible: false }, + { field: 'ects_lv', title: 'ECTS', visible: false }, + { field: 'lehrform', title: 'Lehrform', visible: false }, + { field: 'kurzbz', title: 'Kurzbz', visible: false }, + { field: 'punkte', title: 'Punkte', visible: false }, + { field: 'lehrveranstaltung_bezeichnung_english', title: 'Englisch', visible: false } + ], + layout: 'fitDataStretch', + height: '100%', + persistence: true + }; + } + }, + template: ` +
+
Kein Student
+ + +
` +}; \ No newline at end of file