--- loncom/homework/inputtags.pm 2011/04/29 01:41:12 1.286
+++ loncom/homework/inputtags.pm 2011/11/29 13:24:38 1.296
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# input definitons
#
-# $Id: inputtags.pm,v 1.286 2011/04/29 01:41:12 www Exp $
+# $Id: inputtags.pm,v 1.296 2011/11/29 13:24:38 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -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:').'
';
@@ -843,6 +843,26 @@ sub finalizeawards {
}
}
+sub grading_is_nonlenient {
+ my ($part) = @_;
+# Web mode: we are non-lenient unless told otherwise
+ my $defaultparm = 'off';
+ my $nonlenient = 0;
+# Grading a bubblesheet exam: we are grading lenient unless told otherwise
+ if ($Apache::lonhomework::scantronmode) {
+ $defaultparm = 'on';
+ $nonlenient = 1;
+ }
+ my $lenientparm =
+ &Apache::response::get_response_param($part,'lenient',$defaultparm);
+ if ($lenientparm=~/^0|off|no$/i) {
+ $nonlenient = 1;
+ } elsif ($lenientparm=~/^1|on|yes$/i) {
+ $nonlenient = 0;
+ }
+ return $nonlenient;
+}
+
sub decideoutput {
my ($award,$awarded,$awardmsg,$solved,$previous,$target,$nocorrect)=@_;
@@ -885,8 +905,8 @@ sub decideoutput {
$message=&mt('Incorrect.');
$css_class=$possible_class{'charged_try'};
}
- if ($env{'request.filename'} =~
- m|/res/lib/templates/examupload.problem$|) {
+ if ($handgrade ||
+ ($env{'request.filename'}=~/\/res\/lib\/templates\/(examupload|DropBox).problem$/)) {
$message = &mt("A score has been assigned.");
$added_computer_text=1;
} else {
@@ -911,7 +931,13 @@ sub decideoutput {
}
}
}
- if ($awarded==1) { $button=0; } else { $button=1; }
+ if (&grading_is_nonlenient($part)) {
+ $button=0;
+ } elsif ($awarded==1) {
+ $button=0;
+ } else {
+ $button=1;
+ }
$previousmsg='';
} elsif ($solved =~ /^excused/) {
if ($target eq 'tex') {
@@ -1320,14 +1346,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 {
@@ -1440,28 +1462,30 @@ sub get_grade_messages {
if ( $tries eq '' ) { $tries = '0'; }
if ( $maxtries eq '' ) { $maxtries = '2'; }
if ( $maxtries eq 'con_lost' ) { $maxtries = '0'; }
- my $tries_text= &get_tries_text();;
+ my $tries_text= &get_tries_text();
if ($showbutton) {
if ($target eq 'tex') {
if ($env{'request.state'} ne "construct"
&& $Apache::lonhomework::type ne 'exam'
&& $env{'form.suppress_tries'} ne 'yes') {
- $trystr = ' {\vskip 1 mm \small \textit{'.$tries_text.'} '.
- $tries.'/'.$maxtries.'} \vskip 2 mm ';
+ $trystr ='{\vskip 1 mm \small '
+ .&mt('[_1]'.$tries_text.'[_2] [_3]'
+ ,'\textit{','}',$tries.'/'.$maxtries )
+ .'} \vskip 2 mm';
} else {
$trystr = '\vskip 0 mm ';
}
} else {
- $trystr = '