--- loncom/interface/statistics/lonproblemanalysis.pm 2004/02/19 20:17:01 1.71 +++ loncom/interface/statistics/lonproblemanalysis.pm 2004/10/15 16:50:30 1.94 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: lonproblemanalysis.pm,v 1.71 2004/02/19 20:17:01 matthew Exp $ +# $Id: lonproblemanalysis.pm,v 1.94 2004/10/15 16:50:30 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -51,23 +51,17 @@ my @SubmitButtons = ({ name => 'PrevProb { name => 'NextProblemAnalysis', text => 'Next Problem' }, { name => 'break'}, - { name => 'ClearCache', - text => 'Clear Caches' }, - { name => 'updatecaches', - text => 'Update Student Data' }, { name => 'SelectAnother', text => 'Choose a different Problem' }, { name => 'ExcelOutput', text => 'Produce Excel Output' }); - sub BuildProblemAnalysisPage { my ($r,$c)=@_; # my %Saveable_Parameters = ('Status' => 'scalar', 'Section' => 'array', 'NumPlots' => 'scalar', - 'AnalyzeAs' => 'scalar', 'AnalyzeOver' => 'scalar', ); &Apache::loncommon::store_course_settings('problem_analysis', @@ -77,30 +71,22 @@ sub BuildProblemAnalysisPage { # &Apache::lonstatistics::PrepareClasslist(); # - $r->print('
'. + ''.$title.' (N='.$N.')'. + ''. + ' | ||
'.$min.' | '. + ''.$plotresult.' | '. + ''.$max.' | '. + '
'. + 'Maximum Number of Coinciding Values: '.$max_y. + ' |
'.$concept_plot.' | '. + ''.$choice_plot.' | '; + if ($stacked_plot ne '') { + $analysis_html .= + ''.$stacked_plot.' | '. + ''.&build_foil_key($foils,$count_by_foil).' | '; + } else { + $analysis_html .= (''x2); + } + $analysis_html.=' |
'. + &mt('None of the selected students attempted the problem more than [_1] times.',$try-1). + ' | |||
'. + &mt('None of the selected students have attempted the problem').' | |||
'.$correctgraph.' | '; - ## - ## + 100,$plotcolors,\@Labels,$Datasets[0]); + + # + # next if (! defined($Datasets[0])); for (my $i=0; $i< scalar(@{$Datasets[0]});$i++) { $Datasets[0]->[$i]=0; } - $count = $ResponseData{'_total'}->[$i]-$ResponseData{'_correct'}->[$i]; - if ($count == 0) { - $count = 'no submissions'; - } elsif ($count == 1) { - $count = '1 submission'; - } else { - $count = $count.' submissions'; - } - $title = 'Attempt '.$i.', '.$count; - my $incorrectgraph = &Apache::loncommon::DrawBarGraph + $count = $response_data{'_total'}->[$try] - + $response_data{'_correct'}->[$try]; + $title = 'Attempt '.$try.' (N='.$count.')'; + my $incorrect_graph = &Apache::loncommon::DrawBarGraph ($title,'Foil Number','% Option Chosen Incorrectly', - 100,$plotcolors,undef,@Datasets); - $analysis_html.= ''.$incorrectgraph.' | '; - $analysis_html.= ''.$foilkey." |
'.$graphlink." | ||||
'.$concept_graph.' | '. + ''.$correct_graph.' | '. + ''.$incorrect_graph.' | '. + ''.$optionkey.' | '. + ' |
'. + &mt('Data from [_1] to [_2]', + &Apache::lonlocal::locallocaltime($starttime), + &Apache::lonlocal::locallocaltime($endtime)).' | |||
'.$concept_correct_plot.' | '. + ''.$foil_correct_plot.' | '. + ''.$foil_incorrect_plot.' | '. + ''.$foilkey.' |
'.
+ &mt('Start time: [_1]',
+ $interval->{'startdateform'}).' '. + &mt('End time: [_1]', + $interval->{'enddateform'}). + ' | |||
  |
'. + (' 'x4).' | '. + ''.&HTML::Entities::encode($foil,'<>&"'). + (' 'x2).$extra_data->{$foil}.' | '. + "
'.&mt('Sections').' | '; @@ -1330,60 +1752,55 @@ sub CreateInterface { ## ## $Str .= '';
- { # These braces are here to organize the code, not scope it.
- {
- $Str .= ' '; - } - { - $Str .= ' '; - } - { - $Str .= ' '; + ## + my $analyze_selector = ''; + $Str .= ' '.$/; + ## + my $numplots_selector = ' '; + $Str .= ' | ';
##
##
@@ -1418,8 +1835,9 @@ sub get_tries_from_row {
sub hashify_attempt {
my ($row) = @_;
my %attempt;
+ $attempt{'student'} = $row->[&Apache::loncoursedata::RD_sname()];
$attempt{'tries'} = $row->[&Apache::loncoursedata::RD_tries()];
- $attempt{'submission'} = $row->[&Apache::loncoursedata::RD_submission()];
+ $attempt{'submission'} = &Apache::lonnet::unescape($row->[&Apache::loncoursedata::RD_submission()]);
$attempt{'award'} = $row->[&Apache::loncoursedata::RD_awarddetail()];
$attempt{'timestamp'} = $row->[&Apache::loncoursedata::RD_timestamp()];
return %attempt;