Diff for /loncom/homework/grades.pm between versions 1.260 and 1.264

version 1.260, 2005/04/07 22:48:06 version 1.264, 2005/04/29 17:02:06
Line 2109  sub processHandGrade { Line 2109  sub processHandGrade {
 #---- Save the score and award for each student, if changed  #---- Save the score and award for each student, if changed
 sub saveHandGrade {  sub saveHandGrade {
     my ($request,$url,$symb,$stuname,$domain,$newflg,$submitter,$part) = @_;      my ($request,$url,$symb,$stuname,$domain,$newflg,$submitter,$part) = @_;
     my $v_flag=0;      my @v_flag;
     my $usec = &Apache::lonnet::getsection($domain,$stuname,      my $usec = &Apache::lonnet::getsection($domain,$stuname,
    $env{'request.course.id'});     $env{'request.course.id'});
     if (!&canmodify($usec)) { return('not_allowed'); }      if (!&canmodify($usec)) { return('not_allowed'); }
Line 2174  sub saveHandGrade { Line 2174  sub saveHandGrade {
  }   }
  # 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') {
     $v_flag = 1;      push (@v_flag,$new_part);
  }   }
     }      }
     if (scalar(keys(%newrecord)) > 0) {      if (scalar(keys(%newrecord)) > 0) {
         if ($v_flag) {          if (scalar(@v_flag)) {
             &Apache::lonnet::unmark_as_readonly($domain,$stuname,$symb.$env{'request.course.id'});              &version_portfiles(\%record, \@parts_graded, $env{'request.course.id'}, $symb, $domain, $stuname, \@v_flag);
             &version_portfiles(\%record, \@parts_graded, $env{'request.course.id'}, $symb, $domain, $stuname);  
         }          }
  &Apache::lonnet::cstore(\%newrecord,$symb,   &Apache::lonnet::cstore(\%newrecord,$symb,
  $env{'request.course.id'},$domain,$stuname);   $env{'request.course.id'},$domain,$stuname);
Line 2190  sub saveHandGrade { Line 2189  sub saveHandGrade {
   
 # ----------- 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) = @_;      my ($record, $parts_graded, $courseid, $symb, $domain, $stuname, $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).   $stuname).
  '/userfiles/portfolio';   '/userfiles/portfolio';
     foreach my $key(keys %$record) {      foreach my $key(keys %$record) {
         #&Apache::lonnet::logthis("key is $key, value is $$record{$key}");  
         my $new_portfiles;          my $new_portfiles;
         if ($key =~ /^resource\.($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");
             foreach my $file (@portfiles) {              foreach my $file (@portfiles) {
                   &Apache::lonnet::unmark_as_readonly($domain,$stuname,[$symb,$env{'request.course.id'}],$file);
                 my ($directory,$answer_file) =($file =~ /^(.*?)([^\/]*$)/);                  my ($directory,$answer_file) =($file =~ /^(.*?)([^\/]*$)/);
                 my $version = 0;                  my $version = 0;
                 my @answer_file_parts = split(/\./, $answer_file);                  my @answer_file_parts = split(/\./, $answer_file);
Line 2230  sub version_portfiles { Line 2231  sub version_portfiles {
                    my $copy_result = &Apache::lonnet::finishuserfileupload($stuname,$domain,$home_server,'copy',                     my $copy_result = &Apache::lonnet::finishuserfileupload($stuname,$domain,$home_server,'copy',
                                     '/portfolio'.$directory.$answer_file_parts[0].'.'.$version.'.'.$answer_file_parts[-1]);                                      '/portfolio'.$directory.$answer_file_parts[0].'.'.$version.'.'.$answer_file_parts[-1]);
                     push(@v_portfiles, $answer_file_parts[0].'.'.$version.'.'.$answer_file_parts[-1]);                      push(@v_portfiles, $answer_file_parts[0].'.'.$version.'.'.$answer_file_parts[-1]);
                       &Apache::lonnet::mark_as_readonly($domain,$stuname,
                                   ['/portfolio'.$directory.$answer_file_parts[0].'.'.$version.'.'.$answer_file_parts[-1]],
                                   [$symb,$env{'request.course.id'},'graded']);
                 }                  }
             }              }
             $$record{$key} = join(/,/,@v_portfiles);              $$record{$key} = join(',',@v_portfiles);
         }          }
     }       } 
     return 'ok';         return 'ok';   

Removed from v.1.260  
changed lines
  Added in v.1.264


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