mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-16 22:42:16 +00:00
Studierendenverwaltung Projektarbeit: set default stunden value, correct lvs when new Projektarbeit, Projektarbetreuer form hidden by default
This commit is contained in:
@@ -48,7 +48,8 @@ class Projektbetreuer extends FHCAPI_Controller
|
||||
if (!isset($projektarbeit_id)) $this->terminateWithError($this->p->t('ui', 'error_missingId', ['id'=> 'Projektarbeit ID']), self::ERROR_TYPE_GENERAL);
|
||||
|
||||
$this->ProjektbetreuerModel->addSelect(
|
||||
'projektarbeit_id, person_id, nachname, vorname, note, punkte, stunden, stundensatz, betreuerart_kurzbz, vertrag_id, titelpre, titelpost'
|
||||
'projektarbeit_id, person_id, nachname, vorname, note, punkte, round(stunden, 1) AS stunden,
|
||||
stundensatz, betreuerart_kurzbz, vertrag_id, titelpre, titelpost'
|
||||
);
|
||||
$this->ProjektbetreuerModel-> addSelect("CASE
|
||||
WHEN EXISTS
|
||||
|
||||
@@ -10,7 +10,7 @@ export default {
|
||||
FormInput,
|
||||
PvAutoComplete
|
||||
},
|
||||
emits: ['details-saved'],
|
||||
emits: ['projekttypChanged'],
|
||||
inject: {
|
||||
defaultSemester: {
|
||||
from: 'defaultSemester'
|
||||
@@ -82,6 +82,11 @@ export default {
|
||||
}
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
'formData.projekttyp_kurzbz'(newValue, oldValue) {
|
||||
this.$emit('projekttypChanged', newValue);
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
resetForm() {
|
||||
this.formData.projektarbeit_id = null;
|
||||
@@ -284,15 +289,6 @@ export default {
|
||||
|
||||
|
||||
<div class="row mb-3">
|
||||
<!-- <form-input
|
||||
v-if= "formData.firma_name"
|
||||
container-class="col-6 stv-details-projektarbeit-firma"
|
||||
type="text"
|
||||
name="name"
|
||||
:label="$p.t('projektarbeit', 'firma')"
|
||||
v-model="formData.firma_name"
|
||||
>
|
||||
</form-input> -->
|
||||
<form-input
|
||||
container-class="stv-details-projektarbeit-firma"
|
||||
:label="$p.t('projektarbeit', 'firma')"
|
||||
|
||||
@@ -247,7 +247,7 @@ export default {
|
||||
actionNewProjektarbeit() {
|
||||
this.statusNew = true;
|
||||
this.$refs.projektarbeitDetails.resetForm();
|
||||
this.$refs.projektarbeitDetails.getFormData();
|
||||
this.$refs.projektarbeitDetails.getFormData(this.statusNew);
|
||||
this.$refs.projektbetreuer.getData();
|
||||
this.$refs.projektarbeitModal.show();
|
||||
},
|
||||
@@ -275,14 +275,12 @@ export default {
|
||||
})
|
||||
.then((result) => {
|
||||
const projektarbeit_id = result.data;
|
||||
console.log(projektarbeit_id);
|
||||
|
||||
if (!isNaN(projektarbeit_id)) {
|
||||
return this.$refs.projektbetreuer.saveProjektbetreuer(projektarbeit_id);
|
||||
}
|
||||
})
|
||||
.then((result) => {
|
||||
console.log(result);
|
||||
this.projektarbeitSaved();
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
@@ -294,7 +292,6 @@ export default {
|
||||
})
|
||||
.then((result) => {
|
||||
const projektarbeit_id = result.data;
|
||||
console.log(projektarbeit_id);
|
||||
|
||||
if (!isNaN(projektarbeit_id)) {
|
||||
return this.$refs.projektbetreuer.saveProjektbetreuer(projektarbeit_id);
|
||||
@@ -325,6 +322,9 @@ export default {
|
||||
rowSelectionChanged(data) {
|
||||
this.lastSelected = data.length > 0 ? data[0] : null;
|
||||
},
|
||||
setDefaultStunden(projekttyp_kurzbz) {
|
||||
this.$refs.projektbetreuer.setDefaultStunden(projekttyp_kurzbz);
|
||||
},
|
||||
hideModal(modalRef){
|
||||
this.$refs[modalRef].hide();
|
||||
},
|
||||
@@ -361,7 +361,8 @@ export default {
|
||||
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
<projektarbeit-details ref="projektarbeitDetails" :student="student"></projektarbeit-details>
|
||||
<projektarbeit-details ref="projektarbeitDetails" :student="student" @projekttyp-changed="setDefaultStunden">
|
||||
</projektarbeit-details>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<projektbetreuer ref="projektbetreuer" :config="config"></projektbetreuer>
|
||||
|
||||
+24
-10
@@ -93,6 +93,7 @@ export default {
|
||||
stunden: null,
|
||||
stundensatz: null
|
||||
},
|
||||
editMode: false,
|
||||
initialFormData: null,
|
||||
defaultFormDataValues: {stunden: null, stundensatz: null},
|
||||
projektarbeit_id: null,
|
||||
@@ -111,15 +112,17 @@ export default {
|
||||
actionNewProjektbetreuer() {
|
||||
this.resetForm();
|
||||
this.statusNew = true;
|
||||
this.editMode = !this.editMode;
|
||||
this.captureFormData();
|
||||
},
|
||||
actionEditProjektbetreuer(projektarbeit_id, person_id, betreuerart_kurzbz) {
|
||||
|
||||
this.statusNew = false;
|
||||
this.editMode = true;
|
||||
this.$api
|
||||
.call(ApiStvProjektbetreuer.getDefaultStundensaetze(person_id, this.studiensemester_kurzbz))
|
||||
.then(result => {
|
||||
this.resetForm();
|
||||
this.statusNew = false;
|
||||
let projektbetreuerListe = this.$refs.table.tabulator.getData();
|
||||
const idx = projektbetreuerListe.findIndex(
|
||||
betr =>
|
||||
@@ -162,9 +165,7 @@ export default {
|
||||
|
||||
this.studiensemester_kurzbz = studiensemester_kurzbz;
|
||||
|
||||
this.defaultFormDataValues.stunden = '0.0';
|
||||
if (projekttyp_kurzbz == 'Bachelor') this.defaultFormDataValues.stunden = this.config.defaultProjektbetreuerStunden;
|
||||
if (projekttyp_kurzbz == 'Diplom') this.defaultFormDataValues.stunden = this.config.defaultProjektbetreuerStundenDiplom;
|
||||
this.defaultFormDataValues.stunden = this.getDefaultStunden(projekttyp_kurzbz);
|
||||
this.defaultFormDataValues.stundensatz = this.config.defaultProjektbetreuerStundensatz;
|
||||
|
||||
this.$api
|
||||
@@ -196,18 +197,20 @@ export default {
|
||||
}
|
||||
},
|
||||
confirmProjektbetreuer() {
|
||||
if (!this.formDataModified()) return;
|
||||
if (!this.editMode) return;
|
||||
|
||||
if (this.statusNew) {
|
||||
if (typeof this.formData.betreuer_id == 'undefined') {
|
||||
this.formData.betreuer_id = this.getNewBetreuerId();
|
||||
this.$refs.table.tabulator.addData(this.addAutoCompleteBetreuerToFormData(this.formData));
|
||||
} else {
|
||||
this.$refs.table.tabulator.updateData([this.formData]);
|
||||
this.statusNew = true;
|
||||
}
|
||||
|
||||
this.editMode = false;
|
||||
},
|
||||
confirmProjektbetreuerAfterValidation() {
|
||||
if (!this.formDataModified()) return;
|
||||
//if (!this.formDataModified()) return;
|
||||
|
||||
this.validateProjektbetreuer()
|
||||
.then(result => {
|
||||
@@ -245,7 +248,7 @@ export default {
|
||||
validateProjektbetreuer() {
|
||||
let alleBetreuer = this.$refs.table.tabulator.getData();
|
||||
|
||||
if (this.formDataModified()) {
|
||||
if (this.editMode) {
|
||||
alleBetreuer.push(this.addAutoCompleteBetreuerToFormData(this.formData));
|
||||
}
|
||||
|
||||
@@ -255,6 +258,7 @@ export default {
|
||||
this.formData = this.getDefaultFormData();
|
||||
this.autocompleteSelectedBetreuer = null;
|
||||
this.initialFormData = null;
|
||||
if (this.projekttyp_kurzbz) this.setDefaultStunden(this.projekttyp_kurzbz);
|
||||
},
|
||||
getDefaultFormData() {
|
||||
let formData = {betreuerart_kurzbz : null, note: null};
|
||||
@@ -292,6 +296,16 @@ export default {
|
||||
|
||||
return preparedFormData;
|
||||
},
|
||||
getDefaultStunden(projekttyp_kurzbz) {
|
||||
let stunden = '0.0';
|
||||
if (projekttyp_kurzbz == 'Bachelor') stunden = this.config.defaultProjektbetreuerStunden;
|
||||
if (projekttyp_kurzbz == 'Diplom') stunden = this.config.defaultProjektbetreuerStundenDiplom;
|
||||
return stunden;
|
||||
},
|
||||
setDefaultStunden(projekttyp_kurzbz) {
|
||||
this.projekttyp_kurzbz = projekttyp_kurzbz;
|
||||
if (!this.formDataModified()) this.formData.stunden = this.getDefaultStunden(projekttyp_kurzbz);
|
||||
},
|
||||
getNewBetreuerId() {
|
||||
let max = 0;
|
||||
|
||||
@@ -333,7 +347,7 @@ export default {
|
||||
>
|
||||
</core-filter-cmpt>
|
||||
|
||||
<form-form ref="formProjektbetreuer" @submit.prevent>
|
||||
<form-form ref="formProjektbetreuer" v-show="editMode" @submit.prevent>
|
||||
<div class="row mb-3">
|
||||
<form-input
|
||||
container-class="stv-details-projektarbeit-betreuer"
|
||||
@@ -409,7 +423,7 @@ export default {
|
||||
</div>
|
||||
|
||||
</form-form>
|
||||
<button class="btn btn-primary" @click="confirmProjektbetreuerAfterValidation">{{ $p.t('projektarbeit', 'betreuerBestaetigen') }}</button>
|
||||
<button class="btn btn-primary" v-show="editMode" @click="confirmProjektbetreuerAfterValidation">{{ $p.t('projektarbeit', 'betreuerBestaetigen') }}</button>
|
||||
</div>
|
||||
`
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user