--- loncom/homework/inputtags.pm 2015/10/30 11:21:19 1.339 +++ loncom/homework/inputtags.pm 2019/08/11 16:19:52 1.348 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # input definitons # -# $Id: inputtags.pm,v 1.339 2015/10/30 11:21:19 raeburn Exp $ +# $Id: inputtags.pm,v 1.348 2019/08/11 16:19:52 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -460,6 +460,7 @@ sub start_textline { } my $name = 'HWVAL_'.$id; my $itemid = 'HWVAL_'.$partid.'_'.$id; + # NOTE: the input id should match the one given by defaut_homework input_id(). my $input_tag_id = $itemid.'_'.$input_id; if ($Apache::inputtags::status[-1] eq 'CANNOT_ANSWER') { $name = "none"; @@ -670,8 +671,9 @@ sub file_selector { my $free_space = $maxfilesize * 1048576; $result .= &mt('Submit a file: (only one file per submission)'). '

'. - '
' + '" id="HWFILE'.$jspart.'_'.$id.'" class="LC_flUpload LC_hwkfile" />'. + '
'; } if ( $which eq 'both') { $result.='
'.''.&mt('OR:').'
'; @@ -1059,7 +1061,7 @@ sub decideoutput { # my $computer = ($handgrade || $nocorrect)? '' - : " ".&mt("Computer's answer now shown above."); + : &mt("Computer's answer now shown above."); &Apache::lonxml::debug("handgrade has :$handgrade:"); if ($previous) { $previousmsg=&mt('You have entered that answer before'); } @@ -1083,7 +1085,9 @@ sub decideoutput { $message = '\textbf{'.$message.'}'; } else { $message = "".$message.""; - $message.= $computer; + if ($computer) { + $message = "$computer $message"; + } } $added_computer_text=1; if ($awarded > 0) { @@ -1127,7 +1131,9 @@ sub decideoutput { $message = '\textbf{'.&mt('You are correct.').'}'; } else { $message = "".&mt('You are correct.').""; - $message.= $computer; + if ($computer) { + $message = "$computer $message"; + } } $added_computer_text=1; if ($awarded > 0 @@ -1329,17 +1335,27 @@ sub decideoutput { my $first_access=&Apache::lonnet::get_first_access($interval[1]); if (defined($first_access)) { my $due_date= &Apache::lonnet::EXT("resource.$part.duedate"); - unless (($due_date) && ($due_date < $first_access + $interval[0])) { + my ($timelimit) = ($interval[0] =~ /^(\d+)/); + unless (($due_date) && ($due_date < $first_access + $timelimit)) { $message = &mt("Answer Submitted: Your final submission will be graded when the time limit is reached."); } } } $css_class=$possible_class{'no_grade'}; $button=1; + if ($env{'course.'.$env{'request.course.id'}.'.type'} eq 'Placement') { + if ($Apache::inputtags::status[-1] eq 'CANNOT_ANSWER') { + $message = 'Answer Submitted'; + } else { + undef($message); + } + } } if ($Apache::inputtags::status[-1] eq 'SHOW_ANSWER' && !$added_computer_text && $target ne 'tex') { - $message.= $computer; + if ($computer) { + $message = "$computer $message"; + } $added_computer_text=1; } if ($Apache::lonhomework::type eq 'practice') { @@ -1636,7 +1652,11 @@ sub get_grade_messages { if ($target eq 'tex') { $message='\vskip 2 mm '.$message.' '; } else { - $message="$message"; + if ($message) { + $message="$message"; + } else { + $message=""; + } if ($previousmsg) { $previousmsg="$previousmsg"; } @@ -1673,7 +1693,13 @@ sub get_grade_messages { $trial.="/".$Apache::inputtags::params{'maxtries'}; } } - $trystr = ''.&mt($tries_text.' [_1]',$trial).''; + + unless (($env{'request.state'} ne "construct") && + ($env{'course.'.$env{'request.course.id'}.'.type'} eq 'Placement') && + (!$env{'request.role.adv'})) { + $trystr = ''.&mt($tries_text.' [_1]',$trial).''; + } + $trystr = ''.$trystr.''; } } @@ -1749,7 +1775,9 @@ sub gradestatus { } else { $output = ''.$output; - if (!$no_previous) { + if ((!$no_previous) && + (($env{'course.'.$env{'request.course.id'}.'.type'} ne 'Placement') || + ($env{'request.role.adv'}))) { $output.=''; } $output.= '
'.$button.''.&previous_tries($id,$target).'
'; @@ -1877,8 +1905,13 @@ sub previous_tries { my $tries_text = &get_tries_text('link'); my $prefix = $env{'form.request.prefix'}; $prefix =~ tr{.}{_}; - my $function_name = "LONCAPA_previous_tries_".$prefix. - $Apache::lonxml::curdepth.'_'.$env{'form.counter'}; + my $function_name = 'LONCAPA_previous_tries_'.$prefix; + if (($env{'request.state'} eq 'construct') || ($id =~ /[._]|[^\w\s\-]/)) { + $function_name .= $Apache::lonxml::curdepth; + } else { + $function_name .= &js_escape($id); + } + $function_name .= '_'.$Apache::lonxml::counter; my $result = &Apache::loncommon::modal_adhoc_window($function_name,420,410,$output,&mt($tries_text))."
"; return $result; } 500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.