diff --git a/application/controllers/api/frontend/v1/stv/Pruefung.php b/application/controllers/api/frontend/v1/stv/Pruefung.php index 9ddd22897..cdac93b4b 100644 --- a/application/controllers/api/frontend/v1/stv/Pruefung.php +++ b/application/controllers/api/frontend/v1/stv/Pruefung.php @@ -101,7 +101,7 @@ class Pruefung extends FHCAPI_Controller } public function insertPruefung(){ - //TODO(Manu) validations + //TODO(Manu) Berechtigungen $authUID = getAuthUID(); $lehreinheit_id = $this->input->post('lehreinheit_id'); @@ -112,6 +112,11 @@ class Pruefung extends FHCAPI_Controller $pruefungstyp_kurzbz = $this->input->post('pruefungstyp_kurzbz'); $anmerkung = $this->input->post('anmerkung'); + $this->load->library('form_validation'); + + $this->form_validation->set_rules( + 'datum', $this->p->t('global', 'datum'), ['is_valid_date'] + ); $result = $this->PruefungModel->insert([ 'lehreinheit_id' => $lehreinheit_id, @@ -132,7 +137,7 @@ class Pruefung extends FHCAPI_Controller } public function updatePruefung($pruefung_id){ - //TODO(Manu) validations + //TODO(Manu) validations and Berechtigungen $result = $this->PruefungModel->load($pruefung_id); $oldpruefung = $this->getDataOrTerminateWithError($result); @@ -280,11 +285,15 @@ class Pruefung extends FHCAPI_Controller return $this->terminateWithSuccess($allDataMa); } - public function getLvsByStudent($student_uid) + public function getLvsByStudent($student_uid, $studiensemester_kurzbz=null ) { + //bei post request +/* $student_uid = $this->input->post('student_uid'); + $studiensemester_kurzbz = $this->input->post('studiensemester_kurzbz');*/ + $this->load->model('education/Lehrveranstaltung_model', 'LehrveranstaltungModel'); - $result = $this->LehrveranstaltungModel->getLvsByStudent($student_uid); + $result = $this->LehrveranstaltungModel->getLvsByStudent($student_uid, $studiensemester_kurzbz); $data = $this->getDataOrTerminateWithError($result); diff --git a/application/models/education/Lehrveranstaltung_model.php b/application/models/education/Lehrveranstaltung_model.php index cefd147b9..f343f2583 100644 --- a/application/models/education/Lehrveranstaltung_model.php +++ b/application/models/education/Lehrveranstaltung_model.php @@ -226,7 +226,7 @@ class Lehrveranstaltung_model extends DB_Model /** * Gets Lehrveranstaltungen of a student * @param $student_uid - * @param null $studiensemester_kurzbz + * @param $studiensemester_kurzbz * @return array|null */ public function getLvsByStudent($student_uid, $studiensemester_kurzbz = null) @@ -236,6 +236,7 @@ class Lehrveranstaltung_model extends DB_Model $qry = "SELECT * FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id IN(SELECT lehrveranstaltung_id FROM campus.vw_student_lehrveranstaltung WHERE uid=?"; + if (isset($studiensemester_kurzbz)) { $qry .= " AND studiensemester_kurzbz=?"; @@ -243,11 +244,11 @@ class Lehrveranstaltung_model extends DB_Model } $qry .= ") OR lehrveranstaltung_id IN(SELECT lehrveranstaltung_id FROM lehre.tbl_zeugnisnote WHERE student_uid=?"; $params[] = $student_uid; - if (isset($studiensemester_kurzbz)) +/* if (isset($studiensemester_kurzbz)) { $qry .= " AND studiensemester_kurzbz=?"; $params[] = $studiensemester_kurzbz; - } + }*/ $qry .= ") ORDER BY semester, bezeichnung"; return $this->execQuery($qry, $params); diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Pruefung/Pruefunglist.js b/public/js/components/Stv/Studentenverwaltung/Details/Pruefung/Pruefunglist.js index 006cc6218..31f709e26 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Pruefung/Pruefunglist.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Pruefung/Pruefunglist.js @@ -12,6 +12,10 @@ export default{ defaultSemester: { from: 'defaultSemester', }, +/* $reloadList: { + from: '$reloadList', + required: true + }*/ }, props: { uid: Number @@ -26,6 +30,7 @@ export default{ {title: "Datum", field: "format_datum"}, {title: "Lehrveranstaltung", field: "lehrveranstaltung_bezeichnung"}, {title: "Note", field: "note_bezeichnung"}, + {title: "StudSem", field: "studiensemester_kurzbz"}, //just testing {title: "Anmerkung", field: "anmerkung"}, {title: "Typ", field: "pruefungstyp_kurzbz"}, {title: "PruefungId", field: "pruefung_id", visible: false}, @@ -110,7 +115,10 @@ export default{ listMarks: [], filter: false, statusNew: true, - isStartDropDown: false + isStartDropDown: false, + currentSemester: false, + // componentKey: 0, + isFilterSet: false, } }, computed:{ @@ -124,13 +132,31 @@ export default{ }, lv_teile_ma(){ return this.listLvsAndMas.filter(lv => lv.lehrveranstaltung_id == this.pruefungData.lehrveranstaltung_id); - } + }, + semester_intern: { + get() { + if (this.currentSemester) + return this.currentSemester; + else + return false; + }, + set(value) { + this.currentSemester = value; + } + }, }, -/* watch: { + watch: { +/* defaultSemester(newVal, oldVal) { + if (newVal !== oldVal) { + console.log("variable did change"); + //this.reload(); // Methode aufrufen, um die Komponente neu zu laden + this.componentKey += 1; + } + }, modelValue() { this.$refs.table.reloadTable(); - } - },*/ + }*/ + }, methods:{ loadPruefung(pruefung_id) { return this.$fhcApi.get('api/frontend/v1/stv/pruefung/loadPruefung/' + pruefung_id) @@ -143,6 +169,7 @@ export default{ actionNewPruefung(){ this.statusNew = true; this.isStartDropDown = true; + this.resetModal(); /* this.getLvsByStudent(this.uid).then(() => { this.$refs.pruefungModal.show(); @@ -157,8 +184,9 @@ export default{ this.statusNew = true; this.isStartDropDown = false; this.loadPruefung(pruefung_id).then(() => { - this.pruefungData.note_bezeichnung = 'Noch nicht eingetragen'; + this.pruefungData.note = 9; this.pruefungData.datum = new Date(); + this.pruefungData.pruefungstyp_kurzbz = null; this.prepareDropdowns(); this.$refs.pruefungModal.show(); @@ -249,6 +277,16 @@ export default{ reload() { this.$refs.table.reloadTable(); }, +/* setFilter(semester) { + if (semester == 'open') + window.localStorage.setItem(LOCAL_STORAGE_ID_FILTER, this.filter ? 1 : 0); + else if( semester == 'default_semester') + this.$fhcApi.factory + .stv.filter.setSemester(this.defaultSemester) + .catch(this.$fhcAlert.handleSystemError); + + this.$nextTick(this.$refs.table.reloadTable); + },*/ getLvsByStudent(student_uid){ return this.$fhcApi.get('api/frontend/v1/stv/pruefung/getLvsByStudent/' + student_uid) .then(result => { @@ -256,6 +294,18 @@ export default{ }) .catch(this.$fhcAlert.handleSystemError); }, +/* //version post request +getLvsByStudent(student_uid, studiensemester_kurzbz){ + const data = { + student_uid: student_uid, + studiensemester_kurzbz: studiensemester_kurzbz + }; + return this.$fhcApi.post('api/frontend/v1/stv/pruefung/getLvsByStudent/', data) + .then(result => { + this.listLvs = result.data; + }) + .catch(this.$fhcAlert.handleSystemError); + },*/ getMaFromLv(lv_id){ return this.$fhcApi.get('api/frontend/v1/stv/pruefung/getMitarbeiterLv/' + lv_id) .then(result => { @@ -301,7 +351,17 @@ export default{ this.$refs.pruefungModal.show(); - } + }, + onSwitchChange() { + if (this.isFilterSet) { + console.log('filter gesetzt: ' + this.defaultSemester + ' uid ' + this.uid); + this.$refs.table.setFilter("studiensemester_kurzbz", "=", this.defaultSemester); + //TODO(Manu) TypeError: this.$refs.table.setFilter is not a function + + } else { + console.log('Alle anzeigen'); + } + }, }, created(){ this.$fhcApi.get('api/frontend/v1/stv/pruefung/getLvsByStudent/' + this.uid) @@ -337,19 +397,41 @@ export default{ template: `
- aktuelles Sem: {{defaultSemester}} + + + aktuelles Sem: {{defaultSemester}}
+ current Sem: {{currentSemester}}
+
+ + + +
- - -