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

albertel lon-capa-cvs@mail.lon-capa.org
Fri, 29 Mar 2002 19:19:21 -0000


albertel		Fri Mar 29 14:19:21 2002 EDT

  Modified files:              
    /loncom/homework	lonhomework.pm optionresponse.pm 
  Log:
  - undef the hash when done
  - now reports back the possible options, and the shown foil order
  - <foil> outside of <conceptgroup> also reported
  
  
Index: loncom/homework/lonhomework.pm
diff -u loncom/homework/lonhomework.pm:1.74 loncom/homework/lonhomework.pm:1.75
--- loncom/homework/lonhomework.pm:1.74	Fri Mar 29 13:32:46 2002
+++ loncom/homework/lonhomework.pm	Fri Mar 29 14:19:21 2002
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # The LON-CAPA Homework handler
 #
-# $Id: lonhomework.pm,v 1.74 2002/03/29 18:32:46 albertel Exp $
+# $Id: lonhomework.pm,v 1.75 2002/03/29 19:19:21 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -359,6 +359,7 @@
     } else {
       if ($target eq 'analyze') {
 	$result=&Apache::lonnet::hashref2str(\%Apache::lonhomework::analyze);
+	undef(%Apache::lonhomework::analyze);
       }
       #my $td=&tv_interval($t0);
       #if ( $Apache::lonxml::debug) {
Index: loncom/homework/optionresponse.pm
diff -u loncom/homework/optionresponse.pm:1.34 loncom/homework/optionresponse.pm:1.35
--- loncom/homework/optionresponse.pm:1.34	Fri Mar 29 13:32:46 2002
+++ loncom/homework/optionresponse.pm	Fri Mar 29 14:19:21 2002
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # option list style responses
 #
-# $Id: optionresponse.pm,v 1.34 2002/03/29 18:32:46 albertel Exp $
+# $Id: optionresponse.pm,v 1.35 2002/03/29 19:19:21 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -148,7 +148,7 @@
   my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
   
   my $result;
-  if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' || $target eq 'tex') {
+  if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' || $target eq 'tex' || $target eq 'analyze') {
     my $name;
     my ($count,$max) = &getfoilcounts($parstack,$safeeval);
     if ($count>$max) { $count=$max } 
@@ -166,10 +166,12 @@
 	if (defined($Apache::lonhomework::analyze{"$part_id.foil.value.$name"})) { next; }
 	push (@{ $Apache::lonhomework::analyze{"$part_id.foils"} },$name);
 	$Apache::lonhomework::analyze{"$part_id.foil.value.$name"} =
-	  $Apache::response::conceptgroup{"$name.value"};
+	  $Apache::response::foilgroup{"$name.value"};
 	$Apache::lonhomework::analyze{"$part_id.foil.text.$name"} =
-	  $Apache::response::conceptgroup{"$name.text"};
+	  $Apache::response::foilgroup{"$name.text"};
       }
+      push (@{ $Apache::lonhomework::analyze{"$part_id.options"} },@opt);
+      push (@{ $Apache::lonhomework::analyze{"$part_id.shown"} },&whichfoils($count));
     } elsif ( $target eq 'grade') {
       if ( defined $ENV{'form.submitted'}) {
 	my @whichopt = &whichfoils($count);
@@ -340,34 +342,38 @@
   $Apache::optionresponse::conceptgroup=0;
   my $result='';
   if ($target eq 'web' || $target eq 'grade' || $target eq 'answer'
-      || $target eq 'tex') {
+      || $target eq 'tex' || $target eq 'analyze') {
     #if not there aren't any foils to display and thus no question
     if (defined(@{ $Apache::response::conceptgroup{'names'} })) {
       my @names = @{ $Apache::response::conceptgroup{'names'} };
       my $pick=int rand $#names+1;
       my $name=$names[$pick];
       push @{ $Apache::response::foilgroup{'names'} }, $name;
-      $Apache::response::foilgroup{"$name.value"} =  $Apache::response::conceptgroup{"$name.value"};
-      $Apache::response::foilgroup{"$name.text"} =  $Apache::response::conceptgroup{"$name.text"};
+      $Apache::response::foilgroup{"$name.value"} =
+	$Apache::response::conceptgroup{"$name.value"};
+      $Apache::response::foilgroup{"$name.text"} =
+	$Apache::response::conceptgroup{"$name.text"};
       my $concept = &Apache::lonxml::get_param('concept',$parstack,$safeeval);
       $Apache::response::foilgroup{"$name.concept"} = $concept;
       &Apache::lonxml::debug("Selecting $name in $concept");
+      if ($target eq 'analyze') {
+	my $part_id="$Apache::inputtags::part.$Apache::inputtags::response[-1]";
+        push (@{ $Apache::lonhomework::analyze{"$part_id.concepts"} },
+	      $concept);
+	$Apache::lonhomework::analyze{"$part_id.concept.$concept"}=
+	  $Apache::response::conceptgroup{'names'};
+	foreach my $name (@{ $Apache::response::conceptgroup{'names'} }) {
+	  push (@{ $Apache::lonhomework::analyze{"$part_id.foils"} },
+		$name);
+	  $Apache::lonhomework::analyze{"$part_id.foil.value.$name"} =
+	    $Apache::response::conceptgroup{"$name.value"};
+	  $Apache::lonhomework::analyze{"$part_id.foil.text.$name"} =
+	    $Apache::response::conceptgroup{"$name.text"};
+	}
+      }
     }
   } elsif ($target eq 'edit') {
     $result=&Apache::edit::end_table();
-  } elsif ($target eq 'analyze') {
-    my $part_id="$Apache::inputtags::part.$Apache::inputtags::response[-1]";
-    my $concept = &Apache::lonxml::get_param('concept',$parstack,$safeeval);
-    push (@{ $Apache::lonhomework::analyze{"$part_id.concepts"} },$concept);
-    $Apache::lonhomework::analyze{"$part_id.concept.$concept"}=
-      $Apache::response::conceptgroup{'names'};
-    foreach my $name (@{ $Apache::response::conceptgroup{'names'} }) {
-      push (@{ $Apache::lonhomework::analyze{"$part_id.foils"} },$name);
-      $Apache::lonhomework::analyze{"$part_id.foil.value.$name"} =
-	$Apache::response::conceptgroup{"$name.value"};
-      $Apache::lonhomework::analyze{"$part_id.foil.text.$name"} =
-	$Apache::response::conceptgroup{"$name.text"};
-    }
   }
   return $result;
 }