mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 20:29:29 +00:00
Berücksichtigung von Studienplan bei Ablauf
+ Kleine GUI-Anpassungen
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
<frame src="topbar.php" name="topbar" scrolling="NO" noresize>
|
||||
<frameset rows="*" cols="230,*" framespacing="0" frameborder="NO" border="0">
|
||||
<frame id="menu_testtool" src="menu.php" name="menu" scrolling="AUTO" noresize>
|
||||
<frame id="content_testtool" style="padding-top: 24px; overflow: hidden;" src="login.php" name="content">
|
||||
<frame id="content_testtool" style="padding-top: 24px; overflow: hidden; padding-left: 10px" src="login.php" name="content">
|
||||
</frameset>
|
||||
<noframes>
|
||||
<body>
|
||||
|
||||
@@ -66,6 +66,7 @@ $gebdatum='';
|
||||
$date = new datum();
|
||||
|
||||
$reload_menu=false;
|
||||
$alertmsg = '';
|
||||
|
||||
$sg_var = new studiengang();
|
||||
|
||||
@@ -189,7 +190,7 @@ if (isset($_POST['prestudent']) && isset($gebdatum))
|
||||
|
||||
// * 1. Sprache über Ablauf Vorgaben ermitteln
|
||||
$ablauf = new Ablauf();
|
||||
$ablauf->getAblaufVorgabeStudiengang($firstPrio_studiengang_kz);
|
||||
$ablauf->getAblaufGebiete($firstPrio_studiengang_kz, $firstPrio_studienplan_id);
|
||||
$rt_sprache = '';
|
||||
|
||||
if(!empty($ablauf->result[0]))
|
||||
@@ -224,17 +225,17 @@ if (isset($_POST['prestudent']) && isset($gebdatum))
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<span class="error">'.$p->t('testtool/reihungstestNichtFreigeschalten').'</span>';
|
||||
$alertmsg .= '<div class="alert alert-danger">'.$p->t('testtool/reihungstestNichtFreigeschalten').'</div>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<span class="error">'.$p->t('testtool/reihungstestKannNichtGeladenWerden').'</span>';
|
||||
$alertmsg .= '<div class="alert alert-danger">'.$p->t('testtool/reihungstestKannNichtGeladenWerden').'</div>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<span class="error">'.$p->t('testtool/geburtsdatumStimmtNichtUeberein').'</span>';
|
||||
$alertmsg .= '<div class="alert alert-danger">'.$p->t('testtool/geburtsdatumStimmtNichtUeberein').'</div>';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -499,7 +500,7 @@ if (isset($prestudent_id))
|
||||
}
|
||||
elseif($ps_obj->ausbildungssemester == '3')
|
||||
{
|
||||
echo '<td>'. $p->t('testtool/quereinstieg'). ' (3.Semester)</td>';
|
||||
echo '<td>'. $p->t('testtool/quereinstieg'). ' (3. Semester)</td>';
|
||||
}
|
||||
}
|
||||
// wenn letzter Status \'Abgewiesener\' ist, dann als solchen kennzeichnen
|
||||
@@ -564,7 +565,8 @@ else // LOGIN Site (vor Login)
|
||||
echo '<div class="col-xs-11">';
|
||||
|
||||
// Welcome text
|
||||
echo '
|
||||
echo $alertmsg;
|
||||
echo '
|
||||
<div class="row" style="margin-bottom: 10%; margin-top: 3%;">
|
||||
<div class="col-xs-6 text-center" style="border-right: 1px solid lightgrey;">
|
||||
<h1 style="white-space: normal">Herzlich Willkommen zum Reihungstest</h1><br><br>
|
||||
|
||||
+165
-140
@@ -69,7 +69,7 @@ if (isset($_SESSION['pruefling_id']))
|
||||
$result = $db->db_query($qry);
|
||||
|
||||
echo '<table width="100%" border="0" cellspacing="0" cellpadding="0" style="border-right-width:1px;border-right-color:#BCBCBC; border-collapse: separate;
|
||||
border-spacing: 0 3px;">';
|
||||
border-spacing: 0 3px;">';
|
||||
|
||||
// Link zur Startseite
|
||||
echo '<tr><td class="ItemTesttool" style="margin-left: 20px;" nowrap>
|
||||
@@ -78,16 +78,16 @@ if (isset($_SESSION['pruefling_id']))
|
||||
|
||||
// Link zur Einleitung
|
||||
if ($content_id = $db->db_fetch_object($result))
|
||||
{
|
||||
{
|
||||
if($content_id->content_id!='')
|
||||
{
|
||||
{
|
||||
echo '
|
||||
<tr id="tr-einleitung"><td class="ItemTesttool" style="margin-left: 20px;" nowrap>
|
||||
<a class="ItemTesttool navButton" href="../../cms/content.php?content_id='.$content_id->content_id.'&sprache='.$sprache_user.'" target="content">'.$p->t('testtool/einleitung').'</a>
|
||||
</td></tr>
|
||||
';
|
||||
}
|
||||
}
|
||||
<tr id="tr-einleitung"><td class="ItemTesttool" style="margin-left: 20px;" nowrap>
|
||||
<a class="ItemTesttool navButton" href="../../cms/content.php?content_id='.$content_id->content_id.'&sprache='.$sprache_user.'" target="content">'.$p->t('testtool/einleitung').'</a>
|
||||
</td></tr>
|
||||
';
|
||||
}
|
||||
}
|
||||
echo '<tr><td style="padding-left: 20px;" nowrap>';
|
||||
|
||||
$studiengang_kz = (isset($_SESSION['studiengang_kz'])) ? $_SESSION['studiengang_kz'] : '';
|
||||
@@ -98,78 +98,78 @@ if (isset($_SESSION['pruefling_id']))
|
||||
|
||||
/**
|
||||
* Spaltennamen-Aliase extrahieren um sie im Outer-Select verwenden zu können
|
||||
* $bezeichnung_mehrsprachig liefert: bezeichnung_mehrsprachig[1] as bezeichnung_mehrsprachig_1,...
|
||||
* $bezeichnung_mehrsprachig_sel liefert: bezeichnung_mehrsprachig_1, bezeichnung_mehrsprachig_2,...
|
||||
* $bezeichnung_mehrsprachig liefert: bezeichnung_mehrsprachig[1] as bezeichnung_mehrsprachig_1,...
|
||||
* $bezeichnung_mehrsprachig_sel liefert: bezeichnung_mehrsprachig_1, bezeichnung_mehrsprachig_2,...
|
||||
*/
|
||||
$bezeichnung_mehrsprachig_sel = explode(",", $bezeichnung_mehrsprachig);
|
||||
foreach ($bezeichnung_mehrsprachig_sel as &$bm)
|
||||
{
|
||||
$bm = strrchr($bm, ' as ');
|
||||
}
|
||||
{
|
||||
$bm = strrchr($bm, ' as ');
|
||||
}
|
||||
$bezeichnung_mehrsprachig_sel = implode(', ', $bezeichnung_mehrsprachig_sel);
|
||||
|
||||
/**
|
||||
* Reihungstestgebiete der Person ermitteln; Zusammenfassen, falls RT für mehrere Studien
|
||||
* 1. Aktuelle Prestudenten zur Person über den Prüfling ermitteln,
|
||||
* 2. Einstiegssemester (Erstsemester/Quereinsteiger) und Studienplan pro Prestudent ermitteln,
|
||||
* 3. RT-Gebiete falls vorhanden über Studienplan, sonst über STG ermitteln
|
||||
* 4. Für Quereinsteiger zusätzlich auch Erstsemestrigen-Gebiete
|
||||
* 1. Aktuelle Prestudenten zur Person über den Prüfling ermitteln,
|
||||
* 2. Einstiegssemester (Erstsemester/Quereinsteiger) und Studienplan pro Prestudent ermitteln,
|
||||
* 3. RT-Gebiete falls vorhanden über Studienplan, sonst über STG ermitteln
|
||||
* 4. Für Quereinsteiger zusätzlich auch Erstsemestrigen-Gebiete
|
||||
*/
|
||||
$qry = "
|
||||
WITH prestudent_data AS
|
||||
(
|
||||
SELECT DISTINCT ON (prestudent_id)
|
||||
prestudent_id,
|
||||
studienplan_id,
|
||||
studiengang_kz,
|
||||
typ,
|
||||
WITH prestudent_data AS
|
||||
(
|
||||
SELECT DISTINCT ON (prestudent_id)
|
||||
prestudent_id,
|
||||
studienplan_id,
|
||||
studiengang_kz,
|
||||
typ,
|
||||
tbl_studiengangstyp.bezeichnung AS typ_bz,
|
||||
ausbildungssemester AS semester
|
||||
FROM
|
||||
public.tbl_prestudentstatus AS ps_status
|
||||
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
|
||||
person_id
|
||||
FROM
|
||||
public.tbl_prestudent
|
||||
WHERE
|
||||
prestudent_id = ".$db->db_add_param($_SESSION['prestudent_id'])."
|
||||
)
|
||||
ausbildungssemester AS semester
|
||||
FROM
|
||||
public.tbl_prestudentstatus AS ps_status
|
||||
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
|
||||
person_id
|
||||
FROM
|
||||
public.tbl_prestudent
|
||||
WHERE
|
||||
prestudent_id = ".$db->db_add_param($_SESSION['prestudent_id'])."
|
||||
)
|
||||
|
||||
/* Filter only future studiensemester (incl. actual one) */
|
||||
AND
|
||||
studiensemester_kurzbz IN (
|
||||
SELECT
|
||||
studiensemester_kurzbz
|
||||
FROM
|
||||
public.tbl_studiensemester
|
||||
WHERE
|
||||
ende > now()
|
||||
)
|
||||
/* Filter only future studiensemester (incl. actual one) */
|
||||
AND
|
||||
studiensemester_kurzbz IN (
|
||||
SELECT
|
||||
studiensemester_kurzbz
|
||||
FROM
|
||||
public.tbl_studiensemester
|
||||
WHERE
|
||||
ende > now()
|
||||
)
|
||||
|
||||
/* Filter out all Abgewiesene */
|
||||
AND NOT EXISTS (
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
tbl_prestudentstatus
|
||||
WHERE
|
||||
status_kurzbz = 'Abgewiesener'
|
||||
AND
|
||||
prestudent_id = ps_status.prestudent_id
|
||||
)
|
||||
/* Filter out all Abgewiesene */
|
||||
AND NOT EXISTS (
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
tbl_prestudentstatus
|
||||
WHERE
|
||||
status_kurzbz = 'Abgewiesener'
|
||||
AND
|
||||
prestudent_id = ps_status.prestudent_id
|
||||
)
|
||||
|
||||
AND
|
||||
status_kurzbz = 'Interessent'";
|
||||
AND
|
||||
status_kurzbz = 'Interessent'";
|
||||
|
||||
/* If the logged-in prestudents study is a Bachelor-study, filter only Bachelor-studies */
|
||||
/* If the logged-in prestudents study is a Bachelor-study, filter only Bachelor-studies */
|
||||
if ($stg->typ == 'b')
|
||||
{
|
||||
$qry .= "
|
||||
@@ -184,86 +184,95 @@ if (isset($_SESSION['pruefling_id']))
|
||||
|
||||
$qry .= "
|
||||
|
||||
/* Order to get last semester when using distinct on */
|
||||
ORDER BY
|
||||
prestudent_id,
|
||||
datum DESC,
|
||||
ps_status.insertamum DESC,
|
||||
ps_status.ext_id DESC
|
||||
)
|
||||
/* Order to get last semester when using distinct on */
|
||||
ORDER BY
|
||||
prestudent_id,
|
||||
datum DESC,
|
||||
ps_status.insertamum DESC,
|
||||
ps_status.ext_id DESC
|
||||
)
|
||||
|
||||
|
||||
SELECT DISTINCT ON
|
||||
(gebiet_id, semester)
|
||||
semester,
|
||||
gebiet_id,
|
||||
STRING_AGG(studiengang_kz::TEXT, ', ' ORDER BY studiengang_kz) AS studiengang_kz_list,
|
||||
bezeichnung,
|
||||
MIN(reihung) AS reihung,
|
||||
". $bezeichnung_mehrsprachig_sel. "
|
||||
FROM (
|
||||
SELECT
|
||||
*
|
||||
FROM (
|
||||
(SELECT
|
||||
prestudent_data.semester AS ps_sem,
|
||||
gebiet_id,
|
||||
bezeichnung,
|
||||
tbl_ablauf.studienplan_id,
|
||||
tbl_ablauf.studiengang_kz,
|
||||
tbl_ablauf.semester,
|
||||
tbl_ablauf.reihung,
|
||||
".$bezeichnung_mehrsprachig. "
|
||||
FROM
|
||||
prestudent_data
|
||||
JOIN
|
||||
testtool.tbl_ablauf USING (studiengang_kz)
|
||||
JOIN
|
||||
testtool.tbl_gebiet USING (gebiet_id)
|
||||
WHERE
|
||||
(prestudent_data.semester= 1 AND tbl_ablauf.semester = 1)
|
||||
OR
|
||||
(prestudent_data.semester= 3 AND tbl_ablauf.semester IN (1,3))
|
||||
)
|
||||
SELECT DISTINCT ON
|
||||
(gebiet_id, semester, reihung)
|
||||
semester,
|
||||
gebiet_id,
|
||||
STRING_AGG(studiengang_kz::TEXT, ', ' ORDER BY studiengang_kz) AS studiengang_kz_list,
|
||||
bezeichnung,
|
||||
MIN(reihung) AS reihung,
|
||||
". $bezeichnung_mehrsprachig_sel. "
|
||||
FROM (
|
||||
SELECT
|
||||
*
|
||||
FROM (
|
||||
(SELECT
|
||||
prestudent_data.semester AS ps_sem,
|
||||
gebiet_id,
|
||||
bezeichnung,
|
||||
tbl_ablauf.studienplan_id,
|
||||
tbl_ablauf.studiengang_kz,
|
||||
tbl_ablauf.semester,
|
||||
tbl_ablauf.reihung,
|
||||
".$bezeichnung_mehrsprachig. "
|
||||
FROM
|
||||
prestudent_data
|
||||
JOIN
|
||||
testtool.tbl_ablauf USING (studiengang_kz)
|
||||
JOIN
|
||||
testtool.tbl_gebiet USING (gebiet_id)
|
||||
WHERE
|
||||
(
|
||||
(prestudent_data.semester= 1 AND tbl_ablauf.semester = 1)
|
||||
OR
|
||||
(prestudent_data.semester= 3 AND tbl_ablauf.semester IN (1,3))
|
||||
)
|
||||
AND (
|
||||
prestudent_data.studienplan_id = tbl_ablauf.studienplan_id
|
||||
OR
|
||||
tbl_ablauf.studienplan_id IS NULL
|
||||
)
|
||||
)
|
||||
|
||||
UNION
|
||||
UNION
|
||||
|
||||
(
|
||||
SELECT
|
||||
prestudent_data.semester AS ps_sem,
|
||||
gebiet_id,
|
||||
bezeichnung,
|
||||
tbl_ablauf.studienplan_id,
|
||||
tbl_ablauf.studiengang_kz,
|
||||
tbl_ablauf.semester,
|
||||
tbl_ablauf.reihung,
|
||||
". $bezeichnung_mehrsprachig. "
|
||||
FROM
|
||||
prestudent_data
|
||||
JOIN
|
||||
testtool.tbl_ablauf USING (studienplan_id)
|
||||
JOIN
|
||||
testtool.tbl_gebiet USING (gebiet_id)
|
||||
WHERE
|
||||
(prestudent_data.semester= 1 AND tbl_ablauf.semester = 1)
|
||||
OR
|
||||
(prestudent_data.semester= 3 AND tbl_ablauf.semester IN (1,3))
|
||||
)
|
||||
) temp
|
||||
) temp2
|
||||
(
|
||||
SELECT
|
||||
prestudent_data.semester AS ps_sem,
|
||||
gebiet_id,
|
||||
bezeichnung,
|
||||
tbl_ablauf.studienplan_id,
|
||||
tbl_ablauf.studiengang_kz,
|
||||
tbl_ablauf.semester,
|
||||
tbl_ablauf.reihung,
|
||||
". $bezeichnung_mehrsprachig. "
|
||||
FROM
|
||||
prestudent_data
|
||||
JOIN
|
||||
testtool.tbl_ablauf USING (studienplan_id)
|
||||
JOIN
|
||||
testtool.tbl_gebiet USING (gebiet_id)
|
||||
WHERE
|
||||
(prestudent_data.semester= 1 AND tbl_ablauf.semester = 1)
|
||||
OR
|
||||
(prestudent_data.semester= 3 AND tbl_ablauf.semester IN (1,3))
|
||||
)
|
||||
) temp
|
||||
) temp2
|
||||
|
||||
GROUP BY
|
||||
semester,
|
||||
gebiet_id,
|
||||
bezeichnung,
|
||||
GROUP BY
|
||||
semester,
|
||||
gebiet_id,
|
||||
bezeichnung,
|
||||
". $bezeichnung_mehrsprachig_sel ."
|
||||
|
||||
ORDER BY
|
||||
semester,
|
||||
gebiet_id
|
||||
";
|
||||
ORDER BY
|
||||
semester,
|
||||
reihung,
|
||||
gebiet_id
|
||||
";
|
||||
|
||||
$result = $db->db_query($qry);
|
||||
$anzahlGebiete = $db->db_num_rows($result);
|
||||
$lastsemester = '';
|
||||
$quereinsteiger_stg = '';
|
||||
while($row = $db->db_fetch_object($result))
|
||||
@@ -355,10 +364,22 @@ if (isset($_SESSION['pruefling_id']))
|
||||
$class='ItemTesttool';
|
||||
}
|
||||
|
||||
// Fallback für Gebietbezeichnung, falls nicht in gewählter Sprache vorhanden
|
||||
$gebietbezeichnung = $sprache_mehrsprachig->parseSprachResult("bezeichnung_mehrsprachig", $row)[$sprache_user];
|
||||
if ($gebietbezeichnung == '')
|
||||
{
|
||||
$gebietbezeichnung = $sprache_mehrsprachig->parseSprachResult("bezeichnung_mehrsprachig", $row)[DEFAULT_LANGUAGE];
|
||||
|
||||
if ($gebietbezeichnung == '')
|
||||
{
|
||||
$gebietbezeichnung = $row->bezeichnung;
|
||||
}
|
||||
}
|
||||
|
||||
echo '<tr>
|
||||
<!--<td width="10" class="ItemTesttoolLeft" nowrap> </td>-->
|
||||
<td class="'.$class.'">
|
||||
<a class="'.$class.'" href="frage.php?gebiet_id='.$row->gebiet_id.'" onclick="document.location.reload()" target="content" style="'.$style.'">'.$sprache_mehrsprachig->parseSprachResult("bezeichnung_mehrsprachig", $row)[$sprache_user].'</a>
|
||||
<a class="'.$class.'" href="frage.php?gebiet_id='.$row->gebiet_id.'" onclick="document.location.reload()" target="content" style="'.$style.'">'.$gebietbezeichnung.'</a>
|
||||
</td>
|
||||
<!--<td width="10" class="ItemTesttoolRight" nowrap> </td>-->
|
||||
</tr>';
|
||||
@@ -368,9 +389,13 @@ if (isset($_SESSION['pruefling_id']))
|
||||
$invalid_gebiete = true;
|
||||
}
|
||||
}
|
||||
echo '</table>';
|
||||
if ($anzahlGebiete > 0)
|
||||
{
|
||||
echo '</table>';
|
||||
}
|
||||
|
||||
// Link zum Logout
|
||||
|
||||
echo '<tr><td class="ItemTesttool" style="margin-left: 20px;" nowrap>
|
||||
<a class="ItemTesttool navButton" href="login.php?logout=true" target="content">Logout</a>
|
||||
</td></tr>';
|
||||
|
||||
Reference in New Issue
Block a user