new_window = true;
-$labeltext
+
+$labeltext
NEW_WINDOW_CHECKBOX
}
@@ -747,8 +747,6 @@ NEW_WINDOW_CHECKBOX
$total_sum_width = length($total_count)+1;
$Str .= " total\n";
$Str .= "";
- $r->print($Str);
- $r->rflush();
$r->print(<
@@ -809,13 +807,13 @@ JS
}
#
# Initialize progress window
- %prog_state=&Apache::lonhtmlcommon::Create_PrgWin
- ($r,'HTML Chart Status',
- 'HTML Chart Progress', $studentcount,
- 'inline',undef,'Statistics','stats_status');
#
+ %prog_state=&Apache::lonhtmlcommon::Create_PrgWin($r,$studentcount);
&Apache::lonhtmlcommon::Update_PrgWin($r,\%prog_state,
'Processing first student');
+ $r->print($Str);
+ $r->rflush();
+
return;
}
@@ -828,7 +826,7 @@ sub html_outputstudent {
# $r->print(" ");
$r->print(' ');
&Apache::lonhtmlcommon::Increment_PrgWin(
- $r,\%prog_state,'last five students');
+ $r,\%prog_state,'last five students',5);
$r->rflush();
$r->print('');
}
@@ -873,16 +871,18 @@ sub html_outputstudent {
my $PerformanceStr = '';
foreach my $seq (@sequences) {
my $symb = $seq->symb;
+ my $randompick = $seq->randompick();
my ($performance,$performance_length,$score,$seq_max,$rawdata);
if ($chosen_output->{'tries'}) {
($performance,$performance_length,$score,$seq_max,$rawdata) =
&student_tries_on_sequence($student,\%StudentsData,
- $navmap,$seq,$show_links);
+ $navmap,$seq,$show_links,$randompick);
} else {
($performance,$performance_length,$score,$seq_max,$rawdata) =
&student_performance_on_sequence($student,\%StudentsData,
$navmap,$seq,$show_links,
- $chosen_output->{ignore_weight});
+ $chosen_output->{ignore_weight},
+ $randompick);
}
my $ratio='';
if ($chosen_output->{'every_problem'} &&
@@ -1451,10 +1451,7 @@ sub excel_initialize {
$r->rflush();
#
# Initialize progress window
- %prog_state=&Apache::lonhtmlcommon::Create_PrgWin
- ($r,'Excel File Compilation Status',
- 'Excel File Compilation Progress', $studentcount,
- 'inline',undef,'Statistics','stats_status');
+ %prog_state=&Apache::lonhtmlcommon::Create_PrgWin($r,$studentcount);
#
&Apache::lonhtmlcommon::Update_PrgWin($r,\%prog_state,
'Processing first student');
@@ -1494,6 +1491,7 @@ sub excel_outputstudent {
my %maximum_cell_translation;
foreach my $seq (@sequences) {
my $symb = $seq->symb;
+ my $randompick = $seq->randompick();
$cols_output = $formula_data{$symb}->{'Excel:startcol'};
# Keep track of cells to translate in total cell
$total_cell_translation{$formula_data{$symb}->{'Excel:scorecell'}} =
@@ -1508,12 +1506,13 @@ sub excel_outputstudent {
if ($chosen_output->{'tries'} || $chosen_output->{'correct'}){
($performance,$performance_length,$score,$seq_max,$rawdata) =
&student_tries_on_sequence($student,\%StudentsData,
- $navmap,$seq,'no');
+ $navmap,$seq,'no',$randompick);
} else {
($performance,$performance_length,$score,$seq_max,$rawdata) =
&student_performance_on_sequence($student,\%StudentsData,
$navmap,$seq,'no',
- $chosen_output->{ignore_weight});
+ $chosen_output->{ignore_weight},
+ $randompick);
}
if ($chosen_output->{'every_problem'}) {
if ($chosen_output->{'correct'}) {
@@ -1666,10 +1665,7 @@ END
#
# Initialize progress window
my $studentcount = scalar(@Apache::lonstatistics::Students);
- %prog_state=&Apache::lonhtmlcommon::Create_PrgWin
- ($r,'CSV File Compilation Status',
- 'CSV File Compilation Progress', $studentcount,
- 'inline',undef,'Statistics','stats_status');
+ %prog_state=&Apache::lonhtmlcommon::Create_PrgWin($r,$studentcount);
#
# Open a file
($outputfile,$filename) = &Apache::loncommon::create_text_file($r,'csv');
@@ -1678,7 +1674,7 @@ END
# Datestamp
my $description = $env{'course.'.$env{'request.course.id'}.'.description'};
print $outputfile '"'.&Apache::loncommon::csv_translate($description).'",'.
- '"'.&Apache::loncommon::csv_translate(scalar(localtime(time))).'"'.
+ '"'.&Apache::loncommon::csv_translate(scalar(&Apache::lonlocal::locallocaltime(time))).'"'.
"\n";
print $outputfile '"'.
&Apache::loncommon::csv_translate
@@ -1775,16 +1771,18 @@ sub csv_outputstudent {
my $total = 0;
my $maximum = 0;
foreach my $seq (@sequences) {
+ my $randompick = $seq->randompick();
my ($performance,$performance_length,$score,$seq_max,$rawdata);
if ($chosen_output->{'tries'}){
($performance,$performance_length,$score,$seq_max,$rawdata) =
&student_tries_on_sequence($student,\%StudentsData,
- $navmap,$seq,'no');
+ $navmap,$seq,'no',$randompick);
} else {
($performance,$performance_length,$score,$seq_max,$rawdata) =
&student_performance_on_sequence($student,\%StudentsData,
$navmap,$seq,'no',
- $chosen_output->{ignore_weight});
+ $chosen_output->{ignore_weight},
+ $randompick);
}
if ($chosen_output->{'every_problem'}) {
if ($chosen_output->{'correct'}) {
@@ -1885,7 +1883,7 @@ Inputs:
#######################################################
#######################################################
sub student_tries_on_sequence {
- my ($student,$studentdata,$navmap,$seq,$links) = @_;
+ my ($student,$studentdata,$navmap,$seq,$links,$randompick) = @_;
$links = 'no' if (! defined($links));
my $Str = '';
my ($sum,$max) = (0,0);
@@ -1980,8 +1978,8 @@ sub student_tries_on_sequence {
}
$Str .= $value;
}
- if ($seq->randompick()) {
- $max = $seq->randompick();
+ if ($randompick) {
+ $max = $randompick;
}
if (! $hasdata && $sum == 0) {
$sum = ' ';
@@ -2046,7 +2044,7 @@ Inputs:
#######################################################
#######################################################
sub student_performance_on_sequence {
- my ($student,$studentdata,$navmap,$seq,$links,$awarded_only) = @_;
+ my ($student,$studentdata,$navmap,$seq,$links,$awarded_only,$randompick) = @_;
$links = 'no' if (! defined($links));
my $Str = ''; # final result string
my ($score,$max) = (0,0);
@@ -2055,9 +2053,11 @@ sub student_performance_on_sequence {
my @ScoreData = ();
my $partscore;
my $hasdata = 0; # flag, 0 if there were no submissions on the sequence
+ my %ptsfreq;
foreach my $resource (&get_resources($navmap,$seq)) {
my $symb = $resource->symb;
my $resource_data = $studentdata->{$symb};
+ my $resmax = 0;
foreach my $part (@{$resource->parts()}) {
$partscore = undef;
my $weight;
@@ -2073,6 +2073,7 @@ sub student_performance_on_sequence {
}
#
$max += $weight; # see the 'excused' branch below...
+ $resmax += $weight;
$performance_length++; # one character per part
$symbol = ' '; # default to space
#
@@ -2133,6 +2134,17 @@ sub student_performance_on_sequence {
}
$Str .= $symbol;
}
+ if ($ptsfreq{$resmax}) {
+ $ptsfreq{$resmax} ++;
+ } else {
+ $ptsfreq{$resmax} = 1;
+ }
+ }
+ if ($randompick) {
+ my @uniquetotals = keys(%ptsfreq);
+ if ((@uniquetotals = 1) && ($ptsfreq{$uniquetotals[0]} > 0)) {
+ $max = $max * $randompick/$ptsfreq{$uniquetotals[0]};
+ }
}
if (! $hasdata && $score == 0) {
$score = ' ';