Diff for /loncom/homework/grades.pm between versions 1.18 and 1.23

version 1.18, 2001/12/07 23:43:46 version 1.23, 2002/05/08 18:59:37
Line 59  sub moreinfo { Line 59  sub moreinfo {
   return '';    return '';
 }  }
   
   sub verifyreceipt {
       my $request=shift;
       my $courseid=$ENV{'request.course.id'};
       my $chome=$ENV{"course.$courseid.home"};
       my $cdom=$ENV{"course.$courseid.domain"};
       my $cnum=$ENV{"course.$courseid.num"};
       my $receipt=unpack("%32C*",$Apache::lonnet::perlvar{'lonHostID'}).'-'.
                   $ENV{'form.receipt'};
       $receipt=~s/[^\-\d]//g;
       my $symb=$ENV{'form.symb'};
       unless ($symb) {
    $symb=&Apache::lonnet::symbread($ENV{'form.url'});
       }
       if ((&Apache::lonnet::allowed('mgr',$courseid)) && ($symb)) {
           $request->print('<h1>Verifying Submission Receipt '.$receipt.'</h1>');
           my $matches=0;
           my (%classlist) = &getclasslist($cdom,$cnum,$chome,'0');
           foreach my $student ( sort(@{ $classlist{'allids'} }) ) {
               my ($uname,$udom)=split(/\:/,$student);
               if ($receipt eq 
                &Apache::lonnet::ireceipt($uname,$udom,$courseid,$symb)) {
                  $request->print('Matching '.$student.'<br>');
                  $matches++;
      }
           }
           $request->print('<p>'.$matches.' match(es)</p>');
       }
       return '';
   }
   
 sub listStudents {  sub listStudents {
   my ($request) = shift;    my ($request) = shift;
   my ($cdom,$cnum) = split(/_/,$ENV{'request.course.id'});  
   my $chome=$ENV{"course.$ENV{'request.course.id'}.home"};    my $chome=$ENV{"course.$ENV{'request.course.id'}.home"};
   $request->print ("Found $cdom:$cnum:$chome<br />");    my $cdom=$ENV{"course.$ENV{'request.course.id'}.domain"};
     my $cnum=$ENV{"course.$ENV{'request.course.id'}.num"};
     my $hostver=unpack("%32C*",$Apache::lonnet::perlvar{'lonHostID'});
     $request->print(<<ENDHEADER);
   <h1>Verify a Submission Receipt Issued by this Server</h1>
   <form action="/adm/grades" method="post">
   <tt>$hostver-<input type="text" name="receipt" size="4"></tt>
   <input type="submit" name="submit" value="Verify">
   <input type="hidden" name="command" value="verify">
   ENDHEADER
     if ($ENV{'form.url'}) {
       $request->print(
       '<input type="hidden" name="url" value="'.$ENV{'form.url'}.'" />');
     }
     if ($ENV{'form.symb'}) {
       $request->print(
       '<input type="hidden" name="symb" value="'.$ENV{'form.symb'}.'" />');
     }
     $request->print(<<ENDTABLEST);
   </form>
   <h1>Show Student Submissions on Assessment</h1>
   <table border="1">
   <tr><th>Username</th><th>Domain</th><th>Name</th><th>&nbsp;</th></tr>
   ENDTABLEST
   my (%classlist) = &getclasslist($cdom,$cnum,$chome,'0');    my (%classlist) = &getclasslist($cdom,$cnum,$chome,'0');
   foreach my $student ( sort(@{ $classlist{'allids'} }) ) {    foreach my $student ( sort(@{ $classlist{'allids'} }) ) {
       my ($sname,$sdom) = split(/:/,$student);        my ($sname,$sdom) = split(/:/,$student);
Line 77  sub listStudents { Line 128  sub listStudents {
 #      my $sfullname = $Apache::lonnet::unescape($nameparts[0]);  #      my $sfullname = $Apache::lonnet::unescape($nameparts[0]);
   
       if ( $Apache::grades::viewgrades eq 'F' ) {        if ( $Apache::grades::viewgrades eq 'F' ) {
   $request->print('<form action="/adm/grades" method="post">'."\n");    $request->print("\n".'<tr>'."<td>$sname</td><td>$sdom</td><td>@nameparts</td><td>".
   $request->print("$sname @nameparts\n");    '<form action="/adm/grades" method="post">');
   if ($ENV{'form.url'}) {    if ($ENV{'form.url'}) {
     $request->print('<input type="hidden" name="url" value="'.$ENV{'form.url'}.'" />'."\n");      $request->print(
       '<input type="hidden" name="url" value="'.$ENV{'form.url'}.'" />');
   }    }
   if ($ENV{'form.symb'}) {    if ($ENV{'form.symb'}) {
     $request->print('<input type="hidden" name="symb" value="'.$ENV{'form.symb'}.'" />'."\n");      $request->print(
       '<input type="hidden" name="symb" value="'.$ENV{'form.symb'}.'" />');
   }    }
   $request->print('<input type="hidden" name="command" value="'.$ENV{'form.command'}.'" />'."\n");    $request->print(
   $request->print('<input type="hidden" name="student" value="'.$sname.'" />'."\n");      '<input type="hidden" name="command" value="'.$ENV{'form.command'}.'" />');
   $request->print('<input type="hidden" name="domain" value="'.$sdom.'" />'."\n");    $request->print(
   $request->print('<input type="submit" name="submit" value="View" />'."<br />\n");               '<input type="hidden" name="student" value="'.$sname.'" />');
   $request->print('</form>');    $request->print(
                '<input type="hidden" name="domain" value="'.$sdom.'" />');
     $request->print(
                            '<input type="submit" name="submit" value="View" />');
     $request->print('</form></td></tr>');
       }        }
   }    }
     $request->print('</table>');
 }  }
   
   
Line 259  sub submission { Line 316  sub submission {
   my $result="<h2> Submission Record </h2>  $uname:$udom for $url <br />".$answer;    my $result="<h2> Submission Record </h2>  $uname:$udom for $url <br />".$answer;
   my $rendered=&Apache::loncommon::get_student_view($symb,$uname,$udom,    my $rendered=&Apache::loncommon::get_student_view($symb,$uname,$udom,
    $ENV{'request.course.id'});     $ENV{'request.course.id'});
   $result.="Student's view of the problem:<br /> $rendered <br /> Correct answer:";    $result.="Student's view of the problem:<br /> $rendered <br /> Correct answer:<br />";
   
   my $answer=&Apache::loncommon::get_student_answers($symb,$uname,$udom,    $answer=&Apache::loncommon::get_student_answers($symb,$uname,$udom,
   $ENV{'request.course.id'});    $ENV{'request.course.id'});
   $result.=$answer;    $result.=$answer;
   return $result;    return $result;
Line 414  sub handler { Line 471  sub handler {
   } else {    } else {
     $Apache::grades::viewgrades=&Apache::lonnet::allowed('vgr',$ENV{'request.course.id'});      $Apache::grades::viewgrades=&Apache::lonnet::allowed('vgr',$ENV{'request.course.id'});
     if ($command eq 'submission') {      if ($command eq 'submission') {
       $request->print(&listStudents($request)) if ($ENV{'form.student'} eq '');        &listStudents($request) if ($ENV{'form.student'} eq '');
       $request->print(&submission($request)) if ($ENV{'form.student'} ne '');        $request->print(&submission($request)) if ($ENV{'form.student'} ne '');
     } elsif ($command eq 'viewgrades') {      } elsif ($command eq 'viewgrades') {
       $request->print(&viewgrades($request));        $request->print(&viewgrades($request));
     } elsif ($command eq 'editgrades') {      } elsif ($command eq 'editgrades') {
       $request->print(&editgrades($request));        $request->print(&editgrades($request));
       } elsif ($command eq 'verify') {
         $request->print(&verifyreceipt($request));
     } else {      } else {
       $request->print("Unknown action:$command:");        $request->print("Unknown action: $command:");
     }      }
   }    }
   &send_footer($request);    &send_footer($request);

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


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