version 1.124, 2006/02/04 19:06:53
|
version 1.128, 2006/08/18 15:15:38
|
Line 38 use Apache::lonstudentsubmissions();
|
Line 38 use Apache::lonstudentsubmissions();
|
use HTML::Entities(); |
use HTML::Entities(); |
use Time::Local(); |
use Time::Local(); |
use capa; |
use capa; |
|
use lib '/home/httpd/lib/perl/'; |
|
use LONCAPA; |
|
|
|
|
my $plotcolors = ['#33ff00', |
my $plotcolors = ['#33ff00', |
'#0033cc', '#990000', '#aaaa66', '#663399', '#ff9933', |
'#0033cc', '#990000', '#aaaa66', '#663399', '#ff9933', |
Line 59 sub BuildProblemAnalysisPage {
|
Line 62 sub BuildProblemAnalysisPage {
|
# |
# |
my %Saveable_Parameters = ('Status' => 'scalar', |
my %Saveable_Parameters = ('Status' => 'scalar', |
'Section' => 'array', |
'Section' => 'array', |
|
'Groups' => 'array', |
'NumPlots' => 'scalar', |
'NumPlots' => 'scalar', |
'AnalyzeOver' => 'scalar', |
'AnalyzeOver' => 'scalar', |
); |
); |
Line 74 sub BuildProblemAnalysisPage {
|
Line 78 sub BuildProblemAnalysisPage {
|
my @Students = @Apache::lonstatistics::Students; |
my @Students = @Apache::lonstatistics::Students; |
# |
# |
if (@Students < 1 && exists($env{'form.firstrun'})) { |
if (@Students < 1 && exists($env{'form.firstrun'})) { |
$r->print('<h2>There are no students in the sections selected</h2>'); |
$r->print('<h2>There are no students in the sections/groups selected</h2>'); |
} |
} |
# |
# |
my @CacheButtonHTML = |
my @CacheButtonHTML = |
Line 194 sub numerical_response_analysis {
|
Line 198 sub numerical_response_analysis {
|
# Gather student data |
# Gather student data |
my $response_data = &Apache::loncoursedata::get_response_data |
my $response_data = &Apache::loncoursedata::get_response_data |
([&Apache::lonstatistics::get_selected_sections()], |
([&Apache::lonstatistics::get_selected_sections()], |
|
[&Apache::lonstatistics::get_selected_groups()], |
$Apache::lonstatistics::enrollment_status, |
$Apache::lonstatistics::enrollment_status, |
$resource->symb,$respid); |
$resource->symb,$respid); |
# |
# |
Line 782 sub radio_response_analysis {
|
Line 787 sub radio_response_analysis {
|
# Gather student data |
# Gather student data |
my $response_data = &Apache::loncoursedata::get_response_data |
my $response_data = &Apache::loncoursedata::get_response_data |
([&Apache::lonstatistics::get_selected_sections()], |
([&Apache::lonstatistics::get_selected_sections()], |
|
[&Apache::lonstatistics::get_selected_groups()], |
$Apache::lonstatistics::enrollment_status, |
$Apache::lonstatistics::enrollment_status, |
$resource->symb,$respid); |
$resource->symb,$respid); |
my $correct; # either a hash reference or a scalar |
my $correct; # either a hash reference or a scalar |
Line 794 sub radio_response_analysis {
|
Line 800 sub radio_response_analysis {
|
my ($idx,@remainder) = split('&',$student->{'answer'}); |
my ($idx,@remainder) = split('&',$student->{'answer'}); |
my ($answer) = ($remainder[$idx]=~/^(.*)=([^=]*)$/); |
my ($answer) = ($remainder[$idx]=~/^(.*)=([^=]*)$/); |
$correct->{$student->{'username'}.':'.$student->{'domain'}}= |
$correct->{$student->{'username'}.':'.$student->{'domain'}}= |
&Apache::lonnet::unescape($answer); |
&unescape($answer); |
} |
} |
} else { |
} else { |
foreach my $foil (keys(%$foildata)) { |
foreach my $foil (keys(%$foildata)) { |
Line 1187 sub OptionResponseAnalysis {
|
Line 1193 sub OptionResponseAnalysis {
|
# Note: part data is not needed. |
# Note: part data is not needed. |
my $PerformanceData = &Apache::loncoursedata::get_response_data |
my $PerformanceData = &Apache::loncoursedata::get_response_data |
([&Apache::lonstatistics::get_selected_sections()], |
([&Apache::lonstatistics::get_selected_sections()], |
|
[&Apache::lonstatistics::get_selected_groups()], |
$Apache::lonstatistics::enrollment_status, |
$Apache::lonstatistics::enrollment_status, |
$resource->symb,$respid); |
$resource->symb,$respid); |
if (! defined($PerformanceData) || |
if (! defined($PerformanceData) || |
Line 1823 sub CreateInterface {
|
Line 1830 sub CreateInterface {
|
## |
## |
## Build the menu |
## Build the menu |
my $Str = ''; |
my $Str = ''; |
$Str .= &Apache::lonhtmlcommon::breadcrumbs |
$Str .= &Apache::lonhtmlcommon::breadcrumbs('Detailed Problem Analysis'); |
(undef,'Detailed Problem Analysis'); |
|
$Str .= '<table cellspacing="5">'."\n"; |
$Str .= '<table cellspacing="5">'."\n"; |
$Str .= '<tr>'; |
$Str .= '<tr>'; |
$Str .= '<td align="center"><b>'.&mt('Sections').'</b></td>'; |
$Str .= '<td align="center"><b>'.&mt('Sections').'</b></td>'; |
$Str .= '<td align="center"><b>'.&mt('Enrollment Status').'</b></td>'; |
$Str .= '<td align="center"><b>'.&mt('Groups').'</b></td>'; |
|
$Str .= '<td align="center"><b>'.&mt('Access Status').'</b></td>'; |
$Str .= '<td align="center"> </td>'; |
$Str .= '<td align="center"> </td>'; |
$Str .= '</tr>'."\n"; |
$Str .= '</tr>'."\n"; |
## |
## |
Line 1837 sub CreateInterface {
|
Line 1844 sub CreateInterface {
|
$Str .= &Apache::lonstatistics::SectionSelect('Section','multiple',5); |
$Str .= &Apache::lonstatistics::SectionSelect('Section','multiple',5); |
$Str .= '</td>'; |
$Str .= '</td>'; |
# |
# |
|
$Str .= '<td align="center">'."\n"; |
|
$Str .= &Apache::lonstatistics::GroupSelect('Group','multiple',5); |
|
$Str .= '</td>'; |
|
# |
$Str .= '<td align="center">'; |
$Str .= '<td align="center">'; |
$Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,5); |
$Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,5); |
$Str .= '</td>'; |
$Str .= '</td>'; |
Line 1929 sub hashify_attempt {
|
Line 1940 sub hashify_attempt {
|
my %attempt; |
my %attempt; |
$attempt{'student'} = $row->[&Apache::loncoursedata::RD_sname()]; |
$attempt{'student'} = $row->[&Apache::loncoursedata::RD_sname()]; |
$attempt{'tries'} = $row->[&Apache::loncoursedata::RD_tries()]; |
$attempt{'tries'} = $row->[&Apache::loncoursedata::RD_tries()]; |
$attempt{'submission'} = &Apache::lonnet::unescape($row->[&Apache::loncoursedata::RD_submission()]); |
$attempt{'submission'} = &unescape($row->[&Apache::loncoursedata::RD_submission()]); |
$attempt{'award'} = $row->[&Apache::loncoursedata::RD_awarddetail()]; |
$attempt{'award'} = $row->[&Apache::loncoursedata::RD_awarddetail()]; |
$attempt{'timestamp'} = $row->[&Apache::loncoursedata::RD_timestamp()]; |
$attempt{'timestamp'} = $row->[&Apache::loncoursedata::RD_timestamp()]; |
return %attempt; |
return %attempt; |
Line 1953 sub Process_OR_Row {
|
Line 1964 sub Process_OR_Row {
|
my @Foilsubs = split('&',$submission); |
my @Foilsubs = split('&',$submission); |
for (my $j=0;$j<=$#Foilgrades;$j++) { |
for (my $j=0;$j<=$#Foilgrades;$j++) { |
my ($foilid,$correct) = split('=',$Foilgrades[$j]); |
my ($foilid,$correct) = split('=',$Foilgrades[$j]); |
$foilid = &Apache::lonnet::unescape($foilid); |
$foilid = &unescape($foilid); |
my (undef,$submission) = split('=',$Foilsubs[$j]); |
my (undef,$submission) = split('=',$Foilsubs[$j]); |
if ($correct) { |
if ($correct) { |
$RowData{$foilid}->{'_correct'}++; |
$RowData{$foilid}->{'_correct'}++; |
} else { |
} else { |
$submission = &Apache::lonnet::unescape($submission); |
$submission = &unescape($submission); |
$RowData{$foilid}->{$submission}++; |
$RowData{$foilid}->{$submission}++; |
} |
} |
$RowData{$foilid}->{'_total'}++; |
$RowData{$foilid}->{'_total'}++; |