Diff for /loncom/interface/lonquickgrades.pm between versions 1.98 and 1.99

version 1.98, 2011/06/02 01:34:34 version 1.99, 2011/06/03 00:04:47
Line 35  use Apache::loncommon; Line 35  use Apache::loncommon;
 use Apache::lonlocal;  use Apache::lonlocal;
 use Apache::lonnet;  use Apache::lonnet;
 use Apache::grades;  use Apache::grades;
 use Time::HiRes;  
 my $time=0;  
   
 sub tim {  
     my ($label)=@_;  
     my $tt=&Time::HiRes::time();  
     my $dt=$tt-$time;  
     &Apache::lonnet::logthis("qg $label ".$dt);  
     $time=$tt;  
 }  
   
   
 sub handler {  sub handler {
     my $r = shift;      my $r = shift;
Line 136  sub real_handler { Line 125  sub real_handler {
                  $navmap,$totalParts,$totalPossible,$totalRight,$totalAttempted,$topLevelParts,$topLevelRight,$topLevelAttempted);                   $navmap,$totalParts,$totalPossible,$totalRight,$totalAttempted,$topLevelParts,$topLevelRight,$topLevelAttempted);
     }      }
     if ($cangrade) { $r->print("\n</form>\n"); }      if ($cangrade) { $r->print("\n</form>\n"); }
   
     &endGradeScreen($r);      &endGradeScreen($r);
     return OK;      return OK;
   
 }  }
   
   sub getStudentCatGrade {
       my ($uname,$udom,%categories)=@_;
       my ($navmap,$totalParts,$totalPossible,$totalRight,$totalAttempted,$topLevelParts,$topLevelRight,$topLevelAttempted)=
          &getData(1,$uname,$udom);
       return &output_category_table(undef,0,$navmap,0,%categories);
   }
   
   sub getAllStudentData {
       my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
       my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
       my %categories=&Apache::lonnet::dump('grading_categories',$cdom,$cnum);
   #FIXME: debugging output
       return &getStudentCatGrade('korte','gerd',%categories);
   }
   
   
 sub startGradeScreen {  sub startGradeScreen {
     my ($r,$mode)=@_;      my ($r,$mode)=@_;
   
Line 472  sub outputCategories { Line 478  sub outputCategories {
         &Apache::lonnet::put('grading_categories',\%categories,$cdom,$cnum);          &Apache::lonnet::put('grading_categories',\%categories,$cdom,$cnum);
     }      }
 # new categories loaded now  # new categories loaded now
     &output_category_table($r,$cangrade,$navmap,%categories);      &output_category_table($r,$cangrade,$navmap,1,%categories);
 #  #
     if ($cangrade) {      if ($cangrade) {
         $r->print(&Apache::loncommon::resourcebrowser_javascript().          $r->print(&Apache::loncommon::resourcebrowser_javascript().
Line 482  sub outputCategories { Line 488  sub outputCategories {
                   '<input type="submit" name="storechanges" value="'.&mt("Save changes to grading categories").'" />'.                    '<input type="submit" name="storechanges" value="'.&mt("Save changes to grading categories").'" />'.
                   '<script>function storecmd (cmd) { document.quickform.cmd.value=cmd; document.quickform.submit(); }</script>');                    '<script>function storecmd (cmd) { document.quickform.cmd.value=cmd; document.quickform.submit(); }</script>');
     }      }
 #  
 # Debug  
 #  
 #    my %data=&dumpdata($navmap);  
 #    foreach (keys(%data)) {  
 #        $r->print("\n<br />".$_.'='.$data{$_});  
 #    }  
 #   my @debugarray=('5:1','4:3','1:1','5:5','6:7');  
 #   $r->print("Array: ".join(',',@debugarray).'<br />');  
 #   $r->print("0,0,0: ".join(',',&drop(0,0,0,@debugarray)).'<br />');  
 #   $r->print("1,0,0: ".join(',',&drop(1,0,0,@debugarray)).'<br />');  
 #   $r->print("0,1,0: ".join(',',&drop(0,1,0,@debugarray)).'<br />');  
 #   $r->print("1,1,0: ".join(',',&drop(1,1,0,@debugarray)).'<br />');  
 #  
 #   $r->print("0,0,2: ".join(',',&drop(0,0,2,@debugarray)).'<br />');  
 #   $r->print("1,0,2: ".join(',',&drop(1,0,2,@debugarray)).'<br />');  
 #   $r->print("0,1,2: ".join(',',&drop(0,1,2,@debugarray)).'<br />');  
 #   $r->print("1,1,2: ".join(',',&drop(1,1,2,@debugarray)).'<br />');  
 #  
 #   $r->print("0,0,4: ".join(',',&drop(0,0,4,@debugarray)).'<br />');  
 #   $r->print("1,0,4: ".join(',',&drop(1,0,4,@debugarray)).'<br />');  
 #   $r->print("0,1,4: ".join(',',&drop(0,1,4,@debugarray)).'<br />');  
 #   $r->print("1,1,4: ".join(',',&drop(1,1,4,@debugarray)).'<br />');  
 #  
 #   $r->print("0,0,5: ".join(',',&drop(0,0,5,@debugarray)).'<br />');  
 #   $r->print("1,0,5: ".join(',',&drop(1,0,5,@debugarray)).'<br />');  
 #   $r->print("0,1,5: ".join(',',&drop(0,1,5,@debugarray)).'<br />');  
 #   $r->print("1,1,5: ".join(',',&drop(1,1,5,@debugarray)).'<br />');  
 #  
 #   $r->print("0,0,7: ".join(',',&drop(0,0,7,@debugarray)).'<br />');  
 #   $r->print("1,0,7: ".join(',',&drop(1,0,7,@debugarray)).'<br />');  
 #   $r->print("0,1,7: ".join(',',&drop(0,1,7,@debugarray)).'<br />');  
 #   $r->print("1,1,7: ".join(',',&drop(1,1,7,@debugarray)).'<br />');  
   
 }  }
   
 #  #
Line 598  sub process_category_edits { Line 570  sub process_category_edits {
 #  #
   
 sub output_category_table {  sub output_category_table {
     my ($r,$cangrade,$navmaps,%categories)=@_;      my ($r,$cangrade,$navmaps,$output,%categories)=@_;
           
     my $totalweight=0;      my $totalweight=0;
     my $totalpoints=0;      my $totalpoints=0;
   
     $r->print(&Apache::loncommon::start_data_table());      if ($output) { 
          $r->print(&Apache::loncommon::start_data_table());
 #  #
     &output_category_table_header($r,$cangrade);         &output_category_table_header($r,$cangrade);
       }
 #  #
     my @order=split(/\,/,$categories{'order'});      my @order=split(/\,/,$categories{'order'});
 #  #
     my %performance=&dumpdata($navmaps);      my %performance=&dumpdata($navmaps);
     my $maxpos=$#order;      my $maxpos=$#order;
     for (my $i=0;$i<=$maxpos;$i++) {      for (my $i=0;$i<=$maxpos;$i++) {
         my ($correct,$possible,$type,$weight)=&output_and_calc_category($r,$cangrade,$navmaps,$order[$i],$i,$maxpos,\%performance,1,%categories);          my ($correct,$possible,$type,$weight)=&output_and_calc_category($r,$cangrade,$navmaps,$order[$i],$i,$maxpos,\%performance,$output,%categories);
         unless ($possible) { next; }          unless ($possible) { next; }
         $totalpoints+=$weight*$correct/$possible;          $totalpoints+=$weight*$correct/$possible;
         $totalweight+=$weight;          $totalweight+=$weight;
Line 621  sub output_category_table { Line 595  sub output_category_table {
     my $perc=0;      my $perc=0;
     if ($totalweight) { $perc=100.*$totalpoints/$totalweight; }      if ($totalweight) { $perc=100.*$totalpoints/$totalweight; }
   
     &bottom_line_category($r,$cangrade,$perc);      if ($output) { 
 #          &bottom_line_category($r,$cangrade,$perc); 
     $r->print(&Apache::loncommon::end_data_table());          $r->print(&Apache::loncommon::end_data_table());
       }
     return $perc;      return $perc;
 }  }
   
Line 649  sub output_category_table_header { Line 624  sub output_category_table_header {
   
 sub output_and_calc_category {  sub output_and_calc_category {
     my ($r,$cangrade,$navmaps,$id,$currentpos,$maxpos,$performance,$output,%categories)=@_;      my ($r,$cangrade,$navmaps,$id,$currentpos,$maxpos,$performance,$output,%categories)=@_;
       
       if ($output) { $r->print("\n".&Apache::loncommon::start_data_table_row()); }
   
     my $iconpath = &Apache::loncommon::lonhttpdurl($r->dir_config('lonIconsURL') . "/");      if ($output && $cangrade) {
     my %lt=&Apache::lonlocal::texthash(          my $iconpath = &Apache::loncommon::lonhttpdurl($r->dir_config('lonIconsURL') . "/");
           my %lt=&Apache::lonlocal::texthash(
            'up' => 'Move Up',             'up' => 'Move Up',
            'dw' => 'Move Down');             'dw' => 'Move Down');
     if ($output) { $r->print("\n".&Apache::loncommon::start_data_table_row()); }  
   
     if ($output && $cangrade) {  
         $r->print(<<ENDMOVE);          $r->print(<<ENDMOVE);
 <td>  <td>
 <div class="LC_docs_entry_move">  <div class="LC_docs_entry_move">

Removed from v.1.98  
changed lines
  Added in v.1.99


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