Merge branch 'master' into ciauth

This commit is contained in:
Paolo
2019-03-14 13:35:28 +01:00
5 changed files with 162 additions and 30 deletions
+44 -5
View File
@@ -19,6 +19,7 @@
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>,
* Manfred Kindl <manfred.kindl@technikum-wien.at>
* Cristina Hainberger <hainberg@technikum-wien.at>
*/
require_once('../../config/cis.config.inc.php');
@@ -356,22 +357,60 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id']))
// STG mit der höchsten Prio ermitteln
$ps = new Prestudent();
$ps->getActualInteressenten($prestudent_id, true);
$firstPrio_studiengang_kz = array_column($ps->result, 'studiengang_kz');
$firstPrio_studiengang_kz = array_shift($firstPrio_studiengang_kz);
// * wenn STG des eingeloggten Prestudenten vom Typ Bachelor ist, dann höchste Prio aller
// Bachelor-STG ermitteln, an denen die Person noch interessiert ist
if ($typ->typ == 'b')
{
$ps->getActualInteressenten($prestudent_id, true, 'b');
$firstPrio_studiengang_kz = array_column($ps->result, 'studiengang_kz');
$firstPrio_studiengang_kz = array_shift($firstPrio_studiengang_kz);
}
// * sonst STG der session übernehmem
else
{
$firstPrio_studiengang_kz = $prestudent->studiengang_kz;
}
// Sprachwahl zu STG mit höchster Prio ermitteln
$ablauf = new Ablauf();
$ablauf->getAblaufVorgabeStudiengang($firstPrio_studiengang_kz);
$sprachwahl = $ablauf->result[0]->sprachwahl;
//Prestudent Informationen und Logout
//Prestudent Informationen und Logout
echo '<form method="GET">';
echo '<br>'.$p->t('testtool/begruessungstext').' <br/><br/>';
echo '<b>'.$p->t('zeitaufzeichnung/id').'</b>: '.$_SESSION['prestudent_id'].'<br/>';
echo '<b>'.$p->t('global/name').'</b>: '.$_SESSION['vorname'].' '.$_SESSION['nachname'].'<br/>';
echo '<b>'.$p->t('global/geburtsdatum').'</b>: '.$date->formatDatum($_SESSION['gebdatum'],'d.m.Y').'<br/>';
echo '<b>'.$p->t('global/studiengang').'</b>: '.$typ->bezeichnung.' '.($sprache_user=='English'?$stg_obj->english:$stg_obj->bezeichnung).'<br/><br/>';
// * wenn Prestudent an mehreren Bachelor-Studiengängen interessiert ist, dann alle STG anführen
if ($typ->typ == 'b')
{
$ps_arr = new Prestudent();
$ps_arr->getActualInteressenten($prestudent_id, false, 'b');
if (count($ps_arr->result) > 1)
{
echo '<b>'.$p->t('global/studiengang'). "</b>: <br><br>";
foreach ($ps_arr->result as $ps_obj)
{
$stg = new Studiengang($ps_obj->studiengang_kz);
echo "<li>". $ps_obj->typ_bz .' '. ($sprache_user == 'English' ? $stg->english : $stg->bezeichnung). '<br/>'. "</li>";
}
echo "<br>";
}
// * wenn Prestudent nur an einem Bachelor-Studiengang interessiert ist, dann nur den einen STG anführen
else
{
echo '<b>'.$p->t('global/studiengang').'</b>: '. $typ->bezeichnung.' '.($sprache_user=='English'?$stg_obj->english:$stg_obj->bezeichnung).'<br/><br/>';
}
}
// * wenn Prestudent an einem Master-Studiengang interessiert ist, dann nur den einen STG anführen
else
{
echo '<b>'.$p->t('global/studiengang').'</b>: '.$typ->bezeichnung.' '.($sprache_user=='English'?$stg_obj->english:$stg_obj->bezeichnung).'<br/><br/>';
}
echo '<INPUT type="submit" value="Logout" name="logout" />';
echo '</form>';
echo '<br><br>';
+27 -2
View File
@@ -26,6 +26,7 @@ require_once('../../config/global.config.inc.php');
require_once('../../include/basis_db.class.php');
require_once('../../include/sprache.class.php');
require_once '../../include/phrasen.class.php';
require_once '../../include/studiengang.class.php';
if (!$db = new basis_db())
die('Fehler beim Oeffnen der Datenbankverbindung');
@@ -100,7 +101,10 @@ if (isset($_SESSION['pruefling_id']))
echo '<tr><td style="padding-left: 20px;"><a href="../../cms/content.php?content_id='.$content_id->content_id.'&sprache='.$sprache.'" target="content">'.$p->t('testtool/einleitung').'</a></td></tr>';
echo '<tr><td>&nbsp;</td></tr>';
echo '<tr><td style="padding-left: 20px;" nowrap>';
$studiengang_kz = (isset($_SESSION['studiengang_kz'])) ? $_SESSION['studiengang_kz'] : '';
$stg = new Studiengang($studiengang_kz);
$sprache_mehrsprachig = new sprache();
$bezeichnung_mehrsprachig = $sprache_mehrsprachig->getSprachQuery('bezeichnung_mehrsprachig');
@@ -130,11 +134,17 @@ if (isset($_SESSION['pruefling_id']))
prestudent_id,
studienplan_id,
studiengang_kz,
typ,
tbl_studiengangstyp.bezeichnung AS typ_bz,
ausbildungssemester AS semester
FROM
public.tbl_prestudentstatus
JOIN
public.tbl_prestudent USING (prestudent_id)
JOIN
public.tbl_studiengang USING (studiengang_kz)
JOIN
public.tbl_studiengangstyp USING (typ)
WHERE
tbl_prestudent.person_id = (
SELECT
@@ -157,7 +167,22 @@ if (isset($_SESSION['pruefling_id']))
)
AND
status_kurzbz = 'Interessent'
status_kurzbz = 'Interessent'";
/* If the logged-in prestudents study is a Bachelor-study, filter only Bachelor-studies */
if ($stg->typ == 'b')
{
$qry .= "
AND tbl_studiengang.typ = 'b'";
}
/* If the logged-in prestudents study is NOT a Bachelor-study, get only the specific study */
else
{
$qry .= "
AND tbl_studiengang.studiengang_kz = ". $studiengang_kz;
}
$qry .= "
-- Order to get last semester when using distinct on
ORDER BY
+31 -8
View File
@@ -426,7 +426,7 @@ class prestudent extends person
* @boolean $prio Wenn true, dann wird nur der Prestudent mit dem am höchsten priorisierten Studiengang zurückgegeben.
* return Objekt-Array mit allen Prestudenten einer Person, die aktuell an STG interessiert sind.
*/
public function getActualInteressenten($prestudent_id, $prio = false)
public function getActualInteressenten($prestudent_id, $prio = false, $typ = NULL, $studiengang_kz = NULL)
{
if (is_numeric($prestudent_id))
{
@@ -436,11 +436,17 @@ class prestudent extends person
prestudent_id,
studienplan_id,
studiengang_kz,
typ,
tbl_studiengangstyp.bezeichnung AS typ_bz,
ausbildungssemester
FROM
public.tbl_prestudentstatus
JOIN
public.tbl_prestudent USING (prestudent_id)
JOIN
public.tbl_studiengang USING (studiengang_kz)
JOIN
public.tbl_studiengangstyp USING (typ)
WHERE
tbl_prestudent.person_id = (
SELECT
@@ -450,8 +456,8 @@ class prestudent extends person
WHERE
prestudent_id = ". $this->db_add_param($prestudent_id). "
)
-- Filter only future studiensemester (incl. actual one)
/* Filter only future studiensemester (incl. actual one) */
AND
studiensemester_kurzbz IN (
SELECT
@@ -461,12 +467,25 @@ class prestudent extends person
WHERE
ende > now()
)
AND
status_kurzbz = 'Interessent'
-- Order to get the very last status and highest prio on top
ORDER BY
status_kurzbz = 'Interessent'";
if (!is_null($typ) && is_string($typ))
{
$qry .= "
AND tbl_studiengang.typ = ". $this->db_add_param($typ);
}
if (!is_null($studiengang_kz) && is_numeric($studiengang_kz))
{
$qry .= "
AND tbl_studiengang.studiengang_kz = ". $this->db_add_param($studiengang_kz);
}
$qry .= "
-- Order to get the very last status and highest prio on top
ORDER BY
priorisierung NULLS LAST,
prestudent_id,
datum DESC,
@@ -481,6 +500,8 @@ class prestudent extends person
";
}
//echo "<br>". $qry;
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
@@ -490,6 +511,8 @@ class prestudent extends person
$obj->prestudent_id = $row->prestudent_id;
$obj->studienplan_id = $row->studienplan_id;
$obj->studiengang_kz = $row->studiengang_kz;
$obj->typ = $row->typ;
$obj->typ_bz = $row->typ_bz;
$obj->ausbildungssemester = $row->ausbildungssemester;
$this->result[] = $obj;
+28 -14
View File
@@ -342,20 +342,34 @@ class pruefling extends basis_db
// 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_reihungstest ON(rt_id=reihungstest_id)
JOIN public.tbl_prestudent USING(person_id)
JOIN public.tbl_prestudentstatus USING(prestudent_id, studienplan_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'
ORDER BY
tbl_reihungstest.datum desc LIMIT 1)";
$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)."
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))
+32 -1
View File
@@ -115,6 +115,37 @@ foreach ($rt->result as $row)
}
$bezeichnung = $row->studiensemester_kurzbz.' St.'.$row->stufe.' '.(array_key_exists($row->studiengang_kz, $stg)?$stg[$row->studiengang_kz].' ':'').$row->datum.' '.$row->uhrzeit.' '.$row->ort_kurzbz.' '.$row->anmerkung.$freieplaetze;
// Convert date string into timestamp
$unixTimestamp = strtotime($row->datum);
// Get the day of the week
$dayOfWeek = date("l", $unixTimestamp);
switch($dayOfWeek)
{
case 'Monday':
$dayOfWeek = 'Mo';
break;
case 'Tuesday':
$dayOfWeek = 'Di';
break;
case 'Wednesday':
$dayOfWeek = 'Mi';
break;
case 'Thursday':
$dayOfWeek = 'Do';
break;
case 'Friday':
$dayOfWeek = 'Fr';
break;
case 'Saturday':
$dayOfWeek = 'Sa';
break;
case 'Sunday':
$dayOfWeek = 'So';
break;
}
?>
<RDF:li>
<RDF:Description id="<?php echo $row->reihungstest_id; ?>" about="<?php echo $rdf_url.'/'.$row->reihungstest_id; ?>" >
@@ -124,7 +155,7 @@ foreach ($rt->result as $row)
<RT:anmerkung><![CDATA[<?php echo $row->anmerkung; ?>]]></RT:anmerkung>
<RT:datum><![CDATA[<?php echo $row->datum; ?>]]></RT:datum>
<RT:uhrzeit><![CDATA[<?php echo $row->uhrzeit; ?>]]></RT:uhrzeit>
<RT:bezeichnung><![CDATA[<?php echo $bezeichnung; ?>]]></RT:bezeichnung>
<RT:bezeichnung><![CDATA[<?php echo $bezeichnung. ' ('. $dayOfWeek. ')' ; ?>]]></RT:bezeichnung>
</RDF:Description>
</RDF:li>
<?php