--- loncom/homework/grades.pm 2006/09/22 21:16:14 1.302.2.7 +++ loncom/homework/grades.pm 2006/01/27 00:26:18 1.305 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # The LON-CAPA Grading handler # -# $Id: grades.pm,v 1.302.2.7 2006/09/22 21:16:14 albertel Exp $ +# $Id: grades.pm,v 1.305 2006/01/27 00:26:18 banghart Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1577,7 +1577,7 @@ sub submission { } my $overRideScore = $env{'form.overRideScore'} eq '' ? 'no' : $env{'form.overRideScore'}; - $request->print('
'."\n". + $request->print(''."\n". ''."\n". ''."\n". ''."\n". @@ -1807,9 +1807,14 @@ KEYWORDS } if (@files) { $lastsubonly.='
Like all files provided by users, this file may contain virusses
'; + my $file_counter = 0; foreach my $file (@files) { + $file_counter ++; &Apache::lonnet::allowuploaded('/adm/grades',$file); $lastsubonly.='
'.$file.''; + $lastsubonly.='Return commented document to student. '."\n"; + $lastsubonly.=''; + } $lastsubonly.='
'; } @@ -2040,6 +2045,16 @@ sub processHandGrade { } } } + if ($env{'form.returndoc1'}) { + # if multiple files are uploaded names will be 'returndoc2', 'returndoc3' + my $file_counter = 1; + while ($env{'form.returndoc'.$file_counter}) { + my $fname=$env{'form.returndoc'.$file_counter.'.filename'}; + $request->print("
".$fname." will be the uploaded file name"); + $request->print("Will upload document".$env{'form.returndocorig'.$file_counter}); + $file_counter ++; + } + } $ctr++; } } @@ -2248,7 +2263,7 @@ sub saveHandGrade { my $solvedstatus = $record{'resource.'.$new_part.'.solved'}; if ($aggtries > 0) { - &decrement_aggs($symb,$new_part,\%aggregate,$aggtries,$totaltries,$solvedstatus); + &decrement($symb,$new_part,\%aggregate,$aggtries,$totaltries,$solvedstatus); $aggregateflag = 1; } } elsif ($dropMenu eq '') { @@ -2288,7 +2303,10 @@ sub saveHandGrade { "$env{'user.name'}:$env{'user.domain'}"; } # unless problem has been graded, set flag to version the submitted files - unless ($record{'resource.'.$new_part.'.solved'} =~ /^correct_/ || $record{'resource.'.$new_part.'.solved'} eq 'incorrect_by_override') { + unless ($record{'resource.'.$new_part.'.solved'} =~ /^correct_/ || + $record{'resource.'.$new_part.'.solved'} eq 'incorrect_by_override' || + $dropMenu eq 'reset status') + { push (@v_flag,$new_part); } } @@ -2394,7 +2412,6 @@ sub version_portfiles { if ($key =~ /^resource\.($version_parts)\./ && $key =~ /\.portfiles$/ ) { my @v_portfiles; my @portfiles = split(/,/,$$record{$key}); - &Apache::lonnet::logthis("should be unmarking and remarking $key",@portfiles); foreach my $file (@portfiles) { &Apache::lonnet::unmark_as_readonly($domain,$stuname,[$symb,$env{'request.course.id'}],$file); my ($directory,$answer_file) =($file =~ /^(.*?)([^\/]*)$/); @@ -2436,7 +2453,11 @@ sub version_portfiles { } } return 'ok'; - +} + +sub version_selected_portfile { + my ($file_name,$domain,$stu_name) = @_; + return 'ok'; } sub file_name_version_ext { @@ -3291,13 +3312,8 @@ sub csvuploadmap { unshift(@fields,['none','']); $i=&Apache::loncommon::csv_samples_select_table($request,\@records, \@fields); - foreach my $rec (@records) { - my %temp = &Apache::loncommon::record_sep($rec); - if (%temp) { - $keyfields=join(',',sort(keys(%temp))); - last; - } - } + my %sone=&Apache::loncommon::record_sep($records[0]); + $keyfields=join(',',sort(keys(%sone))); } } &csvuploadmap_footer($request,$i,$keyfields); @@ -3459,7 +3475,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) { @@ -3679,7 +3695,7 @@ sub displayPage { if($curRes == $iterator->BEGIN_MAP) { $depth++; } if($curRes == $iterator->END_MAP) { $depth--; } - if (ref($curRes) && $curRes->is_problem()) { + if (ref($curRes) && $curRes->is_problem() && !$curRes->randomout) { my $parts = $curRes->parts(); my $title = $curRes->compTitle(); my $symbx = $curRes->symb(); @@ -3876,7 +3892,7 @@ sub updateGradeByPage { if($curRes == $iterator->BEGIN_MAP) { $depth++; } if($curRes == $iterator->END_MAP) { $depth--; } - if (ref($curRes) && $curRes->is_problem()) { + if (ref($curRes) && $curRes->is_problem() && !$curRes->randomout) { my $parts = $curRes->parts(); my $title = $curRes->compTitle(); my $symbx = $curRes->symb(); @@ -4063,11 +4079,11 @@ sub scantron_CODElist { sub scantron_CODEunique { my $result=' + value="Yes" checked="on" /> Yes + value="No" /> No '; return $result; } @@ -4517,29 +4533,21 @@ sub reset_skipping_status { &scantron_putfile(undef,$scan_data); } -sub start_skipping { +sub allow_skipping { my ($scan_data,$i)=@_; my %remembered=split(':',&scan_data($scan_data,'remember_skipping')); - if ($env{'form.scantron_options_redo'} =~ /^redo_/) { - $remembered{$i}=2; - } else { - $remembered{$i}=1; - } + delete($remembered{$i}); &scan_data($scan_data,'remember_skipping',join(':',%remembered)); } sub should_be_skipped { - my ($scanlines,$scan_data,$i)=@_; + my ($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}) && $remembered{$i} != 2 ) { - return 0; - } + if (exists($remembered{$i})) { return 0; } return 1; } @@ -4551,7 +4559,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); } @@ -4656,6 +4664,7 @@ 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'; } @@ -4818,8 +4827,8 @@ sub scantron_putfile { sub scantron_get_line { my ($scanlines,$scan_data,$i)=@_; - if (&should_be_skipped($scanlines,$scan_data,$i)) { return undef; } - #if ($scanlines->{'skipped'}[$i]) { return undef; } + if (&should_be_skipped($scan_data,$i)) { return undef; } + if ($scanlines->{'skipped'}[$i]) { return undef; } if ($scanlines->{'corrected'}[$i]) {return $scanlines->{'corrected'}[$i];} return $scanlines->{'orig'}[$i]; } @@ -4839,21 +4848,12 @@ sub scantron_put_line { my ($scanlines,$scan_data,$i,$newline,$skip)=@_; if ($skip) { $scanlines->{'skipped'}[$i]=$newline; - &start_skipping($scan_data,$i); + &allow_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) = @_; @@ -5297,10 +5297,6 @@ 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) {