Diff for /loncom/homework/grades.pm between versions 1.408 and 1.411

version 1.408, 2007/06/15 22:12:49 version 1.411, 2007/06/16 02:35:22
Line 6160  sub gather_adv_clicker_ids { Line 6160  sub gather_adv_clicker_ids {
     my $cnum=$env{'course.'.$env{'request.course.id'}.'.num'};      my $cnum=$env{'course.'.$env{'request.course.id'}.'.num'};
     my $cdom=$env{'course.'.$env{'request.course.id'}.'.domain'};      my $cdom=$env{'course.'.$env{'request.course.id'}.'.domain'};
     my %coursepersonnel=&Apache::lonnet::get_course_adv_roles($cdom.'/'.$cnum);      my %coursepersonnel=&Apache::lonnet::get_course_adv_roles($cdom.'/'.$cnum);
     foreach my $element (sort keys %coursepersonnel) {      foreach my $element (sort(keys(%coursepersonnel))) {
         foreach my $person (split(/\,/,$coursepersonnel{$element})) {          foreach my $person (split(/\,/,$coursepersonnel{$element})) {
             my ($puname,$pudom)=split(/\:/,$person);              my ($puname,$pudom)=split(/\:/,$person);
             my $clickers =              my $clickers =
Line 6289  sub process_clicker_file { Line 6289  sub process_clicker_file {
  $result.=&mt('Score based on attendance only');   $result.=&mt('Score based on attendance only');
     } else {      } else {
  my $number=0;   my $number=0;
  $result.='<h3>'.&mt('Correctness determined by the following IDs').'</h3>';   $result.='<p><b>'.&mt('Correctness determined by the following IDs').'</b>';
  foreach my $id (sort(keys(%correct_ids))) {   foreach my $id (sort(keys(%correct_ids))) {
     $result.='<tt>'.$id.'</tt> - ';      $result.='<br /><tt>'.$id.'</tt> - ';
     if ($correct_ids{$id} eq 'specified') {      if ($correct_ids{$id} eq 'specified') {
  $result.=&mt('specified');   $result.=&mt('specified');
     } else {      } else {
  my ($uname,$udom)=split(/\:/,$correct_ids{$id});   my ($uname,$udom)=split(/\:/,$correct_ids{$id});
  $result.=&Apache::loncommon::plainname($uname,$udom);   $result.=&Apache::loncommon::plainname($uname,$udom);
     }      }
     $result.='<br />';  
     $number++;      $number++;
  }   }
           $result.="</p>\n";
  if ($number==0) {   if ($number==0) {
     $result.='<span class="LC_error">'.&mt('No IDs found to determine correct answer').'</span>';      $result.='<span class="LC_error">'.&mt('No IDs found to determine correct answer').'</span>';
     return $result.&show_grading_menu_form($symb);      return $result.&show_grading_menu_form($symb);
Line 6313  sub process_clicker_file { Line 6313  sub process_clicker_file {
      '<span class="LC_filename">'.&HTML::Entities::encode($env{'form.upfile.filename'},'<>&"').'</span>');       '<span class="LC_filename">'.&HTML::Entities::encode($env{'form.upfile.filename'},'<>&"').'</span>');
         return $result.&show_grading_menu_form($symb);          return $result.&show_grading_menu_form($symb);
     }      }
   
   # Were able to get all the info needed, now analyze the file
   
       $result.=&Apache::loncommon::studentbrowser_javascript();
       my $heading=&mt('Scanning clicker file');
       $result.=(<<ENDHEADER);
   <br /><table width="100%" border="0"><tr><td bgcolor="#777777">
   <table width="100%" border="0"><tr bgcolor="#e6ffff"><td>
   <b>$heading</b></td></tr><tr bgcolor=#ffffe6><td>
   <form method="post" action="/adm/grades" name="clickeranalysis">
   <input type="hidden" name="symb" value="$symb" />
   <input type="hidden" name="command" value="assignclickergrades" />
   <input type="hidden" name="probTitle" value="$env{'form.probTitle'}" />
   <input type="hidden" name="saveState"  value="$env{'form.saveState'}" />
   <input type="hidden" name="gradingmechanism" value="$env{'form.gradingmechanism'}" />
   <input type="hidden" name="pcorrect" value="$env{'form.pcorrect'}" />
   <input type="hidden" name="pincorrect" value="$env{'form.pincorrect'}" />
   ENDHEADER
     my %responses;      my %responses;
     my @questiontitles;      my @questiontitles;
     my $errormsg='';      my $errormsg='';
Line 6320  sub process_clicker_file { Line 6338  sub process_clicker_file {
     if ($env{'form.upfiletype'} eq 'iclicker') {      if ($env{'form.upfiletype'} eq 'iclicker') {
  ($errormsg,$number)=&iclicker_eval(\@questiontitles,\%responses);   ($errormsg,$number)=&iclicker_eval(\@questiontitles,\%responses);
     }      }
     $result.='<br />'.&mt('Found [_1] questions',$number).'<br />';      $result.='<br />'.&mt('Found [_1] question(s)',$number).'<br />'.
     foreach my $id (keys %responses) {               '<input type="hidden" name="number" value="'.$number.'" />'.
  $result.='<br />'.$id.' - '.$responses{$id};               &mt('Awarding [_1] percent for correct and [_2] percent for incorrect responses',
                    $env{'form.pcorrect'},$env{'form.pincorrect'}).
                '<br />';
       my $correct_count=0;
       my $student_count=0;
       my $unknown_count=0;
       foreach my $id (keys(%responses)) {
          if ($correct_ids{$id}) {
             $result.="\n".'<input type="hidden" name="correct:'.$correct_ids{$id}.'" value="'.$responses{$id}.'" />';
             $correct_count++;
          } elsif ($clicker_ids{$id}) {
             $result.="\n".'<input type="hidden" name="student:'.$clicker_ids{$id}.'" value="'.$responses{$id}.'" />';
             $student_count++;
          } else {
             $result.="\n<hr />".&mt('Unregistered Clicker')." <tt>".$id."</tt><br />";
             $result.="\n".'<input type="hidden" name="unknown:'.$id.'" value="'.$responses{$id}.'" />'.
                      "\n".&mt("Username").": <input type='text' name='uname".$id."' />&nbsp;".
                      "\n".&mt("Domain").": ".
                      &Apache::loncommon::select_dom_form($env{'course.'.$env{'request.course.id'}.'.domain'},'udom'.$id).'&nbsp;'.
                      &Apache::loncommon::selectstudent_link('clickeranalysis','uname'.$id,'udom'.$id);
             $unknown_count++;
          }
     }      }
       $result.='<hr /><p>&nbsp;</p><input type="submit" name="finalize" value="'.&mt('Finalize Grading').'" /></form>';
       $result.='</td></tr></table>'."\n".
                '</td></tr></table><br /><br />'."\n";
     return $result.&show_grading_menu_form($symb);      return $result.&show_grading_menu_form($symb);
 }  }
   
Line 6332  sub iclicker_eval { Line 6374  sub iclicker_eval {
     my $number=0;      my $number=0;
     my $errormsg='';      my $errormsg='';
     foreach my $line (split(/[\n\r]/,$env{'form.upfile'})) {      foreach my $line (split(/[\n\r]/,$env{'form.upfile'})) {
  chomp($line);          my %components=&Apache::loncommon::record_sep($line);
  foreach my $quoted ($line=~/\,\s*\"([^\"]*)\"\s*\,/g) {          my @entries=map {$components{$_}} (sort(keys(%components)));
     my $replace=$quoted;  
     $replace=~s/\,//g;  
     &Apache::lonnet::logthis($quoted.' - '.$replace.'<br />');  
     $line=~s/\,\s*\"\Q$quoted\E\"\s*\,/,$replace,/gs;  
  }  
  my @entries=split(/\,/,$line);  
  if ($entries[0] eq 'Question') {   if ($entries[0] eq 'Question') {
     for (my $i=3;$i<$#entries;$i+=6) {      for (my $i=3;$i<$#entries;$i+=6) {
  $$questiontitles[$number]=$entries[$i];   $$questiontitles[$number]=$entries[$i];

Removed from v.1.408  
changed lines
  Added in v.1.411


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