Warning: include_once(/var/www/html/pmwiki-2.2.86/cookbook/soap4pmwiki/soap4pmwiki.php): failed to open stream: No such file or directory in /var/www/html/fields/dbp09/local/config.php on line 4

Warning: include_once(): Failed opening '/var/www/html/pmwiki-2.2.86/cookbook/soap4pmwiki/soap4pmwiki.php' for inclusion (include_path='.:/opt/php/lib/php') in /var/www/html/fields/dbp09/local/config.php on line 4

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/fields/dbp09/local/config.php:4) in /var/www/html/pmwiki-2.2.86/pmwiki.php on line 1250
Datenbankpraktikum SS 2009 - Gruppe 3 - Seminarnote

Seminarnote eintragen

von Sabine Heider, Katja Sperber

Inhalt:

Oberfläche

Es erscheint eine Tabelle, die alle für das Seminar eingetragenen Studenten auflistet und ein Eingabefeld für die Note bereitstellt. Wenn ein Teilnehmer bereits über eine Note verfügt, wird diese im Eingabefeld angezeigt, andernfalls bleibt das Feld leer. Desweiteren existiert eine Spalte Optionen, die über die Buttons 'Informationen anzeigen' und 'Austragen' verfügt.

Abb. 1: Formular zur Seminarnoteneingabe

Funktionalität

In den entsprechenden Eingabefeldern kann für jeden Studenten eine Endnote eingetragen werden. Wenn ein Feld leer bleibt, das anfangs mit der in der DB eingetragenen Note belegt war, wird dieser Eintrag aus der DB gelöscht. Nach erfolgreicher Noteneingabe erscheint neben einer Infomeldung erneut die Tabelle mit den Eingabefeldern.

Abfangen fehlerhafter Benutzereingaben

  • Noteneingabe mit Kommata wird toleriert:
Wenn eine Note mit einem Komma statt eines Punktes eingefügt wird, wird das Komma mit folgendem Kommando ersetzt
$note = str_replace(',' , '.', $note);
  • ungültige Note:
In einem array werden alle gültigen Noten eingetragen.
$noten = array (1.0, 1.3, 1.7, 2.0, 2.3, 2.7, 3.0, 3.3, 3.7, 4.0, 5.0);
und mit der übergeben Note abgeglichen. Alle gültigen eingetragen Noten werden in jedem Fall übernommen, bei den anderen kommt es zu einer Fehlermeldung und der alte Wert bleibt erhalten.

Implementierte Controller:

  • Methoden im Seminar_Controller.php:
    • action_seminarteilnehmer(): holt Studenten und aktuelle Noten aus der DB und übergibt sie der View seminarnote.tpl
    • action_seminarnote(): speichert die eingetragenen Noten in der DB
    • action_austragenreq(): ruft das Bestätigungsfenster auf
    • action_austragen(): trägt bei Bestätigung einen Studenten aus einem Seminar aus
    $besuchen = Besuchen::get_besuchen ($_REQUEST['id'], $_GET['verid'], $this->env);
    $student = Student::get_student($_REQUEST['id'], $this->env);
    // wenn die Bestätigung durch den User erfolgt, wird gelöscht
    if (isset($_REQUEST['delete_confirm'])) {
    	$besuchen->delete();
    	$info = $student->Vorname." ".$student->Nachname." wurde erfolgreich aus dem Seminar".
                    " ausgetragen."; 
    }
    // andernfalls nicht
    else {
    	$info = $student->Vorname." ".$student->Nachname." wurde nicht aus dem Seminar".
                    " ausgetragen." ;
    }

Implementierte Views:

  • seminarnote.tpl: gibt übergebene Studenten mit ihren Noten in einer Tabelle aus


Page last modified on September 05, 2009, at 01:06 PM