diff --git a/application/controllers/api/frontend/v1/stv/Projektarbeit.php b/application/controllers/api/frontend/v1/stv/Projektarbeit.php index d31354856..d45e99439 100644 --- a/application/controllers/api/frontend/v1/stv/Projektarbeit.php +++ b/application/controllers/api/frontend/v1/stv/Projektarbeit.php @@ -90,24 +90,29 @@ class Projektarbeit extends FHCAPI_Controller if (!isset($projektarbeit_id) || !is_numeric($projektarbeit_id)) return $this->terminateWithError('Projektarbeit Id missing', self::ERROR_TYPE_GENERAL); - $this->ProjektarbeitModel->addSelect( - 'lehre.tbl_projektarbeit.projektarbeit_id, titel, titel_english, themenbereich, projekttyp_kurzbz, - lehre.tbl_projektarbeit.lehrveranstaltung_id, lehre.tbl_projektarbeit.studiensemester_kurzbz, lehre.tbl_projektarbeit.lehreinheit_id, - firma_id, beginn, ende, gesperrtbis, note, final, freigegeben, tbl_projektarbeit.anmerkung, fa.name AS firma_name' - ); - - $this->ProjektarbeitModel->addJoin('lehre.tbl_lehrveranstaltung lv', 'lehrveranstaltung_id'); - $this->ProjektarbeitModel->addJoin('lehre.tbl_lehreinheit le', 'lehreinheit_id', 'LEFT'); - $this->ProjektarbeitModel->addJoin('public.tbl_firma fa', 'firma_id', 'LEFT'); - $result = $this->ProjektarbeitModel->loadWhere( - array('projektarbeit_id' => $projektarbeit_id) - ); + $result = $this->fetchProjektarbeitByID($projektarbeit_id); $data = $this->getDataOrTerminateWithError($result); $this->terminateWithSuccess(current($data)); } + private function fetchProjektarbeitById($projektarbeit_id) { + $this->ProjektarbeitModel->resetQuery(); + $this->ProjektarbeitModel->addSelect( + 'lehre.tbl_projektarbeit.projektarbeit_id, titel, titel_english, themenbereich, projekttyp_kurzbz, + lehre.tbl_projektarbeit.lehrveranstaltung_id, lehreinheit_id, + firma_id, beginn, ende, gesperrtbis, note, final, freigegeben, tbl_projektarbeit.anmerkung, fa.name AS firma_name' + ); + $this->ProjektarbeitModel->addJoin('lehre.tbl_lehreinheit le', 'lehreinheit_id'); + $this->ProjektarbeitModel->addJoin('lehre.tbl_lehrveranstaltung lv', 'lehre.tbl_projektarbeit.lehrveranstaltung_id = lv.lehrveranstaltung_id'); + $this->ProjektarbeitModel->addJoin('public.tbl_firma fa', 'firma_id', 'LEFT'); + return $this->ProjektarbeitModel->loadWhere( + array('projektarbeit_id' => $projektarbeit_id) + ); + + } + /** * Inwert a Projektarbeit. */ @@ -134,7 +139,8 @@ class Projektarbeit extends FHCAPI_Controller ); $data = $this->getDataOrTerminateWithError($result); - + $data = $this->getDataOrTerminateWithError($this->fetchProjektarbeitById($data)); + $this->terminateWithSuccess($data); } diff --git a/application/views/lehre/lehrauftrag/acceptLehrauftragData.php b/application/views/lehre/lehrauftrag/acceptLehrauftragData.php index c696433d0..a42739952 100644 --- a/application/views/lehre/lehrauftrag/acceptLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/acceptLehrauftragData.php @@ -268,8 +268,8 @@ FROM FROM lehre.tbl_projektbetreuer pb JOIN lehre.tbl_projektarbeit pa USING (projektarbeit_id) + JOIN lehre.tbl_lehreinheit le ON (le.lehrveranstaltung_id = pa.lehrveranstaltung_id AND le.studiensemester_kurzbz = pa.studiensemester_kurzbz) JOIN lehre.tbl_lehrveranstaltung lv ON (pa.lehrveranstaltung_id = lv.lehrveranstaltung_id) - JOIN lehre.tbl_lehreinheit le ON (lv.lehrveranstaltung_id = le.lehrveranstaltung_id) JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz) JOIN PUBLIC.tbl_person person USING (person_id) LEFT JOIN lehre.tbl_vertrag vertrag USING (vertrag_id) diff --git a/application/views/lehre/lehrauftrag/approveLehrauftragData.php b/application/views/lehre/lehrauftrag/approveLehrauftragData.php index ea8dc64d4..c0aa04c84 100644 --- a/application/views/lehre/lehrauftrag/approveLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/approveLehrauftragData.php @@ -280,8 +280,8 @@ FROM FROM lehre.tbl_projektbetreuer pb JOIN lehre.tbl_projektarbeit pa USING (projektarbeit_id) + JOIN lehre.tbl_lehreinheit le ON (le.lehrveranstaltung_id = pa.lehrveranstaltung_id AND le.studiensemester_kurzbz = pa.studiensemester_kurzbz) JOIN lehre.tbl_lehrveranstaltung lv ON (pa.lehrveranstaltung_id = lv.lehrveranstaltung_id) - JOIN lehre.tbl_lehreinheit le ON (lv.lehrveranstaltung_id = le.lehrveranstaltung_id) JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz) JOIN PUBLIC.tbl_person person USING (person_id) LEFT JOIN lehre.tbl_vertrag vertrag USING (vertrag_id) diff --git a/application/views/lehre/lehrauftrag/orderLehrauftragData.php b/application/views/lehre/lehrauftrag/orderLehrauftragData.php index 28b37986b..efe2b01bc 100644 --- a/application/views/lehre/lehrauftrag/orderLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/orderLehrauftragData.php @@ -310,8 +310,8 @@ FROM FROM lehre.tbl_projektbetreuer pb JOIN lehre.tbl_projektarbeit pa USING (projektarbeit_id) + JOIN lehre.tbl_lehreinheit le ON (le.lehrveranstaltung_id = pa.lehrveranstaltung_id AND le.studiensemester_kurzbz = pa.studiensemester_kurzbz) JOIN lehre.tbl_lehrveranstaltung lv ON (pa.lehrveranstaltung_id = lv.lehrveranstaltung_id) - JOIN lehre.tbl_lehreinheit le ON (lv.lehrveranstaltung_id = le.lehrveranstaltung_id) JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz) JOIN PUBLIC.tbl_person person USING (person_id) LEFT JOIN lehre.tbl_vertrag vertrag USING (vertrag_id) diff --git a/content/student/studentprojektarbeit.js.php b/content/student/studentprojektarbeit.js.php index dabf26265..11fd630fe 100644 --- a/content/student/studentprojektarbeit.js.php +++ b/content/student/studentprojektarbeit.js.php @@ -402,7 +402,7 @@ function StudentProjektarbeitAuswahl() //Lehrveranstaltung DropDown laden var LvDropDown = document.getElementById('student-projektarbeit-menulist-lehrveranstaltung'); - url='rdf/lehrveranstaltung.rdf.php?uid='+student_uid+"&projektarbeit=true&withlv="+lehrveranstaltung_id+"&"+gettimestamp(); + url='rdf/lehrveranstaltung.rdf.php?uid='+student_uid+"&stg_kz="+stg_kz+"&projektarbeit=true&withlv="+lehrveranstaltung_id+"&"+gettimestamp(); //Alte DS entfernen var oldDatasources = LvDropDown.database.GetDataSources(); diff --git a/include/projektarbeit.class.php b/include/projektarbeit.class.php index 8ab6792e6..c15edd1d7 100644 --- a/include/projektarbeit.class.php +++ b/include/projektarbeit.class.php @@ -464,11 +464,13 @@ class projektarbeit extends basis_db tbl_projektarbeit.* , tbl_projekttyp.bezeichnung FROM lehre.tbl_projektarbeit - JOIN - lehre.tbl_projekttyp USING (projekttyp_kurzbz), lehre.tbl_lehrveranstaltung + JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz) + JOIN lehre.tbl_lehrveranstaltung ON (lehre.tbl_projektarbeit.lehrveranstaltung_id = lehre.tbl_lehrveranstaltung.lehrveranstaltung_id) + JOIN lehre.tbl_lehreinheit ON (lehre.tbl_projektarbeit.lehrveranstaltung_id = lehre.tbl_lehreinheit.lehrveranstaltung_id AND lehre.tbl_projektarbeit.studiensemester_kurzbz = lehre.tbl_lehreinheit.studiensemester_kurzbz) WHERE - tbl_projektarbeit.lehreinheit_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND + tbl_projektarbeit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND + tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id AND tbl_lehrveranstaltung.studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER)." AND tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz); diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Projektarbeit/Projektarbeit.js b/public/js/components/Stv/Studentenverwaltung/Details/Projektarbeit/Projektarbeit.js index b3e2bed42..d7aac3e1c 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Projektarbeit/Projektarbeit.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Projektarbeit/Projektarbeit.js @@ -9,6 +9,7 @@ import ProjektarbeitDetails from "./Details.js"; import Projektbetreuer from "./Projektbetreuer.js"; export default { + name: 'Projektarbeit', components: { CoreFilterCmpt, BsModal, @@ -199,8 +200,6 @@ export default { title: 'Aktionen', field: 'actions', minWidth: 150, // Ensures Action-buttons will be always fully displayed formatter: (cell, formatterParams, onRendered) => { - const AAAWidth = '44px'; - const AAAHeight = '44px'; let container = document.createElement('div'); container.className = "d-flex gap-2"; @@ -208,8 +207,6 @@ export default { button.className = 'btn btn-outline-secondary btn-action'; button.innerHTML = ''; button.title = this.$p.t('ui', 'bearbeiten'); - button.style.minWidth = AAAWidth; - button.style.minHeight = AAAHeight; button.addEventListener('click', (event) => { let data = cell.getData(); this.editedProjektarbeit = data; @@ -217,23 +214,10 @@ export default { }); container.append(button); - // button = document.createElement('button'); - // button.className = 'btn btn-outline-secondary btn-action'; - // button.innerHTML = ''; - // button.title = this.$p.t('projektarbeit', 'betreuerBearbeiten'); - // button.addEventListener('click', (event) => { - // let data = cell.getData(); - // this.editedProjektarbeit = data; - // this.actionEditBetreuer(); - // }); - // container.append(button); - button = document.createElement('button'); button.className = 'btn btn-outline-secondary btn-action'; button.innerHTML = ''; button.title = this.$p.t('ui', 'loeschen'); - button.style.minWidth = AAAWidth; - button.style.minHeight = AAAHeight; button.addEventListener('click', () => this.actionDeleteProjektarbeit(cell.getData().projektarbeit_id) ); @@ -270,6 +254,7 @@ export default { actionEditProjektarbeit() { this.statusNew = false; this.toggleMenu('details'); + this.$refs.projektbetreuer.getProjektbetreuer(this.editedProjektarbeit?.projektarbeit_id, this.editedProjektarbeit?.studiensemester_kurzbz); this.$refs.projektarbeitModal.show(); }, actionEditBetreuer() { @@ -293,7 +278,11 @@ export default { addNewProjektarbeit() { this.$refs.projektarbeitDetails.addNewProjektarbeit() .then((result) => { - console.log('res add new', result) + if(result?.data?.length) { + this.editedProjektarbeit = result.data[0] + this.$refs.projektarbeitDetails.setFormData(this.editedProjektarbeit) + this.toggleMenu('betreuer'); + } this.projektarbeitSaved(); }) .catch(this.$fhcAlert.handleSystemError); @@ -334,22 +323,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; - } + if (this.statusNew == false && tabId == 'details') { + + this.$refs.projektarbeitDetails.getFormData( + this.statusNew, this.editedProjektarbeit?.studiensemester_kurzbz, this.editedProjektarbeit?.lehrveranstaltung_id + ); + this.$refs.projektarbeitDetails.loadProjektarbeit(this.editedProjektarbeit?.projektarbeit_id); + } else if (tabId == 'betreuer') { + this.$refs.projektbetreuer.getFormData( + this.editedProjektarbeit ? this.editedProjektarbeit.projekttyp_kurzbz : null + ); + this.$refs.projektbetreuer.getProjektbetreuer(this.editedProjektarbeit?.projektarbeit_id, this.editedProjektarbeit?.studiensemester_kurzbz); } + }, + resetFormData() { + this.$refs.projektarbeitDetails.resetForm() + this.$refs.projektbetreuer.resetForm() } }, template: ` @@ -371,7 +360,9 @@ export default { - + {{$p.t('projektarbeit', 'projektarbeitAnlegen')}} {{$p.t('projektarbeit', 'projektarbeitBearbeiten')}} @@ -389,7 +380,7 @@ export default { - {{$p.t('ui', 'abbrechen')}} + {{$p.t('ui', 'abbrechen')}} {{$p.t('ui', 'speichern')}}
{{$p.t('projektarbeit', 'projektarbeitAnlegen')}}
{{$p.t('projektarbeit', 'projektarbeitBearbeiten')}}