--- loncom/homework/grades.pm 2009/06/06 19:36:37 1.574.2.2 +++ loncom/homework/grades.pm 2009/12/09 19:41:10 1.583 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # The LON-CAPA Grading handler # -# $Id: grades.pm,v 1.574.2.2 2009/06/06 19:36:37 raeburn Exp $ +# $Id: grades.pm,v 1.583 2009/12/09 19:41:10 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -97,9 +97,15 @@ sub ssi_print_error { # # --- Retrieve the parts from the metadata file.--- sub getpartlist { - my ($symb) = @_; + my ($symb,$errorref) = @_; my $navmap = Apache::lonnavmaps::navmap->new(); + unless (ref($navmap)) { + if (ref($errorref)) { + $$errorref = 'navmap'; + return; + } + } my $res = $navmap->getBySymb($symb); my $partlist = $res->parts(); my $url = $res->src(); @@ -144,9 +150,15 @@ sub nameUserString { #--- Get the partlist and the response type for a given problem. --- #--- Indicate if a response type is coded handgraded or not. --- sub response_type { - my ($symb) = shift; + my ($symb,$response_error) = @_; my $navmap = Apache::lonnavmaps::navmap->new(); + unless (ref($navmap)) { + if (ref($response_error)) { + $$response_error = 1; + } + return; + } my $res = $navmap->getBySymb($symb); my $partlist = $res->parts(); my %vPart = @@ -183,7 +195,8 @@ sub get_display_part { my ($partID,$symb)=@_; my $display=&Apache::lonnet::EXT('resource.'.$partID.'.display',$symb); if (defined($display) and $display ne '') { - $display.= " (id $partID)"; + $display.= ' (' + .&mt('Part ID: [_1]',$partID).')'; } else { $display=$partID; } @@ -193,12 +206,17 @@ sub get_display_part { #--- Show resource title #--- and parts and response type sub showResourceInfo { - my ($symb,$probTitle,$checkboxes) = @_; + my ($symb,$probTitle,$checkboxes,$res_error) = @_; my $col=3; if ($checkboxes) { $col=4; } my $result = '
'.&mt('Part').': '.$display_part. + $result.=' | '.&mt('Part: [_1]',$display_part).''. ' '.$resID.' | '. - ''.&mt('Type').': '.$responsetype.' | '; + ''.&mt('Type: [_1]',$responsetype).' | '; # ''.&mt('Handgrade: [_1]',$handgrade).' | '; } } @@ -766,7 +784,13 @@ sub verifyreceipt { if ($env{"course.$courseid.receiptalg"} eq 'receipt2' || $env{"course.$courseid.receiptalg"} eq 'receipt3') { $receiptparts=1; } my $parts=['0']; - if ($receiptparts) { ($parts)=&response_type($symb); } + if ($receiptparts) { + my $res_error; + ($parts)=&response_type($symb,\$res_error); + if ($res_error) { + return &navmap_errormsg(); + } + } my $header = &Apache::loncommon::start_data_table(). @@ -1734,8 +1758,7 @@ sub gradeBox { #&mt('Part: | [_1] | Points: | [_2] | or | [_3] | ',$display_part,$radio,$line); $result .= - ''.&mt('Part').': | '.$display_part.' | '.&mt('Points').': | '.$radio.' | '.&mt('or').' | '.$line.' | '. - + ''.&mt('Part:').' | '.$display_part.' | '.&mt('Points:').' | '.$radio.' | '.&mt('or').' | '.$line.' | '; $result.='