'.
''.
$rendered_problem.
@@ -67,11 +74,23 @@ sub BuildProblemAnalysisPage {
## Analyze the problem
my $PerformanceData =
&Apache::loncoursedata::get_optionresponse_data
- (undef,$symb,$resid);
+ (\@Students,$symb,$resid);
if (defined($PerformanceData) &&
ref($PerformanceData) eq 'ARRAY') {
- my $analysis_html = &DoTriesAnalysis($PerformanceData,$ORdata);
+ if ($ENV{'form.AnalyzeBy'} eq 'Tries') {
+ my $analysis_html = &DoTriesAnalysis($PerformanceData,
+ $ORdata);
$r->print($analysis_html);
+# } elsif ($ENV{'form.AnalyzeBy'} eq 'Time') {
+# my $analysis_html = &DoTimeAnalysis($PerformanceData,
+# $ORdata);
+# $r->print($analysis_html);
+ } else {
+ $r->print(''.
+ &mt('The analysis you have selected is '.
+ 'not supported at this time').
+ '');
+ }
} else {
$r->print(''.
&mt('There is no student data for this problem.').
@@ -92,7 +111,7 @@ sub BuildProblemAnalysisPage {
sub DoTriesAnalysis {
my ($PerformanceData,$ORdata) = @_;
my $mintries = 1;
- my $maxtries = 3;
+ my $maxtries = 10;
my %ResponseData = &analyze_option_data_by_tries($PerformanceData,
$mintries,$maxtries);
my @Foils = sort(keys(%ResponseData));
@@ -160,22 +179,26 @@ sub DoTriesAnalysis {
$maxstu = $ResponseData{$foilid}->[$i]->{'total'};
}
}
+ $maxstu = 0 if (! $maxstu);
+ $minstu = 0 if (! $minstu);
my $graphlink;
if ($maxstu == $minstu) {
- $graphlink = &DrawGraph('Attempt '.$i.', '.$maxstu.' students',
- 'Foil Number',
- 'Percent Correct',
- 100,
- $PlotData[$i]->{'good'},
- $PlotData[$i]->{'bad'});
+ $graphlink = &Apache::loncommon::DrawGraph
+ ('Attempt '.$i.', '.$maxstu.' students',
+ 'Foil Number',
+ 'Percent Correct',
+ 100,
+ $PlotData[$i]->{'good'},
+ $PlotData[$i]->{'bad'});
} else {
- $graphlink = &DrawGraph('Attempt '.$i.', '.$minstu.'-'.$maxstu.
- ' students',
- 'Foil Number',
- 'Percent Correct',
- 100,
- $PlotData[$i]->{'good'},
- $PlotData[$i]->{'bad'});
+ $graphlink = &Apache::loncommon::DrawGraph
+ ('Attempt '.$i.', '.$minstu.'-'.$maxstu.
+ ' students',
+ 'Foil Number',
+ 'Percent Correct',
+ 100,
+ $PlotData[$i]->{'good'},
+ $PlotData[$i]->{'bad'});
}
push(@Data,''.$graphlink.' | ');
}
@@ -228,40 +251,6 @@ sub analyze_option_data_by_tries {
return %Trydata;
}
-sub DrawGraph {
- my ($title,$xlabel,$ylabel,$MaxY,$values1,$values2)=@_;
- if (! defined($values1) || ref($values1) ne 'ARRAY') {
- return '';
- }
- $title = '' if (! defined($title));
- $xlabel = '' if (! defined($xlabel));
- $ylabel = '' if (! defined($ylabel));
- $title = &Apache::lonnet::escape($title);
- $xlabel = &Apache::lonnet::escape($xlabel);
- $ylabel = &Apache::lonnet::escape($ylabel);
- #
- my $sendValues1 = join(',', @$values1);
- my $sendValues2;
- if (defined($values2)) {
- $sendValues2 = join(',', @$values2);
- }
-
- my $sendCount = scalar(@$values1);
- $MaxY =1 if ($MaxY < 1);
- if ( int($MaxY) < $MaxY ) {
- $MaxY++;
- $MaxY = int($MaxY);
- }
- my @GData = ($title,$xlabel,$ylabel,$MaxY,$sendCount,$sendValues1);
- if (defined($sendValues2)) {
- push (@GData,$sendValues2);
- }
- return '';
-}
-
-
-
sub get_problem_symb {
my $problemstring = shift();
my ($symb,$partid,$resid) = ($problemstring=~ /^(.*):([^:]*):([^:]*)$/);
@@ -269,19 +258,31 @@ sub get_problem_symb {
}
sub CreateInterface {
+ ##
+ ## Environment variable initialization
+ if (! exists$ENV{'form.AnalyzeBy'}) {
+ $ENV{'form.AnalyzeBy'} = 'Tries';
+ }
+ ##
+ ## Build the menu
my $Str = '';
$Str .= ''."\n";
$Str .= '';
$Str .= ''.&mt('Sections').' | ';
$Str .= ''.&mt('Enrollment Status').' | ';
$Str .= ''.&mt('Sequences and Folders').' | ';
+ $Str .= ''.&mt('Analyze By').' | ';
$Str .= ' '."\n";
#
$Str .= ''."\n";
$Str .= &Apache::lonstatistics::SectionSelect('Section','multiple',5);
- $Str .= ' | ';
+ $Str .= ' | ';
+ #
+ $Str .= '';
$Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,5);
- $Str .= ' | ';
+ $Str .= ' | ';
+ #
+ $Str .= '';
my $only_seq_with_assessments = sub {
my $s=shift;
if ($s->{'num_assess'} < 1) {
@@ -292,7 +293,22 @@ sub CreateInterface {
};
$Str .= &Apache::lonstatistics::MapSelect('Maps','multiple,all',5,
$only_seq_with_assessments);
- $Str .= ' | '."\n";
+ $Str .= '';
+ #
+ $Str .= '';
+ $Str .='';
+ $Str .='';
+ $Str .= ' | ';
+ #
+ $Str .= ''."\n";
$Str .= ' '."\n";
$Str .= '';
|