mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-13 10:09:27 +00:00
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:
@@ -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>`
|
||||
};
|
||||
Reference in New Issue
Block a user