diff --git a/application/controllers/api/frontend/v1/detailheader/DetailHeader.php b/application/controllers/api/frontend/v1/detailheader/DetailHeader.php
new file mode 100644
index 000000000..be9fad27a
--- /dev/null
+++ b/application/controllers/api/frontend/v1/detailheader/DetailHeader.php
@@ -0,0 +1,30 @@
+ ['admin:r', 'assistenz:r'],
+ ]);
+ }
+
+ //------------------------------------------------------------------------------------------------------------------
+ // Public methods
+
+ public function getSemesterStati($prestudent_id)
+ {
+ $this->load->model('crm/Prestudentstatus_model', 'PrestudentstatusModel');
+
+ $result = $this->PrestudentstatusModel->getAllPrestudentstatiWithStudiensemester($prestudent_id);
+
+ $data = $this->getDataOrTerminateWithError($result);
+
+ $this->terminateWithSuccess($data);
+ }
+
+}
diff --git a/public/js/api/factory/detailHeader.js b/public/js/api/factory/detailHeader.js
index 74563bd4b..9e50e8ebb 100644
--- a/public/js/api/factory/detailHeader.js
+++ b/public/js/api/factory/detailHeader.js
@@ -34,4 +34,10 @@ export default {
url: 'api/frontend/v1/vertraege/vertraege/getLeitungOrg/' + oekurzbz,
};
},
+ getSemesterStati(prestudent_id){
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/detailheader/DetailHeader/getSemesterStati/' + prestudent_id,
+ };
+ },
}
\ No newline at end of file
diff --git a/public/js/components/DetailHeader/DetailHeader.js b/public/js/components/DetailHeader/DetailHeader.js
index 04c6d1835..f0db9fe5d 100644
--- a/public/js/components/DetailHeader/DetailHeader.js
+++ b/public/js/components/DetailHeader/DetailHeader.js
@@ -7,6 +7,9 @@ export default {
from: 'configDomain',
default: 'technikum-wien.at'
},
+ currentSemester: {
+ from: 'currentSemester',
+ },
},
props: {
headerData: {
@@ -51,6 +54,10 @@ export default {
console.error("Error loading department data:", error);
});
}
+
+ if(this.headerData){
+ this.getSemesterStati(this.headerData[0].prestudent_id);
+ }
},
watch: {
person_id: {
@@ -65,12 +72,27 @@ export default {
},
deep: true,
},
+ currentSemester: {
+ handler(newVal) {
+ if (newVal) {
+ if(!this.semesterStati.some(item => item.studiensemester_kurzbz === this.currentSemester)) {
+ this.noCurrentStatus = true;
+ }
+ else
+ {
+ this.noCurrentStatus = false;
+ }
+ }
+ },
+ deep: true,
+ },
},
data(){
return{
headerDataMa: {},
departmentData: {},
leitungData: {},
+ noCurrentStatus: false
};
},
methods: {
@@ -109,6 +131,14 @@ export default {
} else {
return 'data:image/jpeg;base64,' + foto;
}
+ },
+ getSemesterStati(prestudent_id){
+ return this.$api
+ .call(ApiDetailHeader.getSemesterStati(prestudent_id))
+ .then(result => {
+ this.semesterStati = result.data;
+ })
+ .catch(this.$fhcAlert.handleSystemError);
}
},
template: `
@@ -149,11 +179,11 @@ export default {
{{headerData[0].person_id}}
| {{$p.t('lehre', 'studiengang')}}
{{headerData[0].stg_bezeichnung}} ({{headerData[0].studiengang}})
- | {{$p.t('lehre', 'semester')}}
+ | {{$p.t('lehre', 'semester')}}
{{headerData[0].semester}}
| {{$p.t('lehre', 'verband')}}
{{headerData[0].verband}}
- | {{$p.t('lehre', 'gruppe')}}
+ | {{$p.t('lehre', 'gruppe')}}
{{headerData[0].gruppe}}
@@ -162,12 +192,16 @@ export default {
{{headerData[0].mail_intern}}
- | Status
- {{headerData[0].statusofsemester}}
+ | Status
+
+ {{$p.t('lehre', 'textNoStatus')}}
+
+
+ {{headerData[0].statusofsemester}}
+
| {{$p.t('person', 'matrikelnummer')}}
{{headerData[0].matr_nr}}
-
diff --git a/public/js/components/Stv/Studentenverwaltung.js b/public/js/components/Stv/Studentenverwaltung.js
index a7d97d4fc..fae85b653 100644
--- a/public/js/components/Stv/Studentenverwaltung.js
+++ b/public/js/components/Stv/Studentenverwaltung.js
@@ -422,6 +422,12 @@ export default {
this.$refs.searchbar.abort();
this.$refs.searchbar.hideresult();
},
+ handleReloadStudent(students){
+ this.$refs.stvList.updateUrl(
+ ApiStv.students.uid(students[0].uid,'CURRENT_SEMESTER'),
+ true
+ );
+ }
},
created() {
if (!this.url_studiensemester_kurzbz) {
@@ -629,7 +635,7 @@ export default {
-
+
diff --git a/public/js/components/Stv/Studentenverwaltung/Details.js b/public/js/components/Stv/Studentenverwaltung/Details.js
index dca08c07f..4d49aba0d 100644
--- a/public/js/components/Stv/Studentenverwaltung/Details.js
+++ b/public/js/components/Stv/Studentenverwaltung/Details.js
@@ -8,6 +8,11 @@ import ApiStvApp from '../../../api/factory/stv/app.js';
export default {
name: "DetailsPrestudent",
+ inject: {
+ currentSemester: {
+ from: 'currentSemester',
+ },
+ },
components: {
FhcTabs,
FhcHeader
@@ -21,6 +26,9 @@ export default {
props: {
students: Array
},
+ emits: [
+ 'reloadStudent:students'
+ ],
computed: {
appRoot() {
return FHC_JS_DATA_STORAGE_OBJECT.app_root;
@@ -39,13 +47,30 @@ export default {
return Object.fromEntries(Object.entries(this.configStudents).filter(([ , value ]) => !value.showOnlyWithUid));
}
return Object.fromEntries(Object.entries(this.configStudents).filter(([ , value ]) => !value.showOnlyWithUid && !value.showOnlyWithUid));
- }
+ },
+/* studiensemester(){
+ if(this.students)
+ return this.students.query_studiensemester_kurzbz;
+ else
+ return null;
+ //return this.students?[0].query_studiensemester_kurzbz || null;
+ },*/
},
watch: {
'$p.user_language.value'(n, o) {
if (n !== o && o !== undefined)
this.loadConfig();
+ },
+ currentSemester(newVal) {
+ if (
+ this.students &&
+ this.students.length > 0 &&
+ newVal !== this.students[0].query_studiensemester_kurzbz
+ ) {
+ this.$emit('reloadStudent:students', this.students);
+ }
}
+
},
methods: {
loadConfig() {
@@ -65,7 +90,7 @@ export default {
reload() {
if (this.$refs.tabs?.$refs?.current?.reload)
this.$refs.tabs.$refs.current.reload();
- }
+ },
},
created() {
this.loadConfig();
diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php
index 580f15bc2..b1f4b004a 100644
--- a/system/phrasesupdate.php
+++ b/system/phrasesupdate.php
@@ -56144,6 +56144,26 @@ I have been informed that I am under no obligation to consent to the transmissio
)
),
// ### Refactor Messages END
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'textNoStatus',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Kein Status',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'No status',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
);