add basis framework for lv dates

This commit is contained in:
ma0068
2025-04-07 14:46:36 +02:00
parent 97782b7f1d
commit d75e26f8ae
8 changed files with 169 additions and 2 deletions
@@ -128,6 +128,11 @@ class Config extends FHCAPI_Controller
'component' => './Stv/Studentenverwaltung/Details/Mobility.js'
];
$result['coursedates'] = [
'title' => $this->p->t('stv', 'tab_courseDates'),
'component' => './Stv/Studentenverwaltung/Details/Lehrveranstaltungstermine.js'
];
Events::trigger('stv_conf_student', function & () use (&$result) {
return $result;
});
@@ -0,0 +1,67 @@
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
use \DateTime as DateTime;
class Lvtermine extends FHCAPI_Controller
{
public function __construct()
{
parent::__construct([
'getStundenplan' => ['admin:r', 'assistenz:r'],
'getLvsStudent' => ['admin:r', 'assistenz:r'],
]);
// Load Libraries
$this->load->library('VariableLib', ['uid' => getAuthUID()]);
$this->load->library('form_validation');
// Load language phrases
$this->loadPhrases([
'ui',
]);
// Load models
$this->load->model('ressource/Stundenplan_model', 'StundenplanModel');
}
public function getStundenplan($uid)
{
//get stundenplan for uid
$result = $this->StundenplanModel->loadForUid($uid);
$data = $this->getDataOrTerminateWithError($result);
$this->terminateWithSuccess($data);
}
public function getLvsStudent($uid)
{
$authUID = getAuthUID();
//$this->terminateWithError('uid' . $uid, self::ERROR_TYPE_GENERAL);
//$this->terminateWithError('uid' . $authUID, self::ERROR_TYPE_GENERAL);
$this->load->model('system/Variable_model', 'VariableModel');
$result = $this->VariableModel->getVariables($authUID);
$data = $this->getDataOrTerminateWithError($result);
//$this->terminateWithSuccess(current($data)); // WS2025
$this->load->model('ressource/Stunde_model', 'StundeModel');
$this->StundeModel->addOrder('stunde', 'ASC');
$result = $this->StundeModel->load();
$dataStunden = $this->getDataOrTerminateWithError($result);
$this->terminateWithSuccess($dataStunden);
// $this->terminateWithSuccess(current($data));
//TODO(manu) check existing apis for liste stundenplan und lvs
// version for student
// version for lehrfaecherverteilung
}
}
@@ -421,7 +421,7 @@ class Stundenplan_model extends DB_Model
*/
public function loadForUid($uid)
{
$this->addSelect(['sp.*','le.studiensemester_kurzbz']);
$this->addSelect(['5sp.*','le.studiensemester_kurzbz']);
$this->db->join('public.tbl_benutzergruppe bg', 'sp.gruppe_kurzbz=bg.gruppe_kurzbz AND bg.uid=?', 'LEFT', false);
$this->addJoin('public.tbl_studiensemester ss1', 'bg.studiensemester_kurzbz=ss1.studiensemester_kurzbz AND ss1.start<=sp.datum AND ss1.ende>=sp.datum', 'LEFT');
$this->db->join('public.tbl_studentlehrverband slv', "sp.studiengang_kz=slv.studiengang_kz AND slv.student_uid=? AND (slv.semester=sp.semester OR sp.semester IS NULL) AND (slv.verband=sp.verband OR sp.verband IS NULL OR sp.verband='' OR sp.verband='0') AND (slv.gruppe=sp.gruppe OR sp.gruppe IS NULL OR sp.gruppe='' OR sp.gruppe='0') AND sp.gruppe_kurzbz IS NULL", 'LEFT', false);
+2
View File
@@ -10,6 +10,7 @@ import exam from './stv/exam.js';
import abschlusspruefung from './stv/abschlusspruefung.js';
import grades from './stv/grades.js';
import mobility from './stv/mobility.js';
import courselist from './stv/courselist.js';
export default {
verband,
@@ -24,6 +25,7 @@ export default {
abschlusspruefung,
grades,
mobility,
courselist,
configStudent() {
return this.$fhcApi.get('api/frontend/v1/stv/config/student');
},
+6
View File
@@ -0,0 +1,6 @@
export default {
getCourselist(url, config, params) {
console.log("her");
return this.$fhcApi.get('api/frontend/v1/stv/Lvtermine/getLvsStudent/' + params.id);
},
}
@@ -0,0 +1,18 @@
import TableLvList from "./Lehrveranstaltungstermine/ListLehrveranstaltungstermine.js";
export default {
name: "TabCourseList",
components: {
TableLvList
},
props: {
modelValue: Object,
},
data(){
return {}
},
template: `
<div class="stv-details-course-list h-100 d-flex flex-column">
<table-lv-list ref="tbl_course_list" :student="modelValue"></table-lv-list>
</div>`
};
@@ -0,0 +1,47 @@
import {CoreFilterCmpt} from "../../../../filter/Filter.js";
export default {
name: "TblCourseList",
components: {
CoreFilterCmpt
},
props: {
student: Object
},
data(){
return {
tabulatorOptions: {
ajaxURL: 'dummy',
ajaxRequestFunc: this.$fhcApi.factory.stv.courselist.getCourselist,
ajaxParams: () => {
return {
id: this.student.uid
};
},
ajaxResponse: (url, params, response) => response.data,
columns: [
{title: "Prestudent_id", field: "prestudent_id"},
]
},
tabulatorEvents: [],
}
},
methods: {},
template: `
<div class="stv-details-courselist h-100 pb-3">
<h4>Termine</h4>
{{student}}
<core-filter-cmpt
ref="table"
:tabulator-options="tabulatorOptions"
:tabulator-events="tabulatorEvents"
table-only
:side-menu="false"
reload
>
</core-filter-cmpt>
</div>
`
}
+23 -1
View File
@@ -41393,8 +41393,30 @@ and represent the current state of research on the topic. The prescribed citatio
'insertvon' => 'system'
)
)
)
),
// PROJEKTARBEITSBEURTEILUNG SS2025 ENDE ---------------------------------------------------------------------------
// FHC 4 Lehrveranstaltungstermine START ---------------------------------------------------------------------------
array(
'app' => 'core',
'category' => 'stv',
'phrase' => 'tab_courseDates',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'LV Termine',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Course Dates',
'description' => '',
'insertvon' => 'system'
)
)
),
// FHC 4 Lehrveranstaltungstermine ENDE ---------------------------------------------------------------------------
);