--- loncom/homework/inputtags.pm 2015/02/21 21:53:34 1.330 +++ loncom/homework/inputtags.pm 2015/10/05 02:35:40 1.337 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # input definitons # -# $Id: inputtags.pm,v 1.330 2015/02/21 21:53:34 raeburn Exp $ +# $Id: inputtags.pm,v 1.337 2015/10/05 02:35:40 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -464,12 +464,11 @@ sub start_textline { $name = "none"; } $result.= ''; + . ' class="LC_textline spellchecked" size="'.$size.'"'.$maxlength.' />'; $result .= &spellcheck_onblur($itemid, $spellcheck); } @@ -662,10 +661,12 @@ sub file_selector { $result .= $constraints.'
'; } if ($which eq 'uploadonly' || $which eq 'both') { - $result.=&mt('Submit a file: (only one file per submission)'). - '

'; - } + my $free_space = $maxfilesize * 1048576; + $result .= &mt('Submit a file: (only one file per submission)'). + '

'. + '
' + } if ( $which eq 'both') { $result.='
'.''.&mt('OR:').'
'; } @@ -907,7 +908,7 @@ sub valid_award { { my @awards = ('EXTRA_ANSWER', 'MISSING_ANSWER', 'ERROR', 'NO_RESPONSE', - 'WRONG_NUMCHECKEDBOXES','TOO_LONG', + 'WRONG_NUMBOXESCHECKED','TOO_LONG', 'UNIT_INVALID_INSTRUCTOR', 'UNIT_INVALID_STUDENT', 'UNIT_IRRECONCIBLE', 'UNIT_FAIL', 'NO_UNIT', 'UNIT_NOTNEEDED', 'WANTED_NUMERIC', 'BAD_FORMULA', 'NOT_FUNCTION', @@ -997,6 +998,23 @@ sub finalizeawards { $j++; } + # if at least one response item is set to include lenient grading + # and that item is partially correct then overall award reflects + # that, unless an award for one of the other response items does + # not fall within the basic awards for correct or incorrect. + if ($Apache::inputtags::leniency) { + if (($$awardref[$which] eq 'INCORRECT') + && (grep { $_ eq 'EXACT_ANS' || + $_ eq 'APPROX_ANS' || + $_ eq 'ASSIGNED_SCORE' } (@$awardref)) + && !((grep { $_ ne 'INCORRECT' && + $_ ne 'EXACT_ANS' && + $_ ne 'APPROX_ANS' && + $_ ne 'ASSIGNED_SCORE' } (@$awardref)))) { + return ('ASSIGNED_SCORE'); + } + } + if (defined($which)) { if (ref($nameref)) { return ($$awardref[$which],$$msgref[$which],$$nameref[$which]); @@ -1682,7 +1700,8 @@ sub gradestatus { && $status ne 'NOT_IN_A_SLOT' && $status ne 'RESERVABLE' && $status ne 'RESERVABLE_LATER' - && $status ne 'NOTRESERVABLE') { + && $status ne 'NOTRESERVABLE' + && $status ne 'NEED_DIFFERENT_IP') { if ($status eq 'SHOW_ANSWER') { $showbutton = 0; @@ -1740,15 +1759,15 @@ sub previous_tries { my $count; my %count_lookup; - my $lastrndseed; + my ($lastrndseed,$lasttype); my $numstamps = 0; foreach my $i (1..$Apache::lonhomework::history{'version'}) { my $prefix = $i.":resource.$id"; - my $is_anon; + my $is_anon; + my $curr_type = $Apache::lonhomework::history{"$prefix.type"}; if (defined($env{'form.grade_symb'})) { - if (($Apache::lonhomework::history{"$prefix.type"} eq 'anonsurvey') || - ($Apache::lonhomework::history{"$prefix.type"} eq 'anonsurveycred')) { + if (($curr_type eq 'anonsurvey') || ($curr_type eq 'anonsurveycred')) { $is_anon = 1; } } @@ -1787,8 +1806,9 @@ sub previous_tries { {$1 $txt_correct. $3}s; } my $trystr = "(".&mt('Try [_1]',$Apache::lonhomework::history{"$prefix.tries"}).")"; - if (($curr_rndseed || $lastrndseed) && ($i > 1)) { - if ($curr_rndseed ne $lastrndseed) { + if (($curr_rndseed ne '') && ($lastrndseed ne '')) { + if (($curr_rndseed ne $lastrndseed) && + (($curr_type eq 'randomizetry') || ($lasttype eq 'randomizetry'))) { $trystr .= '
'.&mt('New problem variation this try.').''; } } @@ -1829,6 +1849,7 @@ sub previous_tries { } $output.=&Apache::loncommon::end_data_table_row()."\n"; $lastrndseed = $curr_rndseed; + $lasttype = $curr_type; } return if ($output eq ''); my $headers = ''.