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

sakharuk lon-capa-cvs@mail.lon-capa.org
Wed, 19 Mar 2003 14:23:38 -0000


sakharuk		Wed Mar 19 09:23:38 2003 EDT

  Modified files:              
    /loncom/homework	rankresponse.pm 
  Log:
   Now can be printed in the exam mode. Note that I've changed the numeration to the boxes according to Ed's desire (the same is true with respect to matchresponse problems eather). Needs additional work for the screen output (I did not care about this until this point). Continue.
  
  
Index: loncom/homework/rankresponse.pm
diff -u loncom/homework/rankresponse.pm:1.3 loncom/homework/rankresponse.pm:1.4
--- loncom/homework/rankresponse.pm:1.3	Mon Mar 17 15:08:21 2003
+++ loncom/homework/rankresponse.pm	Wed Mar 19 09:23:38 2003
@@ -1,8 +1,7 @@
 # The LearningOnline Network with CAPA
 # rank style response
 #
-# $Id: rankresponse.pm,v 1.3 2003/03/17 20:08:21 sakharuk Exp $
-#
+# $Id: rankresponse.pm,v 1.4 2003/03/19 14:23:38 sakharuk Exp $
 # Copyright Michigan State University Board of Trustees
 #
 # This file is part of the LearningOnline Network with CAPA (LON-CAPA).
@@ -30,6 +29,7 @@
 package Apache::rankresponse;
 use strict;
 use HTML::Entities();
+use Apache::optionresponse;
 
 BEGIN {
     &Apache::lonxml::register('Apache::rankresponse',('rankresponse'));
@@ -231,6 +231,7 @@
 sub displayfoils {
     my ($target,$max,$randomize,$tol)=@_;
     my $result;
+    my @alphabet=('A'..'Z');
     my (@whichfoils)=&whichfoils($max,$randomize);
     my $part=$Apache::inputtags::part;
     my $solved=$Apache::lonhomework::history{"resource.$part.solved"};
@@ -250,7 +251,6 @@
 	my $part=$Apache::inputtags::part;
 	my $lastresponse=$Apache::lonhomework::history{"resource.$part.$id.submission"};
 	my %lastresponse=&Apache::lonnet::str2hash($lastresponse);
-	my $localcount = 1;
 	foreach my $name (@whichfoils) {
 	    my $lastopt=$lastresponse{$name};
 	    my $optionlist='';
@@ -273,7 +273,18 @@
 	    my $text=$Apache::response::foilgroup{$name.'.text'};
 	    if ($target ne 'tex') {
 		$result.='<br />'.$optionlist.$text."\n";
-	    } else {$result.=' \\\\ '.$localcount.'. '.$text."\n"; $localcount++;}
+		if ($Apache::lonhomework::type eq 'exam') {
+		    $result.=&Apache::optionresponse::webbubbles(\@alphabet,\@whichopt);
+		}
+	    } else {
+		if ($Apache::lonhomework::type eq 'exam') {
+		    $result.=' \framebox[5 mm][s]{\tiny\strut} '.$text."\n";
+		    $result.='\begin{enumerate}\item[\textbf{'.$Apache::lonxml::counter.'}.]'.&Apache::optionresponse::bubbles(\@alphabet,\@whichopt).'\end{enumerate}\strut ';
+		    &Apache::lonxml::increment_counter();
+		} else {
+		$result.=' \\\\ \framebox[5 mm][s]{\tiny\strut} '.$text."\n";
+		}
+	    }
 	    $temp++;
 	}
     }