Merge branch 'master' into ciauth

This commit is contained in:
Paolo
2019-03-21 17:04:51 +01:00
17 changed files with 284 additions and 125 deletions
@@ -81,10 +81,15 @@ class Manager extends Auth_Controller
}
/**
*
* Installiert eine Extension.
* Es wird davon ausgegangen, dass die Extension ueber einen Fileupload hochgeladen wird.
* alternativ kann hier auch der Name und Filename uebergeben werden um die installation ueber
* die Commandline ohne Upload durchzufuehren.
* @param $extensioName string Name der Extension
* @param $filename Url Encoded Pfad zum tgz File der Extension
*/
public function uploadExtension()
public function uploadExtension($extensionName = null, $filename = null)
{
$this->extensionslib->installExtension();
$this->extensionslib->installExtension($extensionName, urldecode($filename));
}
}
+16 -4
View File
@@ -59,17 +59,29 @@ class ExtensionsLib
/**
* Main method to install an extension
* If no filename / Extensionname is provided the extension should be uploaded via webupload
*
* @param $extensionName string Name of Extension (optional)
* @param $filename Path to tgz Extension File (optional)
*/
public function installExtension()
public function installExtension($extensionName = null, $filename = null)
{
$extensionDB = null; // contains data from DB about an extension
$extensionJson = null; // contains the extension.json data
$this->_printInfo('WARNING!!! Please do not change page or stop this procedure before it is finished');
$this->_loadUploadLibrary(); // loads CI upload library
$uploadData = $this->_uploadExtension(); // perform the upload of the file and returns info about it
if (!is_null($extensionName) && !is_null($filename))
{
$uploadData = new stdClass();
$uploadData->fullPath = $filename;
$uploadData->extensionName = $extensionName;
}
else
{
$this->_loadUploadLibrary(); // loads CI upload library
$uploadData = $this->_uploadExtension(); // perform the upload of the file and returns info about it
}
if ($uploadData != null) // if no error occurred
{
+2 -1
View File
@@ -112,11 +112,12 @@ class PermissionLib
public function isEntitled($requiredPermissions, $calledMethod)
{
$checkPermissions = false;
$requestMethod = $_SERVER['REQUEST_METHOD'];
// If it's called from command line than it's trusted
if (is_cli()) return true;
$requestMethod = $_SERVER['REQUEST_METHOD'];
// Checks if the parameter $requiredPermissions is set, is an array and contains at least one element
if (isset($requiredPermissions) && !isEmptyArray($requiredPermissions))
{
@@ -47,7 +47,12 @@ class Lehreinheit_model extends DB_Model
// add lehreinheitgruppen, each lehreinheitid
// having (maybe multiple) lehreinheitgruppen
$letoadd->lehreinheitgruppen = array();
$this->LehreinheitgruppeModel->addSelect('lehre.tbl_lehreinheitgruppe.*, tbl_gruppe.bezeichnung, tbl_gruppe.direktinskription');
$this->LehreinheitgruppeModel->addJoin('public.tbl_gruppe', 'gruppe_kurzbz', 'LEFT');
$lehreinheitgruppen = $this->LehreinheitgruppeModel->loadWhere(array('lehreinheit_id' => $le->lehreinheit_id));
if (hasData($lehreinheitgruppen))
{
foreach ($lehreinheitgruppen->retval as $lehreinheitgruppe)
@@ -55,7 +60,9 @@ class Lehreinheit_model extends DB_Model
$letoadd->lehreinheitgruppen[] = array(
'semester' => $lehreinheitgruppe->semester,
'verband' => $lehreinheitgruppe->verband,
'gruppe' => $lehreinheitgruppe->gruppe
'gruppe' => $lehreinheitgruppe->gruppe,
'gruppe_kurzbz' => $lehreinheitgruppe->gruppe_kurzbz,
'direktinskription' => $lehreinheitgruppe->direktinskription
);
}
}
@@ -78,4 +85,22 @@ class Lehreinheit_model extends DB_Model
return $lehreinheiten;
}
/**
* Gets students of a Lehreinheit
* @param int $lehreinheit_id
* @return array
*/
public function getStudenten($lehreinheit_id)
{
$query = 'SELECT uid, vorname, nachname '
. 'FROM campus.vw_student_lehrveranstaltung '
. 'JOIN campus.vw_student '
. 'USING (uid) '
. 'WHERE lehreinheit_id = ?'
. ' ORDER BY nachname';
return $this->execQuery($query, array($lehreinheit_id));
}
}
+2
View File
@@ -221,6 +221,7 @@ if(isset($_REQUEST['format']) && $_REQUEST['format']=='xls')
{
$wt=date('N',$ts);
$grund=$zs->getTyp($ts);
$grund = (!empty($grund)) ? $p->t('zeitsperre/abwesend') : ''; // anonymize reason
$erbk=html_entity_decode($zs->getErreichbarkeit($ts));
$vertretung=$zs->getVertretung($ts);
$zelleninhalt = ($grund!=''?(($grund!=''?substr($p->t('zeitsperre/grund'),0,1).': ':'').$grund. "\n"):'');
@@ -342,6 +343,7 @@ else
else
$class='';
$grund=$zs->getTyp($ts);
$grund = (!empty($grund)) ? $p->t('zeitsperre/abwesend') : ''; // anonymize reason
$erbk=$zs->getErreichbarkeit($ts);
$vertretung=$zs->getVertretung($ts);
echo '<td '.$class.' style="white-space: nowrap;">'.($grund!=''?'<span title="'.$p->t('zeitsperre/grund').'">'.substr($p->t('zeitsperre/grund'),0,1).'</span>: ':'').$grund;
+2
View File
@@ -153,6 +153,7 @@ if(isset($_REQUEST['format']) && $_REQUEST['format']=='xls')
{
$wt=date('N',$ts);
$grund=$zs->getTyp($ts);
$grund = (!empty($grund)) ? $p->t('zeitsperre/abwesend') : ''; // anonymize reason
$erbk=html_entity_decode($zs->getErreichbarkeit($ts));
$vertretung=$zs->getVertretung($ts);
$zelleninhalt = ($grund!=''?(($grund!=''?substr($p->t('zeitsperre/grund'),0,1).': ':'').$grund. "\n"):'');
@@ -238,6 +239,7 @@ else
else
$class='';
$grund=$zs->getTyp($ts);
$grund = (!empty($grund)) ? $p->t('zeitsperre/abwesend') : ''; // anonymize reason
$erbk=$zs->getErreichbarkeit($ts);
$vertretung=$zs->getVertretung($ts);
echo '<td '.$class.' style="white-space: nowrap;">'.($grund!=''?'<span title="'.$p->t('zeitsperre/grund').'">'.substr($p->t('zeitsperre/grund'),0,1).'</span>: ':'').$grund;
+5 -3
View File
@@ -155,7 +155,7 @@ if (isset($_SESSION['pruefling_id']))
prestudent_id = ".$db->db_add_param($_SESSION['prestudent_id'])."
)
-- Filter only future studiensemester (incl. actual one)
/* Filter only future studiensemester (incl. actual one) */
AND
studiensemester_kurzbz IN (
SELECT
@@ -184,7 +184,7 @@ if (isset($_SESSION['pruefling_id']))
$qry .= "
-- Order to get last semester when using distinct on
/* Order to get last semester when using distinct on */
ORDER BY
prestudent_id,
datum DESC,
@@ -197,6 +197,7 @@ if (isset($_SESSION['pruefling_id']))
semester,
gebiet_id,
bezeichnung,
reihung,
". $bezeichnung_mehrsprachig_sel. "
FROM
(
@@ -250,7 +251,8 @@ if (isset($_SESSION['pruefling_id']))
) temp
ORDER BY
semester
semester,
reihung
";
$result = $db->db_query($qry);
+3
View File
@@ -174,6 +174,9 @@ define('VIEW_BEGIN', 'vw_');
//Legt fest ob die Personalnummer beim Anlegen NULL sein soll
define('FAS_PERSONALNUMMER_GENERATE_NULL', false);
// Legt fest ob Felder mit Reihgungstest-Basispunkten im Reiter Aufnahme-Termine angezeigt werden
define('FAS_REIHUNGSTEST_PUNKTE_BASISGEBIET_ANZEIGEN', false);
// API Informationen
define('FHC_REST_API_KEY', 'testapikey@fhcomplete.org');
define('FHC_REST_USER', 'username');
+19
View File
@@ -244,6 +244,7 @@ function AufnahmeTermineAuswahl()
var studienplan_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#studienplan_id" ));
var endpunkte_inkl_gebiete = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#endpunkte_inkl_gebiete" ));
var endpunkte_exkl_gebiete = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#endpunkte_exkl_gebiete" ));
var typ = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#typ" ));
document.getElementById('aufnahmetermine-textbox-rt_person_id').value=rt_person_id;
document.getElementById('aufnahmetermine-textbox-person_id').value=person_id;
@@ -259,6 +260,24 @@ function AufnahmeTermineAuswahl()
document.getElementById('aufnahmetermine-menulist-studienplan').value=studienplan_id;
document.getElementById('aufnahmetermine-textbox-endpunkte-inkl-gebiete').value = endpunkte_inkl_gebiete;
document.getElementById('aufnahmetermine-textbox-endpunkte-exkl-gebiete').value = endpunkte_exkl_gebiete;
// Sichtbarkeit der RT-Vergleichsergebnispunkte (ohne Quereinsteiger)
var basisgebiet_punkte_anzeigen = <?php echo FAS_REIHUNGSTEST_PUNKTE_BASISGEBIET_ANZEIGEN ? 'true' : 'false' ?>;
// * Generell Anzeige nur wenn über config-Datei gesetzt ist
if (basisgebiet_punkte_anzeigen)
{
// * für Bachelor-Studiengänge anzeigen
if (typ == 'b')
{
document.getElementById('aufnahmetermine-groupbox-vergleich-endpunkte').hidden = false;
}
// * für Master-Studiengänge verstecken
else if (typ == 'm')
{
document.getElementById('aufnahmetermine-groupbox-vergleich-endpunkte').hidden = true;
}
}
}
function AufnahmeTermineNeu()
+19 -12
View File
@@ -28,6 +28,7 @@ require_once('../../config/global.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/variable.class.php');
require_once('../../include/prestudent.class.php');
require_once('../../include/studiengang.class.php');
$user=get_uid();
$variable = new variable();
@@ -294,18 +295,24 @@ echo ']>
<spacer flex="1" />
</hbox>
</row>
<row>
<label value="Punkte inkl. Physik" control="aufnahmetermine-textbox-endpunkte-inkl-gebiete" />
<hbox>
<textbox id="aufnahmetermine-textbox-endpunkte-inkl-gebiete" readonly="true" maxlength="8" size="6"/>
</hbox>
</row>
<row>
<label value="Punkte exkl. Physik" control="aufnahmetermine-textbox-endpunkte-exkl-gebiete" />
<hbox>
<textbox id="aufnahmetermine-textbox-endpunkte-exkl-gebiete" readonly="true" maxlength="8" size="6"/>
</hbox>
</row>
<groupbox id="aufnahmetermine-groupbox-vergleich-endpunkte" hidden="true">
<caption label="Vergleichswerte Reihungstestpunkte (Basisgebiete)"></caption>
<vbox style="padding: 10px;">
<spacer resize='none' height='10' flex="1"/>
<row>
<label value="Reihungstestpunkte (inkl. Physik)" control="aufnahmetermine-textbox-endpunkte-inkl-gebiete" style="margin-right: 7px;"/>
<hbox>
<textbox id="aufnahmetermine-textbox-endpunkte-inkl-gebiete" readonly="true" maxlength="8" size="6" flex="1"/>
</hbox>
</row>
<row>
<label value="Reihungstestpunkte (exkl. Physik)" control="aufnahmetermine-textbox-endpunkte-exkl-gebiete" />
<hbox>
<textbox id="aufnahmetermine-textbox-endpunkte-exkl-gebiete" readonly="true" maxlength="8" size="6" flex="1"/>
</hbox>
</row>
</vbox>
</groupbox>
</rows>
</grid>
<hbox>
+115 -74
View File
@@ -20,6 +20,7 @@
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
require_once(dirname(__FILE__).'/ablauf.class.php');
class pruefling extends basis_db
{
@@ -308,100 +309,140 @@ class pruefling extends basis_db
/**
* Berechnet das Reihungstestergebnis fuer eine Person und ggf Reihungstest
* ACHTUNG - Diese Funktion liefert keine zuverlaessigen Ergebnisse wenn keine ReihungstestID uebergeben wird
* und die Person mehrere Reihungstests absolviert hat!
* @param $person_id ID der Person.
* @param $punkte Wenn true werden Punkte geliefert, sonst Prozentsumme.
* @param $reihungstest_id ID des Reihungstests.
* @param $has_excluded_gebiete Wenn true werden die Punkte der Fragengebiete, die im config-array
* definiert sind, bei der Berechnung der Endpunkte nicht berücksichtigt.
* @param $studiengang_kz Wenn eine Studiengangskennzahl übergeben wird, dann werden nur die Punkte der
* Basis-Fragengebiete (ohne Quereinsteiger) bei der Berechnung der Endpunkte berücksichtigt.
* @return Endpunkte des Reihungstests oder False wenn keine Punkte vorhanden
*/
public function getReihungstestErgebnisPerson($person_id, $punkte=false, $reihungstest_id=null, $has_excluded_gebiete = false)
public function getReihungstestErgebnisPerson($person_id, $punkte=false, $reihungstest_id, $has_excluded_gebiete = false, $studiengang_kz = null)
{
$qry = "SELECT * FROM testtool.vw_auswertung
WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER);
if ($has_excluded_gebiete)
if(is_numeric($reihungstest_id))
{
if (defined('FAS_REIHUNGSTEST_EXCLUDE_GEBIETE') && !empty(FAS_REIHUNGSTEST_EXCLUDE_GEBIETE))
$ergebnis=0;
$qry = "
SELECT DISTINCT ON (vw_auswertung_ablauf.gebiet_id) gebiet_id,
vw_auswertung_ablauf.*,
tbl_studiengang.typ
FROM
testtool.vw_auswertung_ablauf
JOIN
public.tbl_studiengang ON vw_auswertung_ablauf.stg_kurzbz = tbl_studiengang.kurzbzlang
WHERE
reihungstest_id = ".$this->db_add_param($reihungstest_id, FHC_INTEGER);
// Ggf. die Basis-Fragengebiete ermitteln (ohne Quereinsteigergebiete)
if (is_numeric($studiengang_kz))
{
$exclude_gebiet_id_arr = FAS_REIHUNGSTEST_EXCLUDE_GEBIETE;
$exclude_gebiet_id_toString = implode(', ', $exclude_gebiet_id_arr);
$qry .= " AND gebiet_id NOT IN (". $exclude_gebiet_id_toString. ")";
$ablauf = new Ablauf();
$ablauf->getAblaufGebiete($studiengang_kz, NULL, 1);
$basis_gebiet_id_arr = array();
$basis_gebiet_id_toString = '';
foreach ($ablauf->result as $obj)
{
$basis_gebiet_id_arr []= $obj->gebiet_id;
}
$basis_gebiet_id_toString = implode(', ', $basis_gebiet_id_arr);
if (!empty($basis_gebiet_id_toString))
{
$qry .= "
AND
gebiet_id IN (". $basis_gebiet_id_toString. ")
";
}
}
}
$ergebnis=0;
if(!is_null($reihungstest_id))
{
$qry.=" AND reihungstest_id=".$this->db_add_param($reihungstest_id, FHC_INTEGER);
// Quercheck der PrestudentID ueber den Status damit bei Personen
// die den Reihungstest oefter im selben Studiengang gemacht haben nicht das
// Ergebniss der beiden Tests summiert bekommen
// Im Zweifelsfall wird der neuere Reihungstest genommen
$qry.= "
AND
prestudent_id = (
SELECT
prestudent_id
FROM
public.tbl_rt_person
JOIN
public.tbl_prestudent USING(person_id)
JOIN
public.tbl_prestudentstatus USING (prestudent_id)
JOIN
tbl_reihungstest ON (
tbl_rt_person.rt_id = tbl_reihungstest.reihungstest_id
AND
tbl_prestudentstatus.studiensemester_kurzbz = tbl_reihungstest.studiensemester_kurzbz
)
WHERE
tbl_rt_person.person_id = ".$this->db_add_param($person_id, FHC_INTEGER)."
// Ggf. Fragengebiete exkludieren
if ($has_excluded_gebiete)
{
if (defined('FAS_REIHUNGSTEST_EXCLUDE_GEBIETE') && !empty(FAS_REIHUNGSTEST_EXCLUDE_GEBIETE))
{
$exclude_gebiet_id_arr = FAS_REIHUNGSTEST_EXCLUDE_GEBIETE;
$exclude_gebiet_id_toString = implode(', ', $exclude_gebiet_id_arr);
$qry .= "
AND
tbl_rt_person.rt_id = ".$this->db_add_param($reihungstest_id, FHC_INTEGER)."
gebiet_id NOT IN (". $exclude_gebiet_id_toString. ")
AND
tbl_prestudentstatus.status_kurzbz='Interessent'
AND
(tbl_reihungstest.stufe = 1 OR tbl_reihungstest.stufe IS NULL)
ORDER BY
tbl_reihungstest.datum desc LIMIT 1
)";
}
typ = 'b'
";
}
}
if($result = $this->db_query($qry))
{
// Wenn keine Eintraege vorhanden dann false
if($this->db_num_rows($result)==0)
/**
* Quercheck der PrestudentID ueber den Status damit bei Personen
* die den Reihungstest oefter im selben Studiengang gemacht haben nicht das
* Ergebniss der beiden Tests summiert bekommen
* Im Zweifelsfall wird der neuere Reihungstest genommen */
$qry .= "
AND prestudent_id = (
SELECT
prestudent_id
FROM
public.tbl_rt_person
JOIN
public.tbl_prestudent USING(person_id)
JOIN
public.tbl_prestudentstatus USING (prestudent_id, studienplan_id)
JOIN
tbl_reihungstest ON (
tbl_rt_person.rt_id = tbl_reihungstest.reihungstest_id
)
WHERE
tbl_rt_person.person_id = ".$this->db_add_param($person_id, FHC_INTEGER)."
AND
tbl_rt_person.rt_id = ".$this->db_add_param($reihungstest_id, FHC_INTEGER)."
AND
tbl_prestudentstatus.status_kurzbz='Interessent'
AND
(tbl_reihungstest.stufe = 1 OR tbl_reihungstest.stufe IS NULL)
ORDER BY
tbl_reihungstest.datum desc LIMIT 1
)
";
if($result = $this->db_query($qry))
{
// Wenn keine Eintraege vorhanden dann false
if($this->db_num_rows($result)==0)
return false;
while($row = $this->db_fetch_object($result))
{
//wenn maxpunkte ueberschritten wurde -> 100%
if($row->punkte>=$row->maxpunkte)
{
$prozent=100;
$row->punkte = $row->maxpunkte;
}
else
$prozent = ($row->punkte/$row->maxpunkte)*100;
if($punkte)
{
$ergebnis +=$row->punkte;
}
else
$ergebnis+=$prozent*$row->gewicht;
}
return $ergebnis;
}
else
{
$this->errormsg = 'Fehler bei einer Abfrage';
return false;
while($row = $this->db_fetch_object($result))
{
//wenn maxpunkte ueberschritten wurde -> 100%
if($row->punkte>=$row->maxpunkte)
{
$prozent=100;
$row->punkte = $row->maxpunkte;
}
else
$prozent = ($row->punkte/$row->maxpunkte)*100;
if($punkte)
{
$ergebnis +=$row->punkte;
}
else
$ergebnis+=$prozent*$row->gewicht;
}
return $ergebnis;
}
else
{
$this->errormsg = 'Fehler bei einer Abfrage';
$this->errormsg = 'reihungstest_id muss numerisch sein';
return false;
}
}
+1
View File
@@ -43,4 +43,5 @@ $this->phrasen['zeitsperre/legendeVertretung']='V...Vertretung';
$this->phrasen['zeitsperre/legendeDurchwahl']='(123)...Durchwahl';
$this->phrasen['zeitsperre/vertretungNichtKorrekt']='Die angegebene Vertretung kann nicht gefunden werden. Bitte prüfen Sie die Vertretung und versuchen Sie es erneut.';
$this->phrasen['zeitsperre/vorSperrdatum']='Datum liegt vor dem Sperrdatum der Zeitliste';
$this->phrasen['zeitsperre/abwesend']='Abwesend';
?>
+1
View File
@@ -43,4 +43,5 @@ $this->phrasen['zeitsperre/legendeVertretung']='S...Substitute';
$this->phrasen['zeitsperre/legendeDurchwahl']='(123)...Extension';
$this->phrasen['zeitsperre/vertretungNichtKorrekt']='The selected substitute is invalid. Please check the substitute an try again.';
$this->phrasen['zeitsperre/vorSperrdatum']='Date is before last open timesheet date';
$this->phrasen['zeitsperre/abwesend']='absent';
?>
+10 -6
View File
@@ -19,21 +19,25 @@
border-bottom: #ccc 2px solid !important;
}
/* hide filtering headers if disabled */
.tablesorter thead .disabled {display: none}
/* Remove black border at top of table footer */
.tablesorter-default tfoot > tr > th {
border-top: #ccc 2px solid !important;
}
/* set colors of zebra widget */
table.tablesorter tbody tr.even td, table.tablesorter tbody tr.even:hover, table.tablesorter tbody tr.even td:hover{
table.tablesorter tbody tr.even td, table.tablesorter tbody tr.even:hover, table.tablesorter tbody tr.even td:hover {
background-color: #ffff;
}
table.tablesorter tbody tr.odd td, table.tablesorter tbody tr.odd:hover, table.tablesorter tbody tr.odd td:hover{
table.tablesorter tbody tr.odd td, table.tablesorter tbody tr.odd:hover, table.tablesorter tbody tr.odd td:hover {
background-color: #f5f5f5;
}
/* colors for hover over table rows and clicked rows*/
table.tablesort-hover tr:hover, .tablesort-active{
table.tablesort-hover tr:hover, .tablesort-active {
background-color: #dfdfdf !important;
}
@@ -44,8 +48,8 @@ table.tablesort-hover tr:hover, .tablesort-active{
/* Make filter row more condensed */
.tablesorter-default input.tablesorter-filter, .tablesorter-default select.tablesorter-filter {
margin: 0px auto;
padding: 0px;
margin: 0 auto;
padding: 0;
}
/* Add cursor pointer for pager icons */
@@ -59,6 +63,6 @@ table.tablesort-hover tr:hover, .tablesort-active{
}
/* bring datepicker to front */
#ui-datepicker-div{
#ui-datepicker-div {
z-index: 9999 !important;
}
+13 -2
View File
@@ -6,15 +6,26 @@ var Tablesort = {
* @param widgets optional widgets like zebra or filter
* @param minrows optional minimal amount of rows for filter row to be shown (only relevant for filter widget)
*/
addTablesorter: function (tableid, sortList, widgets, minrows)
addTablesorter: function (tableid, sortList, widgets, minrows, additionalParams)
{
$("#" + tableid).tablesorter(
var tablesorterobj =
{
theme: "default",
dateFormat: "ddmmyyyy",
sortList: sortList,
widgets: widgets
};
if (typeof additionalParams === 'object')
{
for (var key in additionalParams)
{
tablesorterobj[key] = additionalParams[key];
}
}
$("#" + tableid).tablesorter(
tablesorterobj
);
if ($("#" + tableid + " tr.tablesorter-filter-row").length)
+40 -17
View File
@@ -95,35 +95,47 @@ if($prestudent_id!='')
$stsem_arr[] = $reihungstest_obj_arr[$row->reihungstest_id]->studiensemester_kurzbz;
}
// Reale (nicht von Assistenz überarbeitete) Gesamtpunkte des RT laden; ggf. ohne bestimmte Fragengebiete
$pruefling = new Pruefling();
// Studiengangstyp ermitteln
$stpl = new Studienplan();
$stpl->loadStudienplan($row->studienplan_id); // Studienplan von RT-Person
$rtp_sto_id = $stpl->studienordnung_id; // Studienordnung-ID von RT-Person
$sto = new Studienordnung();
$sto->loadStudienordnung($rtp_sto_id);
$studiengang_kz = $sto->studiengang_kz; // Studiengang-KZ von RT-Person
$stg = new Studiengang($studiengang_kz);
$typ = $stg->typ; // Studiengangstyp von RT-Person
// * Gesamtpunkte inklusive alle Fragengebiete
// Reihungstestpunkte der Basisgebiete ermitteln (ohne Quereinsteiger)
$pruefling = new Pruefling();
$endpunkte_inkl_gebiete = 0;
$endpunkte_exkl_gebiete = 0;
// * Endpunkte über alle Basisgebiete
if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE)
{
$endpunkte_inkl_gebiete = $pruefling->getReihungstestErgebnisPerson($row->person_id, true, $row->reihungstest_id);
$endpunkte_inkl_gebiete = $pruefling->getReihungstestErgebnisPerson($row->person_id, true, $row->reihungstest_id, false, $row->studiengang_kz);
}
else
{
$endpunkte_inkl_gebiete = $pruefling->getReihungstestErgebnisPerson($row->person_id, false, $row->reihungstest_id);
$endpunkte_inkl_gebiete = $pruefling->getReihungstestErgebnisPerson($row->person_id, false, $row->reihungstest_id, false, $row->studiengang_kz);
}
// * ggf. Gesamtpunkte exklusive bestimmte Fragengebiete
// * ggf. Endpunkte exklusive bestimmter Gebiete, die in der config-Datei gesetzt sind
if (defined('FAS_REIHUNGSTEST_EXCLUDE_GEBIETE') && !empty(FAS_REIHUNGSTEST_EXCLUDE_GEBIETE))
{
if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE)
{
$endpunkte_exkl_gebiete = $pruefling->getReihungstestErgebnisPerson($row->person_id, true, $row->reihungstest_id, true);
$endpunkte_exkl_gebiete = $pruefling->getReihungstestErgebnisPerson($row->person_id, true, $row->reihungstest_id, true, $row->studiengang_kz);
}
else
{
$endpunkte_exkl_gebiete = $pruefling->getReihungstestErgebnisPerson($row->person_id, false, $row->reihungstest_id, true);
$endpunkte_exkl_gebiete = $pruefling->getReihungstestErgebnisPerson($row->person_id, false, $row->reihungstest_id, true, $row->studiengang_kz);
}
}
$row->endpunkte_inkl_gebiete = round($endpunkte_inkl_gebiete, 2);
$row->endpunkte_exkl_gebiete = round($endpunkte_exkl_gebiete, 2);
$row->typ = $typ;
}
if(count($stsem_arr) > 0)
{
@@ -144,36 +156,46 @@ elseif($rt_person_id!='')
$reihungstest_obj_arr[$reihungstest->reihungstest_id] = new reihungstest();
$reihungstest_obj_arr[$reihungstest->reihungstest_id]->load($reihungstest->reihungstest_id);
// Reale (nicht von Assistenz überarbeitete) Gesamtpunkte des RT laden; ggf. ohne bestimmte Fragengebiete
$pruefling = new Pruefling();
// Studiengangstyp ermitteln
$stpl = new Studienplan();
$stpl->loadStudienplan($reihungstest->studienplan_id); // Studienplan von RT-Person
$rtp_sto_id = $stpl->studienordnung_id; // Studienordnung-ID von RT-Person
$sto = new Studienordnung();
$sto->loadStudienordnung($rtp_sto_id);
$studiengang_kz = $sto->studiengang_kz; // Studiengang-KZ von RT-Person
$stg = new Studiengang($studiengang_kz);
$typ = $stg->typ; // Studiengangstyp von RT-Person
// * Gesamtpunkte inklusive alle Fragengebiete
// Reihungstestpunkte der Basisgebiete ermitteln (ohne Quereinsteiger)
$pruefling = new Pruefling();
$endpunkte_inkl_gebiete = 0;
$endpunkte_exkl_gebiete = 0;
// * Endpunkte über alle Basisgebiete
if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE)
{
$endpunkte_inkl_gebiete = $pruefling->getReihungstestErgebnisPerson($reihungstest->person_id, true, $reihungstest->reihungstest_id);
$endpunkte_inkl_gebiete = $pruefling->getReihungstestErgebnisPerson($reihungstest->person_id, true, $reihungstest->reihungstest_id, false, $studiengang_kz);
}
else
{
$endpunkte_inkl_gebiete = $pruefling->getReihungstestErgebnisPerson($reihungstest->person_id, false, $reihungstest->reihungstest_id);
$endpunkte_inkl_gebiete = $pruefling->getReihungstestErgebnisPerson($reihungstest->person_id, false, $reihungstest->reihungstest_id, false, $studiengang_kz);
}
// * ggf. Gesamtpunkte exklusive bestimmte Fragengebiete
// * ggf. Endpunkte exklusive bestimmter Gebiete, die in der config-Datei gesetzt sind
if (defined('FAS_REIHUNGSTEST_EXCLUDE_GEBIETE') && !empty(FAS_REIHUNGSTEST_EXCLUDE_GEBIETE))
{
if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE)
{
$endpunkte_exkl_gebiete = $pruefling->getReihungstestErgebnisPerson($reihungstest->person_id, true, $reihungstest->reihungstest_id, true);
$endpunkte_exkl_gebiete = $pruefling->getReihungstestErgebnisPerson($reihungstest->person_id, true, $reihungstest->reihungstest_id, true, $studiengang_kz);
}
else
{
$endpunkte_exkl_gebiete = $pruefling->getReihungstestErgebnisPerson($reihungstest->person_id, false, $reihungstest->reihungstest_id, true);
$endpunkte_exkl_gebiete = $pruefling->getReihungstestErgebnisPerson($reihungstest->person_id, false, $reihungstest->reihungstest_id, true, $studiengang_kz);
}
}
$reihungstest->endpunkte_inkl_gebiete = round($endpunkte_inkl_gebiete, 2);
$reihungstest->endpunkte_exkl_gebiete = round($endpunkte_exkl_gebiete, 2);
$reihungstest->typ = $typ;
drawrow($reihungstest);
}
@@ -228,6 +250,7 @@ function drawrow($row)
$oRdf->obj[$i]->setAttribut('datum_iso',$reihungstest_obj->datum,true);
$oRdf->obj[$i]->setAttribut('endpunkte_inkl_gebiete', $row->endpunkte_inkl_gebiete, true);
$oRdf->obj[$i]->setAttribut('endpunkte_exkl_gebiete', $row->endpunkte_exkl_gebiete, true);
$oRdf->obj[$i]->setAttribut('typ', $row->typ, true);
// Es wird der neueste Reihungstest im Studiengang des Prestudenten markiert damit im FAS erkennbar ist welches
// Eintraege zur Punkteberechnung verwendet werden
+2 -2
View File
@@ -340,10 +340,10 @@ function draw_prestudent($row)
<STUDENT:ausstellungsstaat><![CDATA['.$row->ausstellungsstaat.']]></STUDENT:ausstellungsstaat>
<STUDENT:aufnahmeschluessel><![CDATA['.$row->aufnahmeschluessel.']]></STUDENT:aufnahmeschluessel>
<STUDENT:facheinschlberuf><![CDATA['.($row->facheinschlberuf?'true':'false').']]></STUDENT:facheinschlberuf>
<!--<STUDENT:reihungstest_id><![CDATA['.$row->reihungstest_id.']]></STUDENT:reihungstest_id>
<STUDENT:reihungstest_id><![CDATA['.$row->reihungstest_id.']]></STUDENT:reihungstest_id>
<STUDENT:anmeldungreihungstest><![CDATA['.$datum_obj->convertISODate($row->anmeldungreihungstest).']]></STUDENT:anmeldungreihungstest>
<STUDENT:anmeldungreihungstest_iso><![CDATA['.$row->anmeldungreihungstest.']]></STUDENT:anmeldungreihungstest_iso>
<STUDENT:reihungstestangetreten><![CDATA['.($row->reihungstestangetreten?'true':'false').']]></STUDENT:reihungstestangetreten>-->
<STUDENT:reihungstestangetreten><![CDATA['.($row->reihungstestangetreten?'true':'false').']]></STUDENT:reihungstestangetreten>
<STUDENT:punkte><![CDATA['.$row->punkte.']]></STUDENT:punkte>
<STUDENT:bismelden><![CDATA['.($row->bismelden?'true':'false').']]></STUDENT:bismelden>
<STUDENT:dual><![CDATA['.($row->dual?'true':'false').']]></STUDENT:dual>