Diff for /loncom/homework/grades.pm between versions 1.406 and 1.407

version 1.406, 2007/06/15 22:00:42 version 1.407, 2007/06/15 22:10:15
Line 41  use Apache::Constants qw(:common); Line 41  use Apache::Constants qw(:common);
 use Apache::lonlocal;  use Apache::lonlocal;
 use Apache::lonenc;  use Apache::lonenc;
 use String::Similarity;  use String::Similarity;
 use lib '/home/httpd/lib/perl';  
 use LONCAPA;  use LONCAPA;
   
 use POSIX qw(floor);  use POSIX qw(floor);
Line 6130  sub init_perm { Line 6129  sub init_perm {
 }  }
   
 sub gather_clicker_ids {  sub gather_clicker_ids {
     my %clickerids=();      my %clicker_ids=();
   
     my $classlist = &Apache::loncoursedata::get_classlist();      my $classlist = &Apache::loncoursedata::get_classlist();
   
     # Set up a couple variables.      # Set up a couple variables.
     my $usernameidx = &Apache::loncoursedata::CL_SNAME();      my $username_idx = &Apache::loncoursedata::CL_SNAME();
     my $domainidx   = &Apache::loncoursedata::CL_SDOM();      my $domain_idx   = &Apache::loncoursedata::CL_SDOM();
   
     foreach my $student (keys %$classlist) {      foreach my $student (keys(%$classlist)) {
   
         my $username = $classlist->{$student}->[$usernameidx];          my $username = $classlist->{$student}->[$username_idx];
         my $domain   = $classlist->{$student}->[$domainidx];          my $domain   = $classlist->{$student}->[$domain_idx];
         my $clickers =          my $clickers =
    (&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+//;
             if (exists($clickerids{$id})) {              if (exists($clicker_ids{$id})) {
                $clickerids{$id}.=','.$username.':'.$domain;                 $clicker_ids{$id}.=','.$username.':'.$domain;
             } else {              } else {
                $clickerids{$id}=$username.':'.$domain;                 $clicker_ids{$id}=$username.':'.$domain;
             }              }
         }          }
     }      }
     return %clickerids;      return %clicker_ids;
 }  }
   
 sub gather_adv_clicker_ids {  sub gather_adv_clicker_ids {
     my %clickerids=();      my %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);
Line 6168  sub gather_adv_clicker_ids { Line 6167  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+//;
                if (exists($clickerids{$id})) {                 if (exists($clicker_ids{$id})) {
                   $clickerids{$id}.=','.$puname.':'.$pudom;                    $clicker_ids{$id}.=','.$puname.':'.$pudom;
                } else {                 } else {
                   $clickerids{$id}=$puname.':'.$pudom;                    $clicker_ids{$id}=$puname.':'.$pudom;
                }                 }
             }              }
         }          }
     }      }
     return %clickerids;      return %clicker_ids;
 }  }
   
 sub process_clicker {  sub process_clicker {
Line 6274  sub process_clicker_file { Line 6273  sub process_clicker_file {
        $result.='<span class="LC_error">'.&mt('You need to specify a clicker ID for the correct answer').'</span>';         $result.='<span class="LC_error">'.&mt('You need to specify a clicker ID for the correct answer').'</span>';
        return $result.&show_grading_menu_form($symb);         return $result.&show_grading_menu_form($symb);
     }      }
     my %clickerids=&gather_clicker_ids();      my %clicker_ids=&gather_clicker_ids();
     my %correctids=();      my %correct_ids=();
     if ($env{'form.gradingmechanism'} eq 'personnel') {      if ($env{'form.gradingmechanism'} eq 'personnel') {
        %correctids=&gather_adv_clicker_ids();         %correct_ids=&gather_adv_clicker_ids();
     }      }
     if ($env{'form.gradingmechanism'} eq 'specific') {      if ($env{'form.gradingmechanism'} eq 'specific') {
        my $correctid=$env{'form.specificid'};         my $correct_id=$env{'form.specificid'};
        $correctid=~tr/a-z/A-Z/;         $correct_id=~tr/a-z/A-Z/;
        $correctid=~s/\s//gs;         $correct_id=~s/\s//gs;
        $correctid=~s/^0+//;         $correct_id=~s/^0+//;
        $correctids{$correctid}='specified';         $correct_ids{$correct_id}='specified';
     }      }
     if ($env{'form.gradingmechanism'} eq 'attendance') {      if ($env{'form.gradingmechanism'} eq 'attendance') {
        $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.='<h3>'.&mt('Correctness determined by the following IDs').'</h3>';
        foreach my $id (sort(keys(%correctids))) {         foreach my $id (sort(keys(%correct_ids))) {
           $result.='<tt>'.$id.'</tt> - ';            $result.='<tt>'.$id.'</tt> - ';
           if ($correctids{$id} eq 'specified') {            if ($correct_ids{$id} eq 'specified') {
              $result.=&mt('specified');               $result.=&mt('specified');
           } else {            } else {
              my ($uname,$udom)=split(/\:/,$correctids{$id});               my ($uname,$udom)=split(/\:/,$correct_ids{$id});
              $result.=&Apache::loncommon::plainname($uname,$udom);               $result.=&Apache::loncommon::plainname($uname,$udom);
           }            }
           $result.='<br />';            $result.='<br />';
Line 6308  sub process_clicker_file { Line 6307  sub process_clicker_file {
        }         }
     }      }
     if (length($env{'form.upfile'}) < 2) {      if (length($env{'form.upfile'}) < 2) {
         $result.="<span class=\"LC_error\">Error:</span> The file you attempted to upload, <tt>".&HTML::Entities::encode($env{'form.upfile.filename'},'<>&"')."</tt>, contained no information. Please check that you entered the correct filename.";          $result.=&mt('[_1] Error: [_2] The file you attempted to upload, [_3] contained no information. Please check that you entered the correct filename.',
        '<span class="LC_error">',
        '</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);
     }      }
     my %responses=();      my %responses=();

Removed from v.1.406  
changed lines
  Added in v.1.407


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