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

version 1.20, 2002/04/09 03:56:29 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 ('<h1>Show Student Submissions on Assessment</h1>'.    my $cdom=$ENV{"course.$ENV{'request.course.id'}.domain"};
  '<table border="1"><tr><th>Username</th><th>Domain</th><th>Name</th><th>&nbsp;</th></tr>'    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 79  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(    $request->print("\n".'<tr>'."<td>$sname</td><td>$sdom</td><td>@nameparts</td><td>".
  "\n".'<tr><form action="/adm/grades" method="post">'.    '<form action="/adm/grades" method="post">');
  "<td>$sname</td><td>$sdom</td><td>@nameparts</td><td>");  
   if ($ENV{'form.url'}) {    if ($ENV{'form.url'}) {
     $request->print(      $request->print(
     '<input type="hidden" name="url" value="'.$ENV{'form.url'}.'" />');      '<input type="hidden" name="url" value="'.$ENV{'form.url'}.'" />');
Line 98  sub listStudents { Line 146  sub listStudents {
              '<input type="hidden" name="domain" value="'.$sdom.'" />');               '<input type="hidden" name="domain" value="'.$sdom.'" />');
   $request->print(    $request->print(
                          '<input type="submit" name="submit" value="View" />');                           '<input type="submit" name="submit" value="View" />');
   $request->print('</td></form></tr>');    $request->print('</form></td></tr>');
       }        }
   }    }
   $request->print('</table>');    $request->print('</table>');
Line 268  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 429  sub handler { Line 477  sub handler {
       $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.20  
changed lines
  Added in v.1.23


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