projektbeurteilungs uebersicht hinzugefuegt

This commit is contained in:
ma0048
2022-01-19 17:56:30 +01:00
parent e687471a37
commit b8ac076bdb
4 changed files with 210 additions and 1 deletions
@@ -60,4 +60,81 @@ class Projektbetreuer_model extends DB_Model
return $this->execQuery($qry, array($zugangstoken));
}
/**
* Holt Zweitbegutachter einer Projektarbeit mit Mail.
* @param $erstbegutachter_person_id int person_id des Erstbegutachters
* @param $projektarbeit_id int
* @param $student_uid string uid des Studenten der Arbeit abgibt
* @return object | bool
*/
public function getZweitbegutachterWithToken($erstbegutachter_person_id, $projektarbeit_id, $student_uid)
{
$qry_betr = "SELECT betr.person_id, betr.projektarbeit_id, pers.anrede, betr.zugangstoken, betr.zugangstoken_gueltigbis, tbl_benutzer.uid, kontakt,
trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as voller_name,
CASE WHEN tbl_benutzer.uid IS NULL THEN kontakt ELSE tbl_benutzer.uid || '@".DOMAIN."' END AS email, abg.abgabedatum
FROM lehre.tbl_projektbetreuer betr
JOIN lehre.tbl_projektarbeit parb ON betr.projektarbeit_id = parb.projektarbeit_id
JOIN public.tbl_person pers ON betr.person_id = pers.person_id
LEFT JOIN public.tbl_kontakt ON pers.person_id = tbl_kontakt.person_id AND kontakttyp = 'email' AND zustellung = true
LEFT JOIN public.tbl_benutzer ON pers.person_id = tbl_benutzer.person_id
LEFT JOIN campus.tbl_paabgabe abg ON betr.projektarbeit_id = abg.projektarbeit_id AND abg.paabgabetyp_kurzbz = 'end'
WHERE betr.betreuerart_kurzbz = 'Zweitbegutachter'
AND betr.projektarbeit_id = ?
AND parb.student_uid = ?
AND EXISTS (
SELECT 1 FROM lehre.tbl_projektbetreuer
WHERE person_id = ?
AND betreuerart_kurzbz = 'Erstbegutachter'
AND projektarbeit_id = betr.projektarbeit_id
)
AND (tbl_benutzer.aktiv OR tbl_benutzer.aktiv IS NULL)
ORDER BY betr.insertamum DESC
LIMIT 1";
return $this->execQuery($qry_betr, array($projektarbeit_id, $student_uid, $erstbegutachter_person_id));
}
/**
* Generiert neuen Token für externen Zweitbetreuer.
* @param int $zweitbegutachter_person_id
* @param int $projektarbeit_id
* @return object | bool
*/
public function generateZweitbegutachterToken($zweitbegutachter_person_id, $projektarbeit_id)
{
$betreuerUidQry = "SELECT uid, zugangstoken, zugangstoken_gueltigbis, tbl_projektbetreuer.person_id
FROM lehre.tbl_projektbetreuer
JOIN public.tbl_person USING(person_id)
LEFT JOIN public.tbl_benutzer USING(person_id)
WHERE projektarbeit_id = ?
AND tbl_projektbetreuer.person_id = ?
AND betreuerart_kurzbz = 'Zweitbegutachter'
LIMIT 1";
$betreueruidres = $this->execQuery($betreuerUidQry, array($projektarbeit_id, $zweitbegutachter_person_id));
if (!hasData($betreueruidres))
return error('Zweitbegutachter nicht gefunden');
$row_betr = getData($betreueruidres)[0];
if (!isset($row_betr->uid))
{
do {
$token = generateToken(16);
$qry_tokencheck = $this->load(array('zugangstoken' => $token));
} while(hasData($qry_tokencheck));
$result = $this->update(
array('projektarbeit_id' => $projektarbeit_id,
'person_id' => $row_betr->person_id,
'betreuerart_kurzbz' => 'Zweitbegutachter'),
array('zugangstoken' => $token,
'zugangstoken_gueltigbis' => date('Y-m-d', strtotime('+1 year')))
);
return $result;
}
}
}
@@ -12,7 +12,14 @@ class Variablenname_model extends DB_Model
) sem
WHERE start > now()
LIMIT 1;',
'infocenter_studiensgangtyp' => 'SELECT infocenter_studiensgangtyp FROM public.tbl_variablenname LIMIT 1'
'infocenter_studiensgangtyp' => 'SELECT infocenter_studiensgangtyp FROM public.tbl_variablenname LIMIT 1;',
'projektuebersicht_studiensemester' => 'SELECT studiensemester_kurzbz FROM (
SELECT DISTINCT ON (studienjahr_kurzbz) start, studiensemester_kurzbz
FROM public.tbl_studiensemester
ORDER BY studienjahr_kurzbz, start
) sem
WHERE start > now()
LIMIT 1;'
);
/**
+25
View File
@@ -981,6 +981,31 @@ $filters = array(
}
',
'oe_kurzbz' => null,
),
array(
'app' => 'projektarbeitsbeurteilung',
'dataset_name' => 'projektuebersicht',
'filter_kurzbz' => 'alleProjekte',
'description' => '{Projektübersicht}',
'sort' => 1,
'default_filter' => true,
'filter' => '
{
"name": "Projektübersicht",
"columns": [
{"name": "ProjectWorkID"},
{"name": "ErstNachname"},
{"name": "ErstAbgeschickt"},
{"name": "ZweitNachname"},
{"name": "ZweitAbgeschickt"},
{"name": "StudentNachname"},
{"name": "Note"},
{"name": "Abgabedatum"}
],
"filters": []
}
',
'oe_kurzbz' => null,
)
);
+100
View File
@@ -9772,6 +9772,106 @@ Any unusual occurrences
)
)
),
array(
'app' => 'projektarbeitsbeurteilung',
'category' => 'projektarbeitsbeurteilung',
'phrase' => 'projektarbeitsbeurteilungUebersicht',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Projektarbeitsbeurteilungsübersicht',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Projekt Work Assessment Overview',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'projektarbeitsbeurteilung',
'category' => 'projektarbeitsbeurteilung',
'phrase' => 'abgabedatum',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Abgabe - Datum',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Upload - Date',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'projektarbeitsbeurteilung',
'category' => 'projektarbeitsbeurteilung',
'phrase' => 'freischaltung',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Freischaltung',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Activation',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'projektarbeitsbeurteilung',
'category' => 'projektarbeitsbeurteilung',
'phrase' => 'resendToken',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Token an Zweit-Begutachter*in senden',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Send token to Second Assessor',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'projektarbeitsbeurteilung',
'category' => 'projektarbeitsbeurteilung',
'phrase' => 'freischalten',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Freischalten',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Unlock',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'anrechnung',