--- loncom/homework/lonhomework.pm 2008/11/19 18:34:56 1.299 +++ loncom/homework/lonhomework.pm 2009/03/30 04:49:35 1.309 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # The LON-CAPA Homework handler # -# $Id: lonhomework.pm,v 1.299 2008/11/19 18:34:56 jms Exp $ +# $Id: lonhomework.pm,v 1.309 2009/03/30 04:49:35 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -85,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'})) { @@ -179,7 +173,7 @@ sub setup_vars { sub createmenu { my ($which,$request)=@_; if ($which eq 'grade') { - $request->print(''); @@ -303,12 +297,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' @@ -337,16 +334,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 =''; @@ -494,16 +483,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; @@ -800,37 +780,62 @@ sub analyze { } &Apache::lonhtmlcommon::Update_PrgWin($request,\%prog_state, &mt('Analyzing Results')); - $request->print('
'.&mt('List of possible answers').': '); + $request->print('
' + .'

' + .&mt('List of possible answers') + .'

' + ); foreach my $part (sort(keys(%allparts))) { if (defined(@{ $overall{$part.'.answer'} })) { for (my $i=0;$iprint(''); + $request->print('' + .&Apache::loncommon::end_data_table_header_row() + ); my %frequency; foreach my $answer (sort {$a->[0] <=> $b->[0]} (@{ $overall{$part.'.answer'}[$i] })) { $frequency{join("\0",@{ $answer })}++; } - $request->print(''); + $request->print(&Apache::loncommon::start_data_table_header_row() + .'' + .'' + .&Apache::loncommon::end_data_table_header_row() + ); foreach my $answer (sort {(split("\0",$a))[0] <=> (split("\0",$b))[0]} (keys(%frequency))) { - $request->print(''); + $request->print(&Apache::loncommon::start_data_table_row() + .'' + .'' + .&Apache::loncommon::end_data_table_row() + ); } - $request->print('
'.&mt('Part').' '.$part); + $request->print(&Apache::loncommon::start_data_table() + .&Apache::loncommon::start_data_table_header_row() + .'' + .&mt('Part').' '.$part + ); if (scalar(@{ $overall{$part.'.answer'} }) > 1) { - $request->print(&mt(' Answer [_1]',$i+1)); + $request->print(' '.&mt('Answer [_1]',$i+1)); } - $request->print('
'.&mt('Answer').''.&mt('Frequency').'
(' - .&mt('click for example').')
'.&mt('Answer').''.&mt('Frequency').'
' + .'('.&mt('click for example').')
'. - join('',split("\0",$answer)). - ''.$frequency{$answer}. - '
' + .join('',split("\0",$answer)) + .'' + .''.$frequency{$answer}.'' + .'
'); + $request->print(&Apache::loncommon::end_data_table()); } } else { - $request->print('

'.&mt('Response').' '.$part.' '. - &mt('is not analyzable at this time').'

'); + $request->print('

' + .&mt('Response [_1] is not analyzable at this time.',$part) + .'

' + ); } } if (scalar(keys(%allparts)) == 0 ) { - $request->print('

'.&mt('Found no analyzable responses in this problem, currently only Numerical, Formula and String response styles are supported.').'

'); + $request->print('

' + .&mt('Found no analyzable responses in this problem.' + .' Currently only Numerical, Formula and String response styles are supported.') + .'

' + ); } &Apache::lonhtmlcommon::Close_PrgWin($request,\%prog_state); &analyze_footer($request); @@ -878,8 +883,12 @@ sub editxmlmode { my $result; my $problem=&Apache::lonnet::getfile($file); if ($problem eq -1) { - &Apache::lonxml::error(" ".&mt('Unable to find'). - " $file"); + &Apache::lonxml::error( + ' ' + .&mt('Unable to find [_1]', + ''.$file.'') + .''); + $problem=''; } if (defined($env{'form.editxmltext'}) || defined($env{'form.Undo'})) { @@ -894,12 +903,6 @@ sub editxmlmode { &renderpage($request,$file); } else { my ($rows,$cols) = &Apache::edit::textarea_sizes(\$problem); - my $xml_help = '
'. - &Apache::loncommon::helpLatexCheatsheet("Problem_Editor_XML_Index", - "Problem Editing Help"). - ''. - &Apache::loncommon::help_open_menu(undef,undef,5,'Authoring'). - '
'; if ($cols > 80) { $cols = 80; } if ($cols < 70) { $cols = 70; } if ($rows < 20) { $rows = 20; } @@ -928,7 +931,7 @@ sub editxmlmode {
'.&mt('Problem Editing').&Apache::loncommon::help_open_topic('Problem_Editor_XML_Index').' - '.&Apache::loncommon::helpLatexCheatsheet().' + '.&Apache::loncommon::helpLatexCheatsheet('Problem_LON-CAPA_Functions','Script Functions').'
@@ -961,14 +964,9 @@ sub editxmlmode { return ''; } -=pod - -=item renderpage() - - Render the page in whatever target desired. - -=cut - +# +# Render the page in whatever target desired. +# sub renderpage { my ($request,$file,$targets,$return_string) = @_; @@ -997,7 +995,7 @@ sub renderpage { my $filename=(split('/',$file))[-1]; my $error = " ".&mt('Unable to find [_1]', - ' '.$filename.'') + ''.$filename.'') .""; $result.= &Apache::loncommon::simple_error_page($request,'Not available', @@ -1143,7 +1141,7 @@ $start_page

".&mt("Creating a new $extension resource.")."

$errormsg ".&mt("The requested file [_1] currently does not exist.", - "$shownurl")." + ''.$shownurl.'')."

".&mt("To create a new $extension, select a template from the". @@ -1168,7 +1166,7 @@ sub update_construct_style { && !defined($env{'form.newrandomization'})) { if ((!$env{'form.style_file'} && $env{'construct.style'}) ||$env{'form.clear_style_file'}) { - &Apache::lonnet::delenv('construct\\.style'); + &Apache::lonnet::delenv('construct.style'); } elsif ($env{'form.style_file'} && $env{'construct.style'} ne $env{'form.style_file'}) { &Apache::lonnet::appenv({'construct.style' =>