Merge branch 'feature-30660/FHC4_StudierendenGUI_Prototyp' of github.com:FH-Complete/FHC-Core into feature-30660/FHC4_StudierendenGUI_Prototyp

pull and push routine
This commit is contained in:
ma0068
2024-01-09 16:39:51 +01:00
5 changed files with 216 additions and 2 deletions
@@ -1,9 +1,11 @@
import {CoreFilterCmpt} from "../../../../filter/Filter.js";
import {CoreRESTClient} from '../../../../../RESTClient.js';
import ZeugnisActions from './Zeugnis/Actions.js';
export default {
components: {
CoreFilterCmpt
CoreFilterCmpt,
ZeugnisActions
},
props: {
student: Object
@@ -51,10 +53,20 @@ export default {
],
layout: 'fitDataStretch',
height: '100%',
selectable: true,
selectableRangeMode: 'click',
persistence: true
};
}
},
methods: {
setGrades(selected) {
CoreRESTClient
.post('components/stv/Noten/update', selected)
.then(this.$refs.table.reloadTable)
.catch(this.$fhcAlert.handleFormValidation);
}
},
template: `
<div class="stv-details-noten-zeugnis h-100 d-flex flex-column">
<div v-if="!validStudent">Kein Student</div>
@@ -67,6 +79,9 @@ export default {
:side-menu="false"
reload
>
<template #actions="{selected}">
<zeugnis-actions :selected="selected" @set-grades="setGrades"></zeugnis-actions>
</template>
</core-filter-cmpt>
</div>`
};
@@ -0,0 +1,54 @@
import {CoreRESTClient} from '../../../../../../RESTClient.js';
export default {
emits: [
'setGrades'
],
props: {
selected: Array
},
data() {
return {
grades: []
};
},
computed: {
current: {
get() {
if (!this.selected.length)
return '';
if (this.selected.length == 1)
return this.selected[0].note;
const grades = Object.keys(this.selected.reduce((a,c) => {
a[c.note] = true;
return a;
}, {}));
if (grades.length == 1)
return grades[0];
return '';
},
set(note) {
this.$emit('setGrades', this.selected.map(zeugnis => {
const { lehrveranstaltung_id, uid: student_uid, studiensemester_kurzbz } = zeugnis;
return { lehrveranstaltung_id, student_uid, studiensemester_kurzbz, note };
}));
}
}
},
created() {
CoreRESTClient
.get('components/stv/Noten/get')
.then(result => result.data)
.then(result => {
this.grades = result.retval;
})
.catch(this.$fhcAlert.handleSystemError);
},
template: `
<div class="stv-details-noten-zeugnis-actions">
<select class="form-select" v-model="current" :disabled="!selected.length">
<option value="" disabled>Note setzen</option>
<option v-for="grade in grades" :key="grade.note" :value="grade.note">{{ grade.bezeichnung }}</option>
</select>
</div>`
};