Diff for /loncom/homework/grades.pm between versions 1.302.2.2 and 1.309

version 1.302.2.2, 2006/01/31 17:49:01 version 1.309, 2006/02/06 23:39:44
Line 1577  sub submission { Line 1577  sub submission {
  }   }
  my $overRideScore = $env{'form.overRideScore'} eq '' ? 'no' : $env{'form.overRideScore'};   my $overRideScore = $env{'form.overRideScore'} eq '' ? 'no' : $env{'form.overRideScore'};
   
  $request->print('<form action="/adm/grades" method="post" name="SCORE">'."\n".   $request->print('<form action="/adm/grades" method="post" name="SCORE" enctype="multipart/form-data">'."\n".
  '<input type="hidden" name="command"    value="handgrade" />'."\n".   '<input type="hidden" name="command"    value="handgrade" />'."\n".
  '<input type="hidden" name="saveState"  value="'.$env{'form.saveState'}.'" />'."\n".   '<input type="hidden" name="saveState"  value="'.$env{'form.saveState'}.'" />'."\n".
  '<input type="hidden" name="Status"     value="'.$env{'form.Status'}.'" />'."\n".   '<input type="hidden" name="Status"     value="'.$env{'form.Status'}.'" />'."\n".
Line 1807  KEYWORDS Line 1807  KEYWORDS
  }   }
  if (@files) {   if (@files) {
     $lastsubonly.='<br /><font color="red" size="1">Like all files provided by users, this file may contain virusses</font><br />';      $lastsubonly.='<br /><font color="red" size="1">Like all files provided by users, this file may contain virusses</font><br />';
       my $file_counter = 0;
     foreach my $file (@files) {      foreach my $file (@files) {
           $file_counter ++;
  &Apache::lonnet::allowuploaded('/adm/grades',$file);   &Apache::lonnet::allowuploaded('/adm/grades',$file);
  $lastsubonly.='<br /><a href="'.$file.'" target="lonGRDs"><img src="'.&Apache::loncommon::icon($file).'" border=0"> '.$file.'</a>';   $lastsubonly.='<br /><a href="'.$file.'" target="lonGRDs"><img src="'.&Apache::loncommon::icon($file).'" border=0"> '.$file.'</a>';
    $lastsubonly.='Return commented document to student. <input type="file" name="returndoc'.$file_counter.'" />'."\n";
    $lastsubonly.='<input type="hidden" name="returndocorig'.$file_counter.'" value="'.$file.'" />';
   
     }      }
     $lastsubonly.='<br />';      $lastsubonly.='<br />';
  }   }
Line 2040  sub processHandGrade { Line 2045  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("<br />".$fname." will be the uploaded file name");
               $request->print("<font color=\"red\">Will upload document</font>".$env{'form.returndocorig'.$file_counter});
               $file_counter ++;
           }
       }
     $ctr++;      $ctr++;
  }   }
     }      }
Line 2288  sub saveHandGrade { Line 2303  sub saveHandGrade {
  "$env{'user.name'}:$env{'user.domain'}";   "$env{'user.name'}:$env{'user.domain'}";
  }   }
  # unless problem has been graded, set flag to version the submitted files   # 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);      push (@v_flag,$new_part);
  }   }
     }      }
