[LON-CAPA-cvs] cvs: loncom /homework grades.pm

www lon-capa-cvs-allow@mail.lon-capa.org
Fri, 15 Jun 2007 22:00:45 -0000


www		Fri Jun 15 18:00:45 2007 EDT

  Modified files:              
    /loncom/homework	grades.pm 
  Log:
  Finished interpreting iClicker file
  
  
Index: loncom/homework/grades.pm
diff -u loncom/homework/grades.pm:1.405 loncom/homework/grades.pm:1.406
--- loncom/homework/grades.pm:1.405	Fri Jun 15 17:21:16 2007
+++ loncom/homework/grades.pm	Fri Jun 15 18:00:42 2007
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # The LON-CAPA Grading handler
 #
-# $Id: grades.pm,v 1.405 2007/06/15 21:21:16 www Exp $
+# $Id: grades.pm,v 1.406 2007/06/15 22:00:42 www Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -6311,17 +6311,22 @@
         $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.";
         return $result.&show_grading_menu_form($symb);
     }
-    my %contents=();
+    my %responses=();
+    my @questiontitles=();
     my $errormsg='';
     my $number=0;
     if ($env{'form.upfiletype'} eq 'iclicker') {
-       ($errormsg,$number,%contents)=&iclicker_eval();
-       $result.=$errormsg;
+       ($errormsg,$number)=&iclicker_eval(\@questiontitles,\%responses);
+    }
+    $result.='<br />'.&mt('Found [_1] questions',$number).'<br />';
+    foreach my $id (keys %responses) {
+       $result.='<br />'.$id.' - '.$responses{$id};
     }
     return $result.&show_grading_menu_form($symb);
 }
 
 sub iclicker_eval {
+    my ($questiontitles,$responses)=@_;
     my $number=0;
     my $errormsg='';
     foreach my $line (split(/[\n\r]/,$env{'form.upfile'})) {
@@ -6335,10 +6340,20 @@
        my @entries=split(/\,/,$line);
        if ($entries[0] eq 'Question') {
           for (my $i=3;$i<$#entries;$i+=6) {
+              $$questiontitles[$number]=$entries[$i];
               $number++;
-              $errormsg.='<br />'.$entries[$i];
           }
        }
+       if ($entries[0]=~/^\#/) {
+          my $id=$entries[0];
+          my @idresponses=();
+          $id=~s/^[\#0]+//;
+          for (my $i=0;$i<$number;$i++) {
+             my $idx=3+$i*6;
+             push(@idresponses,$entries[$idx]);
+          }
+          $$responses{$id}=join(',',@idresponses);
+       }
     }
     return ($errormsg,$number);
 }