mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-19 16:02:15 +00:00
Studierendenverwaltung Projektarbeiten: display of lv orgform only if present, hiding modal again after save, Betreuer can be edited after initial creation of Projektarbeit
This commit is contained in:
@@ -100,41 +100,7 @@ export default {
|
||||
this.formData.anmerkung = null;
|
||||
this.$refs.formDetails.clearValidation();
|
||||
},
|
||||
getFormData(statusNew, studiensemester_kurzbz, additional_lehrveranstaltung_id/*, successCallback*/) {
|
||||
|
||||
//~ let callArray = [
|
||||
//~ this.$api.call(ApiStvProjektarbeit.getTypenProjektarbeit()),
|
||||
//~ this.$api.call(ApiStvProjektarbeit.getLehrveranstaltungen(
|
||||
//~ this.student.uid,
|
||||
//~ projektarbeit_id ? null : this.student.studiengang_kz,
|
||||
//~ studiensemester_kurzbz ?? this.defaultSemester,
|
||||
//~ additional_lehrveranstaltung_id ?? null
|
||||
//~ )),
|
||||
//~ this.$api.call(ApiStvProjektarbeit.getNoten())
|
||||
//~ ];
|
||||
|
||||
//~ if (projektarbeit_id) callArray.push(this.$api.call(ApiStvProjektarbeit.loadProjektarbeit(projektarbeit_id)));
|
||||
|
||||
//~ // Run when All promises are settled
|
||||
//~ Promise.allSettled(callArray).then((results) => {
|
||||
//~ let hasError = false;
|
||||
//~ let allFormData = [];
|
||||
//~ results.forEach((promise_result) => {
|
||||
|
||||
//~ if (promise_result.status === 'fulfilled' && promise_result.value.meta.status === "success") {
|
||||
//~ allFormData.push(promise_result.value.data);
|
||||
//~ } else {
|
||||
//~ hasError = true;
|
||||
//~ //this.$fhcAlert.handleSystemError(promise_result);
|
||||
//~ }
|
||||
//~ //let data = promise_result.value.data;
|
||||
//~ });
|
||||
|
||||
//~ if (!hasError) {
|
||||
//~ this.setFormData(allFormData[0], allFormData[1], allFormData[2], allFormData[3], allFormData[4] ?? null);
|
||||
//~ if (successCallback) successCallback();
|
||||
//~ }
|
||||
//~ });
|
||||
getFormData(statusNew, studiensemester_kurzbz, additional_lehrveranstaltung_id) {
|
||||
|
||||
this.$api
|
||||
.call(ApiStvProjektarbeit.getTypenProjektarbeit())
|
||||
@@ -162,6 +128,8 @@ export default {
|
||||
this.arrNoten = result.data;
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
|
||||
if (statusNew) this.resetForm();
|
||||
},
|
||||
loadProjektarbeit(projektarbeit_id) {
|
||||
|
||||
@@ -316,7 +284,7 @@ export default {
|
||||
:key="lv.lehrveranstaltung_id"
|
||||
:value="lv.lehrveranstaltung_id"
|
||||
>
|
||||
{{lv.bezeichnung + ' ' + lv.orgform_kurzbz + ' (' + lv.semester + ' Sem) ID: ' + lv.lehrveranstaltung_id}}
|
||||
{{lv.bezeichnung + (lv.orgform_kurzbz ? ' ' + lv.orgform_kurzbz : '') + ' (' + lv.semester + ' Sem) ID: ' + lv.lehrveranstaltung_id}}
|
||||
</option>
|
||||
</form-input>
|
||||
</div>
|
||||
|
||||
+23
-11
@@ -82,7 +82,6 @@ export default {
|
||||
},
|
||||
],
|
||||
tabulatorData: [],
|
||||
//lastSelected: null,
|
||||
editedProjektarbeit: null,
|
||||
statusNew: true,
|
||||
studiensemester_kurzbz: null,
|
||||
@@ -257,23 +256,19 @@ export default {
|
||||
methods: {
|
||||
actionNewProjektarbeit() {
|
||||
this.statusNew = true;
|
||||
this.editedProjektarbeit = null;
|
||||
this.toggleMenu('details');
|
||||
this.$refs.projektarbeitDetails.getFormData(this.statusNew);
|
||||
this.$refs.projektarbeitModal.show();
|
||||
},
|
||||
actionEditProjektarbeit() {
|
||||
this.statusNew = false;
|
||||
this.toggleMenu('details');
|
||||
this.$refs.projektarbeitDetails.getFormData(
|
||||
this.statusNew, this.editedProjektarbeit.studiensemester_kurzbz, this.editedProjektarbeit.lehrveranstaltung_id
|
||||
);
|
||||
this.$refs.projektarbeitDetails.loadProjektarbeit(this.editedProjektarbeit.projektarbeit_id);
|
||||
this.$refs.projektarbeitModal.show();
|
||||
},
|
||||
actionEditBetreuer() {
|
||||
this.statusNew = false;
|
||||
this.toggleMenu('betreuer');
|
||||
this.$refs.projektbetreuer.getData(
|
||||
this.editedProjektarbeit.projektarbeit_id, this.editedProjektarbeit.studiensemester_kurzbz, this.editedProjektarbeit.projekttyp_kurzbz
|
||||
);
|
||||
this.$refs.projektarbeitModal.show();
|
||||
},
|
||||
actionDeleteProjektarbeit(projektarbeit_id) {
|
||||
@@ -313,6 +308,7 @@ export default {
|
||||
projektarbeitSaved() {
|
||||
this.reload();
|
||||
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
|
||||
this.hideModal('projektarbeitModal');
|
||||
},
|
||||
setDefaultStunden(projekttyp_kurzbz) {
|
||||
this.$refs.projektbetreuer.setDefaultStunden(projekttyp_kurzbz);
|
||||
@@ -325,6 +321,22 @@ export default {
|
||||
},
|
||||
toggleMenu(tabId) {
|
||||
this.activeTab = tabId;
|
||||
if (this.statusNew == false) {
|
||||
switch(tabId) {
|
||||
case 'details':
|
||||
this.$refs.projektarbeitDetails.getFormData(
|
||||
this.statusNew, this.editedProjektarbeit?.studiensemester_kurzbz, this.editedProjektarbeit?.lehrveranstaltung_id
|
||||
);
|
||||
this.$refs.projektarbeitDetails.loadProjektarbeit(this.editedProjektarbeit?.projektarbeit_id);
|
||||
break;
|
||||
case 'betreuer':
|
||||
this.$refs.projektbetreuer.getFormData(
|
||||
this.editedProjektarbeit ? this.editedProjektarbeit.projekttyp_kurzbz : null
|
||||
);
|
||||
this.$refs.projektbetreuer.getProjektbetreuer(this.editedProjektarbeit?.projektarbeit_id, this.editedProjektarbeit?.studiensemester_kurzbz);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
template: `
|
||||
@@ -352,13 +364,13 @@ export default {
|
||||
<p v-else class="fw-bold mt-3">{{$p.t('projektarbeit', 'projektarbeitBearbeiten')}}</p>
|
||||
</template>
|
||||
|
||||
<template #modal-header-content>
|
||||
<template #modal-header-content v-if="!statusNew">
|
||||
<ul class="nav nav-tabs w-100 mt-3 msg_preview" id="pa_tabs" role="tablist">
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link" :class="activeTab == 'details' ? 'active' : ''" id="details-tab" data-bs-toggle="tab" data-bs-target="#details" type="button" role="tab" aria-controls="details" aria-selected="true" @click="actionEditProjektarbeit">Details</button>
|
||||
<button class="nav-link" :class="activeTab == 'details' ? 'active' : ''" id="details-tab" data-bs-toggle="tab" data-bs-target="#details" type="button" role="tab" aria-controls="details" aria-selected="true" @click="toggleMenu('details')">Details</button>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link" :class="activeTab == 'betreuer' ? 'active' : ''" id="betreuer-tab" data-bs-toggle="tab" data-bs-target="#betreuer" type="button" role="tab" aria-controls="betreuer" aria-selected="false" @click="actionEditBetreuer">{{$p.t('projektarbeit', 'betreuerGross')}}</button>
|
||||
<button class="nav-link" :class="activeTab == 'betreuer' ? 'active' : ''" id="betreuer-tab" data-bs-toggle="tab" data-bs-target="#betreuer" type="button" role="tab" aria-controls="betreuer" aria-selected="false" @click="toggleMenu('betreuer')">{{$p.t('projektarbeit', 'betreuerGross')}}</button>
|
||||
</li>
|
||||
</ul>
|
||||
</template>
|
||||
|
||||
+23
-19
@@ -235,10 +235,7 @@ export default {
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
},
|
||||
getData(projektarbeit_id, studiensemester_kurzbz, projekttyp_kurzbz) {
|
||||
|
||||
this.studiensemester_kurzbz = studiensemester_kurzbz;
|
||||
|
||||
getFormData(projekttyp_kurzbz) {
|
||||
// default Stundensätze from config
|
||||
this.defaultFormDataValues.stunden = this.getDefaultStunden(projekttyp_kurzbz);
|
||||
this.defaultFormDataValues.stundensatz = this.config.defaultProjektbetreuerStundensatz;
|
||||
@@ -257,21 +254,25 @@ export default {
|
||||
this.arrNoten = result.data;
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
|
||||
if (projektarbeit_id) {
|
||||
this.projektarbeit_id = projektarbeit_id;
|
||||
this.getProjektbetreuer();
|
||||
} else {
|
||||
this.$refs.projektbetreuerTable.tabulator.setData([]);
|
||||
}
|
||||
},
|
||||
getProjektbetreuer() {
|
||||
this.$api
|
||||
.call(ApiStvProjektbetreuer.getProjektbetreuer(this.projektarbeit_id))
|
||||
.then(result => {
|
||||
this.$refs.projektbetreuerTable.tabulator.replaceData(this.addIds(result.data));
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
getProjektbetreuer(projektarbeit_id, studiensemester_kurzbz) {
|
||||
if (projektarbeit_id) {
|
||||
// if projektarbeit changed, reset the form to hold new data
|
||||
if (this.projektarbeit_id != projektarbeit_id) {
|
||||
this.resetForm();
|
||||
this.resetModes();
|
||||
}
|
||||
this.projektarbeit_id = projektarbeit_id;
|
||||
this.studiensemester_kurzbz = studiensemester_kurzbz;
|
||||
this.$api
|
||||
.call(ApiStvProjektbetreuer.getProjektbetreuer(this.projektarbeit_id))
|
||||
.then(result => {
|
||||
this.$refs.projektbetreuerTable.tabulator.replaceData(this.addIds(result.data));
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
} else {
|
||||
this.emptyBetreuer();
|
||||
}
|
||||
},
|
||||
saveProjektbetreuer() {
|
||||
this.$refs.formProjektbetreuer.call(
|
||||
@@ -279,7 +280,7 @@ export default {
|
||||
)
|
||||
.then(result => {
|
||||
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
|
||||
this.getProjektbetreuer();
|
||||
this.getProjektbetreuer(this.projektarbeit_id, this.studiensemester_kurzbz);
|
||||
this.resetModes();
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
@@ -296,6 +297,9 @@ export default {
|
||||
this.filteredBetreuer = result.data;
|
||||
});
|
||||
},
|
||||
emptyBetreuer() {
|
||||
this.$refs.projektbetreuerTable.tabulator.clearData();
|
||||
},
|
||||
resetForm() {
|
||||
this.formData = this.getDefaultFormData();
|
||||
if (this.beurteilungDownloadLink !== null) this.beurteilungDownloadLink = '';
|
||||
|
||||
Reference in New Issue
Block a user