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

www lon-capa-cvs-allow@mail.lon-capa.org
Sat, 16 Jun 2007 01:37:46 -0000


www		Fri Jun 15 21:37:46 2007 EDT

  Modified files:              
    /loncom/homework	grades.pm 
  Log:
  More work on clickers
  
  
Index: loncom/homework/grades.pm
diff -u loncom/homework/grades.pm:1.409 loncom/homework/grades.pm:1.410
--- loncom/homework/grades.pm:1.409	Fri Jun 15 18:16:13 2007
+++ loncom/homework/grades.pm	Fri Jun 15 21:37:44 2007
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # The LON-CAPA Grading handler
 #
-# $Id: grades.pm,v 1.409 2007/06/15 22:16:13 albertel Exp $
+# $Id: grades.pm,v 1.410 2007/06/16 01:37:44 www Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -6313,6 +6313,20 @@
 		     '<span class="LC_filename">'.&HTML::Entities::encode($env{'form.upfile.filename'},'<>&"').'</span>');
         return $result.&show_grading_menu_form($symb);
     }
+
+# Were able to get all the info needed, now analyze the file
+
+    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'}" />
+ENDHEADER
     my %responses;
     my @questiontitles;
     my $errormsg='';
@@ -6320,10 +6334,21 @@
     if ($env{'form.upfiletype'} eq 'iclicker') {
 	($errormsg,$number)=&iclicker_eval(\@questiontitles,\%responses);
     }
-    $result.='<br />'.&mt('Found [_1] questions',$number).'<br />';
+    $result.='<br />'.&mt('Found [_1] question(s)',$number).'<br />';
+    my $found_correct_flag=0;
     foreach my $id (keys(%responses)) {
-	$result.='<br />'.$id.' - '.$responses{$id};
+       if ($correct_ids{$id}) {
+          $result.="\n".'<input type="hidden" name="correct:'.$correct_ids{$id}.'" value="'.$responses{$id}.'" />';
+          $found_correct_flag++;
+       } elsif ($clicker_ids{$id}) {
+          $result.="\n".'<input type="hidden" name="student:'.$clicker_ids{$id}.'" value="'.$responses{$id}.'" />';
+       } else {
+          $result.="\n<br />Unknown: ".$id." - ".$responses{$id};
+       }
     }
+    $result.='</form>';
+    $result.='</td></tr></table>'."\n".
+             '</td></tr></table><br /><br />'."\n";
     return $result.&show_grading_menu_form($symb);
 }
 
@@ -6332,14 +6357,8 @@
     my $number=0;
     my $errormsg='';
     foreach my $line (split(/[\n\r]/,$env{'form.upfile'})) {
-	chomp($line);
-	foreach my $quoted ($line=~/\,\s*\"([^\"]*)\"\s*\,/g) {
-	    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);
+        my %components=&Apache::loncommon::record_sep($line);
+        my @entries=map {$components{$_}} (sort(keys(%components)));
 	if ($entries[0] eq 'Question') {
 	    for (my $i=3;$i<$#entries;$i+=6) {
 		$$questiontitles[$number]=$entries[$i];