--- loncom/homework/loncapagrade.pm 2005/10/18 14:14:12 1.3 +++ loncom/homework/loncapagrade.pm 2013/08/23 10:03:53 1.8 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # external style responses # -# $Id: loncapagrade.pm,v 1.3 2005/10/18 14:14:12 albertel Exp $ +# $Id: loncapagrade.pm,v 1.8 2013/08/23 10:03:53 kruse Exp $ # # Copyright Michigan State University Board of Trustees # @@ -26,25 +26,28 @@ # http://www.lon-capa.org/ # # 1/26 Guy + + + package Apache::loncapagrade; use strict; #Globals # results of parse end up in here -%Apache::loncapagrade::result=(); +undef(%Apache::loncapagrade::results); BEGIN { # &Apache::lonxml::register('Apache::loncapagrade', -# ('loncapagrade','awardetail','message')); +# ('loncapagrade','awarddetail','message')); } sub start_loncapagrade { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; my $result; if ($target eq 'grade') { - %Apache::loncapagrade::results=(); + undef(%Apache::loncapagrade::results); &Apache::lonxml::register('Apache::loncapagrade', - ('awarddetail','message')); + ('awarddetail','message','awarded','handbackurl')); } return $result; } @@ -54,7 +57,7 @@ sub end_loncapagrade { my $result; if ($target eq 'grade') { &Apache::lonxml::deregister('Apache::loncapagrade', - ('loncapagrade','awardetail','message')); + ('loncapagrade','awarddetail','message','awarded','handbackurl')); } return $result; } @@ -76,6 +79,40 @@ sub end_awarddetail { return $result; } +sub start_awarded { + my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; + my $result; + if ($target eq 'grade') { &Apache::lonxml::startredirection(); } + return $result; +} + +sub end_awarded { + my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; + my $result; + if ($target eq 'grade') { + $Apache::loncapagrade::results{'awarded'}= + &Apache::lonxml::endredirection(); + } + return $result; +} + +sub start_handbackurl { + my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; + my $result; + if ($target eq 'grade') { &Apache::lonxml::startredirection(); } + return $result; +} + +sub end_handbackurl { + my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; + my $result; + if ($target eq 'grade') { + $Apache::loncapagrade::results{'handbackurl'}= + &Apache::lonxml::endredirection(); + } + return $result; +} + sub start_message { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; my $result; @@ -96,3 +133,42 @@ sub end_message { 1; __END__ +=pod + +=head1 NAME + +Apache::loncapagrade + +=head1 SYNOPSIS + +Handler to evaluate externally graded responses. + +This is part of the LearningOnline Network with CAPA project +described at http://www.lon-capa.org. + +=head1 SUBROUTINES + +=over + +=item start_loncapagrade() + +=item end_loncapagrade() + +=item start_awarddetail() + +=item end_awarddetail() + +=item start_message() + +=item end_message() + +=back + +=head2 notes + +results of parse end up in here: +undef(%Apache::loncapagrade::results); + +=cut + +