--- loncom/homework/lonhomework.pm 2008/11/25 13:16:17 1.300 +++ loncom/homework/lonhomework.pm 2010/08/20 03:48:29 1.310.4.1 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # The LON-CAPA Homework handler # -# $Id: lonhomework.pm,v 1.300 2008/11/25 13:16:17 jms Exp $ +# $Id: lonhomework.pm,v 1.310.4.1 2010/08/20 03:48:29 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -25,25 +25,6 @@ # # http://www.lon-capa.org/ -=pod - -=head1 NAME - -Apache::lonhomework.pm - -=head1 SYNOPSIS - -handles requests for output, evaluation, and -alteration of a homework resource - -This is part of the LearningOnline Network with CAPA project -described at http://www.lon-capa.org. - - -=head1 NOTABLE SUBROUTINES - -=cut - package Apache::lonhomework; use strict; @@ -104,20 +85,14 @@ sub set_bubble_lines { } } -=pod - -=item get_target() - -Decides what targets to render for. -Implicit inputs: - Various session environment variables: - request.state - published - is a /res/ resource - uploaded - is a /uploaded/ resource - contruct - is a /priv/ resource - form.grade_target - a form parameter requesting a specific target - -=cut - +# +# Decides what targets to render for. +# Implicit inputs: +# Various session environment variables: +# request.state - published - is a /res/ resource +# uploaded - is a /uploaded/ resource +# contruct - is a /priv/ resource +# form.grade_target - a form parameter requesting a specific target sub get_target { &Apache::lonxml::debug("request.state = $env{'request.state'}"); if( defined($env{'form.grade_target'})) { @@ -136,7 +111,11 @@ sub get_target { } elsif ( $env{'form.grade_target'} eq 'webgrade' && ($Apache::lonhomework::queuegrade eq 'F' )) { return ($env{'form.grade_target'}); - } + } elsif ($env{'form.grade_target'} eq 'answer') { + if ($env{'form.answer_output_mode'} eq 'tex') { + return ($env{'form.grade_target'}); + } + } if ($env{'form.webgrade'} && ($Apache::lonhomework::modifygrades eq 'F' || $Apache::lonhomework::queuegrade eq 'F' )) { @@ -198,7 +177,7 @@ sub setup_vars { sub createmenu { my ($which,$request)=@_; if ($which eq 'grade') { - $request->print(''); @@ -322,12 +301,15 @@ sub check_slot_access { return ('WAITING_FOR_GRADE'); } - # no slot is currently open, and has been checked in for this version - # previous slot is therefore CLOSED, so therefore the problem is + # Previously used slot is no longer open, and has been checked in for this version. + # However, the problem is not closed, and potentially, another slot might be + # used to gain access to it to work on it, until the due date is reached, and the + # problem then becomes CLOSED. Therefore return the slotstatus - + # (which will be NOT_IN_SLOT). if (!defined($slot_name) && $checkedin && $type eq 'problem') { - return ('CLOSED',$datemsg); + return ($slotstatus); } if ($slotstatus eq 'NOT_IN_A_SLOT' @@ -356,16 +338,8 @@ sub check_slot_access { return ($slotstatus,$datemsg,$slot_name,$returned_slot); } - -=pod - -=item check_access() - -JB, 9/24/2002: Any changes in this function may require a change -in lonnavmaps::resource::getDateStatus. - -=cut - +# JB, 9/24/2002: Any changes in this function may require a change +# in lonnavmaps::resource::getDateStatus. sub check_access { my ($id) = @_; my $date =''; @@ -513,16 +487,7 @@ sub check_access { return ($status,$datemsg); } - - -=pod - -=item due_date() - - this should work exactly like the copy in lonnavmaps.pm - -=cut - +# this should work exactly like the copy in lonnavmaps.pm sub due_date { my ($part_id,$symb,$udom,$uname)=@_; my $date; @@ -732,7 +697,7 @@ sub analyze_header { $result .= &Apache::lonxml::message_location().' -