[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;