Diff for /loncom/homework/lonhomework.pm between versions 1.17 and 1.18

version 1.17, 2000/11/30 16:20:49 version 1.18, 2000/12/04 22:08:57
Line 12  use Apache::structuretags; Line 12  use Apache::structuretags;
 use Apache::response;  use Apache::response;
   
   
 sub subhandler {  
   my ($target,$problem)=@_;  
   my %mystyle;  
   my $result = '';  
   &Apache::inputtags::initialize_inputtags;  
   %Apache::lonhomework::results=();  
   %Apache::lonhomework::history=&Apache::lonnet::restore;  
   #ignore error conditions  
   my ($temp)=keys %Apache::lonhomework::history ;  
   if ($temp =~ m/^error:.*/) { %Apache::lonhomework::history=(); }   
   
   my $resultkey;  
   foreach $resultkey (sort keys %Apache::lonhomework::history) {  
     &Apache::lonxml::debug("$resultkey ---- $Apache::lonhomework::history{$resultkey}");  
   }  
   &Apache::lonxml::debug("\n<br>restored values^</br>\n");  
   my $default=&Apache::lonnet::getfile('/home/httpd/html/res/adm/includes/default_homework.lcpm');  
   if ($default == -1) {  
     &Apache::lonxml::error("<b>Unable to find <i>default_homework.lcpm</i></b>");  
     $default='';  
   }  
   
   return Apache::lonxml::xmlparse($target, $problem,  
      $default.&setup_vars($target),%mystyle);  
 }  
   
 sub get_target {  sub get_target {
   if ( $ENV{'request.state'} eq "published") {    if ( $ENV{'request.state'} eq "published") {
     return 'web';      if ( defined $ENV{'form.submit'}) {
         return ('grade', 'web');
       } else {
         return ('web');
       }
   } elsif ($ENV{'request.state'} eq "construct") {    } elsif ($ENV{'request.state'} eq "construct") {
     if ( defined $ENV{'form.preview'}) {      if ( defined $ENV{'form.preview'}) {
       return 'web';        if ( defined $ENV{'form.submit'}) {
    return ('grade', 'web');
         } else {
    return ('web');
         }
     } else {      } else {
       return 'edit';        return ('edit');
     }      }
   }    }
     return ();
 }  }
   
 sub setup_vars {  sub setup_vars {
Line 69  sub send_footer { Line 52  sub send_footer {
   $request->print(&Apache::lontexconvert::footer());    $request->print(&Apache::lontexconvert::footer());
 }  }
   
 sub getfilenothere {  
   my ($filename) = @_;  
   my $a="";  
   if (! -e $filename ) {  
     &Apache::lonnet::subscribe($filename);  
     &Apache::lonnet::repcopy($filename);  
   }  
   {  
     my $fh=Apache::File->new($filename);  
   
     while (<$fh>) {  
       $a .=$_;  
     }  
   }  
   return $a  
 }  
   
 sub handler {  sub handler {
   my $request=shift;    my $request=$_[0];
   
   $Apache::lonxml::debug=1;    $Apache::lonxml::debug=1;
     
     my (@targets) = &get_target();
   
   if ($ENV{'browser.mathml'}) {    if ($ENV{'browser.mathml'}) {
     $request->content_type('text/xml');      $request->content_type('text/xml');
   } else {    } else {
Line 97  sub handler { Line 66  sub handler {
   }    }
   $request->send_http_header;    $request->send_http_header;
   return 'OK' if $request->header_only;    return 'OK' if $request->header_only;
     
   &Apache::lonhomework::send_header($request);    &Apache::lonhomework::send_header($request);
   my $file=&Apache::lonnet::filelocation("",$request->uri);    
   my $problem=&Apache::lonnet::getfile($file);    foreach my $target (@targets) {
   if ($problem == -1) {      my $file=&Apache::lonnet::filelocation("",$request->uri);
     &Apache::lonxml::error("<b> Unable to find <i>$file</i></b>");      my $problem=&Apache::lonnet::getfile($file);
     $problem='';      if ($problem == -1) {
   }        &Apache::lonxml::error("<b> Unable to find <i>$file</i></b>");
         $problem='';
   my $result=&subhandler(&get_target(),$problem);      }
       
       my %mystyle;
       my $result = '';
       &Apache::inputtags::initialize_inputtags;
       %Apache::lonhomework::results=();
       %Apache::lonhomework::history=&Apache::lonnet::restore;
       #ignore error conditions
       my ($temp)=keys %Apache::lonhomework::history ;
       if ($temp =~ m/^error:.*/) { %Apache::lonhomework::history=(); } 
       
       if ($target eq 'grade') {
         my $resultkey;
         foreach $resultkey (sort keys %Apache::lonhomework::history) {
    &Apache::lonxml::debug("$resultkey ---- $Apache::lonhomework::history{$resultkey}");
         }
         &Apache::lonxml::debug("\n<br>restored values^</br>\n");
       }
       my $default=&Apache::lonnet::getfile('/home/httpd/html/res/adm/includes/default_homework.lcpm');
       if ($default == -1) {
         &Apache::lonxml::error("<b>Unable to find <i>default_homework.lcpm</i></b>");
         $default='';
       }
       if ( $target eq 'grade') { 
         $Apache::lonxml::textredirection = 0; 
       } else {
         $Apache::lonxml::textredirection = 1; 
       }
       $result = &Apache::lonxml::xmlparse($target, $problem,
    $default.&setup_vars($target),%mystyle);
   
   #$request->print("Result follows:");      #$request->print("Result follows:");
   $request->print($result);      $request->print($result);
   #$request->print(":Result ends");      #$request->print(":Result ends");
       if ($target eq 'grade') {
   my $temp;        my $resultkey;
   my $resultkey;        foreach $resultkey (sort keys %Apache::lonhomework::results) {
   foreach $resultkey (sort keys %Apache::lonhomework::results) {   &Apache::lonxml::debug("$resultkey ---- $Apache::lonhomework::results{$resultkey}");
     &Apache::lonxml::debug("$resultkey ---- $Apache::lonhomework::results{$resultkey}");        }
         &Apache::lonxml::debug("\n<br>storing values^</br>\n");
       }
       
       my ($temp) = keys %Apache::lonhomework::results;
       if ( $temp ne '' ) {
         &Apache::lonxml::debug("Store return message:".&Apache::lonnet::cstore(%Apache::lonhomework::results));
       }
   }    }
   &Apache::lonxml::debug("\n<br>storing values^</br>\n");  
   
   &Apache::lonhomework::send_footer($request);    &Apache::lonhomework::send_footer($request);
   ($temp) = keys %Apache::lonhomework::results;    
   if ( $temp ne '' ) {  
     &Apache::lonxml::debug("Store return message:".&Apache::lonnet::cstore(%Apache::lonhomework::results));  
   }  
   return 'OK';    return 'OK';
   
 }  }

Removed from v.1.17  
changed lines
  Added in v.1.18


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.