auswertung_fhtw.php:

- multiselect von Reihungstests möglich
- css in public/auswertung_fhtw.css ausgelagert
This commit is contained in:
alex
2020-03-13 19:25:25 +01:00
parent 0245bff11c
commit d00aec9a72
2 changed files with 541 additions and 235 deletions
+178
View File
@@ -0,0 +1,178 @@
.info
{
color: #0c5460;
background-color: #d1ecf1;
padding: .75rem 1.25rem;
border: 1px solid #bee5eb;;
}
.warning
{
color: #856404;
background-color: #fff3cd;
padding: .75rem 1.25rem;
border: 1px solid #ffeeba;
}
.error
{
color: #721c24;
background-color: #f8d7da;
padding: .75rem 1.25rem;
border: 1px solid #f5c6cb;
}
.loaderIcon
{
border: 8px solid #f3f3f3; /* Light grey */
border-top: 8px solid #3498db; /* Blue */
border-radius: 50%;
width: 30px;
height: 30px;
animation: spin 2s linear infinite;
margin-right: auto;
margin-left: auto;
}
@keyframes spin
{
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.alert > .btn
{
padding: 0 6px;
}
/*** Bootstrap popover ***/
#popover-target label
{
margin: 0 5px;
display: block;
}
#popover-target input
{
margin-right: 5px;
}
#popover-target .disabled
{
color: #ddd;
}
.glyphicon-remove
{
font-size: 150%;
margin: -5px 0;
top: 4px;
}
.ui-autocomplete-loading
{
background: white url("../../../skin/images/spinner.gif") right 5px center no-repeat;
}
#paramstbl
{
margin-bottom: 0;
}
#rtwaehlen
{
white-space: nowrap;
padding: 10px;
}
.rtchkbox
{
float: left;
}
.rtchkboxlabel:hover
{
color: white;
background-color: #337ab7;
cursor: pointer;
}
/*.rtchkbox:hover,.rtchkbox input:hover,.rtchkbox label:hover
{
cursor: pointer;
}*/
.rtchkbox label
{
font-weight: normal;
}
#rtcheckboxes
{
height: 100%;
width: 500px;
left: 155px;
position: absolute;
z-index: 9999999;
overflow-y: auto;
border: 1px solid;
padding: 8px;
background-color: white;
display: none
}
#auswertencell
{
vertical-align: middle;
padding: 0 5px;
border-right: 1px solid #ddd;
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
}
#addpers,#toggleDelete,#checkAllResButton,#showUebertragenOptionsButton,#punkteUebertragenButton
{
margin-left: 10px;
}
.loaderIcon
{
display: none;
margin-top: 10px;
}
.hiddenEl
{
display: none;
}
.textcentered
{
text-align: center;
}
th.smallcol
{
width: 20px;
}
th.toggletblchkboxcol
{
width: 30px;
}
.rightaligned
{
text-align: right;
padding-right: 3px;
}
.redcolor
{
color: red;
}
.darkredcolor
{
color: #c82333;
}
.darkyellowcolor
{
color: #e0a800;
}
.zerovalcolor
{
color: #C10000;
}
+363 -235
View File
@@ -102,7 +102,7 @@ if (isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete'] == 'prestudent
if (isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete'] == 'prestudentAdd') if (isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete'] == 'prestudentAdd')
{ {
$search = trim((isset($_REQUEST['term']) ? $_REQUEST['term'] : '')); $search = trim((isset($_REQUEST['term']) ? $_REQUEST['term'] : ''));
$studiensemester_kurzbz = trim((isset($_REQUEST['studiensemester_kurzbz']) ? $_REQUEST['studiensemester_kurzbz'] : '')); $studiensemester_kurzbz = (isset($_REQUEST['studiensemester_kurzbz']) ? $_REQUEST['studiensemester_kurzbz'] : '');
if (is_null($search) || $search == '') if (is_null($search) || $search == '')
{ {
exit(); exit();
@@ -120,11 +120,21 @@ if (isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete'] == 'prestudent
lower(vorname) like '%" . $db->db_escape(mb_strtolower($search)) . "%' OR lower(vorname) like '%" . $db->db_escape(mb_strtolower($search)) . "%' OR
lower(nachname || ' ' || vorname) like '%" . $db->db_escape(mb_strtolower($search)) . "%' OR lower(nachname || ' ' || vorname) like '%" . $db->db_escape(mb_strtolower($search)) . "%' OR
lower(vorname || ' ' || nachname) like '%" . $db->db_escape(mb_strtolower($search)) . "%' OR lower(vorname || ' ' || nachname) like '%" . $db->db_escape(mb_strtolower($search)) . "%' OR
prestudent_id::text like '%" . $db->db_escape(mb_strtolower($search)) . "%') prestudent_id::text like '%" . $db->db_escape(mb_strtolower($search)) . "%')";
AND get_rolle_prestudent(prestudent_id, " . $db->db_add_param($studiensemester_kurzbz) . ") IN ('Interessent') $first = true;
ORDER BY nachname,vorname,stg if (is_array($studiensemester_kurzbz))
LIMIT 10 $qry .= " AND (";
"; foreach ($studiensemester_kurzbz as $stsem) {
$stsem = trim($stsem);
if (!$first)
$qry .= 'OR ';
$qry .= "get_rolle_prestudent(prestudent_id, " . $db->db_add_param($stsem) . ") IN ('Interessent')";
}
if (is_array($studiensemester_kurzbz))
$qry .= ")";
$qry .=
" ORDER BY nachname,vorname,stg
LIMIT 10";
if ($result = $db->db_query($qry)) if ($result = $db->db_query($qry))
{ {
@@ -471,63 +481,80 @@ if ($rtFreischalten)
$testende = filter_input(INPUT_POST, 'testende', FILTER_VALIDATE_BOOLEAN); $testende = filter_input(INPUT_POST, 'testende', FILTER_VALIDATE_BOOLEAN);
if ($testende) if ($testende)
{ {
if (isset($_POST['reihungstest_id']) && is_numeric($_POST['reihungstest_id'])) /*if (isset($_POST['reihungstest_ids']) && is_array($_POST['reihungstest_ids']))
{ {
$reihungstest = new reihungstest($_POST['reihungstest_id']); $reihungstest = new reihungstest($_POST['reihungstest_id']);*/
// Alle Bachelor-Studiengänge holen, bei denen der Bewerber Interessent ist, die Bewerbung abgeschickt hat und bestätigt wurde // Alle Bachelor-Studiengänge holen, bei denen der Bewerber Interessent ist, die Bewerbung abgeschickt hat und bestätigt wurde
// Mail an alle diese Studiengänge senden // Mail an alle diese Studiengänge senden
if (isset($_POST['prestudent_ids'])) if (isset($_POST['prestudents']))
{
// Array mit allen Prestudenten aufbauen
$prestudentsrt = $_POST['prestudents'];
$prestudentArray = array();
foreach ($prestudentsrt AS $prestrt)
{ {
// Array mit allen Prestudenten aufbauen $prestudent_id = $prestrt['prestudent_id'];
$prestudentArray = array(); $reihungstest_id = $prestrt['reihungstest_id'];
foreach ($_POST['prestudent_ids'] AS $prest) $prestudentrolle = new prestudent($prestudent_id);
$reihungstest = new reihungstest($reihungstest_id);
// Wenn der letzte Status Abgewiesener ist, wird der Bewerber ignoriert
$prestudentrolle->getLastStatus($prestudent_id, $reihungstest->studiensemester_kurzbz);
if ($prestudentrolle->status_kurzbz == 'Abgewiesener')
{ {
$prestudentrolle = new prestudent($prest); continue;
// Wenn der letzte Status Abgewiesener ist, wird der Bewerber ignoriert }
$prestudentrolle->getLastStatus($prest, $reihungstest->studiensemester_kurzbz); // Letzten Interessentenstatus laden
if ($prestudentrolle->status_kurzbz == 'Abgewiesener') $prestudentrolle->getLastStatus($prestudent_id, $reihungstest->studiensemester_kurzbz, 'Interessent');
{ $stg = new studiengang($prestudentrolle->studiengang_kz);
continue;
}
// Letzten Interessentenstatus laden
$prestudentrolle->getLastStatus($prest, $reihungstest->studiensemester_kurzbz, 'Interessent');
$stg = new studiengang($prestudentrolle->studiengang_kz);
if ($prestudentrolle->bewerbung_abgeschicktamum != '' if ($prestudentrolle->bewerbung_abgeschicktamum != ''
&& $prestudentrolle->bestaetigtam != '' && $prestudentrolle->bestaetigtam != ''
&& $prestudentrolle->bestaetigtvon != '' && $prestudentrolle->bestaetigtvon != ''
&& $stg->typ == 'b') && $stg->typ == 'b')
{ {
$prestudentArray[$prestudentrolle->studiengang_kz][$prestudentrolle->orgform_kurzbz][] = $prest; $prestudentArray[$reihungstest_id][$prestudentrolle->studiengang_kz][$prestudentrolle->orgform_kurzbz][] = $prestudent_id;
} }
// Setzt "teilgenommen" (Zum Reihungstest angetreten) auf TRUE // Setzt "teilgenommen" (Zum Reihungstest angetreten) auf TRUE
$teilgenommen = new reihungstest(); $teilgenommen = new reihungstest();
$teilgenommen->getPersonReihungstest($prestudentrolle->person_id, $_POST['reihungstest_id'], $prestudentrolle->studienplan_id); $teilgenommen->getPersonReihungstest($prestudentrolle->person_id, $reihungstest_id, $prestudentrolle->studienplan_id);
$teilgenommen->new = false; $teilgenommen->new = false;
$teilgenommen->teilgenommen = true; $teilgenommen->teilgenommen = true;
$teilgenommen->updateamum = date('Y-m-d H:i:s'); $teilgenommen->updateamum = date('Y-m-d H:i:s');
$teilgenommen->updatevon = $user; $teilgenommen->updatevon = $user;
if (!$teilgenommen->savePersonReihungstest()) if (!$teilgenommen->savePersonReihungstest())
{ {
echo json_encode(array( echo json_encode(array(
'status' => 'fehler', 'status' => 'fehler',
'msg' => 'Fehler beim speichern der Reihungstestteilnahme: '.$teilgenommen->errormsg 'msg' => 'Fehler beim Speichern der Reihungstestteilnahme: '.$teilgenommen->errormsg
)); ));
exit(); exit();
}
} }
} }
}
$sendError = false; $sendError = false;
$empfaengerArray = array(); $empfaengerArray = array();
foreach ($prestudentArray AS $studiengang_kz => $OrgFormPrestudent) $rtidArray = array();
foreach ($prestudentsrt as $psrt)
{
if (!in_array($psrt['reihungstest_id'], $rtidArray))
$rtidArray[] = $psrt['reihungstest_id'];
}
$rtidparams = http_build_query(array('reihungstest' => $rtidArray));
foreach ($prestudentArray AS $reihungstest_id => $studiengang)
{
foreach ($studiengang AS $studiengang_kz => $OrgFormPrestudent)
{ {
foreach ($OrgFormPrestudent AS $orgForm => $prestudent_id) foreach ($OrgFormPrestudent AS $orgForm => $prestudent_id)
{ {
$rtest = new reihungstest($reihungstest_id);
$empfaenger = getMailEmpfaenger($studiengang_kz, null, $orgForm); $empfaenger = getMailEmpfaenger($studiengang_kz, null, $orgForm);
//Pfuschloesung fur BIF Dual //Pfuschloesung fur BIF Dual
if (CAMPUS_NAME == 'FH Technikum Wien' && $studiengang_kz == 257 && $orgForm == 'DUA') if (CAMPUS_NAME == 'FH Technikum Wien' && $studiengang_kz == 257 && $orgForm == 'DUA')
@@ -561,12 +588,12 @@ if ($testende)
</tr> </tr>
<tr> <tr>
<td style="padding-left: 8%; padding-right: 8%; padding-top: 5%; padding-bottom: 5%; font-family: verdana, sans-serif; font-size: 1em; border-bottom: 2px solid #000000;">'; <td style="padding-left: 8%; padding-right: 8%; padding-top: 5%; padding-bottom: 5%; font-family: verdana, sans-serif; font-size: 1em; border-bottom: 2px solid #000000;">';
$mailtext .= 'Der Reihungstest vom ' . $datum_obj->convertISODate($reihungstest->datum) . ' um ' . $datum_obj->formatDatum($reihungstest->uhrzeit, 'H:i') . ' Uhr ist beendet.'; $mailtext .= 'Der Reihungstest vom '.$datum_obj->convertISODate($rtest->datum).' um '.$datum_obj->formatDatum($rtest->uhrzeit, 'H:i').' Uhr ist beendet.';
$mailtext .= '<br> Es haben <b>'.$anzahl.'</b> Person(en) aus dem Studiengang '.$stg->kuerzel.'-'.$orgForm.' teilgenommen.'; $mailtext .= '<br> Es haben <b>'.$anzahl.'</b> Person(en) aus dem Studiengang '.$stg->kuerzel.'-'.$orgForm.' teilgenommen.';
$mailtext .= '<br><br><a href="' . APP_ROOT . 'vilesci/stammdaten/auswertung_fhtw.php?reihungstest=' . $reihungstest->reihungstest_id . '&studiengang=' . $studiengang_kz . '&orgform_kurzbz=' . $orgForm . '">Link zur Auswertung</a>'; $mailtext .= '<br><br><a href="'.APP_ROOT.'vilesci/stammdaten/auswertung_fhtw.php?'.$rtidparams.'&studiengang='.$studiengang_kz.'&orgform_kurzbz='.$orgForm.'">Link zur Auswertung</a>';
$mailtext .= '<br><br><a href="' . APP_ROOT . 'addons/reports/cis/vorschau.php?statistik_kurzbz=BewerberReihungstestPriorisierung&debug=true">Link zur Pivot-Tabelle für die Priorisierung</a>'; $mailtext .= '<br><br><a href="'.APP_ROOT.'addons/reports/cis/vorschau.php?statistik_kurzbz=BewerberReihungstestPriorisierung&debug=true">Link zur Pivot-Tabelle für die Priorisierung</a>';
$mailtext .= '<br><br>Reihung der BewerberInnen: Prio 1 innerhalb von 2 Werktagen, Prio 2 am 3. Werktag und Prio 3 am 4. Werktag'; $mailtext .= '<br><br>Reihung der BewerberInnen: Prio 1 innerhalb von 2 Werktagen, Prio 2 am 3. Werktag und Prio 3 am 4. Werktag';
$mailtext .= '</td> $mailtext .= '</td>
</tr> </tr>
<tr> <tr>
<td align="center"> <td align="center">
@@ -587,8 +614,8 @@ if ($testende)
$mail = new mail($empfaenger, 'no-reply', 'Reihungstest vom '.$datum_obj->convertISODate($reihungstest->datum).' um '.$datum_obj->formatDatum($reihungstest->uhrzeit, 'H:i').' beendet', 'Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen.'); $mail = new mail($empfaenger, 'no-reply', 'Reihungstest vom '.$datum_obj->convertISODate($reihungstest->datum).' um '.$datum_obj->formatDatum($reihungstest->uhrzeit, 'H:i').' beendet', 'Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen.');
$mail->setHTMLContent($mailtext); $mail->setHTMLContent($mailtext);
$mail->addEmbeddedImage(APP_ROOT . 'skin/images/sancho/sancho_header_min_bw.jpg', 'image/jpg', 'header_image', 'sancho_header'); $mail->addEmbeddedImage(APP_ROOT.'skin/images/sancho/sancho_header_min_bw.jpg', 'image/jpg', 'header_image', 'sancho_header');
$mail->addEmbeddedImage(APP_ROOT . 'skin/images/sancho/sancho_footer_min_bw.jpg', 'image/jpg', 'footer_image', 'sancho_footer'); $mail->addEmbeddedImage(APP_ROOT.'skin/images/sancho/sancho_footer_min_bw.jpg', 'image/jpg', 'footer_image', 'sancho_footer');
$mail->setBCCRecievers('kindlm@technikum-wien.at'); $mail->setBCCRecievers('kindlm@technikum-wien.at');
if (!$mail->send()) if (!$mail->send())
@@ -610,7 +637,8 @@ if ($testende)
$empfaengerArray = array_unique($empfaengerArray); $empfaengerArray = array_unique($empfaengerArray);
echo json_encode(array( echo json_encode(array(
'status' => 'ok', 'status' => 'ok',
'msg' => 'Nachricht erfolgreich verschickt an: ' . implode(',',$empfaengerArray))); 'msg' => 'Nachricht erfolgreich verschickt an: '.implode(',', $empfaengerArray)
));
exit(); exit();
} }
} }
@@ -718,9 +746,9 @@ if (isset($_POST['method']) && $_POST['method'] == 'addPerson')
$punkteUebertragen = filter_input(INPUT_POST, 'punkteUebertragen', FILTER_VALIDATE_BOOLEAN); $punkteUebertragen = filter_input(INPUT_POST, 'punkteUebertragen', FILTER_VALIDATE_BOOLEAN);
if ($punkteUebertragen) if ($punkteUebertragen)
{ {
if (isset($_POST['reihungstest_id']) && is_numeric($_POST['reihungstest_id'])) /* if (isset($_POST['reihungstest_id']) && is_numeric($_POST['reihungstest_id']))
{ {*/
$reihungstest = new reihungstest($_POST['reihungstest_id']); //$reihungstest = new reihungstest(/*$_POST['reihungstest_id']*/);
$msg_warning = ''; $msg_warning = '';
$msg_error = ''; $msg_error = '';
$count_success_punkte = 0; $count_success_punkte = 0;
@@ -731,6 +759,7 @@ if ($punkteUebertragen)
{ {
foreach ($_POST['prestudentPunkteArr'] AS $key => $array) foreach ($_POST['prestudentPunkteArr'] AS $key => $array)
{ {
$reihungstest = new reihungstest($array['reihungstest_id']);
$rtpunkte = number_format(floatval(str_replace(',', '.', $array['ergebnis'])), 4); $rtpunkte = number_format(floatval(str_replace(',', '.', $array['ergebnis'])), 4);
$prestudentrolle = new prestudent($array['prestudent_id']); $prestudentrolle = new prestudent($array['prestudent_id']);
$prestudentrolle->getLastStatus($array['prestudent_id'], null, 'Interessent'); $prestudentrolle->getLastStatus($array['prestudent_id'], null, 'Interessent');
@@ -742,10 +771,10 @@ if ($punkteUebertragen)
} }
// Checken, ob Person-Reihungstest-Studienplan zuteilung existiert // Checken, ob Person-Reihungstest-Studienplan zuteilung existiert
if ($reihungstest->checkPersonRtStudienplanExists($prestudentrolle->person_id, $_POST['reihungstest_id'], $prestudentrolle->studienplan_id)) if ($reihungstest->checkPersonRtStudienplanExists($prestudentrolle->person_id, $array['reihungstest_id'], $prestudentrolle->studienplan_id))
{ {
$setRTPunkte = new reihungstest(); $setRTPunkte = new reihungstest();
$setRTPunkte->getPersonReihungstest($prestudentrolle->person_id, $_POST['reihungstest_id'], $prestudentrolle->studienplan_id); $setRTPunkte->getPersonReihungstest($prestudentrolle->person_id, $array['reihungstest_id'], $prestudentrolle->studienplan_id);
// Check, ob Punkte schon befüllt sind // Check, ob Punkte schon befüllt sind
if ($setRTPunkte->punkte == '') if ($setRTPunkte->punkte == '')
@@ -774,20 +803,20 @@ if ($punkteUebertragen)
$setRTPunkte = new reihungstest(); $setRTPunkte = new reihungstest();
$ort_kurzbz = ''; $ort_kurzbz = '';
// Checken, ob schon irgendeine Raumzuteilung existiert (Check ohne Studienplan) und diese ggf. übernehmen // Checken, ob schon irgendeine Raumzuteilung existiert (Check ohne Studienplan) und diese ggf. übernehmen
$setRTPunkte->getPersonReihungstest($prestudentrolle->person_id, $_POST['reihungstest_id']); $setRTPunkte->getPersonReihungstest($prestudentrolle->person_id, $array['reihungstest_id']);
if ($setRTPunkte->ort_kurzbz != '') if ($setRTPunkte->ort_kurzbz != '')
{ {
$ort_kurzbz = $setRTPunkte->ort_kurzbz; $ort_kurzbz = $setRTPunkte->ort_kurzbz;
} }
$setRTPunkte = new reihungstest(); $setRTPunkte = new reihungstest();
$setRTPunkte->getPersonReihungstest($prestudentrolle->person_id, $_POST['reihungstest_id'], $prestudentrolle->studienplan_id); $setRTPunkte->getPersonReihungstest($prestudentrolle->person_id, $array['reihungstest_id'], $prestudentrolle->studienplan_id);
// Check, ob Punkte schon befüllt sind // Check, ob Punkte schon befüllt sind
if ($setRTPunkte->punkte == '') if ($setRTPunkte->punkte == '')
{ {
$setRTPunkte->new = true; $setRTPunkte->new = true;
$setRTPunkte->person_id = $prestudentrolle->person_id; $setRTPunkte->person_id = $prestudentrolle->person_id;
$setRTPunkte->reihungstest_id = $_POST['reihungstest_id']; $setRTPunkte->reihungstest_id = $array['reihungstest_id'];
$setRTPunkte->anmeldedatum = ''; $setRTPunkte->anmeldedatum = '';
$setRTPunkte->teilgenommen = true; $setRTPunkte->teilgenommen = true;
$setRTPunkte->ort_kurzbz = $ort_kurzbz; $setRTPunkte->ort_kurzbz = $ort_kurzbz;
@@ -934,7 +963,6 @@ if ($punkteUebertragen)
'msg_warning' => $msg_warning, 'msg_warning' => $msg_warning,
'msg_error' => $msg_error)); 'msg_error' => $msg_error));
exit(); exit();
}
} }
function sortByField($multArray, $sortField, $desc = true) function sortByField($multArray, $sortField, $desc = true)
@@ -1055,14 +1083,23 @@ $orgform_kurzbz = isset($_REQUEST['orgform_kurzbz']) ? $_REQUEST['orgform_kurzbz
$format = (isset($_REQUEST['format']) ? $_REQUEST['format'] : ''); $format = (isset($_REQUEST['format']) ? $_REQUEST['format'] : '');
$rtStudiensemester = ''; $rtStudiensemester = '';
if ($reihungstest != '' && is_numeric($reihungstest)) if ($reihungstest != '' && (is_array($reihungstest) || is_numeric($reihungstest)))
{ {
$reihungstestObj = new reihungstest($reihungstest); $rtStudiensemester = array();
$rtStudiensemester = $reihungstestObj->studiensemester_kurzbz;
if (is_numeric($reihungstest))
$reihungstest = array($reihungstest);
foreach ($reihungstest as $rt_id)
{
$reihungstestObj = new reihungstest($rt_id);
if (!in_array($reihungstestObj->studiensemester_kurzbz, $rtStudiensemester))
$rtStudiensemester[] = $reihungstestObj->studiensemester_kurzbz;
}
} }
elseif ($reihungstest != '' && !is_numeric($reihungstest)) elseif ($reihungstest != '' && !is_array($reihungstest) && !is_numeric($reihungstest))
{ {
die('ReihungstestID ist ungueltig'); die('ReihungstestIDs sind ungueltig');
} }
if ($studiengang != '' && is_numeric($studiengang)) if ($studiengang != '' && is_numeric($studiengang))
{ {
@@ -1116,7 +1153,7 @@ $sql_query = "SELECT * FROM public.tbl_reihungstest WHERE date_part('year',datum
// Wenn Reihungstest ID gesetzt ist, diesen Test zusaetzlich laden, um auch jene außerhalbs des Datumszeitraums zu erwischen // Wenn Reihungstest ID gesetzt ist, diesen Test zusaetzlich laden, um auch jene außerhalbs des Datumszeitraums zu erwischen
if ($reihungstest != '') if ($reihungstest != '')
{ {
$sql_query .= "UNION SELECT * FROM public.tbl_reihungstest WHERE reihungstest_id=" . $db->db_add_param($reihungstest, FHC_INTEGER); $sql_query .= "UNION SELECT * FROM public.tbl_reihungstest WHERE reihungstest_id IN (" . $db->implode4SQL($reihungstest) . ")";
} }
$sql_query .= " ORDER BY datum,uhrzeit"; $sql_query .= " ORDER BY datum,uhrzeit";
@@ -1171,7 +1208,7 @@ if (isset($_REQUEST['reihungstest']))
AND NOT (testtool.tbl_ablauf.gebiet_id IN ( SELECT testtool.tbl_kategorie.gebiet_id FROM testtool.tbl_kategorie))"; AND NOT (testtool.tbl_ablauf.gebiet_id IN ( SELECT testtool.tbl_kategorie.gebiet_id FROM testtool.tbl_kategorie))";
if ($reihungstest != '') if ($reihungstest != '')
{ {
$query .= " AND rt_id = " . $db->db_add_param($reihungstest, FHC_INTEGER); $query .= " AND rt_id IN (" . $db->implode4SQL($reihungstest) . ")";
} }
if ($studiengang != '') if ($studiengang != '')
{ {
@@ -1343,7 +1380,8 @@ if (isset($_REQUEST['reihungstest']))
AND testtool.tbl_frage.gebiet_id = tbl_gebiet.gebiet_id AND testtool.tbl_frage.gebiet_id = tbl_gebiet.gebiet_id
) )
END AS punkte, END AS punkte,
tbl_gebiet.gebiet_id, rt.reihungstest_id,
tbl_gebiet.gebiet_id,
tbl_gebiet.bezeichnung AS gebiet, tbl_gebiet.bezeichnung AS gebiet,
tbl_pruefling.idnachweis, tbl_pruefling.idnachweis,
tbl_pruefling.registriert, tbl_pruefling.registriert,
@@ -1399,7 +1437,7 @@ if (isset($_REQUEST['reihungstest']))
"; ";
if ($reihungstest != '') if ($reihungstest != '')
{ {
$query .= " AND rt_id = " . $db->db_add_param($reihungstest, FHC_INTEGER); $query .= " AND rt_id IN (" . $db->implode4SQL($reihungstest) . ")";
} }
if ($studiengang != '') if ($studiengang != '')
{ {
@@ -1451,6 +1489,7 @@ if (isset($_REQUEST['reihungstest']))
$ergebnis[$row->prestudent_id]->prestudent_id = $row->prestudent_id; $ergebnis[$row->prestudent_id]->prestudent_id = $row->prestudent_id;
$ergebnis[$row->prestudent_id]->person_id = $row->person_id; $ergebnis[$row->prestudent_id]->person_id = $row->person_id;
$ergebnis[$row->prestudent_id]->reihungstest_id = $row->reihungstest_id;
//$ergebnis[$row->prestudent_id]->pruefling_id = $row->pruefling_id; //$ergebnis[$row->prestudent_id]->pruefling_id = $row->pruefling_id;
$ergebnis[$row->prestudent_id]->nachname = $row->nachname; $ergebnis[$row->prestudent_id]->nachname = $row->nachname;
$ergebnis[$row->prestudent_id]->vorname = $row->vorname; $ergebnis[$row->prestudent_id]->vorname = $row->vorname;
@@ -1598,7 +1637,32 @@ if (isset($_REQUEST['format']) && $_REQUEST['format'] == 'xls')
$workbook = new Spreadsheet_Excel_Writer(); $workbook = new Spreadsheet_Excel_Writer();
// sending HTTP headers // sending HTTP headers
$workbook->send("Auswertung " . ((isset ($_REQUEST['reihungstest']) && $_REQUEST['reihungstest'] != '') ? $stg_arr[$rtest[$reihungstest]->studiengang_kz] . " " . $datum_obj->formatDatum($rtest[$reihungstest]->datum, 'd.m.Y') : 'aller Reihungstests') . ".xls"); $stgstr = '';
if ((isset ($_REQUEST['reihungstest']) && $_REQUEST['reihungstest'] != ''))
{
$rtdates = array();
foreach ($reihungstest as $index => $rt_id)
{
$rtdate = $datum_obj->formatDatum($rtest[$rt_id]->datum, 'd.m.Y');
if (!isset($rtdates[$rtdate]))
$rtdates[$rtdate] = array();
$rtdates[$rtdate][] = $stg_arr[$rtest[$rt_id]->studiengang_kz];
/*$stgstr .= " " . $stg_arr[$rtest[$rt_id]->studiengang_kz];
if (isset($reihungstest[$index + 1]) && $reihungstest[$index + 1] !== )
$stgstr .= ' ' . $rtdate;
*//*if (!in_array($rtdate, $rtdates))
$rtdates[] = $rtdate;*//*. " " . $datum_obj->formatDatum($rtest[$rt_id]->datum, 'd.m.Y');*/
}
foreach ($rtdates as $rtdate => $stgs)
{
$stgstr .= " " . implode("_", $stgs) . "_" . $rtdate;
}
}
else
$stgstr = "aller Reihungstests";
$workbook->send("Auswertung" . $stgstr . ".xls");
$workbook->setVersion(8); $workbook->setVersion(8);
$workbook->setCustomColor(15, 192, 192, 192); //Setzen der HG-Farbe Hellgrau $workbook->setCustomColor(15, 192, 192, 192); //Setzen der HG-Farbe Hellgrau
$workbook->setCustomColor(22, 193, 0, 0); //Setzen der HG-Farbe Dunkelrot $workbook->setCustomColor(22, 193, 0, 0); //Setzen der HG-Farbe Dunkelrot
@@ -1929,6 +1993,7 @@ else
<link rel="stylesheet" type="text/css" href="../../vendor/mottie/tablesorter/dist/css/theme.default.min.css"> <link rel="stylesheet" type="text/css" href="../../vendor/mottie/tablesorter/dist/css/theme.default.min.css">
<link rel="stylesheet" type="text/css" href="../../vendor/mottie/tablesorter/dist/css/jquery.tablesorter.pager.min.css"> <link rel="stylesheet" type="text/css" href="../../vendor/mottie/tablesorter/dist/css/jquery.tablesorter.pager.min.css">
<link rel="stylesheet" type="text/css" href="../../vendor/twbs/bootstrap/dist/css/bootstrap.min.css"> <link rel="stylesheet" type="text/css" href="../../vendor/twbs/bootstrap/dist/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="../../public/css/tools/auswertung_fhtw.css">
<script type="text/javascript" src="../../vendor/components/jquery/jquery.min.js"></script> <script type="text/javascript" src="../../vendor/components/jquery/jquery.min.js"></script>
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script> <script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
<script type="text/javascript" src="../../vendor/components/jqueryui/ui/i18n/datepicker-de.js"></script> <script type="text/javascript" src="../../vendor/components/jqueryui/ui/i18n/datepicker-de.js"></script>
@@ -1951,11 +2016,36 @@ else
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function() $(document).ready(function()
{ {
$("#rtcheckboxesbtn").click(toggleRtDropdown);
$("#rtcheckboxes .rtchkboxlabel").click(
function(e)
{
var rt_id = this.id.substr(this.id.indexOf("_") + 1);
var rtel = $("#rt_" + rt_id);
rtel.prop("checked",!rtel.prop("checked"));
showSelectedRts();
}
);
$(".rtchkbox input[type=\'checkbox\']").click(
showSelectedRts
);
showSelectedRts();
//RT dropdown verstecken wenn Klick ausserhalb
$(document).mousedown(function(e)
{
var dropdown = $("#rtcheckboxes");
if (!dropdown.is(e.target) && dropdown.has(e.target).length === 0 && !$("#rtcheckboxesbtn").is(e.target))
dropdown.hide();
});
$( ".datepicker_datum" ).datepicker({ $( ".datepicker_datum" ).datepicker({
changeMonth: true, changeMonth: true,
changeYear: true, changeYear: true,
dateFormat: "dd.mm.yy", dateFormat: "dd.mm.yy"
}); });
$("#prestudent").autocomplete({ $("#prestudent").autocomplete({
source: "auswertung_fhtw.php?autocomplete=prestudent", source: "auswertung_fhtw.php?autocomplete=prestudent",
@@ -1977,7 +2067,7 @@ else
}); });
$("#zuteilungAutocomplete").autocomplete({ $("#zuteilungAutocomplete").autocomplete({
source: "auswertung_fhtw.php?autocomplete=prestudentAdd&studiensemester_kurzbz='.$rtStudiensemester.'", source: "auswertung_fhtw.php?autocomplete=prestudentAdd&'.http_build_query(array('studiensemester_kurzbz' => $rtStudiensemester)).'",
minLength:2, minLength:2,
response: function(event, ui) response: function(event, ui)
{ {
@@ -1998,21 +2088,27 @@ else
$("#auswertung_table").tablesorter( $("#auswertung_table").tablesorter(
{ {
widgets: ["zebra", "filter", "columnSelector"], widgets: ["zebra", "filter", "columnSelector"],
sortList: [[15,1],[18,1],[3,0],[4,0]],//16th (index 15) fake hidden column for correct sort with colspan sortList: [[16,1],[19,1],[3,0],[4,0]],//17th (index 16) fake hidden column for correct sort with colspan
headers: {0: { sorter: false, filter: false}, 2: { sorter: false, filter: false}, 4: { dateFormat: "ddmmyyyy" }, 15: { sorter: false, filter: false}} headers: {0: { sorter: false, filter: false}, 2: { sorter: false, filter: false}, 4: { dateFormat: "ddmmyyyy" }, 16: { sorter: false, filter: false}}
/*widgetOptions : { /*widgetOptions : {
columnSelector_container : $("#columnSelector"), columnSelector_container : $("#columnSelector"),
columnSelector_saveColumns: true} */ columnSelector_saveColumns: true} */
}); });
//hide tablesorter filter field if column is hidden //hide tablesorter filter field if column is hidden
for (var i = 0; i < $("#auswertung_table tbody tr:nth-child(1) td").length; i++) var tbldatalength = $("#auswertung_table tbody tr:nth-child(1) td").length;
{ if (tbldatalength < 1)
var colnr = i + 1; $(".tablesorter-filter-row").hide();
var cell = $("#auswertung_table tbody tr:nth-child(1) td:nth-child(" + colnr + ")"); else
if (cell.css("display") === "none") {
for (var i = 0; i < $("#auswertung_table tbody tr:nth-child(1) td").length; i++)
{ {
$("#auswertung_table tr.tablesorter-filter-row td:nth-child(" + colnr + ")").css("display", "none"); var colnr = i + 1;
var cell = $("#auswertung_table tbody tr:nth-child(1) td:nth-child(" + colnr + ")");
if (cell.css("display") === "none")
{
$("#auswertung_table tr.tablesorter-filter-row td:nth-child(" + colnr + ")").css("display", "none");
}
} }
} }
/*$.tablesorter.columnSelector.attachTo( $("#auswertung_table"), "#popover-target");*/ /*$.tablesorter.columnSelector.attachTo( $("#auswertung_table"), "#popover-target");*/
@@ -2234,7 +2330,7 @@ else
}); });
} }
function testende(reihungstest) function testende()
{ {
var selected = []; var selected = [];
if ($("input.prestudentCheckbox:checked").length === 0) if ($("input.prestudentCheckbox:checked").length === 0)
@@ -2246,16 +2342,22 @@ else
{ {
if (confirm("Setzt bei allen markierten Personen \'Zum Reihungstest angetreten\' und informiert die entsprechende Studiengangsassistenz. Wollen Sie fortfahren?")) if (confirm("Setzt bei allen markierten Personen \'Zum Reihungstest angetreten\' und informiert die entsprechende Studiengangsassistenz. Wollen Sie fortfahren?"))
{ {
$("input.prestudentCheckbox:checked").each(function() $("#auswertung_table tr").each(function()
{ {
selected.push($(this).attr("name")); var prestudent_id = $(this).find("input.prestudentCheckbox:checked").prop("name");
if (prestudent_id)
{
console.log(prestudent_id);
var rt_id = $(this).find("td.rt_id").text();
selected.push({prestudent_id: prestudent_id, reihungstest_id: rt_id});
}
}); });
$(".loaderIcon").show(); $(".loaderIcon").show();
data = { data = {
reihungstest_id: reihungstest, prestudents: selected,
prestudent_ids: selected,
testende: true testende: true
}; };
@@ -2339,7 +2441,7 @@ else
function checkAllWithResult() function checkAllWithResult()
{ {
// Schleife ueber die einzelnen Elemente // Schleife ueber die einzelnen Elemente
$(".col_gesamtpunkte").each(function() $(".col_gesamtpunkte .erg_gesamt_visible").each(function()
{ {
if ($(this).text().trim() !== "") if ($(this).text().trim() !== "")
{ {
@@ -2355,7 +2457,7 @@ else
else else
$("#mailSendButton").html("Mail an alle senden"); $("#mailSendButton").html("Mail an alle senden");
} }
function punkteUebertragen(reihungstest) function punkteUebertragen()
{ {
var prestudentPunkteArr = []; var prestudentPunkteArr = [];
var gesamtpunkteSetzen = false; var gesamtpunkteSetzen = false;
@@ -2376,7 +2478,8 @@ else
{ {
prestudentPunkteArr.push({ prestudentPunkteArr.push({
prestudent_id: $(this).attr("name"), prestudent_id: $(this).attr("name"),
ergebnis: $(this).parents("tr").find(".erg_gesamt").text() ergebnis: $(this).parents("tr").find(".erg_gesamt").text(),
reihungstest_id: $(this).parents("tr").find(".rt_id").text(),
}); });
}); });
@@ -2391,7 +2494,6 @@ else
} }
data = { data = {
reihungstest_id: reihungstest,
prestudentPunkteArr: prestudentPunkteArr, prestudentPunkteArr: prestudentPunkteArr,
gesamtpunkteSetzen: gesamtpunkteSetzen, gesamtpunkteSetzen: gesamtpunkteSetzen,
zuBewerberMachen: zuBewerberMachen, zuBewerberMachen: zuBewerberMachen,
@@ -2450,75 +2552,37 @@ else
}); });
} }
} }
function toggleRtDropdown()
{
if ($("#rtcheckboxes").is(":visible"))
{
$("#rtcheckboxes").hide();
}
else if($("#rtcheckboxes").is(":hidden"))
$("#rtcheckboxes").show();
}
function showSelectedRts()
{
var rtsstr = "";
var first = true;
//var maxeachline = 1;
//console.log($("#rtcheckboxes"));
$("#rtcheckboxes input:checked").each(
function() {
var rt_id = $(this).val();
if (!first)
rtsstr += "<br />";
rtsstr += $("#rtlabel_" + rt_id).text();
first = false;
}
);
if (rtsstr === "")
rtsstr = "-- keine Auswahl --";
$("#rtcheckboxesbtn").html(rtsstr);
}
</script> </script>
<style>
.info
{
color: #0c5460;
background-color: #d1ecf1;
padding: .75rem 1.25rem;
border: 1px solid #bee5eb;;
}
.warning
{
color: #856404;
background-color: #fff3cd;
padding: .75rem 1.25rem;
border: 1px solid #ffeeba;
}
.error
{
color: #721c24;
background-color: #f8d7da;
padding: .75rem 1.25rem;
border: 1px solid #f5c6cb;
}
.loaderIcon
{
border: 8px solid #f3f3f3; /* Light grey */
border-top: 8px solid #3498db; /* Blue */
border-radius: 50%;
width: 30px;
height: 30px;
animation: spin 2s linear infinite;
margin-right: auto;
margin-left: auto;
}
@keyframes spin
{
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.alert > .btn
{
padding: 0 6px;
}
/*** Bootstrap popover ***/
#popover-target label
{
margin: 0 5px;
display: block;
}
#popover-target input
{
margin-right: 5px;
}
#popover-target .disabled
{
color: #ddd;
}
.glyphicon-remove
{
font-size: 150%;
margin: -5px 0;
top: 4px;
}
.ui-autocomplete-loading
{
background: white url("../../skin/images/spinner.gif") right 5px center no-repeat;
}
</style>
</head> </head>
<body> <body>
@@ -2528,12 +2592,66 @@ else
<div class="col-md-6"> <div class="col-md-6">
<form method="POST"> <form method="POST">
<table><tr><td> <table><tr><td>
<table class="table table-bordered" style="margin-bottom: 0"> <table class="table table-bordered" id="paramstbl">
<tr> <tr>
<td style="white-space:nowrap; padding: 10px;"> <td id="rtwaehlen">
Reihungstest wählen: Reihungstest wählen: ';
<SELECT id="reihungstest" name="reihungstest" style="width: 60%"> $selectedrtstr = '';
<OPTION value="">-- keine Auswahl --</OPTION>'; $checkbxstr = '';
$first = true;
//$maxeachline = 1;
foreach ($rtest as $rt)
{
$rtstr = $rt->datum . ' ' . $datum_obj->formatDatum($rt->uhrzeit,'H:i') . ' ' . (isset($stg_arr[$rt->studiengang_kz]) ? $stg_arr[$rt->studiengang_kz] : '') . ' ' . $rt->ort_kurzbz . ' ' . $rt->anmerkung;
$checked = '';
if (isset($reihungstest) && is_array($reihungstest))
{
foreach ($reihungstest as $rttest)
{
if ($rttest === $rt->reihungstest_id)
{
$checked = ' checked';
if (!$first)
$selectedrtstr .= '<br />';
$selectedrtstr .= $rtstr;
$first = false;
break;
}
}
}
/* if ($rt->reihungstest_id == $reihungstest && !$select)
{
//$selected = 'selected';
$select = true;
}
elseif ($prestudent_id == '' && $reihungstest == '' && $rt->datum == date('Y-m-d') && $datum_von == '' && $datum_bis == '' && $studiengang == '' && $semester == '' && !$select)
{
//$selected = 'selected';
$select = true;
}
else
{
$selected = '';
}*/
/* $checkbxstr .= '<input type="checkbox" name="reihungstest[]" id="rt_' . $rt->reihungstest_id . '" value="' . $rt->reihungstest_id . '"' . $checked . ' />';
$checkbxstr .= '<div class="rtchkbox" style="display: inline"> <label for="rt_' . $rt->reihungstest_id . '">' . $rtstr . '</label></div><br />';*/
$checkbxstr .= '<div class="rtchkbox"><input type="checkbox" name="reihungstest[]" id="rt_' . $rt->reihungstest_id . '" value="' . $rt->reihungstest_id . '"' . $checked . ' /></div>';
$checkbxstr .= '<div class="rtchkboxlabel" id="rtlabel_' . $rt->reihungstest_id . '">' . '&nbsp;' . $rtstr . '</div>';
//echo '<OPTION value="' . $rt->reihungstest_id . '" ' . $selected . '>' . $rt->datum . ' ' . $datum_obj->formatDatum($rt->uhrzeit,'H:i') . ' ' . (isset($stg_arr[$rt->studiengang_kz]) ? $stg_arr[$rt->studiengang_kz] : '') . ' ' . $rt->ort_kurzbz . ' ' . $rt->anmerkung . "</OPTION>\n";
}
//var_dump($selectedrtstr);
$btntxt = $selectedrtstr === '' ? '-- keine Auswahl --' : $selectedrtstr;
echo '<button type="button" id="rtcheckboxesbtn">' . $btntxt . '</button>
<div id="rtcheckboxes">';
echo $checkbxstr;
/*echo '<SELECT id="reihungstest" name="reihungstest" style="width: 60%">
<OPTION value="" style="display:none">-- keine Auswahl --</OPTION>';
$selected = ''; $selected = '';
$select = false; $select = false;
foreach ($rtest as $rt) foreach ($rtest as $rt)
@@ -2556,7 +2674,8 @@ else
echo '<OPTION value="' . $rt->reihungstest_id . '" ' . $selected . '>' . $rt->datum . ' ' . $datum_obj->formatDatum($rt->uhrzeit,'H:i') . ' ' . (isset($stg_arr[$rt->studiengang_kz]) ? $stg_arr[$rt->studiengang_kz] : '') . ' ' . $rt->ort_kurzbz . ' ' . $rt->anmerkung . "</OPTION>\n"; echo '<OPTION value="' . $rt->reihungstest_id . '" ' . $selected . '>' . $rt->datum . ' ' . $datum_obj->formatDatum($rt->uhrzeit,'H:i') . ' ' . (isset($stg_arr[$rt->studiengang_kz]) ? $stg_arr[$rt->studiengang_kz] : '') . ' ' . $rt->ort_kurzbz . ' ' . $rt->anmerkung . "</OPTION>\n";
} }
echo '</SELECT></td></tr> echo '</SELECT>';*/
echo '</div></td></tr>
<tr><td> <tr><td>
Studiengang: Studiengang:
<SELECT name="studiengang"> <SELECT name="studiengang">
@@ -2608,20 +2727,20 @@ else
} }
echo '</SELECT>'; echo '</SELECT>';
echo 'von Datum: <INPUT class="datepicker_datum" type="text" name="datum_von" maxlength="10" size="10" value="' . $datum_obj->formatDatum($datum_von, 'd.m.Y') . '" />&nbsp;'; echo '&nbsp;von Datum: <INPUT class="datepicker_datum" type="text" name="datum_von" maxlength="10" size="10" value="' . $datum_obj->formatDatum($datum_von, 'd.m.Y') . '" />&nbsp;';
echo 'bis Datum: <INPUT class="datepicker_datum" type="text" name="datum_bis" maxlength="10" size="10" value="' . $datum_obj->formatDatum($datum_bis, 'd.m.Y') . '" />'; echo 'bis Datum: <INPUT class="datepicker_datum" type="text" name="datum_bis" maxlength="10" size="10" value="' . $datum_obj->formatDatum($datum_bis, 'd.m.Y') . '" />';
echo '</td></tr>'; echo '</td></tr>';
echo '<tr><td>'; echo '<tr><td>';
echo 'PrestudentIn: <INPUT id="prestudent" type="text" name="prestudent_id" size="50" value="' . $prestudent_id . '" placeholder="Name, UID oder Prestudent_id eingeben" onInput="document.getElementById(\'reihungstest\').value=\'\'" onkeyup="document.getElementById(\'prestudent_id\').value=this.value"/><input type="hidden" id="prestudent_id" name="prestudent_id" value="' . $prestudent_id . '" />'; echo 'PrestudentIn: <INPUT id="prestudent" type="text" name="prestudent_id" size="50" value="' . $prestudent_id . '" placeholder="Name, UID oder Prestudent_id eingeben" onInput="document.getElementById(\'reihungstest\').value=\'\'" onkeyup="document.getElementById(\'prestudent_id\').value=this.value"/><input type="hidden" id="prestudent_id" name="prestudent_id" value="' . $prestudent_id . '" />';
echo '</td></tr> echo '</td></tr>
</table></td><td style="vertical-align: middle; padding: 0 5px; border-right: 1px solid #ddd; border-top: 1px solid #ddd; border-bottom: 1px solid #ddd">'; </table></td><td id="auswertencell">';
echo '<INPUT type="submit" class="btn btn-primary" value="Anzeigen" id="auswertenButton"/><br><br>'; echo '<INPUT type="submit" class="btn btn-primary" value="Anzeigen" id="auswertenButton"/><br><br>';
echo '<a href="auswertung_fhtw.php?studiengang=' . $studiengang . ' echo '<a href="auswertung_fhtw.php?studiengang=' . $studiengang . '
&semester=' . $semester . ' &semester=' . $semester . '
&datum_von=' . $datum_von . ' &datum_von=' . $datum_von . '
&datum_bis=' . $datum_bis . ' &datum_bis=' . $datum_bis . '
&prestudent_id=' . $prestudent_id . ' &prestudent_id=' . $prestudent_id . '
&reihungstest=' . $reihungstest . ' &' . http_build_query(array('reihungstest' => $reihungstest)) . '
&orgform_kurzbz=' . $orgform_kurzbz . ' &orgform_kurzbz=' . $orgform_kurzbz . '
&format=xls" &format=xls"
class="btn btn-primary" class="btn btn-primary"
@@ -2673,22 +2792,26 @@ else
datum_von=' . $datum_von . '& datum_von=' . $datum_von . '&
datum_bis=' . $datum_bis . '& datum_bis=' . $datum_bis . '&
prestudent_id=' . $prestudent_id . '& prestudent_id=' . $prestudent_id . '&
reihungstest=' . $reihungstest . '"> &' . http_build_query(array('reihungstest' => $reihungstest)) . '">
<div class="row" style="">'; <div class="row">';
echo '<div class="col-xs-12">'; echo '<div class="col-xs-12">';
$disabledZuteilen = true;
$disabledTestende = true;
$rt_id_val = '';
if ($reihungstest != '') if ($reihungstest != '')
{ {
$disabled = false; $disabledTestende = false;
} if (count($reihungstest) == 1)
else {
{ $rt_id_val = $reihungstest[0];
$disabled = true; $disabledZuteilen = false;
}
} }
// Button um Assistenz über Testende zu informieren // Button um Assistenz über Testende zu informieren
// Nur aktiv, wenn Reihungstest ausgewählt // Nur aktiv, wenn Reihungstest ausgewählt
if ($rechte->isBerechtigtMultipleOe('lehre/reihungstestAufsicht', $berechtigteOes, 'su')) if ($rechte->isBerechtigtMultipleOe('lehre/reihungstestAufsicht', $berechtigteOes, 'su'))
{ {
echo '<button '.($disabled ? 'disabled' : '').' type="button" class="btn btn-primary" onclick="testende('.$reihungstest.')" title="'.($disabled ? 'Nur aktiv bei ausgewähltem Reihungstesttermin' : 'Informiert die Assistenz über das Testende (alle markierten)').'">Testende...</button>'; echo '<button '.($disabledTestende ? 'disabled' : '').' type="button" class="btn btn-primary" onclick="testende()" title="'.($disabledTestende ? 'Nur aktiv bei ausgewähltem Reihungstesttermin' : 'Informiert die Assistenz über das Testende (alle markierten)').'">Testende...</button>';
} }
// Input um Personen hinzuzufügen // Input um Personen hinzuzufügen
@@ -2696,13 +2819,13 @@ else
if ($rechte->isBerechtigt('lehre/reihungstestAufsicht', null, 'sui')) if ($rechte->isBerechtigt('lehre/reihungstestAufsicht', null, 'sui'))
{ {
echo ' echo '
<div class="input-group" style="margin-left: 10px"> <div class="input-group" id="addpers">
<input '.($disabled ? 'disabled' : '').' type="text" maxlength="128" id="zuteilungAutocomplete" class="form-control" placeholder="Person zuteilen" title="'.($disabled ? 'Nur aktiv bei ausgewähltem Reihungstesttermin' : '').'"> <input '.($disabledZuteilen ? 'disabled' : '').' type="text" maxlength="128" id="zuteilungAutocomplete" class="form-control" placeholder="Person zuteilen" title="'.($disabledZuteilen ? 'Nur aktiv bei genau einem ausgewählten Reihungstesttermin' : '').'">
<input type="hidden" name="prestudentToAdd" id="zuteilungAutocompleteHidden" value=""> <input type="hidden" name="prestudentToAdd" id="zuteilungAutocompleteHidden" value="">
<input type="hidden" name="method" value="addPerson"> <input type="hidden" name="method" value="addPerson">
<input type="hidden" name="reihungstest_id" id="zuteilungAutocompleteHidden" value="' . $reihungstest . '"> <input type="hidden" name="reihungstest_id" id="zuteilungAutocompleteHidden" value="' . $rt_id_val . '">
<span class="input-group-btn"> <span class="input-group-btn">
<button '.($disabled ? 'disabled' : '').' type="submit" class="btn btn-primary" name="addPersonToTestButton" value="Zuteilen" title="'.($disabled ? 'Nur aktiv bei ausgewähltem Reihungstesttermin' : '').'"> <button '.($disabledZuteilen ? 'disabled' : '').' type="submit" class="btn btn-primary" name="addPersonToTestButton" value="Zuteilen" title="'.($disabledZuteilen ? 'Nur aktiv bei genau einem ausgewählten Reihungstesttermin' : '').'">
Zuteilen Zuteilen
</button> </button>
</span> </span>
@@ -2711,15 +2834,15 @@ else
} }
if ($rechte->isBerechtigt('lehre/reihungstestAufsicht', null, 'suid')) if ($rechte->isBerechtigt('lehre/reihungstestAufsicht', null, 'suid'))
{ {
echo '<button type="button" style="margin-left: 10px" class="btn btn-warning" id="toggleDelete">Löschoptionen anzeigen...</button>'; echo '<button type="button" class="btn btn-warning" id="toggleDelete">Löschoptionen anzeigen...</button>';
} }
echo '<br><br>'; echo '<br><br>';
echo '<button type="button" class="btn btn-primary btn-xs" onclick="sendMail()" id="mailSendButton">Mail an alle senden</button>'; echo '<button type="button" class="btn btn-primary btn-xs" onclick="sendMail()" id="mailSendButton">Mail an alle senden</button>';
echo '<button type="button" class="btn btn-primary btn-xs" onclick="checkAllWithResult()" id="" style="margin-left: 10px">Alle mit Ergebnis markieren</button>'; echo '<button type="button" class="btn btn-primary btn-xs" onclick="checkAllWithResult()" id="checkAllResButton">Alle mit Ergebnis markieren</button>';
echo '<button type="button" class="btn btn-primary btn-xs" id="showUebertragenOptionsButton" style="margin-left: 10px">Punkte ins FAS übertragen...</button>'; echo '<button type="button" class="btn btn-primary btn-xs" id="showUebertragenOptionsButton">Punkte ins FAS übertragen...</button>';
echo '</div></div></form>'; echo '</div></div></form>';
echo ' <form class="form" role="form"> echo ' <form class="form" role="form">
<div class="panel panel-default" id="uebertragenOptions" style="display: none"> <div class="panel panel-default hiddenEl" id="uebertragenOptions">
<div class="panel-body"> <div class="panel-body">
<div class="checkbox"> <div class="checkbox">
<label><input type="checkbox" id="uebertragenOptionGesamtpunkte" value="">"Gesamtpunkte" und "Reihungsverfahren absolviert" setzen</label> <label><input type="checkbox" id="uebertragenOptionGesamtpunkte" value="">"Gesamtpunkte" und "Reihungsverfahren absolviert" setzen</label>
@@ -2727,7 +2850,7 @@ else
<div id="div_checkbox_bewerber" class="checkbox"> <div id="div_checkbox_bewerber" class="checkbox">
<label class="checkbox_bewerber"><input type="checkbox" id="uebertragenOptionBewerber" value="">Zu Bewerber machen</label> <label class="checkbox_bewerber"><input type="checkbox" id="uebertragenOptionBewerber" value="">Zu Bewerber machen</label>
</div> </div>
<button type="button" class="btn btn-success" onclick="punkteUebertragen('.$reihungstest.')" id="punkteUebertragenButton" style="margin-left: 10px">Jetzt übertragen</button> <button type="button" class="btn btn-success" onclick="punkteUebertragen()" id="punkteUebertragenButton">Jetzt übertragen</button>
</div> </div>
</div> </div>
</form>'; </form>';
@@ -2737,25 +2860,32 @@ else
echo ' '; echo ' ';
$displayWarning = false; $displayWarning = false;
$displayInfo = false; $displayInfo = false;
if (isset($rtest[$reihungstest]) && $rtest[$reihungstest]->freigeschaltet === false) $frsch_rt_id = '';
if (isset($reihungstest) && is_array($reihungstest) && count($reihungstest) == 1)
{ {
$displayWarning = true; $frsch_rt_id = $reihungstest[0];
$displayInfo = false; if (isset($rtest[$frsch_rt_id]))
{
if ($rtest[$frsch_rt_id]->freigeschaltet === false)
{
$displayWarning = true;
$displayInfo = false;
}
elseif ($rtest[$frsch_rt_id]->freigeschaltet === true)
{
$displayWarning = false;
$displayInfo = true;
}
}
} }
elseif (isset($rtest[$reihungstest]) && $rtest[$reihungstest]->freigeschaltet === true) echo ' <div id="freischaltenWarning" class="alert alert-warning'.($displayWarning ? '' : ' hiddenEl').'">Um den Reihungstest starten zu können, muss dieser freigeschaltet werden
{ <button class="btn btn-warning" onclick="freischalten('.$frsch_rt_id.', true)">Jetzt freischalten</button>
$displayWarning = false;
$displayInfo = true;
}
echo ' <div id="freischaltenWarning" class="alert alert-warning" style="display: '.($displayWarning ? 'block' : 'none').'">Um den Reihungstest starten zu können, muss dieser freigeschaltet werden
<button class="btn btn-warning" onclick="freischalten('.$reihungstest.', true)">Jetzt freischalten</button>
</div>'; </div>';
echo ' <div id="freischaltenInfo" class="alert alert-info" style="display: '.($displayInfo ? 'block' : 'none').'">Dieser Reihungstest ist freigeschaltet. Bitte sperren Sie ihn nach dem Test echo ' <div id="freischaltenInfo" class="alert alert-info'.($displayInfo ? '' : ' hiddenEl').'">Dieser Reihungstest ist freigeschaltet. Bitte sperren Sie ihn nach dem Test
<button class="btn btn-info" onclick="freischalten('.$reihungstest.', false)">Jetzt sperren</button> <button class="btn btn-info" onclick="freischalten('.$frsch_rt_id.', false)">Jetzt sperren</button>
</div>'; </div>';
if ($messageSuccess != '' || $messageError != '') if ($messageSuccess != '' || $messageError != '')
{ {
$display = '';
if ($messageSuccess != '') if ($messageSuccess != '')
{ {
$class = 'class="alert alert-success"'; $class = 'class="alert alert-success"';
@@ -2769,12 +2899,11 @@ else
} }
else else
{ {
$display = 'style="display: none"'; $class = 'class="alert alert-success hiddenEl"';
$class = 'class="alert alert-success"';
$message = ''; $message = '';
} }
echo ' <div id="msgbox" '.$class.' '.$display.'>'.$message.'</div>'; echo ' <div id="msgbox" '.$class.'>'.$message.'</div>';
echo ' <div class="loaderIcon center-block" style="display: none; margin-top: 10px"></div>'; echo ' <div class="loaderIcon center-block"></div>';
echo ' </div>'; echo ' </div>';
echo '</div>'; echo '</div>';
@@ -2785,7 +2914,7 @@ else
<table class="tablesorter table-bordered tablesorter-default" id="auswertung_table"> <table class="tablesorter table-bordered tablesorter-default" id="auswertung_table">
<thead> <thead>
<tr> <tr>
<th rowspan="2" style="width: 30px"> <th rowspan="2" class="toggletblchkboxcol">
<nobr> <nobr>
<a href="#" data-toggle="checkboxes" data-action="toggle" id="toggle_table"><img src="../../skin/images/checkbox_toggle.png" name="toggle"></a> <a href="#" data-toggle="checkboxes" data-action="toggle" id="toggle_table"><img src="../../skin/images/checkbox_toggle.png" name="toggle"></a>
<a href="#" data-toggle="checkboxes" data-action="uncheck" id="uncheck_table"><img src="../../skin/images/checkbox_uncheck.png" name="toggle"></a> <a href="#" data-toggle="checkboxes" data-action="uncheck" id="uncheck_table"><img src="../../skin/images/checkbox_uncheck.png" name="toggle"></a>
@@ -2796,18 +2925,19 @@ else
<th rowspan="2">Nachname</th> <th rowspan="2">Nachname</th>
<th rowspan="2">Vornamen</th> <th rowspan="2">Vornamen</th>
<th rowspan="2">GebDatum</th> <th rowspan="2">GebDatum</th>
<th rowspan="2" style="width: 20px">G</th> <th rowspan="2" class="smallcol">G</th>
<th rowspan="2">ZGV</th> <th rowspan="2">ZGV</th>
<th rowspan="2">ZGV MA</th> <th rowspan="2">ZGV MA</th>
<!--<th rowspan="2">Registriert</th>--> <!--<th rowspan="2">Registriert</th>-->
<th rowspan="2">STG</th> <th rowspan="2">STG</th>
<!--<th rowspan="2">Studiengang</th>--> <!--<th rowspan="2">Studiengang</th>-->
<th title="Semester" rowspan="2" style="width: 20px">S</th> <th title="Semester" rowspan="2" class="smallcol">S</th>
<th title="Organisationsform" rowspan="2">OF</th> <th title="Organisationsform" rowspan="2">OF</th>
<th title="Priorität" rowspan="2" style="width: 20px">Prio</th> <th title="Priorität" rowspan="2" class="smallcol">Prio</th>
<th rowspan="2">Raum</th> <th rowspan="2">Raum</th>
<th title="Teilgenommen" rowspan="2">TG</th> <th title="Teilgenommen" rowspan="2">TG</th>
<th style="display: none"></th> <th title="Reihungstest" rowspan="2" class="hiddenEl">Reihungstest</th>
<th class="hiddenEl"></th>
<th colspan="3">Gesamt</th>'; <th colspan="3">Gesamt</th>';
foreach ($gebiet AS $gbt) foreach ($gebiet AS $gbt)
@@ -2817,7 +2947,7 @@ else
echo '</tr> echo '</tr>
<tr> <tr>
<th style="display: none"></th> <th class="hiddenEl"></th>
<th><small>Punkte</small></th> <th><small>Punkte</small></th>
<th><small>Punkte mit Offset</small></th> <th><small>Punkte mit Offset</small></th>
<th><small>Prozent (gewichtet)</small></th>'; <th><small>Prozent (gewichtet)</small></th>';
@@ -2841,13 +2971,13 @@ else
$inaktiv = 'text-muted'; $inaktiv = 'text-muted';
} }
echo "<tr id='row_".$erg->prestudent_id."'> echo "<tr id='row_".$erg->prestudent_id."'>
<td style='text-align: center' class='".$inaktiv."'> <td class='textcentered ".$inaktiv."'>
<input type='checkbox' id='checkbox_$erg->prestudent_id' class='prestudentCheckbox' name='$erg->prestudent_id'> <input type='checkbox' id='checkbox_$erg->prestudent_id' class='prestudentCheckbox' name='$erg->prestudent_id'>
</td> </td>
<!--<td>$erg->prestudent_id <a href=".APP_ROOT."cis/testtool/admin/auswertung_detail_prestudent.php?prestudent_id=$erg->prestudent_id target='blank'>Details</a></td>--> <!--<td>$erg->prestudent_id <a href=".APP_ROOT."cis/testtool/admin/auswertung_detail_prestudent.php?prestudent_id=$erg->prestudent_id target='blank'>Details</a></td>-->
<td class='".$inaktiv."'>$erg->prestudent_id</td> <td class='".$inaktiv."'>$erg->prestudent_id</td>
<td class='clm_email ".$inaktiv."'><a href='mailto:$erg->email'><span class='glyphicon glyphicon-envelope'></span></a></td> <td class='clm_email ".$inaktiv."'><a href='mailto:$erg->email'><span class='glyphicon glyphicon-envelope'></span></a></td>
<td class='".$inaktiv."'>".$erg->nachname." ".($erg->qualifikationskurs == true ? "<span title='Qualifikationskurs' style='color: red'>(Q)</span>" : "")."</td> <td class='".$inaktiv."'>".$erg->nachname." ".($erg->qualifikationskurs == true ? "<span title='Qualifikationskurs' class='redcolor'>(Q)</span>" : "")."</td>
<td class='".$inaktiv."'>$erg->vorname</td> <td class='".$inaktiv."'>$erg->vorname</td>
<td class='".$inaktiv."'>" . $datum_obj->formatDatum($erg->gebdatum, 'd.m.Y') . "</td> <td class='".$inaktiv."'>" . $datum_obj->formatDatum($erg->gebdatum, 'd.m.Y') . "</td>
<td class='".$inaktiv."'>$erg->geschlecht</td> <td class='".$inaktiv."'>$erg->geschlecht</td>
@@ -2860,18 +2990,19 @@ else
<td class='".$inaktiv."'>$erg->orgform</td> <td class='".$inaktiv."'>$erg->orgform</td>
<td class='".$inaktiv."'>$erg->prioritaet</td> <td class='".$inaktiv."'>$erg->prioritaet</td>
<td class='".$inaktiv."'>$erg->raum</td> <td class='".$inaktiv."'>$erg->raum</td>
<td class='".$inaktiv."'>".($erg->teilgenommen == true ? "<span class='glyphicon glyphicon-ok'></span>" : "")."</td>"; <td class='".$inaktiv."'>".($erg->teilgenommen == true ? "<span class='glyphicon glyphicon-ok'></span>" : "")."</td>
<td class='rt_id hiddenEl'>$erg->reihungstest_id</td>";
//<td>$erg->idnachweis</td> //<td>$erg->idnachweis</td>
$gesamtprozent = ($erg->gesamt != '' ? number_format($erg->gesamt, 2, ',', ' ') . ' %': ''); $gesamtprozent = ($erg->gesamt != '' ? number_format($erg->gesamt, 2, ',', ' ') . ' %': '');
echo '<td style="display: none">'. $gesamtprozent .'</td>'; echo '<td class="hiddenEl">'. $gesamtprozent .'</td>';
echo ' <td style="text-align: right; padding-right: 3px" class="punkte '.$inaktiv.'" nowrap>'; echo ' <td class="punkte rightaligned '.$inaktiv.'" nowrap>';
// Punkte können nur gelöscht werden, solange "Zum Reihungstest angetreten" nicht gesetzt ist // Punkte können nur gelöscht werden, solange "Zum Reihungstest angetreten" nicht gesetzt ist
if ($erg->teilgenommen == false || $rechte->isBerechtigt('admin')) if ($erg->teilgenommen == false || $rechte->isBerechtigt('admin'))
{ {
echo ' <span class="punkteSpan"><b>' . ($erg->gesamtpunkte != '' ? number_format($erg->gesamtpunkte, 2, ',', ' ') : '') . '</b></span> echo ' <span class="punkteSpan"><b>' . ($erg->gesamtpunkte != '' ? number_format($erg->gesamtpunkte, 2, ',', ' ') : '') . '</b></span>
<span class="deleteSpan" style="display: none"> <span class="deleteSpan hiddenEl">
<a href="#" onclick="deleteAllResults(' . $erg->prestudent_id . ', \'' . $erg->vorname . ' ' . $erg->nachname . '\');"> <a href="#" onclick="deleteAllResults(' . $erg->prestudent_id . ', \'' . $erg->vorname . ' ' . $erg->nachname . '\');">
<span class="glyphicon glyphicon-remove" style="color: #c82333;"></span> <span class="glyphicon glyphicon-remove darkredcolor"></span>
</a> </a>
</span>'; </span>';
} }
@@ -2881,13 +3012,13 @@ else
} }
echo ' </td>'; echo ' </td>';
echo ' <td style="text-align: right; padding-right: 3px" class="col_gesamtpunkte_mit_offset '.$inaktiv.'" nowrap> echo ' <td class="col_gesamtpunkte_mit_offset rightaligned '.$inaktiv.'" nowrap>
<b>' . ($erg->gesamtoffsetpunkte != '' ? number_format($erg->gesamtoffsetpunkte, 2, ',', ' ') : '') . '</b> <b>' . ($erg->gesamtoffsetpunkte != '' ? number_format($erg->gesamtoffsetpunkte, 2, ',', ' ') : '') . '</b>
</td>'; </td>';
echo ' <td style="text-align: right; padding-right: 3px" class="col_gesamtpunkte punkte '.$inaktiv.'" nowrap> echo ' <td class="col_gesamtpunkte punkte rightaligned '.$inaktiv.'" nowrap>
<b>' . $gesamtprozent . '</b> <span class="erg_gesamt_visible"><b>' . $gesamtprozent . '</b></span>
<span class="erg_gesamt" style="display: none">'.$erg->gesamt.'</span> <span class="erg_gesamt hiddenEl">'.$erg->gesamt.'</span>
</td>'; </td>';
foreach ($gebiet AS $gbt) foreach ($gebiet AS $gbt)
@@ -2895,24 +3026,21 @@ else
if (isset($erg->gebiet[$gbt->gebiet_id])) if (isset($erg->gebiet[$gbt->gebiet_id]))
{ {
// 0-Werte hervorheben // 0-Werte hervorheben
$zerovalclass = '';
if ($erg->gebiet[$gbt->gebiet_id]->punkte != '' && $erg->gebiet[$gbt->gebiet_id]->punkte == '0') if ($erg->gebiet[$gbt->gebiet_id]->punkte != '' && $erg->gebiet[$gbt->gebiet_id]->punkte == '0')
{ {
$style = 'style="color:#C10000; text-align: right; padding-right: 3px"'; $zerovalclass = ' zerovalcolor';
}
else
{
$style = 'style="text-align: right; padding-right: 3px"';
} }
echo '<td ' . $style . ' class="pst_' . $erg->prestudent_id . '_gbt_' . $gbt->gebiet_id . ' punkte '.$inaktiv.'" nowrap> echo '<td class="rightaligned ' . $zerovalclass . 'pst_' . $erg->prestudent_id . '_gbt_' . $gbt->gebiet_id . ' punkte '.$inaktiv.'" nowrap>
'; ';
// Punkte können nur gelöscht werden, solange "Zum Reihungstest angetreten" nicht gesetzt ist // Punkte können nur gelöscht werden, solange "Zum Reihungstest angetreten" nicht gesetzt ist
if ($erg->teilgenommen == false || $rechte->isBerechtigt('admin')) if ($erg->teilgenommen == false || $rechte->isBerechtigt('admin'))
{ {
echo ' <span class="punkteSpan">' . ($erg->gebiet[$gbt->gebiet_id]->punkte != '' ? number_format($erg->gebiet[$gbt->gebiet_id]->punkte, 2, ',', ' ') : '') . '</span> echo ' <span class="punkteSpan">' . ($erg->gebiet[$gbt->gebiet_id]->punkte != '' ? number_format($erg->gebiet[$gbt->gebiet_id]->punkte, 2, ',', ' ') : '') . '</span>
<span class="deleteSpan" style="display: none"> <span class="deleteSpan hiddenEl">
<a href="#" onclick="deleteResult(' . $erg->prestudent_id . ',' . $gbt->gebiet_id . ', \'' . $erg->vorname . ' ' . $erg->nachname . '\', \'' . $gbt->name . '\');"> <a href="#" onclick="deleteResult(' . $erg->prestudent_id . ',' . $gbt->gebiet_id . ', \'' . $erg->vorname . ' ' . $erg->nachname . '\', \'' . $gbt->name . '\');">
<span class="glyphicon glyphicon-remove" style="color: #e0a800;"></span> <span class="glyphicon glyphicon-remove darkyellowcolor"></span>
</a> </a>
</span>'; </span>';
} }
@@ -2921,8 +3049,8 @@ else
echo ' <span class="">' . ($erg->gebiet[$gbt->gebiet_id]->punkte != '' ? number_format($erg->gebiet[$gbt->gebiet_id]->punkte, 2, ',', ' ') : '') . '</span>'; echo ' <span class="">' . ($erg->gebiet[$gbt->gebiet_id]->punkte != '' ? number_format($erg->gebiet[$gbt->gebiet_id]->punkte, 2, ',', ' ') : '') . '</span>';
} }
echo '</td>'; echo '</td>';
echo '<td ' . $style . ' class="pst_' . $erg->prestudent_id . '_gbt_' . $gbt->gebiet_id . ' punkte '.$inaktiv.'" nowrap>' . ($erg->gebiet[$gbt->gebiet_id]->punktemitoffset != '' ? number_format($erg->gebiet[$gbt->gebiet_id]->punktemitoffset, 2, ',', ' ') : '') . '</td>'; echo '<td class="rightaligned ' . $zerovalclass . 'pst_' . $erg->prestudent_id . '_gbt_' . $gbt->gebiet_id . ' punkte '.$inaktiv.'" nowrap>' . ($erg->gebiet[$gbt->gebiet_id]->punktemitoffset != '' ? number_format($erg->gebiet[$gbt->gebiet_id]->punktemitoffset, 2, ',', ' ') : '') . '</td>';
echo '<td ' . $style . ' class="pst_' . $erg->prestudent_id . '_gbt_' . $gbt->gebiet_id . ' punkte '.$inaktiv.'" nowrap>' . ($erg->gebiet[$gbt->gebiet_id]->prozent != '' ? number_format($erg->gebiet[$gbt->gebiet_id]->prozent, 2, ',', ' ') . ' %' : '') . '</td>'; echo '<td class="rightaligned ' . $zerovalclass . 'pst_' . $erg->prestudent_id . '_gbt_' . $gbt->gebiet_id . ' punkte '.$inaktiv.'" nowrap>' . ($erg->gebiet[$gbt->gebiet_id]->prozent != '' ? number_format($erg->gebiet[$gbt->gebiet_id]->prozent, 2, ',', ' ') . ' %' : '') . '</td>';
} }
else else
{ {