Funktionalitaet feature-39602

This commit is contained in:
ma0068
2024-05-27 14:57:18 +02:00
parent 21fb679c08
commit 259a3c218a
6 changed files with 72 additions and 7 deletions
@@ -26,8 +26,8 @@ class Studentenverwaltung extends FHC_Controller
'assistenz_stgs' => $this->permissionlib->getSTG_isEntitledFor('assistenz'),
'admin' => $this->permissionlib->isBerechtigt('admin'),
'assistenz_schreibrechte' => $this->permissionlib->isBerechtigt('assistenz','suid'),
'student/keine_studstatuspruefung' => $this->permissionlib->isBerechtigt('student/keine_studstatuspruefung')
'student/keine_studstatuspruefung' => $this->permissionlib->isBerechtigt('student/keine_studstatuspruefung'),
'lehre/reihungstestAufsicht' => $this->permissionlib->isBerechtigt('lehre/reihungstestAufsicht')
],
'variables' => [
'semester_aktuell' => $this->variablelib->getVar('semester_aktuell')
@@ -484,8 +484,9 @@ class Status extends FHCAPI_Controller
$isBerechtigtAdmin = $this->permissionlib->isBerechtigt('admin', null, 'suid');
$isBerechtigtNoStudstatusCheck = $this->permissionlib->isBerechtigt('student/keine_studstatuspruefung', null, 'suid');
$isBerechtigtToDeleteAbgewiesen = $this->permissionlib->isBerechtigt('lehre/reihungstestAufsicht') && $status_kurzbz == "Abgewiesener";
if(!$this->permissionlib->isBerechtigt('admin', 'suid', $stg) && !$this->permissionlib->isBerechtigt('assistenz', 'suid', $stg))
if(!$this->permissionlib->isBerechtigt('admin', 'suid', $stg) && !$this->permissionlib->isBerechtigt('assistenz', 'suid', $stg) && !$isBerechtigtToDeleteAbgewiesen)
{
return $this->terminateWithError($this->p->t('lehre','error_keineSchreibrechte'), self::ERROR_TYPE_GENERAL);
}
+2 -2
View File
@@ -764,9 +764,9 @@ class Prestudent_model extends DB_Model
ps.updatevon
FROM
public.tbl_prestudentstatus ps
JOIN
LEFT JOIN
public.tbl_student st USING (prestudent_id)
JOIN
LEFT JOIN
public.tbl_studiengang sg ON (st.studiengang_kz = sg.studiengang_kz)
LEFT JOIN
lehre.tbl_studienplan sp USING (studienplan_id)
@@ -54,6 +54,7 @@ export default {
hasSchreibrechtAss: this.permissions['assistenz_schreibrechte'],
hasAdminPermission: this.permissions['admin'],
hasPermissionToSkipStatusCheck: this.permissions['student/keine_studstatuspruefung'],
hasPermissionRtAufsicht: this.permissions['lehre/reihungstestAufsicht'],
lists: this.lists,
defaultSemester: this.defaultSemester,
$reloadList: () => {
@@ -39,6 +39,10 @@ export default{
from: 'hasSchreibrechtAss',
default: false
},
hasPermissionRtAufsicht: {
from: 'hasPermissionRtAufsicht',
default: false
},
$reloadList: {
from: '$reloadList',
required: true
@@ -96,6 +100,10 @@ export default{
},
hasPermissionCurrentStg(){
return this.arrayStg.includes(this.studiengang_kz);
},
isStatusBeforeStudent(){
let isStatusStudent = ['Student', 'Absolvent', 'Diplomand'];
return !isStatusStudent.includes(this.statusData.status_kurzbz);
}
},
props: {
@@ -669,6 +677,7 @@ export default{
mounted(){},
template: `
<div class="stv-list h-100 pt-3">
<!--Modal: Add New Status-->
<BsModal ref="newStatusModal">
@@ -828,11 +837,15 @@ export default{
<!--Modal: Edit Status-->
<BsModal ref="editStatusModal">
<template #title>{{$p.t('lehre', 'status_edit')}}</template>
<form-form class="row g-3" ref="statusData">
<div v-if="statusData.datum < dataMeldestichtag">
<b>{{$p.t('bismeldestichtag', 'meldestichtag_erreicht')}}</b>
<div v-if="statusData.datum < dataMeldestichtag && !isStatusBeforeStudent">
<b>{{$p.t('bismeldestichtag', 'info_MeldestichtagStatusgrund')}}</b>
</div>
<div v-if="statusData.datum < dataMeldestichtag && isStatusBeforeStudent">
<b>{{$p.t('bismeldestichtag', 'info_MeldestichtagStatusgrundSemester')}}</b>
</div>
<input type="hidden" id="statusId" name="statusId" value="statusData.statusId">
@@ -866,7 +879,9 @@ export default{
type="select"
name="studiensemester_kurzbz"
v-model="statusData['studiensemester_kurzbz']"
:disabled="statusData.datum < dataMeldestichtag"
>
<option value="null"></option>
<option v-for="sem in listStudiensemester" :key="sem.studiensemester_kurzbz" :value="sem.studiensemester_kurzbz">{{sem.studiensemester_kurzbz}}</option>
</form-input>
</div>
@@ -879,6 +894,7 @@ export default{
type="select"
name="ausbildungssemester"
v-model="statusData['ausbildungssemester']"
:disabled="statusData.datum < dataMeldestichtag && !isStatusBeforeStudent"
>
<option v-for="number in maxSem" :key="number" :value="number">{{ number }}</option>
</form-input>
@@ -897,6 +913,7 @@ export default{
format="dd.MM.yyyy"
preview-format="dd.MM.yyyy"
:teleport="true"
:disabled="statusData.datum < dataMeldestichtag"
></form-input>
</div>
</div>
@@ -912,6 +929,7 @@ export default{
format="dd.MM.yyyy"
preview-format="dd.MM.yyyy"
:teleport="true"
:disabled="statusData.datum < dataMeldestichtag"
></form-input>
</div>
</div>
@@ -927,6 +945,7 @@ export default{
format="dd.MM.yyyy"
preview-format="dd.MM.yyyy"
:teleport="true"
:disabled="statusData.datum < dataMeldestichtag"
></form-input>
</div>
</div>
@@ -937,6 +956,7 @@ export default{
type="select"
name="studienplan"
v-model="statusData['studienplan_id']"
:disabled="statusData.datum < dataMeldestichtag"
>
<option v-for="sp in listStudienplaene" :key="sp.studienplan_id" :value="sp.studienplan_id">{{sp.bezeichnung}}</option>
</form-input>
@@ -949,6 +969,7 @@ export default{
type="text"
name="anmerkung"
v-model="statusData['anmerkung']"
:disabled="statusData.datum < dataMeldestichtag"
>
</form-input>
</div>
@@ -961,6 +982,7 @@ export default{
type="select"
name="aufnahmestufe"
v-model="statusData['rt_stufe']"
:disabled="statusData.datum < dataMeldestichtag"
>
<option v-for="entry in aufnahmestufen" :key="entry" :value="entry">{{entry}}</option>
</form-input>
@@ -975,6 +997,7 @@ export default{
name="statusgrund"
v-model="statusData['statusgrund_id']"
>
<option :value="NULL"></option>
<option v-for="grund in gruende" :key="grund.statusgrund_id" :value="grund.statusgrund_id">{{grund.beschreibung[0]}}</option>
</form-input>
</div>
+40
View File
@@ -28062,6 +28062,46 @@ array(
)
)
),
array(
'app' => 'core',
'category' => 'bismeldestichtag',
'phrase' => 'info_MeldestichtagStatusgrund',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Meldestichtag erreicht - ausschließlich Bearbeiten Statusgrund möglich',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Reporting deadline reached - only editing status reason possible',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'bismeldestichtag',
'phrase' => 'info_MeldestichtagStatusgrundSemester',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Meldestichtag erreicht - Bearbeiten Ausbildungssemester und Statusgrund möglich',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Edit education semester and status reason possible',
'description' => '',
'insertvon' => 'system'
)
)
),
);