BugFix User story #3776

Fehler in Testtool-check levelgleichverteilung
This commit is contained in:
Manfred Kindl
2019-08-09 14:13:28 +02:00
parent 7ac68bb66c
commit 87f4824f8a
2 changed files with 7 additions and 5 deletions
+5
View File
@@ -509,6 +509,11 @@ class frage extends basis_db
$level[$row->level]=round(($row->anzahl/$fragengesamt)*$maxfragen);
}
}
// Wenn ein Level besonders viele Fragen und eines nur eine Frage (nach dem Runden) hat,
// kann es durch Rundungsfehler vorkommen, dass bei der Ausgabe ein Level ausgelassen wird.
// Deshalb wird das array hier aufsteigend sortiert. So wird ggf. vom Level mit den meisten Fragen
// die letzte ausgelassen. Hier wäre eine sauberere Lösung besser.
asort($level);
// Von jedem Gebiet muss mindestens eine Frage kommen
foreach ($level as $key=>$row)
+2 -5
View File
@@ -368,12 +368,9 @@ class gebiet extends basis_db
$qry = "SELECT count(*) as anzahl FROM testtool.tbl_frage WHERE gebiet_id=".$this->db_add_param($gebiet_id, FHC_INTEGER)." AND not demo AND level is not null GROUP BY level";
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
if($this->db_num_rows() > $this->maxfragen)
{
if($row->anzahl>$this->maxfragen)
{
//$this->errormsg .= "Wenn Levelgleichverteilung gesetzt ist, muss maxfragen groesser als die Anzahl der verwendeten Levels sein\n";
}
$this->errormsg .= "Wenn Levelgleichverteilung gesetzt ist, muss maxfragen groesser als die Anzahl der verwendeten Levels sein\n";
}
}
}