Diff for /loncom/homework/grades.pm between versions 1.418 and 1.421

version 1.418, 2007/06/22 23:45:19 version 1.421, 2007/07/06 23:17:28
Line 6133  sub gather_clicker_ids { Line 6133  sub gather_clicker_ids {
     (&Apache::lonnet::userenvironment($domain,$username,'clickers'))[1];      (&Apache::lonnet::userenvironment($domain,$username,'clickers'))[1];
         foreach my $id (split(/\,/,$clickers)) {          foreach my $id (split(/\,/,$clickers)) {
             $id=~s/^[\#0]+//;              $id=~s/^[\#0]+//;
               $id=~s/[\-\:]//g;
             if (exists($clicker_ids{$id})) {              if (exists($clicker_ids{$id})) {
  $clicker_ids{$id}.=','.$username.':'.$domain;   $clicker_ids{$id}.=','.$username.':'.$domain;
             } else {              } else {
Line 6155  sub gather_adv_clicker_ids { Line 6156  sub gather_adv_clicker_ids {
  (&Apache::lonnet::userenvironment($pudom,$puname,'clickers'))[1];   (&Apache::lonnet::userenvironment($pudom,$puname,'clickers'))[1];
             foreach my $id (split(/\,/,$clickers)) {              foreach my $id (split(/\,/,$clickers)) {
  $id=~s/^[\#0]+//;   $id=~s/^[\#0]+//;
                   $id=~s/[\-\:]//g;
  if (exists($clicker_ids{$id})) {   if (exists($clicker_ids{$id})) {
     $clicker_ids{$id}.=','.$puname.':'.$pudom;      $clicker_ids{$id}.=','.$puname.':'.$pudom;
  } else {   } else {
Line 6211  sub process_clicker { Line 6213  sub process_clicker {
     my $pcorrect=&mt("Percentage points for correct solution");      my $pcorrect=&mt("Percentage points for correct solution");
     my $pincorrect=&mt("Percentage points for incorrect solution");      my $pincorrect=&mt("Percentage points for incorrect solution");
     my $selectform=&Apache::loncommon::select_form($env{'form.upfiletype'},'upfiletype',      my $selectform=&Apache::loncommon::select_form($env{'form.upfiletype'},'upfiletype',
    ('iclicker' => 'i>clicker'));     ('iclicker' => 'i>clicker',
                                                       'interwrite' => 'interwrite PRS'));
     $symb = &Apache::lonenc::check_encrypt($symb);      $symb = &Apache::lonenc::check_encrypt($symb);
     $result.=<<ENDUPFORM;      $result.=<<ENDUPFORM;
 <script type="text/javascript">  <script type="text/javascript">
Line 6300  sub process_clicker_file { Line 6303  sub process_clicker_file {
    $correct_id=~tr/a-z/A-Z/;     $correct_id=~tr/a-z/A-Z/;
    $correct_id=~s/\s//gs;     $correct_id=~s/\s//gs;
    $correct_id=~s/^[\#0]+//;     $correct_id=~s/^[\#0]+//;
              $correct_id=~s/[\-\:]//g;
            if ($correct_id) {             if ($correct_id) {
       $correct_ids{$correct_id}='specified';        $correct_ids{$correct_id}='specified';
            }             }
Line 6359  ENDHEADER Line 6363  ENDHEADER
     if ($env{'form.upfiletype'} eq 'iclicker') {      if ($env{'form.upfiletype'} eq 'iclicker') {
  ($errormsg,$number)=&iclicker_eval(\@questiontitles,\%responses);   ($errormsg,$number)=&iclicker_eval(\@questiontitles,\%responses);
     }      }
       if ($env{'form.upfiletype'} eq 'interwrite') {
           ($errormsg,$number)=&interwrite_eval(\@questiontitles,\%responses);
       }
     $result.='<br />'.&mt('Found [_1] question(s)',$number).'<br />'.      $result.='<br />'.&mt('Found [_1] question(s)',$number).'<br />'.
              '<input type="hidden" name="number" value="'.$number.'" />'.               '<input type="hidden" name="number" value="'.$number.'" />'.
              &mt('Awarding [_1] percent for correct and [_2] percent for incorrect responses',               &mt('Awarding [_1] percent for correct and [_2] percent for incorrect responses',
Line 6438  sub iclicker_eval { Line 6445  sub iclicker_eval {
     return ($errormsg,$number);      return ($errormsg,$number);
 }  }
   
   sub interwrite_eval {
       my ($questiontitles,$responses)=@_;
       my $number=0;
       my $errormsg='';
       my $skipline=1;
       my $questionnumber=0;
       my %idresponses=();
       foreach my $line (split(/[\n\r]/,$env{'form.upfile'})) {
           my %components=&Apache::loncommon::record_sep($line);
           my @entries=map {$components{$_}} (sort(keys(%components)));
           if ($entries[1] eq 'Time') { $skipline=0; next; }
           if ($entries[1] eq 'Response') { $skipline=1; }
           next if $skipline;
           if ($entries[0]!=$questionnumber) {
              $questionnumber=$entries[0];
              $$questiontitles[$number]=&mt('Question [_1]',$questionnumber);
              $number++;
           }
           my $id=$entries[4];
           $id=~s/^[\#0]+//;
           $id=~s/^v\d*\://i;
           $id=~s/[\-\:]//g;
           $idresponses{$id}[$number]=$entries[6];
       }
       foreach my $id (keys %idresponses) {
          $$responses{$id}=join(',',@{$idresponses{$id}});
          $$responses{$id}=~s/^\s*\,//;
       }
       return ($errormsg,$number);
   }
   
 sub assign_clicker_grades {  sub assign_clicker_grades {
     my ($r)=@_;      my ($r)=@_;
     my ($symb)=&get_symb($r);      my ($symb)=&get_symb($r);
Line 6490  ENDHEADER Line 6528  ENDHEADER
     my $pincorrect=$env{'form.pincorrect'};      my $pincorrect=$env{'form.pincorrect'};
     my $storecount=0;      my $storecount=0;
     foreach my $key (keys(%env)) {      foreach my $key (keys(%env)) {
          my $user='';
        if ($key=~/^form\.student\:(.*)$/) {         if ($key=~/^form\.student\:(.*)$/) {
           my $user=$1;            $user=$1;
          }
          if ($key=~/^form\.unknown\:(.*)$/) {
             my $id=$1;
             if (($env{'form.uname'.$id}) && ($env{'form.udom'.$id})) {
                $user=$env{'form.uname'.$id}.':'.$env{'form.udom'.$id};
             }
          }
          if ($user) { 
           my @answer=split(/\,/,$env{$key});            my @answer=split(/\,/,$env{$key});
           my $sum=0;            my $sum=0;
           for (my $i=0;$i<$number;$i++) {            for (my $i=0;$i<$number;$i++) {

Removed from v.1.418  
changed lines
  Added in v.1.421


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