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 - Punkte Fuer Uebungsblaetter

Punkte eintragen für Übungsblätter

von Katja Sperber und Sabine Heider

Inhalt:

Oberfläche

Es erscheint eine Tabelle, die für die ausgewählte Veranstaltung alle verfügbaren Übungsblätter auflistet. Nach Auswahl eines der Übungsblätter erscheinen alle Gruppen, die für diese Übungsblatt und die eingeloggte Person eingetragen sind. Zusätzlich wird zu jeder Gruppe die bisher erreichte Gesamtpunktzahl ausgegeben. Im folgenden Formular werden zu der angeklickten Gruppe die entsprechenden Teilnehmer und die Aufgaben mit den bisher eingetragenen Punkten aufgelistet. Unterhalb der Gruppeninfo befindet sich entweder ein Button, der eine Einzelbewertung der Gruppenmitglieder ermöglicht, oder ein Informationsfeld, das besagt, dass keine Einzelbewertung aufgrund der Gruppengröße möglich ist.

Abb. 1: Formular zur Punkteeingabe

Funktionalität

Dozenten, Übungsleiter und Tutoren sind in der Lage, Punkte für Übungsblätter einzutragen. Die Funktionalität unterscheidet sich jedoch leicht. Während Dozenten und Übungsleiter alle Gruppen der Veranstaltung bewerten können, dürfen Tutoren dies nur für die ihnen zugewiesenen Gruppen.

vereinfachter Code, der die entsprechenden Gruppen aus der DB holt:

$halten = Halten::get_halten($args,$this->env);
// wenn die eingeloggte Person die Veranstaltung hält, werden alle Gruppen zu der 
// Veranstaltung und einem bestimmten Zettel ausgegeben
if (!is_null($halten)) $gruppen = Gruppe::get_gruppen_ver_zet($verid, $blattnr, $this->env);
// andernfalls handelt es sich um einen Tutor, der nur seine eigenen Gruppen bewerten darf
else $gruppen = Gruppe::get_gruppen_ver_tut_zet($argv, $this->env);

Einzelbewertung

Wenn sich mehr als eine Person in der Gruppe befindet, kann eine Einzelbewertung vorgenommen werden.

vereinfachter Code; überprüft, ob eine Einzelbewertung möglich ist

// liefert alle Studenten aus der Gruppe in einem Array
$studenten = SindIn::get_studenten($_GET['grpid'], $this->env);
$erlaubt = count($studenten) > 1;

Für das ausgewählte Übungsblatt wird pro Teilnehmer eine eigene Gruppe erzeugt. In der nun erscheinenden Gruppenübersicht werden statt der gemeinsamen Gruppe die neuen Einzelgruppen aufgeführt. Diese weisen zur Identifikation im Kürzel den Begriff Einzelbewertung und den Namen des jeweiligen Gruppenteilnehmers auf. Für das nächste Übungsblatt wird automatische eine neue Gruppe angelegt, welche wieder alle Gruppenmitglieder vereint. Diese Gruppe besitzt eine neue ID, aber das Kürzel und die Punkte für andere Übungsblätter werden von der alten Gruppe übernommen.

Abfangen fehlerhafter Benutzereingaben

  • ungültige Punkte:
wenn eine negative Punktzahl oder eine Zahl, die die maximale Punktzahl für eine Aufgabe überschreitet, eingegeben wird, erscheint eine Fehlermeldung

Implementierte Controller:

Tutorerg_Controller.php:

Im Konstruktor wird die übergebene Umgebung in der Controller-Klasse auf die Klassenvariable gesetzt und von dort der Login der eingeloggt Person an die eigene Klassenvariable vergeben.

Action:

  • action_listzettel(): holt alle Übungsblätter zu der ausgewählten Veranstaltung aus der DB
  • action_listgruppen(): holt alle Gruppen für das ausgewählte Übungsblatt der Veranstaltung und der eingeloggten Person aus der DB
  • action_listaufg(): testet, ob die übergebenen Werte erlaubt sind, und ruft mit diesen die Methode listaufg2() auf
  • action_punkte(): speichert die eingetragenen Punkte in der DB ab
    foreach($aufgaben as $aufgabe) {
            $array['VerID'] = $_REQUEST['verid'];
            $array['GrpID'] = $_REQUEST['grpid'];
            $array['PrfID'] = $_REQUEST['blattnr'];
            $array['PrfTyp']= 'U';
           	$array['AufgNr'] = $aufgabe->AufgNr;
    	$bearbeiten = BearbeitenUeb::get_bearbeiten($array, $this->env);		
    	// wenn ein Feld leer geblieben ist, wird die Aufgabe mit 
    	// 0 Punkte in die DB eingetragen
    	if (is_null($bearbeiten)) {
    		$array['Punkte'] = 0;
    		$bearbeiten = new BearbeitenUeb($array, $this->env);
    	}		
    	// wenn die Punktzahl negativ oder höher als die max. Punkte für 
    	// diese Aufgabe ist, wird eine Fehlermeldung ausgegeben und der
    	// User gelangt erneut zu dem Eintragen-Formular 
    	if ($_REQUEST[$aufgabe->AufgNr]<0 || $_REQUEST[$aufgabe->AufgNr]>$aufgabe->Punkte) {
    		$error = "Ung&uuml;ltige Punktzahleingabe";
    		return $this->listaufg2($_REQUEST['verid'], $_REQUEST['blattnr'], 
                                            $_REQUEST['grpid'],$error);
    	}					
    	// bei korrekter Punkteingabe werden diese in der DB gespeichert
    	$bearbeiten->Punkte = $_REQUEST[$aufgabe->AufgNr];
    }
  • action_einzel(): erzeugt für das aktuelle Blatt Einzelgruppen und für das folgene Blatt eine neue Gruppe, die wieder alle Teilnehmer vereint
  • action_(): default-Action

Hilfsmethoden:

  • listaufg2(): holt sich die einzelnen Teilnehmer der ausgewählten Gruppe und die Aufgaben für das Übungsblatt mit den maximalen Punkten aus der DB
  • gesamtpunktzahl(): berechnet die Gesamtpunktzahl für eine Gruppe und ein Übungsblatt aus den bisher in der DB eingetragenen Punkten

Implementierte Views

  • zettel_list.tpl : listet alle Übungsblätter zu der ausgewählten Veranstaltung aus der DB auf
  • tutorGruppen_list.tpl: listet alle Gruppen für das ausgewählte Übungsblatt der Veranstaltung und der eingeloggten Person aus der DB auf
  • punkte_eintragen.tpl: listet alle Gruppenteilnehmer auf und stellt ein Formular zur Punkteeingabe bereit

top


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