org form hinzugefuegt im stree

gruppe autocomplete auch auf die bezeichnung
getalloe sql angepasst
This commit is contained in:
ma0048
2025-08-01 11:44:23 +02:00
parent 4d3ad0008e
commit 5d07879ebd
8 changed files with 59 additions and 32 deletions
@@ -80,7 +80,7 @@ class Lehreinheit extends FHCAPI_Controller
$lehrveranstaltung = getData($lehrveranstaltung_result)[0];
$oe_result = $this->_ci->LehrveranstaltungModel->getAllOe($lehrveranstaltung->lehrveranstaltung_id, $lehrveranstaltung->studiengang_kz);
$oe_result = $this->_ci->LehrveranstaltungModel->getAllOe($lehrveranstaltung->lehrveranstaltung_id);
$oe_array = hasData($oe_result) ? array_column(getData($oe_result), 'oe_kurzbz') : array();
if (!$this->_ci->permissionlib->isBerechtigtMultipleOe('admin', $oe_array, 'suid') &&
@@ -86,6 +86,32 @@ class StgTree extends FHCAPI_Controller
]);
$list = $this->getDataOrTerminateWithError($result);
$result = $this->StudiengangModel->load($studiengang_kz);
$result = $this->getDataOrTerminateWithError($result);
if ($result)
{
if (current($result)->mischform)
{
$this->load->model('organisation/Studienordnung_model', 'StudienordnungModel');
$this->StudienordnungModel->addDistinct();
$this->StudienordnungModel->addSelect("CONCAT(studiengang_kz, '/', p.orgform_kurzbz) AS link");
$this->StudienordnungModel->addSelect("p.orgform_kurzbz AS name");
$this->StudienordnungModel->addSelect("TRUE as leaf", false);
$this->StudienordnungModel->addJoin('lehre.tbl_studienplan p', 'studienordnung_id');
$result = $this->StudienordnungModel->loadWhere([
'aktiv' => true,
'studiengang_kz' => $studiengang_kz,
'p.orgform_kurzbz !=' => 'DDP'
]);
$result = $this->getDataOrTerminateWithError($result);
$list = array_merge($list, $result);
}
}
$this->terminateWithSuccess($list);
}
}
@@ -322,7 +322,7 @@ EOSQL;
if (hasData($result))
{
$lehrveranstaltung = getData($result)[0];
$oe_result = $this->LehrveranstaltungModel->getAllOe($lehrveranstaltung->lehrveranstaltung_id, $lehrveranstaltung->studiengang_kz);
$oe_result = $this->LehrveranstaltungModel->getAllOe($lehrveranstaltung->lehrveranstaltung_id);
return success(hasData($oe_result) ? array_column(getData($oe_result), 'oe_kurzbz') : array(''));
}
}
@@ -1161,7 +1161,7 @@ class Lehrveranstaltung_model extends DB_Model
}
if (!is_null($verband))
{
$qry .= ' AND (orgform_kurzbz = ? OR orgform_kurzbz IS NULL)';
$qry .= ' AND (tbl_lehrveranstaltung.orgform_kurzbz = ? OR tbl_lehrveranstaltung.orgform_kurzbz IS NULL)';
$params[] = $verband;
}
@@ -1198,31 +1198,29 @@ class Lehrveranstaltung_model extends DB_Model
";
}
public function getAllOe($lv_id, $stg_kz = null)
public function getAllOe($lv_id)
{
$qry = "(SELECT DISTINCT oe_kurzbz
FROM lehre.tbl_studienplan_lehrveranstaltung
JOIN lehre.tbl_studienplan USING(studienplan_id)
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE lehrveranstaltung_id = ?)";
$qry = "SELECT DISTINCT oe_kurzbz
FROM lehre.tbl_studienplan_lehrveranstaltung
JOIN lehre.tbl_studienplan USING(studienplan_id)
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE lehrveranstaltung_id = ?
$params = array($lv_id);
if (!is_null($stg_kz))
{
$qry .= ' UNION
(SELECT oe_kurzbz
FROM public.tbl_studiengang WHERE studiengang_kz = ?)';
$params[] = $stg_kz;
}
else
{
$qry .= ' UNION
(SELECT oe_kurzbz
FROM public.tbl_studiengang WHERE studiengang_kz = (SELECT tbl_lehrveranstaltung.studiengang_kz FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id = ?))
';
$params[] = $lv_id;
}
UNION
(
SELECT oe_kurzbz
FROM public.tbl_studiengang
WHERE studiengang_kz = (
SELECT tbl_lehrveranstaltung.studiengang_kz
FROM lehre.tbl_lehrveranstaltung
WHERE lehrveranstaltung_id = ?
)
)
";
$params = array($lv_id, $lv_id);
return $this->execReadOnlyQuery($qry, $params);
}
@@ -107,6 +107,8 @@ class Studienplan_model extends DB_Model
));
}
// Deprecated
// im Lehrveranstaltung_model vorhanden
public function getAllOesForLv($lehrveranstaltung_id)
{
$this->addDistinct('oe_kurzbz');
+3 -2
View File
@@ -31,6 +31,7 @@ const router = VueRouter.createRouter({
studiensemester_kurzbz: studiensemester_kurzbz,
emp: emp,
stg: stg,
semester: semester
};
},
beforeEnter: (to, from, next) => {
@@ -62,12 +63,12 @@ const router = VueRouter.createRouter({
studiensemester_kurzbz = undefined;
if (stg === '')
semester = undefined;
stg = undefined;
return {
studiensemester_kurzbz: studiensemester_kurzbz,
stg: stg,
semester: semester != null ? Number(semester) : null,
semester: semester,
};
},
beforeEnter: (to, from, next) => {
@@ -103,7 +103,7 @@ export default{
{
const query = event.query.toLowerCase().trim();
this.filteredGroups = this.dropdowns.gruppen_array.filter(gruppe => {
return gruppe.gruppe_kurzbz.toLowerCase().includes(query);
return gruppe.gruppe_kurzbz.toLowerCase().includes(query) || gruppe?.bezeichnung?.toLowerCase().includes(query);
}).map(gruppe => ({
label: gruppe.bezeichnung
? `${gruppe.gruppe_kurzbz.trim()} (${gruppe.bezeichnung})`
@@ -28,7 +28,7 @@ export default {
permissions: Object,
config: Object,
stg: { type: String, required: false },
semester: { type: Number, required: false, default: null },
semester: { type: [Number, String], required: false, default: null },
studiensemester_kurzbz: { type: String, required: false, default: null },
emp: { type: String, required: false, default: null }
},
@@ -159,7 +159,7 @@ export default {
const params = { stg };
if (semester !== null)
params.semester = Number(semester);
params.semester = semester;
if (studiensemester_kurzbz)
params.studiensemester_kurzbz = studiensemester_kurzbz;
if (this.filter.emp)
@@ -176,7 +176,7 @@ export default {
else
{
delete newParams.emp;
newParams.semester = null;
this.$router.replace({ name: 'byStg', params: newParams });
}
},