--- loncom/interface/loncoursedata.pm 2003/06/19 12:45:54 1.79 +++ loncom/interface/loncoursedata.pm 2003/10/01 21:41:47 1.81.2.1 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: loncoursedata.pm,v 1.79 2003/06/19 12:45:54 matthew Exp $ +# $Id: loncoursedata.pm,v 1.81.2.1 2003/10/01 21:41:47 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -161,6 +161,10 @@ sub get_sequence_assessment_data { $title = $previous->title(); $symb = $previous->symb(); $src = $previous->src(); + # pick up the filename if there is no title available + if (! defined($title) || $title eq '') { + ($title) = ($src=~/\/([^\/]*)$/); + } $randompick = $previous->randompick(); my $newmap = { title => $title, src => $src, @@ -1161,6 +1165,33 @@ sub get_student_data_from_performance_ca $studentdata->{$symb}->{$base.'.awarddetail'} = $awarddetail; $studentdata->{$symb}->{'timestamp'} = $time if (defined($time) && $time ne ''); } + ## Get misc parameters + $request = 'SELECT c.symb,a.parameter,a.value '. + "FROM $student_table AS b ". + "LEFT JOIN $parameters_table AS a ON b.student_id=a.student_id ". + "LEFT JOIN $symb_table AS c ON c.symb_id = a.symb_id ". + "WHERE student='$student'"; + if (defined($symb) && $symb ne '') { + $request .= " AND c.symb=".$dbh->quote($symb); + } + $sth = $dbh->prepare($request); + $sth->execute(); + if ($sth->err()) { + &Apache::lonnet::logthis("Unable to execute MySQL request:"); + &Apache::lonnet::logthis("\n".$request."\n"); + &Apache::lonnet::logthis("error is:".$sth->errstr()); + if (defined($symb) && $symb ne '') { + $studentdata = $studentdata->{$symb}; + } + return $studentdata; + } + # + foreach my $row (@{$sth->fetchall_arrayref}) { + $rows_retrieved++; + my ($symb,$parameter,$value) = (@$row); + $studentdata->{$symb}->{$parameter} = $value; + } + # if (defined($symb) && $symb ne '') { $studentdata = $studentdata->{$symb}; } @@ -1371,6 +1402,25 @@ sub get_problem_statistics { } # $dbh->do('DROP TABLE '.$stats_table); # May return an error + # + # Store in metadata + # + if ($num) { + my %storestats=(); + + my $urlres=(split(/\_\_\_/,$symb))[2]; + + $storestats{$courseid.'___'.$urlres.'___timestamp'}=time; + $storestats{$courseid.'___'.$urlres.'___stdno'}=$num; + $storestats{$courseid.'___'.$urlres.'___avetries'}=$mean; + $storestats{$courseid.'___'.$urlres.'___difficulty'}=$DegOfDiff; + + $urlres=~/^(\w+)\/(\w+)/; + &Apache::lonnet::put('nohist_resevaldata',\%storestats,$1,$2); + } + # + # Return result + # return { num_students => $num, tries => $tries, max_tries => $mod, @@ -1380,7 +1430,7 @@ sub get_problem_statistics { num_solved => $Solved, num_override => $solved, per_wrong => $wrongpercent, - deg_of_diff => $DegOfDiff } + deg_of_diff => $DegOfDiff }; } sub execute_SQL_request {