diff --git a/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php b/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php
index c3648d4fa..7d75af4bc 100644
--- a/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php
+++ b/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php
@@ -82,10 +82,14 @@ $uebung_id = (isset($_GET['uebung_id'])?$_GET['uebung_id']:'');
$uid = (isset($_GET['uid'])?$_GET['uid']:'');
$noten_anmerkung=array();
+$noten_arr=array();
$note_obj = new note();
$note_obj->getAll();
foreach($note_obj->result as $row)
- $noten_anmerkung[$row->anmerkung]=$row->note;
+{
+ $noten_anmerkung[$row->anmerkung] = $row->note;
+ $noten_arr[$row->note] = $row;
+}
//Studiensemester laden
$stsem_obj = new studiensemester();
@@ -238,12 +242,20 @@ if (isset($_REQUEST["submit"]))
}
// Hole Zeugnisnote wenn schon eine eingetragen ist
- /*
if ($zeugnisnote = new zeugnisnote($lvid, $student_uid, $stsem))
+ {
$znote = $zeugnisnote->note;
- else
- $znote = null;
- */
+
+ $notenobj = $noten_arr[$znote];
+
+ // Note nicht speichern wenn Zeugnisnote nicht überschreibbar
+ if (!$notenobj->lkt_ueberschreibbar)
+ {
+ $response .= "\n".$p->t('benotungstool/noteNichtUeberschreibbar', array($matrikelnummer, $notenobj->bezeichnung));
+ continue;
+ }
+ }
+
$val=savenote($db,$lvid, $student_uid, $note, $punkte);
if($val!='neu' && $val!='update' && $val!='update_f')
$response.=$val;
diff --git a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php
index fa9bdc980..d98d96e2a 100644
--- a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php
+++ b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php
@@ -181,6 +181,7 @@ foreach ($noten_obj->result as $row)
$noten_array[$row->note]['positiv'] = $row->positiv;
$noten_array[$row->note]['aktiv'] = $row->aktiv;
$noten_array[$row->note]['lehre'] = $row->lehre;
+ $noten_array[$row->note]['lkt_ueberschreibbar'] = $row->lkt_ueberschreibbar;
$noten_array[$row->note]['anmerkung'] = $row->anmerkung;
foreach ($sprachen->result AS $s)
$noten_array[$row->note]['bezeichnung_mehrsprachig'][$s->sprache] = $row->bezeichnung_mehrsprachig[$s->sprache];
@@ -1249,21 +1250,30 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
action='" . $_SERVER['PHP_SELF'] . "?lvid=$lvid&lehreinheit_id=$lehreinheit_id&stsem=$stsem'>
";
-
+
+ // nur überschreibbare Noten können geändert werden
+ $ueberschreibbar = is_null($znote) || $noten_array[$znote]['lkt_ueberschreibbar'];
// Punkte
if (CIS_GESAMTNOTE_PUNKTE)
{
+
$htmlstring .= '
';
+ size="3"';
+
+ if ($ueberschreibbar)
+ $htmlstring .= ' oninput="PunkteEingabe(' . $i . ')"';
+ else
+ $htmlstring .= ' disabled="disabled"';
+
+ $htmlstring .= '/>';
}
-
+
// Noten DropDown
- if ($punkte_vorschlag != '' && CIS_GESAMTNOTE_PUNKTE)
+ if (($punkte_vorschlag != '' && CIS_GESAMTNOTE_PUNKTE) || $ueberschreibbar == false)
$disabled = 'disabled="disabled"';
else
$disabled = '';
@@ -1281,10 +1291,13 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
}
$htmlstring .= '';
$htmlstring .= "
-
-
-
- ";
+ ";
+ if ($ueberschreibbar)
+ {
+ $htmlstring .= "";
+ }
+ $htmlstring .= "
+ ";
}
else
{
@@ -1370,13 +1383,18 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
$htmlstring .= '
| ' . $pr_datum . ' |
' . $pr_notenbezeichnung . ' |
-
- ';
+ if ($ueberschreibbar)
+ {
+ $htmlstring .=
+ '
- |
- |
';
+ onclick="' . $onclick . '">';
+ }
+ $htmlstring .=
+ '
+ ';
}
$htmlstring .= "";
$htmlstring .= "";
@@ -1386,12 +1404,16 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
{
if (! is_null($note_lv) || ! is_null($znote))
{
- $htmlstring .= " |
- ";
+ if ($ueberschreibbar)
+ {
+ $htmlstring .=
+ "
- | ";
+ onclick='pruefungAnlegen(\"" . $uid . "\",\"\",\"\",\"\",\"\")'>";
+ }
+ $htmlstring .= "";
}
else
{
@@ -1445,7 +1467,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
}
else
{
- if (! is_null($note_lv) || ! is_null($znote))
+ if ((! is_null($note_lv) || ! is_null($znote)) && $ueberschreibbar)
{
$htmlstring .= "
diff --git a/include/note.class.php b/include/note.class.php
index 9936930db..b948f1be9 100644
--- a/include/note.class.php
+++ b/include/note.class.php
@@ -42,6 +42,7 @@ class note extends basis_db
public $aktiv; // boolean
public $lehre; // boolean
public $offiziell; // boolean
+ public $lkt_ueberschreibbar; // boolean
public $bezeichnung_mehrsprachig; // varchar (64)[]
/**
@@ -78,7 +79,8 @@ class note extends basis_db
notenwert,
aktiv,
lehre,
- offiziell,
+ offiziell,
+ lkt_ueberschreibbar,
$bezeichnung_mehrsprachig
FROM
lehre.tbl_note
@@ -98,6 +100,7 @@ class note extends basis_db
$this->lehre = $this->db_parse_bool($row->lehre);
$this->aktiv = $this->db_parse_bool($row->aktiv);
$this->offiziell = $this->db_parse_bool($row->offiziell);
+ $this->lkt_ueberschreibbar = $this->db_parse_bool($row->lkt_ueberschreibbar);
$this->bezeichnung_mehrsprachig = $sprache->parseSprachResult('bezeichnung_mehrsprachig',$row);
return true;
}
@@ -151,7 +154,7 @@ class note extends basis_db
$idx = sprache::$index_arr[$key];
$qry .= " bezeichnung_mehrsprachig[$idx],";
}
- $qry .= ' offiziell) VALUES('.
+ $qry .= ' offiziell, lkt_ueberschreibbar) VALUES('.
$this->db_add_param($this->note).', '.
$this->db_add_param($this->bezeichnung).', '.
$this->db_add_param($this->anmerkung).', '.
@@ -163,8 +166,9 @@ class note extends basis_db
foreach($this->bezeichnung_mehrsprachig as $key=>$value)
$qry .= $this->db_add_param($value).',';
- $qry .= $this->db_add_param($this->offiziell, FHC_BOOLEAN).');';
-
+ $qry .= $this->db_add_param($this->offiziell, FHC_BOOLEAN);
+ $qry .= $this->db_add_param($this->lkt_ueberschreibbar, FHC_BOOLEAN).');';
+
}
else
@@ -184,7 +188,8 @@ class note extends basis_db
$qry .= " bezeichnung_mehrsprachig[$idx]=".$this->db_add_param($value).", ";
}
- $qry .= ' offiziell='.$this->db_add_param($this->offiziell, FHC_BOOLEAN).' '.
+ $qry .= ' offiziell='.$this->db_add_param($this->offiziell, FHC_BOOLEAN).', '.
+ $qry .= ' lkt_ueberschreibbar='.$this->db_add_param($this->lkt_ueberschreibbar, FHC_BOOLEAN).' '.
'WHERE note='.$this->db_add_param($this->note).';';
@@ -218,7 +223,8 @@ class note extends basis_db
notenwert,
aktiv,
lehre,
- offiziell,
+ offiziell,
+ lkt_ueberschreibbar,
$bezeichnung_mehrsprachig
FROM
lehre.tbl_note ";
@@ -242,7 +248,8 @@ class note extends basis_db
$n->notenwert = $row->notenwert;
$n->aktiv = $this->db_parse_bool($row->aktiv);
$n->lehre = $this->db_parse_bool($row->lehre);
- $n->offiziell = $this->db_parse_bool($row->lehre);
+ $n->offiziell = $this->db_parse_bool($row->offiziell);
+ $n->lkt_ueberschreibbar = $this->db_parse_bool($row->lkt_ueberschreibbar);
$n->bezeichnung_mehrsprachig = $sprache->parseSprachResult('bezeichnung_mehrsprachig', $row);
$this->result[] = $n;
@@ -274,6 +281,7 @@ class note extends basis_db
aktiv,
lehre,
offiziell,
+ lkt_ueberschreibbar,
$bezeichnung_mehrsprachig
FROM
lehre.tbl_note
@@ -299,7 +307,8 @@ class note extends basis_db
$n->notenwert = $row->notenwert;
$n->aktiv = $this->db_parse_bool($row->aktiv);
$n->lehre = $this->db_parse_bool($row->lehre);
- $n->offiziell = $this->db_parse_bool($row->lehre);
+ $n->offiziell = $this->db_parse_bool($row->offiziell);
+ $n->lkt_ueberschreibbar = $this->db_parse_bool($row->lkt_ueberschreibbar);
$n->bezeichnung_mehrsprachig = $sprache->parseSprachResult('bezeichnung_mehrsprachig', $row);
$this->result[] = $n;
diff --git a/locale/de-AT/benotungstool.php b/locale/de-AT/benotungstool.php
index b8a34b83a..e8ef6d8d6 100644
--- a/locale/de-AT/benotungstool.php
+++ b/locale/de-AT/benotungstool.php
@@ -149,6 +149,7 @@ $this->phrasen['benotungstool/pruefungAnlegenFuer']='Prüfung anlegen für';
$this->phrasen['benotungstool/kreuzerltool']='Kreuzerltool';
$this->phrasen['benotungstool/studentIstLvNichtZugeordnet']='Der Student %s %s (%s) ist dieser Lehrveranstaltung nicht zugeordnet. Die Note wird nicht uebernommen!';
$this->phrasen['benotungstool/studentMitMatrikelnummerExistiertNicht']='Student mit Matrikelnummer %s existiert nicht.';
+$this->phrasen['benotungstool/noteNichtUeberschreibbar']='Für Student mit Matrikelnummer %s eingetragene Zeugnisote %s ist nicht überschreibbar';
$this->phrasen['benotungstool/fehlerhafteNoteBeiStudent']='Fehlerhafte Note bei Student %s %s';
$this->phrasen['benotungstool/keineKreuzerllistenFuerDieseLehrveranstaltung']='Derzeit gibt es keine Kreuzerllisten für diese Lehrveranstaltung';
$this->phrasen['benotungstool/notenuebersichtFuer']='Notenübersicht für';
diff --git a/locale/en-US/benotungstool.php b/locale/en-US/benotungstool.php
index c70524f12..94b0e7891 100644
--- a/locale/en-US/benotungstool.php
+++ b/locale/en-US/benotungstool.php
@@ -148,6 +148,7 @@ $this->phrasen['benotungstool/pruefungAnlegenFuer']='Create an examination for '
$this->phrasen['benotungstool/kreuzerltool']='"Kreuzerl" tool';
$this->phrasen['benotungstool/studentIstLvNichtZugeordnet']='Student is not assigned to this course. The grade was not accepted!';
$this->phrasen['benotungstool/studentMitMatrikelnummerExistiertNicht']='Student with student ID number %s does not exist.';
+$this->phrasen['benotungstool/noteNichtUeberschreibbar']='Transcript grade %2$s for student with Personal identifier %1$s is not rewritable';
$this->phrasen['benotungstool/fehlerhafteNoteBeiStudent']='Incorrect grade for student %s %s';
$this->phrasen['benotungstool/keineKreuzerllistenFuerDieseLehrveranstaltung']='There are currently no checklists for this course';
$this->phrasen['benotungstool/notenuebersichtFuer']='Grade list for';
diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php
index 581ee4388..a7fba3ba8 100755
--- a/system/dbupdate_3.3.php
+++ b/system/dbupdate_3.3.php
@@ -506,6 +506,17 @@ if(!$result = @$db->db_query("SELECT offiziell FROM lehre.tbl_note LIMIT 1;"))
echo ' lehre.tbl_note: Spalte offiziell hinzugefuegt! ';
}
+// Spalte lkt_ueberschreibbar in lehre.tbl_note
+if(!$result = @$db->db_query("SELECT lkt_ueberschreibbar FROM lehre.tbl_note LIMIT 1;"))
+{
+ $qry = "ALTER TABLE lehre.tbl_note ADD COLUMN lkt_ueberschreibbar boolean NOT NULL DEFAULT true;";
+
+ if(!$db->db_query($qry))
+ echo 'lehre.tbl_note: '.$db->db_last_error().' ';
+ else
+ echo ' lehre.tbl_note: Spalte lkt_ueberschreibbar hinzugefuegt! ';
+}
+
// Spalte bezeichnung_mehrsprachig in lehre.tbl_note
if(!$result = @$db->db_query("SELECT bezeichnung_mehrsprachig FROM lehre.tbl_note LIMIT 1"))
{
|