--- loncom/homework/grades.pm 2006/01/25 22:58:26 1.302.2.1
+++ loncom/homework/grades.pm 2006/09/22 21:16:14 1.302.2.7
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# The LON-CAPA Grading handler
#
-# $Id: grades.pm,v 1.302.2.1 2006/01/25 22:58:26 albertel Exp $
+# $Id: grades.pm,v 1.302.2.7 2006/09/22 21:16:14 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -2248,7 +2248,7 @@ sub saveHandGrade {
my $solvedstatus = $record{'resource.'.$new_part.'.solved'};
if ($aggtries > 0) {
- &decrement($symb,$new_part,\%aggregate,$aggtries,$totaltries,$solvedstatus);
+ &decrement_aggs($symb,$new_part,\%aggregate,$aggtries,$totaltries,$solvedstatus);
$aggregateflag = 1;
}
} elsif ($dropMenu eq '') {
@@ -3291,8 +3291,13 @@ sub csvuploadmap {
unshift(@fields,['none','']);
$i=&Apache::loncommon::csv_samples_select_table($request,\@records,
\@fields);
- my %sone=&Apache::loncommon::record_sep($records[0]);
- $keyfields=join(',',sort(keys(%sone)));
+ foreach my $rec (@records) {
+ my %temp = &Apache::loncommon::record_sep($rec);
+ if (%temp) {
+ $keyfields=join(',',sort(keys(%temp)));
+ last;
+ }
+ }
}
}
&csvuploadmap_footer($request,$i,$keyfields);
@@ -3454,7 +3459,7 @@ sub csvuploadassign {
}
$request->print("
Stored $countdone students\n");
if (@skipped) {
- $request->print('
Skipped Students
');
+ $request->print('Skipped Students
');
foreach my $student (@skipped) { $request->print("$student
\n"); }
}
if (@notallowed) {
@@ -3674,7 +3679,7 @@ sub displayPage {
if($curRes == $iterator->BEGIN_MAP) { $depth++; }
if($curRes == $iterator->END_MAP) { $depth--; }
- if (ref($curRes) && $curRes->is_problem() && !$curRes->randomout) {
+ if (ref($curRes) && $curRes->is_problem()) {
my $parts = $curRes->parts();
my $title = $curRes->compTitle();
my $symbx = $curRes->symb();
@@ -3871,7 +3876,7 @@ sub updateGradeByPage {
if($curRes == $iterator->BEGIN_MAP) { $depth++; }
if($curRes == $iterator->END_MAP) { $depth--; }
- if (ref($curRes) && $curRes->is_problem() && !$curRes->randomout) {
+ if (ref($curRes) && $curRes->is_problem()) {
my $parts = $curRes->parts();
my $title = $curRes->compTitle();
my $symbx = $curRes->symb();
@@ -4058,11 +4063,11 @@ sub scantron_CODElist {
sub scantron_CODEunique {
my $result='
+ value="yes" checked="checked" /> Yes
+ value="no" /> No
';
return $result;
}
@@ -4512,21 +4517,29 @@ sub reset_skipping_status {
&scantron_putfile(undef,$scan_data);
}
-sub allow_skipping {
+sub start_skipping {
my ($scan_data,$i)=@_;
my %remembered=split(':',&scan_data($scan_data,'remember_skipping'));
- delete($remembered{$i});
+ if ($env{'form.scantron_options_redo'} =~ /^redo_/) {
+ $remembered{$i}=2;
+ } else {
+ $remembered{$i}=1;
+ }
&scan_data($scan_data,'remember_skipping',join(':',%remembered));
}
sub should_be_skipped {
- my ($scan_data,$i)=@_;
+ my ($scanlines,$scan_data,$i)=@_;
if ($env{'form.scantron_options_redo'} !~ /^redo_/) {
# not redoing old skips
+ if ($scanlines->{'skipped'}[$i]) { return 1; }
return 0;
}
my %remembered=split(':',&scan_data($scan_data,'remember_skipping'));
- if (exists($remembered{$i})) { return 0; }
+
+ if (exists($remembered{$i}) && $remembered{$i} != 2 ) {
+ return 0;
+ }
return 1;
}
@@ -4538,7 +4551,7 @@ sub remember_current_skipped {
$to_remember{$i}=1;
}
}
- &Apache::lonnet::logthis('remembering '.join(':',%to_remember));
+
&scan_data($scan_data,'remember_skipping',join(':',%to_remember));
&scantron_putfile(undef,$scan_data);
}
@@ -4643,7 +4656,6 @@ sub scantron_validate_file {
}
if ($env{'form.scantron_options_redo'} eq 'redo_skipped') {
&remember_current_skipped();
- &scantron_remove_file('skipped');
$env{'form.scantron_options_redo'}='redo_skipped_ready';
}
@@ -4806,8 +4818,8 @@ sub scantron_putfile {
sub scantron_get_line {
my ($scanlines,$scan_data,$i)=@_;
- if (&should_be_skipped($scan_data,$i)) { return undef; }
- if ($scanlines->{'skipped'}[$i]) { return undef; }
+ if (&should_be_skipped($scanlines,$scan_data,$i)) { return undef; }
+ #if ($scanlines->{'skipped'}[$i]) { return undef; }
if ($scanlines->{'corrected'}[$i]) {return $scanlines->{'corrected'}[$i];}
return $scanlines->{'orig'}[$i];
}
@@ -4827,12 +4839,21 @@ sub scantron_put_line {
my ($scanlines,$scan_data,$i,$newline,$skip)=@_;
if ($skip) {
$scanlines->{'skipped'}[$i]=$newline;
- &allow_skipping($scan_data,$i);
+ &start_skipping($scan_data,$i);
return;
}
$scanlines->{'corrected'}[$i]=$newline;
}
+sub scantron_clear_skip {
+ my ($scanlines,$scan_data,$i)=@_;
+ if (exists($scanlines->{'skipped'}[$i])) {
+ undef($scanlines->{'skipped'}[$i]);
+ return 1;
+ }
+ return 0;
+}
+
sub scantron_validate_ID {
my ($r,$currentphase) = @_;
@@ -5276,6 +5297,10 @@ SCANTRONFORM
($uname,$udom)=split(/:/,$uname);
&Apache::lonnet::delenv('form.counter');
&Apache::lonnet::appenv(%$scan_record);
+
+ if (&scantron_clear_skip($scanlines,$scan_data,$i)) {
+ &scantron_putfile($scanlines,$scan_data);
+ }
my $i=0;
foreach my $resource (@resources) {