Line 2382  sub get_last_resets { Line 2400  sub get_last_resets {
   
 # ----------- Handles creating versions for portfolio files as answers  # ----------- Handles creating versions for portfolio files as answers
 sub version_portfiles {  sub version_portfiles {
     my ($record, $parts_graded, $courseid, $symb, $domain, $stuname, $v_flag) = @_;      my ($record, $parts_graded, $courseid, $symb, $domain, $stu_name, $v_flag) = @_;
     my $version_parts = join('|',@$v_flag);      my $version_parts = join('|',@$v_flag);
     my $parts = join('|', @$parts_graded);      my $parts = join('|', @$parts_graded);
     my $portfolio_root = &Apache::loncommon::propath($domain,      my $portfolio_root = &Apache::loncommon::propath($domain,
  $stuname).   $stu_name).
  '/userfiles/portfolio';   '/userfiles/portfolio';
     foreach my $key (keys(%$record)) {      foreach my $key (keys(%$record)) {
         my $new_portfiles;          my $new_portfiles;
   
         if ($key =~ /^resource\.($version_parts)\./ && $key =~ /\.portfiles$/ ) {          if ($key =~ /^resource\.($version_parts)\./ && $key =~ /\.portfiles$/ ) {
             my @v_portfiles;              my @v_portfiles;
             my @portfiles = split(/,/,$$record{$key});              my @portfiles = split(/,/,$$record{$key});
             &Apache::lonnet::logthis("should be unmarking and remarking $key",@portfiles);  
             foreach my $file (@portfiles) {              foreach my $file (@portfiles) {
                 &Apache::lonnet::unmark_as_readonly($domain,$stuname,[$symb,$env{'request.course.id'}],$file);                  &Apache::lonnet::unmark_as_readonly($domain,$stu_name,[$symb,$env{'request.course.id'}],$file);
                 my ($directory,$answer_file) =($file =~ /^(.*?)([^\/]*)$/);                  my ($directory,$answer_file) =($file =~ /^(.*?)([^\/]*)$/);
                 my $version = 0;                  my $version = 0;
  my ($answer_name,$answer_ver,$answer_ext) =   my ($answer_name,$answer_ver,$answer_ext) =
     &file_name_version_ext($answer_file);      &file_name_version_ext($answer_file);
                 my @dir_list = &Apache::lonnet::dirlist($directory,$domain,$stuname,$portfolio_root);                  my @dir_list = &Apache::lonnet::dirlist($directory,$domain,$stu_name,$portfolio_root);
                 foreach my $row (@dir_list) {                  $version = &get_next_version($answer_name, $answer_ext, \@dir_list);
                     my ($file) = split(/\&/,$row,2);                  my $new_answer = &version_selected_portfile($domain, $stu_name, $directory, $answer_file, $version);
     my ($file_name,$file_version,$file_ext) =                  if ($new_answer ne 'problem getting file') {
  &file_name_version_ext($file);  
                     if (($file_name eq $answer_name) &&   
  ($file_ext eq $answer_ext)) {  
                         # gets here if filename and extension match, regardless of version  
                         if ($file_version ne '') {  
                             # a versioned file is found  so save it for later  
                             if ($file_version > $version) {  
  $version = $file_version;  
     }  
                         }  
                     }  
                 }  
                 $version++;  
                 $env{'form.copy'} = &Apache::lonnet::getfile("/uploaded/$domain/$stuname/portfolio$directory$answer_file");  
                 if($env{'form.copy'} eq '-1') {  
                     &Apache::lonnet::logthis('problem getting file '.$directory.$answer_file);  
                 } else {  
     my $new_answer = $answer_name.'.'.$version.'.'.$answer_ext;  
     my $copy_result = &Apache::lonnet::finishuserfileupload(  
                                         $stuname,$domain,'copy',  
         '/portfolio'.$directory.$new_answer);  
                     push(@v_portfiles, $directory.$new_answer);                      push(@v_portfiles, $directory.$new_answer);
                     &Apache::lonnet::mark_as_readonly($domain,$stuname,                      &Apache::lonnet::mark_as_readonly($domain,$stu_name,
                                 ['/portfolio'.$directory.$new_answer],                          ['/portfolio'.$directory.$new_answer],
                                 [$symb,$env{'request.course.id'},'graded']);                          [$symb,$env{'request.course.id'},'graded']);
                 }                  }
                   
             }              }
             $$record{$key} = join(',',@v_portfiles);              $$record{$key} = join(',',@v_portfiles);
         }          }
     }       } 
     return 'ok';         return 'ok';   
       }
   
   sub get_next_version {
       my ($answer_name, $answer_ext, $dir_list);
       my $version;
       foreach my $row (@$dir_list) {
           my ($file) = split(/\&/,$row,2);
           my ($file_name,$file_version,$file_ext) =
       &file_name_version_ext($file);
           if (($file_name eq $answer_name) && 
       ($file_ext eq $answer_ext)) {
                   # gets here if filename and extension match, regardless of version
                   if ($file_version ne '') {
                   # a versioned file is found  so save it for later
                   if ($file_version > $version) {
       $version = $file_version;
           }
               }
           }
       } 
       $version ++;
       return($version);
   }
   
   sub version_selected_portfile {
       my ($domain,$stu_name,$directory,$file_name,$version) = @_;
       my ($answer_name,$answer_ver,$answer_ext) =
           &file_name_version_ext($file_name);
       my $new_answer;
       $env{'form.copy'} = &Apache::lonnet::getfile("/uploaded/$domain/$stu_name/portfolio$directory$file_name");
       if($env{'form.copy'} eq '-1') {
           &Apache::lonnet::logthis('problem getting file '.$file_name);
           $new_answer = 'problem getting file';
       } else {
           $new_answer = $answer_name.'.'.$version.'.'.$answer_ext;
           my $copy_result = &Apache::lonnet::finishuserfileupload(
                               $stu_name,$domain,'copy',
           '/portfolio'.$directory.$new_answer);
       }    
       return ($new_answer);
 }  }
   
 sub file_name_version_ext {  sub file_name_version_ext {
Line 3291  sub csvuploadmap { Line 3326  sub csvuploadmap {
     unshift(@fields,['none','']);      unshift(@fields,['none','']);
     $i=&Apache::loncommon::csv_samples_select_table($request,\@records,      $i=&Apache::loncommon::csv_samples_select_table($request,\@records,
     \@fields);      \@fields);
     my %sone=&Apache::loncommon::record_sep($records[0]);      foreach my $rec (@records) {
     $keyfields=join(',',sort(keys(%sone)));   my %temp = &Apache::loncommon::record_sep($rec);
    if (%temp) {
       $keyfields=join(',',sort(keys(%temp)));
       last;
    }
       }
  }   }
     }      }
     &csvuploadmap_footer($request,$i,$keyfields);      &csvuploadmap_footer($request,$i,$keyfields);

Removed from v.1.302.2.2  
changed lines
  Added in v.1.309


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>