--- loncom/homework/grades.pm 2005/06/03 18:23:19 1.269
+++ loncom/homework/grades.pm 2005/06/13 20:23:54 1.275
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# The LON-CAPA Grading handler
#
-# $Id: grades.pm,v 1.269 2005/06/03 18:23:19 raeburn Exp $
+# $Id: grades.pm,v 1.275 2005/06/13 20:23:54 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1352,15 +1352,14 @@ sub gradeBox {
my $result=''."\n";
my $display_part=&get_display_part($partid,undef,$symb);
- my @partids = ("$partid");
- my %last_resets = ();
- &get_last_resets($symb,$env{'request.course.id'},\%last_resets,\@partids);
- my $aggtries;
+
+ my %last_resets = &get_last_resets($symb,$env{'request.course.id'},
+ [$partid]);
+ my $aggtries = $$record{'resource.'.$partid.'.tries'};
if ($last_resets{$partid}) {
$aggtries = &get_num_tries($record,$last_resets{$partid},$partid);
- } else {
- $aggtries = $$record{'resource.'.$partid.'.tries'};
}
+
$result.='
'.
'Part: '.$display_part.' Points:
'."\n";
@@ -2156,17 +2155,17 @@ sub saveHandGrade {
}
$newrecord{'resource.'.$new_part.'.regrader'}=
"$env{'user.name'}:$env{'user.domain'}";
- my @partids = ("$new_part");
- my %last_resets = ();
- &get_last_resets($symb,$env{'request.course.id'},\%last_resets,\@partids);
- my ($totaltries,$aggtries,$solvedstatus);
- $totaltries = $record{'resource.'.$part.'.tries'};
+ my $totaltries = $record{'resource.'.$part.'.tries'};
+
+ my %last_resets = &get_last_resets($symb,$env{'request.course.id'},
+ [$new_part]);
+ my $aggtries =$totaltries;
if ($last_resets{$new_part}) {
- $aggtries = &get_num_tries(\%record,$last_resets{$new_part},$new_part);
- } else {
- $aggtries = $totaltries;
+ $aggtries = &get_num_tries(\%record,$last_resets{$new_part},
+ $new_part);
}
- $solvedstatus = $record{'resource.'.$new_part.'.solved'};
+
+ my $solvedstatus = $record{'resource.'.$new_part.'.solved'};
if ($aggtries > 0) {
&decrement($symb,$new_part,\%aggregate,$aggtries,$totaltries,$solvedstatus);
$aggregateflag = 1;
@@ -2270,22 +2269,20 @@ sub decrement_aggs {
# ----------- Determine timestamps for last reset of aggregate totals for parts
sub get_last_resets {
- my ($symb,$courseid,$last_resets,$partids) =@_;
+ my ($symb,$courseid,$partids) =@_;
+ my %last_resets;
my $cdom = $env{'course.'.$courseid.'.domain'};
my $cname = $env{'course.'.$courseid.'.num'};
- my %resethash = &Apache::lonnet::restore($symb,'nohist_resourcetracker',$cdom,$cname);
- if ($resethash{'version'}) {
- foreach my $part (@{$partids}) {
- $$last_resets{$part} = '';
- for (my $version=$resethash{'version'};$version>=1;$version--) {
- if (exists($resethash{$version.':'.$part."\0".'prev_attempts'})) {
- $$last_resets{$part} = $resethash{$version.':timestamp'};
- last;
- }
- }
- }
+ my @keys;
+ foreach my $part (@{$partids}) {
+ push(@keys,"$symb\0$part\0resettime");
+ }
+ my %results=&Apache::lonnet::get('nohist_resourcetracker',\@keys,
+ $cdom,$cname);
+ foreach my $part (@{$partids}) {
+ $last_resets{$part}=$results{"$symb\0$part\0resettime"};
}
- return;
+ return %last_resets;
}
# ----------- Handles creating versions for portfolio files as answers
@@ -2324,12 +2321,11 @@ sub version_portfiles {
}
}
$version++;
- my $home_server = &Apache::lonnet::homeserver($stuname,$domain,undef);
$env{'form.copy'} = &Apache::lonnet::getfile("/uploaded/$domain/$stuname/portfolio$directory$answer_file");
if($env{'form.copy'} eq '-1') {
&Apache::lonnet::logthis('problem getting file '.$directory.$answer_file);
} else {
- my $copy_result = &Apache::lonnet::finishuserfileupload($stuname,$domain,$home_server,'copy',
+ my $copy_result = &Apache::lonnet::finishuserfileupload($stuname,$domain,'copy',
'/portfolio'.$directory.$answer_file_parts[0].'.'.$version.'.'.$answer_file_parts[-1]);
push(@v_portfiles, $answer_file_parts[0].'.'.$version.'.'.$answer_file_parts[-1]);
&Apache::lonnet::mark_as_readonly($domain,$stuname,
@@ -2630,9 +2626,8 @@ sub viewgrades {
}
$result.='
';
- # retrieve last reset information
- my %last_resets = ();
- &get_last_resets($symb,$env{'request.course.id'},\%last_resets,\@partids);
+ my %last_resets =
+ &get_last_resets($symb,$env{'request.course.id'},\@partids);
#get info for each student
#list all the students - with points and grade status
@@ -2675,12 +2670,13 @@ sub viewstudentgrade {
$result.='
How should I handle this? \n");
$r->print("\n ");
my $i=0;
- if ($error eq 'incorrectCODE') {
+ if ($error eq 'incorrectCODE'
+ && $$scan_record{'scantron.CODE'}=~/\S/ ) {
my ($max,$closest)=&scantron_get_closely_matching_CODEs($arg,$$scan_record{'scantron.CODE'});
foreach my $testcode (@{$closest}) {
my $checked='';
if (!$i) { $checked=' checked="on" '; }
- $r->print(" Use the similar CODE ".$testcode." instead.");
+ $r->print("");
$r->print("\n ");
$i++;
}
}
- my $checked; if (!$i) { $checked=' checked="on" '; }
- $r->print(" Use the CODE ".$$scan_record{'scantron.CODE'}." that is was on the paper, ignoring the error.");
- $r->print("\n ");
+ if ($$scan_record{'scantron.CODE'}=~/\S/ ) {
+ my $checked; if (!$i) { $checked=' checked="on" '; }
+ $r->print("");
+ $r->print("\n ");
+ }
$r->print(<
@@ -4769,9 +4782,9 @@ ENDSCRIPT
"&scantron_CODElist=".&Apache::lonnet::escape($env{'form.scantron_CODElist'}).
"&curCODE=".&Apache::lonnet::escape($$scan_record{'scantron.CODE'}).
"&scantron_selectfile=".&Apache::lonnet::escape($env{'form.scantron_selectfile'});
- $r->print(" Select a CODE from the list of all CODEs and use it. Selected CODE is ");
+ $r->print(" Selected CODE is ");
$r->print("\n ");
- $r->print(" Use as the CODE.");
+ $r->print(" as the CODE.");
$r->print("\n
');
}
@@ -5138,8 +5156,6 @@ sub scantron_upload_scantron_data_save {
}
my %coursedata=&Apache::lonnet::coursedescription($env{'form.domainid'}.'_'.$env{'form.courseid'});
$r->print("Doing upload to ".$coursedata{'description'}." ");
- my $home=&Apache::lonnet::homeserver($env{'form.courseid'},
- $env{'form.domainid'});
my $fname=$env{'form.upfile.filename'};
#FIXME
#copied from lonnet::userfileupload()
@@ -5159,7 +5175,7 @@ sub scantron_upload_scantron_data_save {
if (length($env{'form.upfile'}) < 2) {
$r->print("Error: The file you attempted to upload, ".&HTML::Entities::encode($env{'form.upfile.filename'},'<>&"').", contained no information. Please check that you entered the correct filename.");
} else {
- my $result=&Apache::lonnet::finishuserfileupload($env{'form.courseid'},$env{'form.domainid'},$home,'upfile',$fname);
+ my $result=&Apache::lonnet::finishuserfileupload($env{'form.courseid'},$env{'form.domainid'},'upfile',$fname);
if ($result =~ m|^/uploaded/|) {
$r->print("Success: Successfully uploaded ".(length($env{'form.upfile'})-1)." bytes of data into location ".$result."");
} else {