From: Gavin L. v. a. <we...@ma...> - 2005-06-09 16:17:38
|
Log Message: ----------- Gateway update: change Grades table to display gateway tests better. Tags: ---- rel-2-1-a1 Modified Files: -------------- webwork2/lib/WeBWorK/ContentGenerator: Grades.pm Revision Data ------------- Index: Grades.pm =================================================================== RCS file: /webwork/cvs/system/webwork2/lib/WeBWorK/ContentGenerator/Grades.pm,v retrieving revision 1.5.2.3 retrieving revision 1.5.2.4 diff -Llib/WeBWorK/ContentGenerator/Grades.pm -Llib/WeBWorK/ContentGenerator/Grades.pm -u -r1.5.2.3 -r1.5.2.4 --- lib/WeBWorK/ContentGenerator/Grades.pm +++ lib/WeBWorK/ContentGenerator/Grades.pm @@ -194,8 +194,10 @@ my @setIDs = sort $db->listUserSets($studentName); my $fullName = join("", $studentRecord->first_name," ", $studentRecord->last_name); + my $effectiveUser = $studentRecord->user_id(); + my $act_as_student_url = "$root/$courseName/?user=".$r->param("user"). - "&effectiveUser=".$studentRecord->user_id()."&key=".$r->param("key"); + "&effectiveUser=$effectiveUser&key=".$r->param("key"); print CGI::h3($fullName ), @@ -209,18 +211,34 @@ my @rows; my $max_problems=0; - - # FIXME: we adjust the URL for ALL VERSIONED SETS to point to the gateway quiz module. - # FIXME: this is a fudge to avoid having to get the actual set data from the database - # FIXME: to see if it's got $set->assignment_type() =~ /gateway/ - # FIXME: in the long run this is not a good solution foreach my $setName (@setIDs) { my $act_as_student_set_url = "$root/$courseName/$setName/?user=".$r->param("user"). - "&effectiveUser=".$studentRecord->user_id()."&key=".$r->param("key"); - if ( $setName =~ /,v\d+$/ ) { - $act_as_student_set_url =~ s/($courseName)\//$1\/quiz_mode\//; + "&effectiveUser=$effectiveUser&key=".$r->param("key"); + + # get the set from the database so that we know if it's a gateway + # and if it's versioned, which determines how we display it. + my $set; + if ( $setName =~ /,v\d+$/ ) { # then it's versioned + $set = $db->getMergedVersionedSet( $effectiveUser, $setName ); + } else { + $set = $db->getMergedSet( $effectiveUser, $setName ); } + + if ( defined( $set->assignment_type() ) && + $set->assignment_type() =~ /gateway/ ) { + # skip template sets + next if ( $setName !~ /,v\d+$/ ); + # reset the URL for gateways + if ( $set->assignment_type() eq 'proctored_gateway' ) { + $act_as_student_set_url =~ + s/($courseName)\//$1\/proctored_quiz_mode\//; + } else { + $act_as_student_set_url =~ + s/($courseName)\//$1\/quiz_mode\//; + } + } + my $status = 0; my $attempted = 0; my $longStatus = ''; |