Diff for /loncom/homework/essayresponse.pm between versions 1.76 and 1.82

version 1.76, 2006/10/16 09:27:54 version 1.82, 2007/04/17 23:25:09
Line 31  use strict; Line 31  use strict;
 use Apache::lonxml();  use Apache::lonxml();
 use Apache::lonnet;  use Apache::lonnet;
 use Apache::lonlocal;  use Apache::lonlocal;
 use lib '/home/httpd/lib/perl/';  
 use LONCAPA;  use LONCAPA;
     
   
Line 147  sub end_essayresponse { Line 146  sub end_essayresponse {
 #  #
                 if ($award eq 'SUBMITTED') {                  if ($award eq 'SUBMITTED') {
     my ($symb,$crsid,$domain,$name)=      my ($symb,$crsid,$domain,$name)=
  &Apache::lonxml::whichuser();   &Apache::lonnet::whichuser();
     if ($crsid) {      if ($crsid) {
  my $akey=$name.'.'.$domain.'.'.$crsid;   my $akey=$name.'.'.$domain.'.'.$crsid;
  my $essayurl=   my $essayurl=
     &Apache::lonnet::declutter($ENV{'REQUEST_URI'});      &Apache::lonnet::declutter($ENV{'REQUEST_URI'});
  my ($adom,$aname,$apath)=   my ($adom,$aname,$apath)=
     ($essayurl=~/^(\w+)\/(\w+)\/(.*)$/);      ($essayurl=~/^($LONCAPA::domain_re)\/($LONCAPA::username_re)\/(.*)$/);
                         $apath=&escape($apath);                          $apath=&escape($apath);
  $apath=~s/\W/\_/gs;   $apath=~s/\W/\_/gs;
  &Apache::lonnet::put('nohist_essay_'.$apath,   &Apache::lonnet::put('nohist_essay_'.$apath,
Line 170  sub end_essayresponse { Line 169  sub end_essayresponse {
  $result .= &Apache::inputtags::exam_score_line($target);   $result .= &Apache::inputtags::exam_score_line($target);
   
     } elsif ($target eq 'answer') {      } elsif ($target eq 'answer') {
  if ($env{'form.answer_output_mode'} eq 'tex') {   $result.=&Apache::response::answer_header($$tagstack[-1]);
     $result .= '\begin{tabular}{|l|}';   my $answer = &mt('Essay will be hand graded.');
     $result .= '\hline';   $result.=&Apache::response::answer_part($$tagstack[-1],$answer,
     $result .= ' Answer for essay will be hand graded \\\\  ';   {'no_verbatim' => 1});
     $result .= '\\hline';   $result.=&Apache::response::answer_footer($$tagstack[-1]);
     $result .= '\end{tabular}';      }
     $result .= '\vskip 3mm';      if ($target eq 'web') {
  } else {   &Apache::response::setup_prior_tries_hash(\&format_prior_response,
     $result.=&Apache::response::answer_header($$tagstack[-1]);    ['portfiles',
     $result.=&Apache::response::answer_part($$tagstack[-1],'');     'uploadedurl']);
     $result.=&Apache::response::answer_footer($$tagstack[-1]);  
  }  
     }      }
   
     if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' ||      if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' ||
Line 193  sub end_essayresponse { Line 190  sub end_essayresponse {
     return $result;      return $result;
 }  }
   
   sub format_prior_response {
       my ($mode,$answer,$other_data) = @_;
       my $output;
   
       my (undef,undef,$udom,$uname) = &Apache::lonnet::whichuser();
       my $port_url = '/uploaded/'.$udom.'/'.$uname.'/portfolio/';
   
       my $file_list;
   
       foreach my $file (split(/\s*,\s*/,
       $other_data->[0].','.$other_data->[1])) {
    next if ($file!~/\S/);
    if ($file !~ m{^/uploaded/}) { $file=$port_url.$file; }
    $file=~s|/+|/|g;
    &Apache::lonnet::allowuploaded('/adm/essayresponse',$file);
    $file_list.='<li><span class="LC_nobreak"><a href="'.$file.'?rawmode=1" target="lonGRDs"><img src="'.
       &Apache::loncommon::icon($file).'" alt="file icon" border="0" /> '.$file.
       '</a></span></li>'."\n";
       }
       if ($file_list) {
    $output.= &mt('Submitted Files').'<ul>'.$file_list.'</ul>';
       }
       if ($answer =~ /\S/) {
    $output.='<p>'.&mt('Submitted text').
       '<blockquote>'.$answer.'</blockquote></p>';
       }
   
       return '<div class="LC_prior_essay">'.$output.'</div>';
   }
   
 sub file_submission {  sub file_submission {
     my ($part,$id,$which,$award,$uploadedflag)=@_;      my ($part,$id,$which,$award,$uploadedflag)=@_;
     my $files;      my $files;
Line 227  sub file_submission { Line 254  sub file_submission {
     $$uploadedflag=1;      $$uploadedflag=1;
  }   }
  if ($$award ne 'INVALID_FILETYPE' && $which eq 'portfiles') {   if ($$award ne 'INVALID_FILETYPE' && $which eq 'portfiles') {
     my ($symb,$crsid,$domain,$name)=&Apache::lonxml::whichuser();      my ($symb,$crsid,$domain,$name)=&Apache::lonnet::whichuser();
     &Apache::lonnet::unmark_as_readonly($domain,$name,[$symb,$crsid]);      &Apache::lonnet::unmark_as_readonly($domain,$name,[$symb,$crsid]);
     &Apache::lonnet::mark_as_readonly($domain,$name,\@submitted_files,[$symb,$crsid]);      &Apache::lonnet::mark_as_readonly($domain,$name,\@submitted_files,[$symb,$crsid]);
     &Apache::lonnet::clear_selected_files($name);      &Apache::lonnet::clear_selected_files($name);
Line 241  sub file_submission { Line 268  sub file_submission {
  }   }
     } elsif ($which eq 'portfiles' &&      } elsif ($which eq 'portfiles' &&
      $Apache::lonhomework::history{"resource.$part.$id.$which"}) {       $Apache::lonhomework::history{"resource.$part.$id.$which"}) {
  my ($symb,$crsid,$domain,$name)=&Apache::lonxml::whichuser();   my ($symb,$crsid,$domain,$name)=&Apache::lonnet::whichuser();
  &Apache::lonnet::unmark_as_readonly($domain,$name,[$symb,$crsid]);   &Apache::lonnet::unmark_as_readonly($domain,$name,[$symb,$crsid]);
  $Apache::lonhomework::results{"resource.$part.$id.$which"}="";   $Apache::lonhomework::results{"resource.$part.$id.$which"}="";
     }      }

Removed from v.1.76  
changed lines
  Added in v.1.82


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