mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-19 16:02:15 +00:00
LV zuweisung & anzeige: handle semester above max_semester & anmerkung bug
This commit is contained in:
@@ -765,14 +765,16 @@ class AntragLib
|
||||
);
|
||||
if (isError($result))
|
||||
return $result;
|
||||
$lvsA = getData($result) ?: [];
|
||||
foreach($lvsA as $lv)
|
||||
{
|
||||
if (isset($lvszugewiesen[$lv->lehrveranstaltung_id]) &&
|
||||
($lvszugewiesen[$lv->lehrveranstaltung_id]->note == $this->_ci->config->item('wiederholung_note_nicht_zugelassen')))
|
||||
$lvsA = $result->retval; // NOTE(chris): don't use getData() because we want to differenciate [] and null
|
||||
if ($lvsA) {
|
||||
foreach($lvsA as $lv)
|
||||
{
|
||||
$lv->antrag_zugelassen = true;
|
||||
$lv->antrag_anmerkung = $lvszugewiesen[$lv->lehrveranstaltung_id]->anmerkung;
|
||||
if (isset($lvszugewiesen[$lv->lehrveranstaltung_id]) &&
|
||||
($lvszugewiesen[$lv->lehrveranstaltung_id]->note == $this->_ci->config->item('wiederholung_note_nicht_zugelassen')))
|
||||
{
|
||||
$lv->antrag_zugelassen = true;
|
||||
$lv->antrag_anmerkung = $lvszugewiesen[$lv->lehrveranstaltung_id]->anmerkung;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -798,7 +800,7 @@ class AntragLib
|
||||
}
|
||||
|
||||
return success([
|
||||
'1' . $semA => $lvsA ?: [],
|
||||
'1' . $semA => $lvsA,
|
||||
'2' . $semB => $lvsB ?: []
|
||||
]);
|
||||
}
|
||||
@@ -822,13 +824,23 @@ class AntragLib
|
||||
if (isError($result))
|
||||
return $result;
|
||||
$result = getData($result);
|
||||
if (!$result)
|
||||
if (!$result) {
|
||||
$result = $this->_ci->StudiengangModel->load($studiengang_kz);
|
||||
if (isError($result))
|
||||
return $result;
|
||||
if (!hasData($result))
|
||||
return error('No Studiengang found with studiengang_kz: ' . $studiengang_kz);
|
||||
$stg = current(getData($result));
|
||||
|
||||
if ($ausbildungssemester > $stg->max_semester)
|
||||
return success();
|
||||
return error('No studienplan found for stg: ' .
|
||||
$studiengang_kz .
|
||||
', studiensemester: ' .
|
||||
$studiensemester_kurzbz .
|
||||
', ausbildungssemester: ' .
|
||||
($ausbildungssemester));
|
||||
}
|
||||
if (count($result) > 1)
|
||||
return error('Multiple studienplaene found for stg: ' .
|
||||
$studiengang_kz .
|
||||
|
||||
@@ -25,12 +25,12 @@ export default {
|
||||
lvzugelassen() {
|
||||
let zwischen = {};
|
||||
for (let k in this.lvs){
|
||||
zwischen[k] = this.lvs[k].filter(lv=>lv.antrag_zugelassen);
|
||||
zwischen[k] = this.lvs[k] ? this.lvs[k].filter(lv=>lv.antrag_zugelassen) : null;
|
||||
}
|
||||
return zwischen;
|
||||
},
|
||||
lvzugelassenLength() {
|
||||
return Object.values(this.lvzugelassen).reduce((result, current) => result + current.length, 0);
|
||||
return Object.values(this.lvzugelassen).reduce((result, current) => result + (current ? current.length : 0), 0);
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -86,7 +86,7 @@ export default {
|
||||
<span>{{sem.substr(1)}}</span>
|
||||
</span>
|
||||
</caption>
|
||||
<thead>
|
||||
<thead v-if="lv_arr !== null">
|
||||
<tr>
|
||||
<th scope="col">{{p.t('ui','bezeichnung')}}</th>
|
||||
<th scope="col">{{p.t('lehre','lehrform')}}</th>
|
||||
@@ -98,33 +98,38 @@ export default {
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="lv in lv_arr">
|
||||
<td>
|
||||
<label class="w-100 m-1" :for="'flexSwitchCheckLv_' + lv.lehrveranstaltung_id">
|
||||
{{lv.bezeichnung}}
|
||||
</label>
|
||||
</td>
|
||||
<td>
|
||||
<div class="m-1">
|
||||
{{lv.lehrform_kurzbz}}
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="m-1">
|
||||
{{lv.ects}}
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="m-1">
|
||||
{{lv.note || '---'}}
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="m-1">
|
||||
{{lv.antrag_anmerkung}}
|
||||
</div>
|
||||
</td>
|
||||
<tr v-if="lv_arr === null" class="table-warning">
|
||||
<td colspan="5">{{p.t('studierendenantrag/error_stg_last_semester')}}</td>
|
||||
</tr>
|
||||
<template v-else>
|
||||
<tr v-for="lv in lv_arr">
|
||||
<td>
|
||||
<label class="w-100 m-1" :for="'flexSwitchCheckLv_' + lv.lehrveranstaltung_id">
|
||||
{{lv.bezeichnung}}
|
||||
</label>
|
||||
</td>
|
||||
<td>
|
||||
<div class="m-1">
|
||||
{{lv.lehrform_kurzbz}}
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="m-1">
|
||||
{{lv.ects}}
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="m-1">
|
||||
{{lv.note || '---'}}
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="m-1">
|
||||
{{lv.antrag_anmerkung}}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</template>
|
||||
</tbody>
|
||||
</table>
|
||||
</template>
|
||||
|
||||
@@ -108,6 +108,14 @@ export default {
|
||||
{
|
||||
let res = {};
|
||||
for (var k in result.data.retval) {
|
||||
if (result.data.retval[k] === null) {
|
||||
const alert = document.createElement('div');
|
||||
alert.innerHTML = this.p.t('studierendenantrag', 'error_stg_last_semester');
|
||||
alert.className = 'alert alert-warning';
|
||||
alert.role = 'alert';
|
||||
this.$refs["lvtable" + k.substr(0,1)].append(alert);
|
||||
continue;
|
||||
}
|
||||
let lvs = result.data.retval[k].reduce((obj,lv) => {
|
||||
obj[lv.studienplan_lehrveranstaltung_id] = lv;
|
||||
return obj;
|
||||
@@ -129,8 +137,9 @@ export default {
|
||||
var table = new Tabulator(this.$refs["lvtable" + k.substr(0,1)], {
|
||||
data: current,
|
||||
dataTree: true,
|
||||
dataTreeStartExpanded:true, //start with an expanded tree
|
||||
dataTreeChildIndent:15,
|
||||
dataTreeStartExpanded: true, //start with an expanded tree
|
||||
dataTreeChildIndent: 15,
|
||||
layout: "fitDataStretch",
|
||||
columns: [
|
||||
{title: this.p.t('ui','bezeichnung'), field: "bezeichnung"},
|
||||
{title: this.p.t('lehre','lehrform'), field: "lehrform_kurzbz"},
|
||||
@@ -197,7 +206,7 @@ export default {
|
||||
input.type = "text";
|
||||
input.value = cell.getValue() || "";
|
||||
input.addEventListener('input', () => {
|
||||
lvs[data.studienplan_lehrveranstaltung_id].antrag_zugelassen = input.value;
|
||||
lvs[data.studienplan_lehrveranstaltung_id].antrag_anmerkung = input.value;
|
||||
});
|
||||
return input;
|
||||
}
|
||||
|
||||
@@ -19906,6 +19906,26 @@ array(
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'studierendenantrag',
|
||||
'phrase' => 'error_stg_last_semester',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Der Studiengang hat nicht genügend Semester',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'The course does not have enough semesters',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user