mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-16 22:42:16 +00:00
adapt addNewPruefung, pruefungModal, function getLvsByStudent
This commit is contained in:
@@ -101,7 +101,7 @@ class Pruefung extends FHCAPI_Controller
|
||||
}
|
||||
|
||||
public function insertPruefung(){
|
||||
//TODO(Manu) validations
|
||||
//TODO(Manu) Berechtigungen
|
||||
|
||||
$authUID = getAuthUID();
|
||||
$lehreinheit_id = $this->input->post('lehreinheit_id');
|
||||
@@ -112,6 +112,11 @@ class Pruefung extends FHCAPI_Controller
|
||||
$pruefungstyp_kurzbz = $this->input->post('pruefungstyp_kurzbz');
|
||||
$anmerkung = $this->input->post('anmerkung');
|
||||
|
||||
$this->load->library('form_validation');
|
||||
|
||||
$this->form_validation->set_rules(
|
||||
'datum', $this->p->t('global', 'datum'), ['is_valid_date']
|
||||
);
|
||||
|
||||
$result = $this->PruefungModel->insert([
|
||||
'lehreinheit_id' => $lehreinheit_id,
|
||||
@@ -132,7 +137,7 @@ class Pruefung extends FHCAPI_Controller
|
||||
}
|
||||
|
||||
public function updatePruefung($pruefung_id){
|
||||
//TODO(Manu) validations
|
||||
//TODO(Manu) validations and Berechtigungen
|
||||
$result = $this->PruefungModel->load($pruefung_id);
|
||||
|
||||
$oldpruefung = $this->getDataOrTerminateWithError($result);
|
||||
@@ -280,11 +285,15 @@ class Pruefung extends FHCAPI_Controller
|
||||
return $this->terminateWithSuccess($allDataMa);
|
||||
}
|
||||
|
||||
public function getLvsByStudent($student_uid)
|
||||
public function getLvsByStudent($student_uid, $studiensemester_kurzbz=null )
|
||||
{
|
||||
//bei post request
|
||||
/* $student_uid = $this->input->post('student_uid');
|
||||
$studiensemester_kurzbz = $this->input->post('studiensemester_kurzbz');*/
|
||||
|
||||
$this->load->model('education/Lehrveranstaltung_model', 'LehrveranstaltungModel');
|
||||
|
||||
$result = $this->LehrveranstaltungModel->getLvsByStudent($student_uid);
|
||||
$result = $this->LehrveranstaltungModel->getLvsByStudent($student_uid, $studiensemester_kurzbz);
|
||||
|
||||
$data = $this->getDataOrTerminateWithError($result);
|
||||
|
||||
|
||||
@@ -226,7 +226,7 @@ class Lehrveranstaltung_model extends DB_Model
|
||||
/**
|
||||
* Gets Lehrveranstaltungen of a student
|
||||
* @param $student_uid
|
||||
* @param null $studiensemester_kurzbz
|
||||
* @param $studiensemester_kurzbz
|
||||
* @return array|null
|
||||
*/
|
||||
public function getLvsByStudent($student_uid, $studiensemester_kurzbz = null)
|
||||
@@ -236,6 +236,7 @@ class Lehrveranstaltung_model extends DB_Model
|
||||
$qry = "SELECT * FROM lehre.tbl_lehrveranstaltung
|
||||
WHERE lehrveranstaltung_id IN(SELECT lehrveranstaltung_id FROM campus.vw_student_lehrveranstaltung
|
||||
WHERE uid=?";
|
||||
|
||||
if (isset($studiensemester_kurzbz))
|
||||
{
|
||||
$qry .= " AND studiensemester_kurzbz=?";
|
||||
@@ -243,11 +244,11 @@ class Lehrveranstaltung_model extends DB_Model
|
||||
}
|
||||
$qry .= ") OR lehrveranstaltung_id IN(SELECT lehrveranstaltung_id FROM lehre.tbl_zeugnisnote WHERE student_uid=?";
|
||||
$params[] = $student_uid;
|
||||
if (isset($studiensemester_kurzbz))
|
||||
/* if (isset($studiensemester_kurzbz))
|
||||
{
|
||||
$qry .= " AND studiensemester_kurzbz=?";
|
||||
$params[] = $studiensemester_kurzbz;
|
||||
}
|
||||
}*/
|
||||
$qry .= ") ORDER BY semester, bezeichnung";
|
||||
|
||||
return $this->execQuery($qry, $params);
|
||||
|
||||
@@ -12,6 +12,10 @@ export default{
|
||||
defaultSemester: {
|
||||
from: 'defaultSemester',
|
||||
},
|
||||
/* $reloadList: {
|
||||
from: '$reloadList',
|
||||
required: true
|
||||
}*/
|
||||
},
|
||||
props: {
|
||||
uid: Number
|
||||
@@ -26,6 +30,7 @@ export default{
|
||||
{title: "Datum", field: "format_datum"},
|
||||
{title: "Lehrveranstaltung", field: "lehrveranstaltung_bezeichnung"},
|
||||
{title: "Note", field: "note_bezeichnung"},
|
||||
{title: "StudSem", field: "studiensemester_kurzbz"}, //just testing
|
||||
{title: "Anmerkung", field: "anmerkung"},
|
||||
{title: "Typ", field: "pruefungstyp_kurzbz"},
|
||||
{title: "PruefungId", field: "pruefung_id", visible: false},
|
||||
@@ -110,7 +115,10 @@ export default{
|
||||
listMarks: [],
|
||||
filter: false,
|
||||
statusNew: true,
|
||||
isStartDropDown: false
|
||||
isStartDropDown: false,
|
||||
currentSemester: false,
|
||||
// componentKey: 0,
|
||||
isFilterSet: false,
|
||||
}
|
||||
},
|
||||
computed:{
|
||||
@@ -124,13 +132,31 @@ export default{
|
||||
},
|
||||
lv_teile_ma(){
|
||||
return this.listLvsAndMas.filter(lv => lv.lehrveranstaltung_id == this.pruefungData.lehrveranstaltung_id);
|
||||
}
|
||||
},
|
||||
semester_intern: {
|
||||
get() {
|
||||
if (this.currentSemester)
|
||||
return this.currentSemester;
|
||||
else
|
||||
return false;
|
||||
},
|
||||
set(value) {
|
||||
this.currentSemester = value;
|
||||
}
|
||||
},
|
||||
},
|
||||
/* watch: {
|
||||
watch: {
|
||||
/* defaultSemester(newVal, oldVal) {
|
||||
if (newVal !== oldVal) {
|
||||
console.log("variable did change");
|
||||
//this.reload(); // Methode aufrufen, um die Komponente neu zu laden
|
||||
this.componentKey += 1;
|
||||
}
|
||||
},
|
||||
modelValue() {
|
||||
this.$refs.table.reloadTable();
|
||||
}
|
||||
},*/
|
||||
}*/
|
||||
},
|
||||
methods:{
|
||||
loadPruefung(pruefung_id) {
|
||||
return this.$fhcApi.get('api/frontend/v1/stv/pruefung/loadPruefung/' + pruefung_id)
|
||||
@@ -143,6 +169,7 @@ export default{
|
||||
actionNewPruefung(){
|
||||
this.statusNew = true;
|
||||
this.isStartDropDown = true;
|
||||
this.resetModal();
|
||||
|
||||
/* this.getLvsByStudent(this.uid).then(() => {
|
||||
this.$refs.pruefungModal.show();
|
||||
@@ -157,8 +184,9 @@ export default{
|
||||
this.statusNew = true;
|
||||
this.isStartDropDown = false;
|
||||
this.loadPruefung(pruefung_id).then(() => {
|
||||
this.pruefungData.note_bezeichnung = 'Noch nicht eingetragen';
|
||||
this.pruefungData.note = 9;
|
||||
this.pruefungData.datum = new Date();
|
||||
this.pruefungData.pruefungstyp_kurzbz = null;
|
||||
this.prepareDropdowns();
|
||||
|
||||
this.$refs.pruefungModal.show();
|
||||
@@ -249,6 +277,16 @@ export default{
|
||||
reload() {
|
||||
this.$refs.table.reloadTable();
|
||||
},
|
||||
/* setFilter(semester) {
|
||||
if (semester == 'open')
|
||||
window.localStorage.setItem(LOCAL_STORAGE_ID_FILTER, this.filter ? 1 : 0);
|
||||
else if( semester == 'default_semester')
|
||||
this.$fhcApi.factory
|
||||
.stv.filter.setSemester(this.defaultSemester)
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
|
||||
this.$nextTick(this.$refs.table.reloadTable);
|
||||
},*/
|
||||
getLvsByStudent(student_uid){
|
||||
return this.$fhcApi.get('api/frontend/v1/stv/pruefung/getLvsByStudent/' + student_uid)
|
||||
.then(result => {
|
||||
@@ -256,6 +294,18 @@ export default{
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
},
|
||||
/* //version post request
|
||||
getLvsByStudent(student_uid, studiensemester_kurzbz){
|
||||
const data = {
|
||||
student_uid: student_uid,
|
||||
studiensemester_kurzbz: studiensemester_kurzbz
|
||||
};
|
||||
return this.$fhcApi.post('api/frontend/v1/stv/pruefung/getLvsByStudent/', data)
|
||||
.then(result => {
|
||||
this.listLvs = result.data;
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
},*/
|
||||
getMaFromLv(lv_id){
|
||||
return this.$fhcApi.get('api/frontend/v1/stv/pruefung/getMitarbeiterLv/' + lv_id)
|
||||
.then(result => {
|
||||
@@ -301,7 +351,17 @@ export default{
|
||||
|
||||
|
||||
this.$refs.pruefungModal.show();
|
||||
}
|
||||
},
|
||||
onSwitchChange() {
|
||||
if (this.isFilterSet) {
|
||||
console.log('filter gesetzt: ' + this.defaultSemester + ' uid ' + this.uid);
|
||||
this.$refs.table.setFilter("studiensemester_kurzbz", "=", this.defaultSemester);
|
||||
//TODO(Manu) TypeError: this.$refs.table.setFilter is not a function
|
||||
|
||||
} else {
|
||||
console.log('Alle anzeigen');
|
||||
}
|
||||
},
|
||||
},
|
||||
created(){
|
||||
this.$fhcApi.get('api/frontend/v1/stv/pruefung/getLvsByStudent/' + this.uid)
|
||||
@@ -337,19 +397,41 @@ export default{
|
||||
template: `
|
||||
<div class="stv-details-pruefung-pruefung-list 100 pt-3">
|
||||
|
||||
aktuelles Sem: {{defaultSemester}}
|
||||
<!-- {{pruefungData}}-->
|
||||
|
||||
aktuelles Sem: {{defaultSemester}} <br>
|
||||
current Sem: {{currentSemester}}
|
||||
<hr>
|
||||
|
||||
<div>
|
||||
|
||||
<form-input
|
||||
container-class="form-switch"
|
||||
type="checkbox"
|
||||
label="Nur aktuelles Studiensemester anzeigen"
|
||||
v-model="isFilterSet"
|
||||
@change="onSwitchChange"
|
||||
>
|
||||
</form-input>
|
||||
|
||||
<div class="justify-content-end pb-3">
|
||||
<form-inputlistTypesExam
|
||||
<form-input
|
||||
container-class="form-switch"
|
||||
type="checkbox"
|
||||
label="Aktuelles Studiensemester Anzeigen"
|
||||
v-model="filter"
|
||||
@update:model-value="setFilter('open')"
|
||||
v-model="defaultSemester"
|
||||
@change="setSemester('defaultSemester')"
|
||||
>
|
||||
</form-inputlistTypesExam>
|
||||
<!-- <div class="col-lg-3">
|
||||
</form-input>
|
||||
<!-- <form-input
|
||||
container-class="form-switch"
|
||||
type="checkbox"
|
||||
label="Aktuelles Studiensemester Anzeigen"
|
||||
v-model="semester_intern"
|
||||
@update:model-value="setFilter('current_sem')"
|
||||
>
|
||||
</form-input>
|
||||
<div class="col-lg-3">
|
||||
<form-input
|
||||
container-class="form-switch"
|
||||
type="checkbox"
|
||||
@@ -373,9 +455,7 @@ export default{
|
||||
@click:new="actionNewPruefung"
|
||||
>
|
||||
</core-filter-cmpt>
|
||||
|
||||
<p>Form </p>
|
||||
|
||||
|
||||
<!--Modal: pruefungModal-->
|
||||
<bs-modal ref="pruefungModal">
|
||||
<template #title>
|
||||
@@ -421,7 +501,9 @@ export default{
|
||||
</option>
|
||||
</form-input>
|
||||
|
||||
<!--DropDown MitarbeiterIn-->
|
||||
<!--DropDown MitarbeiterIn
|
||||
//TODO(Manu) phrase
|
||||
-->
|
||||
<form-input
|
||||
container-class="mb-3"
|
||||
type="select"
|
||||
@@ -429,7 +511,8 @@ export default{
|
||||
:label="$p.t('fristenmanagement/mitarbeiterin')"
|
||||
v-model="pruefungData.mitarbeiter_uid"
|
||||
>
|
||||
<option value="null"> -- keine Auswahl -- </option>
|
||||
|
||||
<option :value="null"> -- keine Auswahl -- </option>
|
||||
<option
|
||||
v-for="ma in isStartDropDown ? lv_teile_ma : listMas"
|
||||
:key="ma.mitarbeiter_uid"
|
||||
@@ -439,14 +522,19 @@ export default{
|
||||
</option>
|
||||
</form-input>
|
||||
|
||||
<!--DropDown Typ Prüfungstermin-->
|
||||
<!--DropDown Typ Prüfungstermin
|
||||
//TODO (Manu) phrase
|
||||
-->
|
||||
<form-input
|
||||
container-class="mb-3"
|
||||
type="select"
|
||||
name="typ"
|
||||
:label="$p.t('global/typ')"
|
||||
v-model="pruefungData.pruefungstyp_kurzbz"
|
||||
>
|
||||
>
|
||||
<option :value="null">
|
||||
-- keine Auswahl --
|
||||
</option>
|
||||
<option
|
||||
v-for="typ in listTypesExam"
|
||||
:key="typ.pruefungstyp_kurzbz"
|
||||
|
||||
Reference in New Issue
Block a user