--- loncom/homework/inputtags.pm 2011/10/08 20:44:20 1.271.2.8 +++ loncom/homework/inputtags.pm 2011/12/20 22:47:27 1.300 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # input definitons # -# $Id: inputtags.pm,v 1.271.2.8 2011/10/08 20:44:20 raeburn Exp $ +# $Id: inputtags.pm,v 1.300 2011/12/20 22:47:27 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -354,7 +354,6 @@ sub start_textline { unless ($newvariation) { $oldresponse = $Apache::lonhomework::history{"resource.$partid.$id.submission"}; &Apache::lonxml::debug("oldresponse $oldresponse is ".ref($oldresponse)); - if (ref($oldresponse) eq 'ARRAY') { $oldresponse = $oldresponse->[$#Apache::inputtags::inputlist]; } @@ -479,6 +478,7 @@ sub end_hiddenline { return ""; } + sub start_hiddensubmission { my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; my $result = ""; @@ -571,7 +571,7 @@ sub file_selector { if ($which eq 'uploadonly' || $which eq 'both') { $result.=&mt('Submit a file: (only one file per submission)'). '

'; + $jspart.'_'.$id.'" id="HWFILE'.$jspart.'_'.$id.'" />
'; } if ( $which eq 'both') { $result.='
'.''.&mt('OR:').'
'; @@ -728,7 +728,7 @@ sub valid_award { 'UNIT_FAIL', 'NO_UNIT', 'UNIT_NOTNEEDED', 'WANTED_NUMERIC', 'BAD_FORMULA', 'NOT_FUNCTION', 'WRONG_FORMAT', - 'INTERNAL_ERROR', 'SIG_FAIL', 'INCORRECT', + 'INTERNAL_ERROR', 'SIG_FAIL', 'INCORRECT', 'MISORDERED_RANK', 'INVALID_FILETYPE', 'EXCESS_FILESIZE', 'FILENAME_INUSE', 'DRAFT', 'SUBMITTED', 'SUBMITTED_CREDIT', @@ -746,7 +746,7 @@ sub valid_award { 'UNIT_INVALID_INSTRUCTOR', 'UNIT_INVALID_STUDENT', 'UNIT_IRRECONCIBLE', 'UNIT_FAIL', 'NO_UNIT', 'UNIT_NOTNEEDED', 'WANTED_NUMERIC', 'BAD_FORMULA', 'NOT_FUNCTION', - 'WRONG_FORMAT', 'INTERNAL_ERROR', + 'WRONG_FORMAT', 'INTERNAL_ERROR', 'COMMA_FAIL', 'SIG_FAIL', 'INCORRECT', 'MISORDERED_RANK', 'INVALID_FILETYPE', 'EXCESS_FILESIZE', 'FILENAME_INUSE', 'DRAFT', 'SUBMITTED', @@ -862,13 +862,13 @@ sub decideoutput { my $part = $Apache::inputtags::part; my $tohandgrade = &Apache::lonnet::EXT("resource.$part.handgrade"); my $handgrade = ('yes' eq lc($tohandgrade)); - # # Should "Computer's Answer" be displayed? # Should not be displayed if still answerable, # if the problem is handgraded, # or if the problem does not give a correct answer # + my $computer = ($handgrade || $nocorrect)? '' : " ".&mt("Computer's answer now shown above."); &Apache::lonxml::debug("handgrade has :$handgrade:"); @@ -886,7 +886,7 @@ sub decideoutput { $css_class=$possible_class{'charged_try'}; } if ($handgrade || - ($env{'request.filename'}=~ m{/res/lib/templates/(examupload|DropBox)\.problem$}) { + ($env{'request.filename'}=~/\/res\/lib\/templates\/(examupload|DropBox).problem$/)) { $message = &mt("A score has been assigned."); $added_computer_text=1; } else { @@ -911,7 +911,13 @@ sub decideoutput { } } } - $button=0; + if ($awarded >= 1) { + $button=0; + } elsif (&Apache::lonnet::EXT("resource.$part.retrypartial") !~/^1|on|yes$/i) { + $button=0; + } else { + $button=1; + } $previousmsg=''; } elsif ($solved =~ /^excused/) { if ($target eq 'tex') { @@ -1047,7 +1053,7 @@ sub decideoutput { $message = &mt("Wrong format").'.'; $css_class=$possible_class{'not_charged_try'}; $button=1; - } elsif ($award eq 'INTERNAL_ERROR') { + } elsif ($award eq 'INTERNAL_ERROR') { $message = &mt("An internal error occurred while processing your answer. Please try again later."); $css_class=$possible_class{'not_charged_try'}; $button=1; @@ -1137,7 +1143,6 @@ sub decideoutput { } $message.=&mt('Submissions to practice problems are not permanently recorded.'); } - return ($button,$css_class,$message,$previousmsg); } @@ -1190,8 +1195,7 @@ sub setgradedata { $Apache::inputtags::status['-1'] ne 'CANNOT_ANSWER') { $Apache::lonhomework::results{"resource.$id.afterduedate"}=$award; return ''; - } elsif ( $Apache::lonhomework::history{"resource.$id.solved"} !~ - /^correct/ + } elsif ( $Apache::lonhomework::history{"resource.$id.awarded"} < 1 || $Apache::lonhomework::scantronmode || &Apache::lonhomework::hide_problem_status() ) { # the student doesn't already have it correct, @@ -1312,8 +1316,7 @@ sub setgradedata { $Apache::lonhomework::results{"resource.$id.previous"} = '0'; } } - } elsif ( $Apache::lonhomework::history{"resource.$id.solved"} =~ - /^correct/ ) { + } elsif ( $Apache::lonhomework::history{"resource.$id.awarded"} == 1 ) { #delete all data as they student already has it correct &removealldata($id); #and since they didn't do anything we were never here @@ -1323,14 +1326,10 @@ sub setgradedata { if ($award eq 'SUBMITTED') { &Apache::response::add_to_gradingqueue(); } - if (($Apache::lonhomework::type eq 'anonsurvey') || - ($Apache::lonhomework::type eq 'anonsurveycred') || - ($Apache::lonhomework::type eq 'randomizetry')) { - $Apache::lonhomework::results{"resource.$id.type"} = $Apache::lonhomework::type; - } - if ($Apache::lonhomework::type eq 'randomizetry') { - $Apache::lonhomework::results{"resource.$id.rndseed"} = $env{'form.'.$id.'.rndseed'}; - } + $Apache::lonhomework::results{"resource.$id.type"} = $Apache::lonhomework::type; + $Apache::lonhomework::results{"resource.$id.duedate"} = &Apache::lonnet::EXT("resource.$id.duedate"); + $Apache::lonhomework::results{"resource.$id.hinttries"} = &Apache::lonnet::EXT("resource.$id.hinttries"); + $Apache::lonhomework::results{"resourse.$id.version"} = &Apache::lonnet::usedversion(); } sub find_which_previous { @@ -1449,24 +1448,24 @@ sub get_grade_messages { if ($env{'request.state'} ne "construct" && $Apache::lonhomework::type ne 'exam' && $env{'form.suppress_tries'} ne 'yes') { - $trystr ='{\vskip 1 mm \small ' + $trystr ='{\vskip 1 mm \small ' .&mt('[_1]'.$tries_text.'[_2] [_3]' - ,'\textit{','}',$tries.'/'.$maxtries ) + ,'\textit{','}',$tries.'/'.$maxtries ) .'} \vskip 2 mm'; } else { $trystr = '\vskip 0 mm '; } } else { - my $trial = $tries; + my $trial =$tries; if ($Apache::lonhomework::parsing_a_task) { } elsif($env{'request.state'} ne 'construct') { - $trial.="/$maxtries"; + $trial.="/".&Apache::lonhtmlcommon::direct_parm_link($maxtries,$env{'request.symb'},'maxtries',$id,$target); } else { if (defined($Apache::inputtags::params{'maxtries'})) { $trial.="/".$Apache::inputtags::params{'maxtries'}; } } - $trystr.=''.&mt("$tries_text [_1]",$trial).''; + $trystr = ''.&mt($tries_text.' [_1]',$trial).''; } } @@ -1495,7 +1494,10 @@ sub gradestatus { && $status ne 'UNAVAILABLE' && $status ne 'INVALID_ACCESS' && $status ne 'NEEDS_CHECKIN' - && $status ne 'NOT_IN_A_SLOT') { + && $status ne 'NOT_IN_A_SLOT' + && $status ne 'RESERVABLE' + && $status ne 'RESERVABLE_LATER' + && $status ne 'NOTRESERVABLE') { ($previousmsg,$latemessage,$message,$trystr) = &get_grade_messages($id,"resource.$id",$target,$status, @@ -1556,7 +1558,6 @@ sub previous_tries { $count++; $count_lookup{$i} = $count; my $curr_rndseed = $Apache::lonhomework::history{"$prefix.rndseed"}; - my ($previousmsg,$latemessage,$message,$trystr); ($previousmsg,$latemessage,$message,$trystr) = @@ -1592,7 +1593,7 @@ sub previous_tries { if ($curr_rndseed ne $lastrndseed) { $trystr .= '
'.&mt('New problem variation this try.').''; } - } + } $message =~ s{()}{ $trystr $1}; } my ($class) = ($message =~ m{'. &mt('Submitted Answer').''; $output =''.$headers.$output.'
'; - #return $output; - $output = &Apache::loncommon::js_ready($output); - $output.='
'; - my $windowopen=&Apache::lonhtmlcommon::javascript_docopen(); my $tries_text = &get_tries_text('link'); - my $start_page = - &Apache::loncommon::start_page($tries_text, undef, - {'only_body' => 1, - 'bgcolor' => '#FFFFFF', - 'js_ready' => 1, - 'inherit_jsmath' => 1, }); - my $end_page = - &Apache::loncommon::end_page({'js_ready' => 1,}); my $prefix = $env{'form.request.prefix'}; $prefix =~ tr{.}{_}; my $function_name = "LONCAPA_previous_tries_".$prefix. $Apache::lonxml::curdepth.'_'.$env{'form.counter'}; - my $result ="".&mt($tries_text)."
"; - #use Data::Dumper; - #&Apache::lonnet::logthis(&Dumper(\%Apache::inputtags::submission_display)); + my $result = &Apache::loncommon::modal_adhoc_window($function_name,420,410,$output,&mt($tries_text))."
"; return $result; }