From 70a80cd84c408f70c53d45c5b33f2d730438d711 Mon Sep 17 00:00:00 2001 From: alex Date: Thu, 27 Sep 2018 14:46:58 +0200 Subject: [PATCH] =?UTF-8?q?-=20type-safe=20comparison=20f=C3=BCr=20=C3=BCb?= =?UTF-8?q?erschreibbare=20noten=20(default=20true)=20-=20null-checks=20?= =?UTF-8?q?=C3=BCberschreibbare=20noten?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lehre/benotungstool/lvgesamtnoteeintragen.php | 15 +++++++++------ .../lehre/benotungstool/lvgesamtnoteverwalten.php | 6 +++++- content/student/studentDBDML.php | 4 ++-- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php b/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php index 7d75af4bc..3c9985a8b 100644 --- a/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php +++ b/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php @@ -246,13 +246,16 @@ if (isset($_REQUEST["submit"])) { $znote = $zeugnisnote->note; - $notenobj = $noten_arr[$znote]; - - // Note nicht speichern wenn Zeugnisnote nicht überschreibbar - if (!$notenobj->lkt_ueberschreibbar) + if (!empty($znote) && array_key_exists($znote, $noten_arr)) { - $response .= "\n".$p->t('benotungstool/noteNichtUeberschreibbar', array($matrikelnummer, $notenobj->bezeichnung)); - continue; + $notenobj = $noten_arr[$znote]; + + // Note nicht speichern wenn Zeugnisnote nicht überschreibbar + if ($notenobj->lkt_ueberschreibbar === false) + { + $response .= "\n".$p->t('benotungstool/noteNichtUeberschreibbar', array($matrikelnummer, $notenobj->bezeichnung)); + continue; + } } } diff --git a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php index d98d96e2a..a41e362fd 100644 --- a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php +++ b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php @@ -1252,7 +1252,11 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG "; // nur überschreibbare Noten können geändert werden - $ueberschreibbar = is_null($znote) || $noten_array[$znote]['lkt_ueberschreibbar']; + $ueberschreibbar = true; + + if (isset($noten_array[$znote]['lkt_ueberschreibbar']) && $noten_array[$znote]['lkt_ueberschreibbar'] === false) + $ueberschreibbar = false; + // Punkte if (CIS_GESAMTNOTE_PUNKTE) { diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php index c6c546654..aa7294576 100644 --- a/content/student/studentDBDML.php +++ b/content/student/studentDBDML.php @@ -2913,7 +2913,7 @@ if(!$error) $zeugnisnote->updateamum = date('Y-m-d H:i:s'); $zeugnisnote->updatevon = $user; // Noten wie "angerechnet", "nicht erforderlich" werden nicht ueberschrieben - if(isset($zeugnisnote->note) && !$noten_ueberschreibbar[$zeugnisnote->note]) + if(isset($zeugnisnote->note) && array_key_exists($zeugnisnote->note, $noten_ueberschreibbar) && $noten_ueberschreibbar[$zeugnisnote->note] === false) { $notenbez = '"'.$noten_bezeichnung[$zeugnisnote->note].'"'; if (!in_array($notenbez, $nueberschreibbarbez)) @@ -3066,7 +3066,7 @@ if(!$error) $zeugnisnote->updateamum = date('Y-m-d H:i:s'); $zeugnisnote->updatevon = $user; // Noten wie "angerechnet", "nicht erforderlich" werden nicht ueberschrieben - if(isset($zeugnisnote->note) && !$noten_ueberschreibbar[$zeugnisnote->note]) + if(isset($zeugnisnote->note) && array_key_exists($zeugnisnote->note, $noten_ueberschreibbar) && $noten_ueberschreibbar[$zeugnisnote->note] === false) { $notenbez = '"'.$noten_bezeichnung[$zeugnisnote->note].'"'; if (!in_array($notenbez, $nueberschreibbarbez))