Added: STGLs sehen jetzt nur Anrechnungen von STGs, für die sie eine Berechtigung haben

Es gibt eine neue Spalte 'schreibberechtigt' in der Anrechnungentabelle.
Defaultmäßig werden nur 'schreibberechtigte' Anrechnungen angezeigt, wo STGL
die Berechtigung auf die OE hat.
Über den Filter können aber auch alle angezeigt werden.
This commit is contained in:
Cris
2023-01-11 13:47:23 +01:00
parent 29f1760a7c
commit d1319a23ad
3 changed files with 47 additions and 12 deletions
@@ -81,6 +81,19 @@ class approveAnrechnungUebersicht extends Auth_Controller
show_error(getError($studiengang_kz_arr));
}
// Get oes the user is entitled for
$oe_kurzbz_arr_schreibberechtigt = array();
if ($oe_arr = $this->permissionlib->getOE_isEntitledFor(self::BERECHTIGUNG_ANRECHNUNG_GENEHMIGEN))
{
foreach($oe_arr as $oe)
{
$berechtigt = $this->permissionlib->isBerechtigt(self::BERECHTIGUNG_ANRECHNUNG_GENEHMIGEN, 'suid', $oe);
if ($berechtigt) $oe_kurzbz_arr_schreibberechtigt[]= $oe;
}
}
// Check if permission is readonly
$hasReadOnlyAccess =
$this->permissionlib->isBerechtigt(self::BERECHTIGUNG_ANRECHNUNG_GENEHMIGEN, 's')
&& !$this->permissionlib->isBerechtigt(self::BERECHTIGUNG_ANRECHNUNG_GENEHMIGEN, 'suid');
@@ -90,7 +103,8 @@ class approveAnrechnungUebersicht extends Auth_Controller
$viewData = array(
'studiensemester_selected' => $studiensemester_kurzbz,
'studiengaenge_entitled' => $studiengang_kz_arr,
'studiengaenge_entitled' => $studiengang_kz_arr, // alle STG mit Lese- und Schreibberechtigung
'oes_schreibberechtigt' => $oe_kurzbz_arr_schreibberechtigt, // alle STG nur mit Schreibberechtigung
'hasReadOnlyAccess' => $hasReadOnlyAccess,
'hasCreateAnrechnungAccess' => $hasCreateAnrechnungAccess
);
@@ -3,7 +3,8 @@ const ANRECHNUNGSTATUS_PROGRESSED_BY_STGL = 'inProgressDP';
const ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR = 'inProgressLektor';
$STUDIENSEMESTER = $studiensemester_selected;
$STUDIENGAENGE_ENTITLED = implode(', ', $studiengaenge_entitled);
$STUDIENGAENGE_ENTITLED = implode(', ', $studiengaenge_entitled); // alle STG mit Lese- und Schreibberechtigung
$ORGANISATIONSEINHEITEN_SCHREIBBERECHTIGT = "'". implode(', ', $oes_schreibberechtigt). "'"; // alle STG nur mit Schreibberechtigung
$LANGUAGE_INDEX = getUserLanguage() == 'German' ? '0' : '1';
$query = '
@@ -14,6 +15,10 @@ $query = '
anrechnung.lehrveranstaltung_id,
anrechnung.begruendung_id,
anrechnung.dms_id,
CASE
WHEN stg.typ || stg.kurzbz IN (' . $ORGANISATIONSEINHEITEN_SCHREIBBERECHTIGT . ') THEN TRUE
ELSE FALSE
END "schreibberechtigt",
anrechnung.studiensemester_kurzbz,
stg.studiengang_kz,
stg.bezeichnung AS stg_bezeichnung,
@@ -71,6 +76,7 @@ $query = '
anrechnungen.lehrveranstaltung_id,
anrechnungen.begruendung_id,
anrechnungen.dms_id,
anrechnungen.schreibberechtigt,
anrechnungen.studiensemester_kurzbz,
anrechnungen.studiengang_kz,
anrechnungen.stg_bezeichnung,
@@ -141,6 +147,7 @@ $filterWidgetArray = array(
'lehrveranstaltung_id',
'begruendung_id',
'dms_id',
'schreibberechtigt',
'studiensemester_kurzbz',
'studiengang_kz',
ucfirst($this->p->t('lehre', 'studiengang')),
@@ -172,6 +179,7 @@ $filterWidgetArray = array(
persistentFilter:true,
autoResize: false, // prevent auto resizing of table (false to allow adapting table size when cols are (de-)activated
headerFilterPlaceholder: " ",
initialHeaderFilter: [{field:"schreibberechtigt", value: true}],
index: "anrechnung_id", // assign specific column as unique id (important for row indexing)
selectable: true, // allow row selection
selectableRangeMode: "click", // allow range selection using shift end click on end of range
@@ -200,6 +208,10 @@ $filterWidgetArray = array(
lehrveranstaltung_id: {visible: false, headerFilter:"input"},
begruendung_id: {visible: false, headerFilter:"input"},
dms_id: {visible: false, headerFilter:"input"},
schreibberechtigt: {
formatter:"tickCross", align:"center",
headerFilter:"tickCross", headerFilterParams:{"tristate": true, "initial": true}, headerFilterFunc: hf_schreibberechtigt
},
studiensemester_kurzbz: {visible: false, headerFilter:"input"},
studiengang_kz: {visible: false, headerFilter:"input"},
stg_bezeichnung: {headerFilter:"input"},
@@ -57,6 +57,12 @@ function hf_filterTrueFalse(headerValue, rowValue){
}
}
// Filters schreibberechtigt boolean values
function hf_schreibberechtigt(headerValue, rowValue){
return rowValue == headerValue.toString();
}
// Adds column details
// Sets focus on filterbutton, if table starts with stored filter.
function func_tableBuilt(table) {
@@ -173,19 +179,22 @@ function func_selectableCheck(row){
// data = selected data, rows = selected rows
function func_rowSelectionChanged(data, rows){
// Sum up over all anzurechnenden LV-ECTS by Prestudent
selectedPrestudentWithAccumulatedLvEcts = approveAnrechnung.getSumLvEctsByPreStudent(data);
if (tabulator != null)
{
// Sum up over all anzurechnenden LV-ECTS by Prestudent
selectedPrestudentWithAccumulatedLvEcts = approveAnrechnung.getSumLvEctsByPreStudent(data);
// Loop through all active rows
var rowManager = tabulator.rowManager;
for (var i = 0; i < rowManager.activeRows.length; i++) {
// Loop through all active rows
var rowManager = tabulator.rowManager;
for (var i = 0; i < rowManager.activeRows.length; i++) {
// Reinitialize row -> triggers formatters.
rowManager.activeRows[i].reinitialize();
// Reinitialize row -> triggers formatters.
rowManager.activeRows[i].reinitialize();
}
// Show number of selected rows.
approveAnrechnung.showNumberSelectedRows(rows);
}
// Show number of selected rows.
approveAnrechnung.showNumberSelectedRows(rows);
}
// Returns tooltip