Diff for /loncom/homework/lonhomework.pm between versions 1.94 and 1.101

version 1.94, 2002/10/14 16:46:42 version 1.101, 2002/11/12 05:05:26
Line 220  sub check_access { Line 220  sub check_access {
   
 sub showhash {  sub showhash {
   my (%hash) = @_;    my (%hash) = @_;
   &showhashsubset(\%hash,'');    &showhashsubset(\%hash,'.');
   return '';    return '';
 }  }
   
Line 309  sub handle_save_or_undo { Line 309  sub handle_save_or_undo {
   return $error;    return $error;
 }  }
   
   sub analyze_header {
       my ($request) = @_;
       my $result.='<html><body bgcolor="#FFFFFF">
               <form name="lonhomework" method="POST" action="'.
         $ENV{'request.uri'}.'">
               <input type="submit" name="problemmode" value="EditXML" />
               <input type="submit" name="problemmode" value="Edit" />
               <hr />
               <input type="submit" name="submit" value="View" />
               <hr />
               List of possible answers:
               </form>';
       $request->print($result);
       $request->rflush();
   }
   
 sub analyze {  sub analyze {
   my ($request,$file) = @_;      my ($request,$file) = @_;
   &Apache::lonxml::debug("Analyze");      &Apache::lonxml::debug("Analyze");
   my $result=&Apache::lonnet::ssi($request->uri,('grade_target' => 'analyze'));      my $result;
   &Apache::lonxml::debug(":$result:");      my %overall;
   (my $garbage,$result)=split(/_HASH_REF__/,$result,2);      my %allparts;
   &showhash(&Apache::lonnet::str2hash($result));      my $rndseed=$ENV{'form.rndseed'};
   return $result;      srand($rndseed);
       &analyze_header($request);
       for(my $i;$i<$ENV{'form.numtoanalyze'};$i++) {
    my $subresult=&Apache::lonnet::ssi($request->uri,
      ('grade_target' => 'analyze'),
      ('rndseed' => rand));
    #&Apache::lonxml::debug(":$subresult:");
    (my $garbage,$subresult)=split(/_HASH_REF__/,$subresult,2);
    my %analyze=&Apache::lonnet::str2hash($subresult);
    &Apache::lonhomework::showhash(%analyze);
    my @parts = @{ $analyze{'parts'} };
    foreach my $part (@parts) {
       if (!exists($allparts{$part})) {$allparts{$part}=1;};
       if ($analyze{$part.'.type'} eq 'numericalresponse') {
    push( @{ $overall{$part.'.answer'} },
         [@{ $analyze{$part.'.answer'} }]);
       }
    }
       }
       foreach my $part (keys(%allparts)) {
    $request->print('<table><tr><td>Part '.$part.'</td></tr>');
    foreach my $answer (sort {$a->[0] <=> $b->[0]} (@{ $overall{$part.'.answer'} })) {
       $request->print('<tr><td>'.join('</td><td>',@{ $answer }).
       '</td></tr>');
    }
       }
       &Apache::lonhomework::showhash(%overall);
       return $result;
 }  }
   
 sub editxmlmode {  sub editxmlmode {
Line 378  sub renderpage { Line 421  sub renderpage {
   
     my %mystyle;      my %mystyle;
     my $result = '';      my $result = '';
     &Apache::inputtags::initialize_inputtags;      &Apache::inputtags::initialize_inputtags();
     &Apache::edit::initialize_edit;      &Apache::outputtags::initialize_outputtags();
       &Apache::edit::initialize_edit();
     if ($target eq 'analyze') { %Apache::lonhomework::anaylze=(); }      if ($target eq 'analyze') { %Apache::lonhomework::anaylze=(); }
     if ($target eq 'web') {  
       my ($symb)=&Apache::lonxml::whichuser();  
       if ($symb eq '') {  
  if ($ENV{'request.state'} eq "construct") {  
  } else {  
           my $help = Apache::loncommon::help_open_topic("Ambiguous_Reference");  
   $request->print("Browsing or <a href=\"/adm/ambiguous\">ambiguous</a> reference, submissions ignored $help<br />");  
  }  
       }  
       #if ($Apache::lonhomework::viewgrades eq 'F') {&createmenu('grade',$request); }  
     }  
     if ($target eq 'answer') { &showhash(%Apache::lonhomework::history); }      if ($target eq 'answer') { &showhash(%Apache::lonhomework::history); }
     if ($target eq 'web') {&Apache::lonhomework::showhashsubset(\%ENV,'^form');}      if ($target eq 'web') {&Apache::lonhomework::showhashsubset(\%ENV,'^form');}
   
     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='';  
     }  
     &Apache::lonxml::debug("Should be parsing now");      &Apache::lonxml::debug("Should be parsing now");
     $result = &Apache::lonxml::xmlparse($request, $target, $problem,      $result = &Apache::lonxml::xmlparse($request, $target, $problem,
  $default.&setup_vars($target),%mystyle);   &setup_vars($target),%mystyle);
   
     #$request->print("Result follows:");      #$request->print("Result follows:");
     if ($target eq 'modified') {      if ($target eq 'modified') {
Line 506  sub handler { Line 534  sub handler {
   #my $t0 = [&gettimeofday()];    #my $t0 = [&gettimeofday()];
   my $request=$_[0];    my $request=$_[0];
   
   #if ( $ENV{'user.name'} eq 'albertel' ) {$Apache::lonxml::debug=1;}  #  if ( $ENV{'user.name'} eq 'albertel' ) {$Apache::lonxml::debug=1;}
     $Apache::lonxml::debug=$ENV{'user.debug'};
   
   if (&setupheader($request)) { return OK; }    if (&setupheader($request)) { return OK; }
   $ENV{'request.uri'}=$request->uri;    $ENV{'request.uri'}=$request->uri;

Removed from v.1.94  
changed lines
  Added in v.1.101


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