[LON-CAPA-cvs] cvs: loncom /homework response.pm /xml lonxml.pm

albertel lon-capa-cvs@mail.lon-capa.org
Thu, 31 May 2007 04:15:59 -0000


albertel		Thu May 31 00:15:59 2007 EDT

  Modified files:              
    /loncom/homework	response.pm 
    /loncom/xml	lonxml.pm 
  Log:
  - adding some docs to some internal routines
  
  
Index: loncom/homework/response.pm
diff -u loncom/homework/response.pm:1.167 loncom/homework/response.pm:1.168
--- loncom/homework/response.pm:1.167	Wed May 23 18:36:21 2007
+++ loncom/homework/response.pm	Thu May 31 00:15:52 2007
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # various response type definitons response definition
 #
-# $Id: response.pm,v 1.167 2007/05/23 22:36:21 albertel Exp $
+# $Id: response.pm,v 1.168 2007/05/31 04:15:52 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -841,14 +841,33 @@
     return 0;
 }
 
+=pod
+
+=item &getresponse($offset,$resulttype);
+
+Retreives the current submitted response, helps out in the case of
+scantron mode.
+
+Returns either the exact text of the submission, or a bubbled response
+converted to something usable.
+
+Optional Arguments:
+  $offset - if a problem has more than one bubble response, pass in the number
+            of the bubble wanted
+  $resulttype - undef    -> a number between 0 and 25
+                'A is 1' -> a number between 1 and 26
+                'letter' -> a letter between 'A' and 'Z'
+
+=cut
+
 sub getresponse {
-    my ($temp,$resulttype)=@_;
+    my ($offset,$resulttype)=@_;
     my $formparm='form.HWVAL_'.$Apache::inputtags::response['-1'];
     my $response;
-    if (!defined($temp)) {
+    if (!defined($offset)) {
 	$temp=1;
     } else {
-	$formparm.=":$temp";
+	$formparm.=":$offset";
     }
     my %let_to_num=('A'=>0,'B'=>1,'C'=>2,'D'=>3,'E'=>4,'F'=>5,'G'=>6,'H'=>7,
 		    'I'=>8,'J'=>9,'K'=>10,'L'=>11,'M'=>12,'N'=>13,'O'=>14,
@@ -857,7 +876,7 @@
     if ($env{'form.submitted'} eq 'scantron') {
 	my $part  = $Apache::inputtags::part;
 	my $id    = $Apache::inputtags::response[-1];
-	$response = $env{'scantron.'.($Apache::lonxml::counter+$temp-1).
+	$response = $env{'scantron.'.($Apache::lonxml::counter+$offset-1).
 			 '.answer'};
 	# save bubbled letter for later
 	$Apache::lonhomework::results{"resource.$part.$id.scantron"}.=
@@ -875,6 +894,15 @@
     return $response;
 }
 
+=pod
+
+=item &repetition();
+
+Returns the number of lines that are required to encode the weight.
+(Currently expects that there are 10 bubbles per line)
+
+=cut
+
 sub repetition {
     my $id = $Apache::inputtags::part;
     my $weight = &Apache::lonnet::EXT("resource.$id.weight");
@@ -884,6 +912,30 @@
     return $repetition;
 }
 
+=pod
+
+=item &scored_response($part_id,$response_id);
+
+Sets the results hash elements
+
+   resource.$part_id.$response_id.awarded - to the floating point
+     number between 0 and 1 that was awarded on the bubbled input
+
+   resource.$part_id.$response_id.awarddetail - to 'ASSIGNED_SCORE'
+
+Returns
+
+   the number of bubble sheet lines that were used (and likely need to
+     be passed to &Apache::lonxml::increment_counter()
+
+Arguments
+
+   $part_id - id of the part to grade
+   $response_id - id of the response to grade
+  
+
+=cut
+
 sub scored_response {
     my ($part,$id)=@_;
     my $repetition=&repetition();
Index: loncom/xml/lonxml.pm
diff -u loncom/xml/lonxml.pm:1.446 loncom/xml/lonxml.pm:1.447
--- loncom/xml/lonxml.pm:1.446	Thu May 17 17:00:59 2007
+++ loncom/xml/lonxml.pm	Thu May 31 00:15:59 2007
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # XML Parser Module 
 #
-# $Id: lonxml.pm,v 1.446 2007/05/17 21:00:59 albertel Exp $
+# $Id: lonxml.pm,v 1.447 2007/05/31 04:15:59 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -599,9 +599,9 @@
 	      }
 	  }
 	  if ($token->[0] eq 'S') {
-	    $currentstring.=&Apache::edit::handle_insert();
+	      $currentstring.=&Apache::edit::handle_insert();
 	  } elsif ($token->[0] eq 'E') {
-            $currentstring.=&Apache::edit::handle_insertafter($token->[1]);
+	      $currentstring.=&Apache::edit::handle_insertafter($token->[1]);
 	  }
       }
     }
@@ -997,6 +997,24 @@
     return $result
 }
 
+=pod
+
+For bubble grading mode and exam bubble printing mode, the tracking of
+the current 'bubble line number' is stored in the %env element
+'form.counter', and is modifed and handled by the following routines.
+
+The value of it is stored in $Apache:lonxml::counter when live and
+stored back to env after done.
+
+=item &increment_counter($increment);
+
+Increments the internal counter environment variable a specified amount
+
+Optional Arguments:
+  $increment - amount to increment by (defaults to 1)
+
+=cut
+
 sub increment_counter {
     my ($increment) = @_;
     if (defined($increment) && $increment gt 0) {
@@ -1007,6 +1025,14 @@
     $Apache::lonxml::counter_changed=1;
 }
 
+=pod
+
+=item &init_counter($increment);
+
+Initialize the internal counter environment variable
+
+=cut
+
 sub init_counter {
     if ($env{'request.state'} eq 'construct') {
 	$Apache::lonxml::counter=1;