mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 20:29:29 +00:00
Merge branch 'master' into ciauth
This commit is contained in:
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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';
|
||||
?>
|
||||
|
||||
@@ -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';
|
||||
?>
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
@@ -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
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user