Compare commits

...

1 Commits

Author SHA1 Message Date
ma0048 0bc1a6b9d3 ku pruefungen
- min/max teilnehmer editierbar
- stornierte pruefungen vom kollisionscheck ausgeschlossen
- delete von GET auf POST umgestellt
- lektor kann studierende auch bei bestehender kollision zuweisen
2026-01-29 11:24:49 +01:00
8 changed files with 114 additions and 55 deletions
+13 -2
View File
@@ -565,7 +565,7 @@ function openDialog(lehrveranstaltung_id, termin_id, lvBezeichnung, terminVon, t
* @param {type} termin_id ID des Prüfungstermines
* @returns {undefined}
*/
function saveAnmeldung(lehrveranstaltung_id, termin_id)
function saveAnmeldung(lehrveranstaltung_id, termin_id, force = false)
{
var uid = $("#anmeldung_hinzufuegen_uid").val();
if(lehrveranstaltung_id === undefined)
@@ -602,10 +602,21 @@ function saveAnmeldung(lehrveranstaltung_id, termin_id)
uid: uid,
studienverpflichtung_id: studienverpflichtung_id,
studiengang_kz: studiengang_kz,
ects: ects
ects: ects,
force: force
},
error: loadError,
success: function(data){
if (data?.confirm === 'true')
{
if (confirm(data.errormsg))
{
saveAnmeldung(lehrveranstaltung_id, termin_id, true);
}
return;
}
if(data.error === 'false')
{
messageBox("message", data.result, "green", "highlight", 10000);
@@ -394,7 +394,7 @@ function loadTermine()
*/
function saveAnmeldung($aktStudiensemester = null, $uid = null)
{
global $p;
global $p, $rechte;
$termin = new pruefungstermin($_REQUEST["termin_id"]);
$pruefung = new pruefung();
$lehrveranstaltung = new lehrveranstaltung($_REQUEST["lehrveranstaltung_id"]);
@@ -404,6 +404,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
$studienverpflichtung_id = filter_input(INPUT_POST, "studienverpflichtung_id");
$studiengang_kz = filter_input(INPUT_POST, "studiengang_kz");
$ects = filter_input(INPUT_POST, "ects");
$force = filter_input(INPUT_POST, "force", FILTER_VALIDATE_BOOLEAN);
//Defaulteinstellung für Anzahlprüfungsversuche (wird durch Addon "ktu" überschrieben)
$maxAnzahlVersuche = 0;
@@ -557,11 +558,28 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
$ects_verwendet += $lehrveranstaltung->ects;
$datum = new datum();
if(($datum->between($termin->von, $termin->bis, $temp->von)) || ($datum->between($termin->von, $termin->bis, $temp->bis)))
$kollision = ($datum->between($termin->von, $termin->bis, $temp->von)) || ($datum->between($termin->von, $termin->bis, $temp->bis));
if ($kollision)
{
$data['result'][$temp->pruefungstermin_id] = "true";
$data['error'] = 'true';
$data['errormsg'] = $p->t('pruefung/kollisionMitAndererAnmeldung');
$is_berechtigt = $rechte->isBerechtigt('lehre/pruefungsanmeldungAdmin');
if ($is_berechtigt)
{
if (!$force)
{
$data['result'][$temp->pruefungstermin_id] = "true";
$data['error'] = 'true';
$data['confirm'] = 'true';
$data['errormsg'] = $p->t('pruefung/kollisionMitAndererAnmeldungForce');
}
}
else
{
$data['result'][$temp->pruefungstermin_id] = "true";
$data['error'] = 'true';
$data['errormsg'] = $p->t('pruefung/kollisionMitAndererAnmeldung');
}
}
}
@@ -202,9 +202,9 @@ else if(isset($_GET["id"]) && $_GET["id"]!= null && isset($_GET["method"]) && $_
}
$method = $_GET["method"];
}
else if(isset($_GET["id"]) && $_GET["id"]!= null && isset($_GET["method"]) && $_GET["method"]=="delete")
else if(isset($_POST["delete"]))
{
$pruefungsfenster_id = $_GET["id"];
$pruefungsfenster_id = $_POST["delete"];
$pruefungsfenster = new pruefungsfenster();
$pruefungsfenster->load($pruefungsfenster_id);
@@ -226,7 +226,7 @@ else if(isset($_GET["id"]) && $_GET["id"]!= null && isset($_GET["method"]) && $_
{
echo $p->t('pruefung/pruefungsfensterKonnteNichtGeloeschtWerdenDaPruefungen');
}
$method = $_GET["method"];
$method = 'delete';
}
else
{
@@ -394,39 +394,41 @@ else
if(!empty($prfFenster->result)){
?>
<table class="tablesorter" id="prfTable">
<thead>
<tr>
<th><?php echo $p->t('global/studiensemester'); ?></th>
<th><?php echo $p->t('global/organisationseinheit'); ?></th>
<th><?php echo $p->t('pruefung/start'); ?></th>
<th><?php echo $p->t('pruefung/ende'); ?></th>
<th><?php echo $p->t('global/bearbeiten'); ?></th>
<th><?php echo $p->t('global/loeschen'); ?></th>
</tr>
</thead>
<tbody>
<?php
$organisationseinheit = new organisationseinheit();
foreach ($prfFenster->result as $result)
{
if(in_array($result->oe_kurzbz, $oe))
<form method="POST" action="pruefungsfenster_anlegen.php">
<table class="tablesorter" id="prfTable">
<thead>
<tr>
<th><?php echo $p->t('global/studiensemester'); ?></th>
<th><?php echo $p->t('global/organisationseinheit'); ?></th>
<th><?php echo $p->t('pruefung/start'); ?></th>
<th><?php echo $p->t('pruefung/ende'); ?></th>
<th><?php echo $p->t('global/bearbeiten'); ?></th>
<th><?php echo $p->t('global/loeschen'); ?></th>
</tr>
</thead>
<tbody>
<?php
$organisationseinheit = new organisationseinheit();
foreach ($prfFenster->result as $result)
{
$organisationseinheit->load($result->oe_kurzbz);
echo
'<tr>
<td>'.$result->studiensemester_kurzbz.'</td>
<td>'.$organisationseinheit->organisationseinheittyp_kurzbz." ".$organisationseinheit->bezeichnung.'</td>
<td>'.$result->start.'</td>
<td>'.$result->ende.'</td>
<td><a href="pruefungsfenster_anlegen.php?method=update&id='.$result->pruefungsfenster_id.'">'.$p->t('global/bearbeiten').'</a></td>
<td><a href="pruefungsfenster_anlegen.php?method=delete&id='.$result->pruefungsfenster_id.'">'. $p->t('global/loeschen').'</a></td>
</tr>';
if(in_array($result->oe_kurzbz, $oe))
{
$organisationseinheit->load($result->oe_kurzbz);
echo
'<tr>
<td>'.$result->studiensemester_kurzbz.'</td>
<td>'.$organisationseinheit->organisationseinheittyp_kurzbz." ".$organisationseinheit->bezeichnung.'</td>
<td>'.$result->start.'</td>
<td>'.$result->ende.'</td>
<td><a href="pruefungsfenster_anlegen.php?method=update&id='.$result->pruefungsfenster_id.'">'.$p->t('global/bearbeiten').'</a></td>
<td><button type="submit" name="delete" value="'. $result->pruefungsfenster_id .'">'. $p->t('global/loeschen') .'</button></td>
</tr>';
}
}
}
?>
</tbody>
</table>
?>
</tbody>
</table>
</form>
<?php
}
else
@@ -654,7 +654,7 @@ function checkCollision($uid, $beginn, $ende)
{
$collision = false;
$pruefung = new pruefungCis();
$pruefung->getAllPruefungen($uid);
$pruefung->getAllPruefungen($uid, false);
$datum = new datum();
foreach($pruefung->result as $prf)
{
@@ -56,18 +56,24 @@ $lehrveranstaltung->loadLVAfromMitarbeiter(0, $uid, $studiensemester->getaktorNe
if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('lehre/pruefungsterminAdmin'))
die('Sie haben keine Berechtigung für diese Seite');
if (!ctype_digit($_GET['termin_id']))
die('Wrong Parameter');
else
$termin_id = $_GET['termin_id'];
if (isset($_GET["speichern"]))
if (isset($_GET['termin_id']))
{
if (!ctype_digit($_GET['termin_id']))
die('Wrong Parameter');
$termin_id = $_GET['termin_id'];
}
else if (isset($_POST["speichern"]))
{
$termin_id = $_POST['termin_id'];
$prfgtermin = new pruefungstermin($termin_id);
$von = $_GET["datum"]." ".$_GET["vonzeit"];
$bis = $_GET["datum"]." ".$_GET["biszeit"];
$von = $_POST["datum"]." ".$_POST["vonzeit"];
$bis = $_POST["datum"]." ".$_POST["biszeit"];
$prfgtermin->von = $von;
$prfgtermin->bis = $bis;
$prfgtermin->teilnehmer_min = $_POST["terminmin"];
$prfgtermin->teilnehmer_max = $_POST["terminmax"];
$prfgtermin->save();
}
@@ -110,6 +116,8 @@ $datum = explode(" ", $prfgtermin->von)[0];
$vonzeit = substr(explode(" ", $prfgtermin->von)[1],0,5);
$biszeit = substr(explode(" ", $prfgtermin->bis)[1],0,5);
$pruefung_id = $prfgtermin->pruefung_id;
$teilnehmer_min = $prfgtermin->teilnehmer_min;
$teilnehmer_max = $prfgtermin->teilnehmer_max;
$pruefung = new pruefungCis($pruefung_id);
$pruefung->getLehrveranstaltungenByPruefung();
@@ -178,7 +186,7 @@ foreach ($anmeldungen as $row)
</head>
<body style="padding-top:20px">
<center>
<form name="change_termin" action="./pruefungstermin_aendern.php" method="GET">
<form name="change_termin" action="./pruefungstermin_aendern.php" method="POST">
<table>
<tr>
<td><?php echo $p->t('global/lehrveranstaltung'); ?></td>
@@ -196,6 +204,15 @@ foreach ($anmeldungen as $row)
<td><?php echo $p->t('global/bis'); ?></td>
<td><input type="text" name="biszeit" value="<?php echo $biszeit ?>" maxlength="5"></td>
</tr>
<tr>
<td><?php echo $p->t('pruefung/pruefungMinTeilnehmer'); ?></td>
<td>
<input type="number" name="terminmin" placeholder="0" min="0" value="<?php echo $teilnehmer_min; ?>"></td>
</tr>
<tr>
<td><?php echo $p->t('pruefung/pruefungMaxTeilnehmer'); ?></td>
<td><input type="number" name="terminmax" placeholder="0" min="0" value="<?php echo $teilnehmer_max; ?>"></td>
</tr>
<tr>
<td></td>
<td>
+13 -4
View File
@@ -525,7 +525,11 @@ class pruefungCis extends basis_db
return false;
}
$qry = 'UPDATE campus.tbl_pruefung SET storniert=true WHERE pruefung_id='.$this->db_add_param($pruefung_id).';';
$qry = 'UPDATE campus.tbl_pruefung
SET storniert=true,
updatevon='.$this->db_add_param($this->updatevon).',
updateamum= now()
WHERE pruefung_id='.$this->db_add_param($pruefung_id).';';
if(!$this->db_query($qry))
{
@@ -706,13 +710,18 @@ class pruefungCis extends basis_db
* @param String $mitarbeiter_uid UID des Mitarbeiters (optional)
* @return boolean
*/
public function getAllPruefungen($mitarbeiter_uid = NULL)
public function getAllPruefungen($mitarbeiter_uid = NULL, $storniert = null)
{
$qry = 'SELECT * FROM campus.tbl_pruefung';
$qry = 'SELECT * FROM campus.tbl_pruefung WHERE 1 = 1';
if(!is_null($mitarbeiter_uid))
{
$qry .= ' WHERE mitarbeiter_uid='.$this->db_add_param($mitarbeiter_uid);
$qry .= ' AND mitarbeiter_uid='.$this->db_add_param($mitarbeiter_uid);
}
if(!is_null($storniert))
{
$qry .= ' AND storniert = '.$this->db_add_param($storniert, FHC_BOOLEAN);
}
$qry .= ';';
+1
View File
@@ -124,6 +124,7 @@ $this->phrasen['pruefung/anmeldungenVerwalten'] = 'Anmeldungen Verwalten';
$this->phrasen['pruefung/anmeldungErfolgreich'] = 'Anmeldung erfolgreich!';
$this->phrasen['pruefung/zuWenigeCreditPoints'] = 'Credit-Points-Guthaben ist zu gering.';
$this->phrasen['pruefung/kollisionMitAndererAnmeldung'] = 'Kollision mit anderer Anmeldung.';
$this->phrasen['pruefung/kollisionMitAndererAnmeldungForce'] = 'Kollision mit anderer Anmeldung. Trotzdem fortfahren?';
$this->phrasen['pruefung/keineFreienPlaetzeVorhanden'] = 'Keine freien Plätze vorhanden.';
$this->phrasen['pruefung/anmeldungAufgrundVonSperreNichtMoeglich'] = 'Anmeldung auf Grund von Sperre nicht möglich.';
$this->phrasen['pruefung/prestudentNichtGefunden'] = 'Prestudent nicht gefunden.';
+1
View File
@@ -123,6 +123,7 @@ $this->phrasen['pruefung/anmeldungenVerwalten'] = 'Anmeldungen Verwalten';
$this->phrasen['pruefung/anmeldungErfolgreich'] = 'Registration successful.';
$this->phrasen['pruefung/zuWenigeCreditPoints'] = 'Credit-Points-Guthaben ist zu gering.';
$this->phrasen['pruefung/kollisionMitAndererAnmeldung'] = 'Kollision mit anderer Anmeldung.';
$this->phrasen['pruefung/kollisionMitAndererAnmeldungForce'] = 'Kollision mit anderer Anmeldung. Trotzdem fortfahren?';
$this->phrasen['pruefung/keineFreienPlaetzeVorhanden'] = 'Keine freien Plätze vorhanden.';
$this->phrasen['pruefung/anmeldungAufgrundVonSperreNichtMoeglich'] = 'Anmeldung auf Grund von Sperre nicht möglich.';
$this->phrasen['pruefung/prestudentNichtGefunden'] = 'Prestudent nicht gefunden.';