Fehlerzuständigkeiten and issues GUI improvements:

- menu link opens in new tab
- controller id set for easier refresh
- added person and oe Zuständigkeiten to issues list
-
This commit is contained in:
KarpAlex
2022-04-13 20:08:08 +02:00
parent 1f13c352a6
commit 4fe562cbe2
7 changed files with 112 additions and 34 deletions
+1
View File
@@ -242,6 +242,7 @@ $config['navigation_menu']['system/issues/Issues/*'] = array(
'description' => 'Fehler Zuständigkeiten', 'description' => 'Fehler Zuständigkeiten',
'icon' => 'cogs', 'icon' => 'cogs',
'sort' => 100, 'sort' => 100,
'target' => '_blank',
'requiredPermissions' => array('admin:rw') 'requiredPermissions' => array('admin:rw')
) )
); );
@@ -39,6 +39,7 @@ class Issues extends Auth_Controller
); );
$this->_setAuthUID(); // sets property uid $this->_setAuthUID(); // sets property uid
$this->setControllerId(); // sets the controller id
} }
public function index() public function index()
@@ -127,7 +128,7 @@ class Issues extends Auth_Controller
{ {
$all_funktionen_oe_kurzbz[$benutzerfunktion->oe_kurzbz][] = $benutzerfunktion->funktion_kurzbz; $all_funktionen_oe_kurzbz[$benutzerfunktion->oe_kurzbz][] = $benutzerfunktion->funktion_kurzbz;
// separate oes for the funktion needed for displaying issues // separate oes for the additional funktion which enables displaying issues
if ($benutzerfunktion->funktion_kurzbz == self::FUNKTION_KURZBZ) if ($benutzerfunktion->funktion_kurzbz == self::FUNKTION_KURZBZ)
{ {
$oe_kurzbz_for_funktion[] = $benutzerfunktion->oe_kurzbz; $oe_kurzbz_for_funktion[] = $benutzerfunktion->oe_kurzbz;
@@ -39,6 +39,7 @@ class IssuesZustaendigkeiten extends Auth_Controller
); );
$this->_setAuthUID(); // sets property uid $this->_setAuthUID(); // sets property uid
$this->setControllerId(); // sets the controller id
} }
public function index() public function index()
+61 -30
View File
@@ -1,7 +1,9 @@
<?php <?php
$PERSON_ID = getAuthPersonId(); $PERSON_ID = getAuthPersonId();
// all oe kurzbz for which logged user has a funktion
$ALL_FUNKTIONEN_OE_KURZBZ = "('" . implode("','", array_keys($all_funktionen_oe_kurzbz)) . "')"; $ALL_FUNKTIONEN_OE_KURZBZ = "('" . implode("','", array_keys($all_funktionen_oe_kurzbz)) . "')";
// all oes for which logged user has issues permissions, including permissions for "special" issue funktion
$ALL_OE_KURZBZ_BERECHTIGT = "('" . implode("','", $all_oe_kurzbz_berechtigt) . "')"; $ALL_OE_KURZBZ_BERECHTIGT = "('" . implode("','", $all_oe_kurzbz_berechtigt) . "')";
$RELEVANT_PRESTUDENT_STATUS = "('Aufgenommener', 'Student', 'Incoming', 'Diplomand', 'Abbrecher', 'Unterbrecher', 'Absolvent')"; $RELEVANT_PRESTUDENT_STATUS = "('Aufgenommener', 'Student', 'Incoming', 'Diplomand', 'Abbrecher', 'Unterbrecher', 'Absolvent')";
$LANGUAGE_INDEX = getUserLanguage() == 'German' ? '1' : '2'; $LANGUAGE_INDEX = getUserLanguage() == 'German' ? '1' : '2';
@@ -33,35 +35,50 @@ $query = "WITH zustaendigkeiten AS (
)"; )";
$query .= "SELECT issue_id, fehlercode AS \"Fehlercode\", iss.fehlercode_extern AS \"Fehlercode extern\", datum AS \"Datum\", $query .= "SELECT issue_id, fehlercode AS \"Fehlercode\", iss.fehlercode_extern AS \"Fehlercode extern\", datum AS \"Datum\",
inhalt AS \"Inhalt\", inhalt_extern AS \"Inhalt extern\", iss.person_id AS \"PersonId\", iss.oe_kurzbz AS \"OE\", inhalt AS \"Inhalt\", inhalt_extern AS \"Inhalt extern\", iss.person_id AS \"PersonId\", iss.oe_kurzbz AS \"OE\",
ftyp.bezeichnung_mehrsprachig[".$LANGUAGE_INDEX."] AS \"Fehlertyp\", stat.bezeichnung_mehrsprachig[".$LANGUAGE_INDEX."] AS \"Fehlerstatus\", ftyp.bezeichnung_mehrsprachig[".$LANGUAGE_INDEX."] AS \"Fehlertyp\", stat.bezeichnung_mehrsprachig[".$LANGUAGE_INDEX."] AS \"Fehlerstatus\",
verarbeitetvon AS \"Verarbeitet von\",verarbeitetamum AS \"Verarbeitet am\", fr.app AS \"Applikation\", verarbeitetvon AS \"Verarbeitet von\",verarbeitetamum AS \"Verarbeitet am\", fr.app AS \"Applikation\",
fr.fehlertyp_kurzbz AS \"Fehlertypcode\", iss.status_kurzbz AS \"Statuscode\", fr.fehlertyp_kurzbz AS \"Fehlertypcode\", iss.status_kurzbz AS \"Statuscode\",
pers.vorname AS \"Vorname\", pers.nachname AS \"Nachname\", pers.vorname AS \"Vorname\", pers.nachname AS \"Nachname\",
CASE CASE
WHEN WHEN
EXISTS(SELECT 1 EXISTS(SELECT 1
FROM zustaendigkeiten FROM zustaendigkeiten
WHERE fehlercode = iss.fehlercode WHERE fehlercode = iss.fehlercode
AND zustaendig = TRUE) /* If Zuständigkeit is defined for the oe/person, zustaendig. */ AND zustaendig = TRUE) /* If Zuständigkeit is defined for the oe/person, zustaendig. */
THEN 'Ja' THEN 'Ja'
WHEN WHEN
EXISTS(SELECT 1 EXISTS(SELECT 1
FROM zustaendigkeiten FROM zustaendigkeiten
WHERE fehlercode = iss.fehlercode WHERE fehlercode = iss.fehlercode
AND zustaendig = FALSE) /* If Zuständigkeit is defined for different oe/person, not zustaendig. */ AND zustaendig = FALSE) /* If Zuständigkeit is defined for different oe/person, not zustaendig. */
THEN 'Nein' THEN 'Nein'
ELSE 'Ja' /* If no Zuständigkeit defined, zustaendig by default. */ ELSE 'Ja' /* If no Zuständigkeit defined, zustaendig by default. */
END AS \"Hauptzuständig\" END AS \"Hauptzuständig\",
FROM system.tbl_issue iss (
JOIN system.tbl_fehler fr USING (fehlercode) SELECT string_agg(vorname || ' ' || nachname, ' | ' ORDER BY vorname, nachname)
JOIN system.tbl_fehlertyp ftyp USING (fehlertyp_kurzbz) FROM system.tbl_fehler_zustaendigkeiten
JOIN system.tbl_issue_status stat USING (status_kurzbz) JOIN public.tbl_person USING (person_id)
LEFT JOIN public.tbl_person pers ON iss.person_id = pers.person_id WHERE fehlercode = fr.fehlercode
WHERE EXISTS ( /* if oe or person is specified in fehler_zustaendigkeiten */ GROUP BY fehlercode
SELECT 1 FROM zustaendigkeiten ) AS \"Person Zuständigkeiten\",
WHERE fehlercode = iss.fehlercode (
AND zustaendig = TRUE)"; SELECT string_agg(organisationseinheittyp_kurzbz || ' ' || oe.bezeichnung || COALESCE(' - ' || fu.beschreibung, ''), ' | ' ORDER BY bezeichnung, oe_kurzbz)
FROM system.tbl_fehler_zustaendigkeiten
LEFT JOIN public.tbl_organisationseinheit oe USING (oe_kurzbz)
LEFT JOIN public.tbl_funktion fu USING (funktion_kurzbz)
WHERE fehlercode = fr.fehlercode
GROUP BY fehlercode
) AS \"Organisationseinheit Zuständigkeiten\"
FROM system.tbl_issue iss
JOIN system.tbl_fehler fr USING (fehlercode)
JOIN system.tbl_fehlertyp ftyp USING (fehlertyp_kurzbz)
JOIN system.tbl_issue_status stat USING (status_kurzbz)
LEFT JOIN public.tbl_person pers ON iss.person_id = pers.person_id
WHERE EXISTS ( /* if oe or person is specified in fehler_zustaendigkeiten */
SELECT 1 FROM zustaendigkeiten
WHERE fehlercode = iss.fehlercode
AND zustaendig = TRUE)";
// show issue if it is assigend to oe of logged in user or to student of oe of logged in user // show issue if it is assigend to oe of logged in user or to student of oe of logged in user
if (!isEmptyArray($all_oe_kurzbz_berechtigt)) if (!isEmptyArray($all_oe_kurzbz_berechtigt))
@@ -132,7 +149,9 @@ $filterWidgetArray = array(
ucfirst($this->p->t('fehlermonitoring', 'statuscode')), ucfirst($this->p->t('fehlermonitoring', 'statuscode')),
ucfirst($this->p->t('person', 'vorname')), ucfirst($this->p->t('person', 'vorname')),
ucfirst($this->p->t('person', 'nachname')), ucfirst($this->p->t('person', 'nachname')),
ucfirst($this->p->t('fehlermonitoring', 'hauptzustaendig')) ucfirst($this->p->t('fehlermonitoring', 'hauptzustaendig')),
ucfirst($this->p->t('fehlermonitoring', 'zustaendigePersonen')),
ucfirst($this->p->t('fehlermonitoring', 'zustaendigeOrganisationseinheiten'))
), ),
'formatRow' => function($datasetRaw) { 'formatRow' => function($datasetRaw) {
@@ -171,6 +190,18 @@ $filterWidgetArray = array(
$datasetRaw->{'Verarbeitet von'} = '-'; $datasetRaw->{'Verarbeitet von'} = '-';
} }
if ($datasetRaw->{'Person Zuständigkeiten'} == null)
{
$datasetRaw->{'Person Zuständigkeiten'} = '-';
}
if ($datasetRaw->{'Organisationseinheit Zuständigkeiten'} == null)
{
$datasetRaw->{'Organisationseinheit Zuständigkeiten'} = '-';
}
return $datasetRaw; return $datasetRaw;
}, },
'markRow' => function($datasetRaw) { 'markRow' => function($datasetRaw) {
+1 -1
View File
@@ -71,7 +71,7 @@ var IssuesZustaendigkeiten = {
fehlerCodes.push( fehlerCodes.push(
{ {
fehlercode: code.fehlercode, fehlercode: code.fehlercode,
fullFehlerBezeichnung: code.fehlercode + ' - ' + code.fehler_kurzbz fullFehlerBezeichnung: code.fehlercode + (!code.fehler_kurzbz ? '' : ' - ' + code.fehler_kurzbz)
} }
); );
} }
+6 -2
View File
@@ -926,7 +926,9 @@ $filters = array(
{"name": "Vorname"}, {"name": "Vorname"},
{"name": "Nachname"}, {"name": "Nachname"},
{"name": "PersonId"}, {"name": "PersonId"},
{"name": "Fehlerstatus"} {"name": "Fehlerstatus"},
{"name": "Person Zuständigkeiten"},
{"name": "Organisationseinheit Zuständigkeiten"}
], ],
"filters": [ "filters": [
{ {
@@ -960,7 +962,9 @@ $filters = array(
{"name": "Vorname"}, {"name": "Vorname"},
{"name": "Nachname"}, {"name": "Nachname"},
{"name": "PersonId"}, {"name": "PersonId"},
{"name": "Fehlerstatus"} {"name": "Fehlerstatus"},
{"name": "Person Zuständigkeiten"},
{"name": "Organisationseinheit Zuständigkeiten"}
], ],
"filters": [ "filters": [
{ {
+40
View File
@@ -14175,6 +14175,46 @@ array(
) )
) )
), ),
array(
'app' => 'core',
'category' => 'fehlermonitoring',
'phrase' => 'zustaendigePersonen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "zuständige Personen",
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => "responsible persons",
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'fehlermonitoring',
'phrase' => 'zustaendigeOrganisationseinheiten',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "zuständige Organisationseinheiten",
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => "responsible organisation units",
'description' => '',
'insertvon' => 'system'
)
)
),
array( array(
'app' => 'core', 'app' => 'core',
'category' => 'ui', 'category' => 'ui',