--- loncom/homework/grades.pm 2006/01/27 01:52:25 1.306
+++ loncom/homework/grades.pm 2006/02/07 14:18:18 1.311
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# The LON-CAPA Grading handler
#
-# $Id: grades.pm,v 1.306 2006/01/27 01:52:25 banghart Exp $
+# $Id: grades.pm,v 1.311 2006/02/07 14:18:18 banghart Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1812,7 +1812,8 @@ KEYWORDS
$file_counter ++;
&Apache::lonnet::allowuploaded('/adm/grades',$file);
$lastsubonly.='
'.$file.'';
- $lastsubonly.='Return commented document to student. '."\n";
+ $lastsubonly.=' Return commented document to student. '."\n";
$lastsubonly.='';
}
@@ -2029,32 +2030,21 @@ sub processHandGrade {
my @collabstrs=&Apache::loncommon::get_env_multiple("form.collaborator$ctr");
foreach my $collabstr (@collabstrs) {
my ($part,@collaborators) = split(/:/,$collabstr);
- foreach (@collaborators) {
+ foreach my $collaborator (@collaborators) {
my ($errorflag,$pts,$wgt) =
- &saveHandGrade($request,$url,$symb,$_,$udom,$ctr,
+ &saveHandGrade($request,$url,$symb,$collaborator,$udom,$ctr,
$env{'form.unamedom'.$ctr},$part);
if ($errorflag eq 'not_allowed') {
- $request->print("Not allowed to modify grades for $_:$udom");
+ $request->print("Not allowed to modify grades for $collaborator:$udom");
next;
} else {
if ($message ne '') {
- $msgstatus = &Apache::lonmsg::user_normal_msg($_,$udom,$env{'form.msgsub'},$message);
+ $msgstatus = &Apache::lonmsg::user_normal_msg($collaborator,$udom,$env{'form.msgsub'},$message);
}
-
}
}
}
}
- if ($env{'form.returndoc1'}) {
- # if multiple files are uploaded names will be 'returndoc2', 'returndoc3'
- my $file_counter = 1;
- while ($env{'form.returndoc'.$file_counter}) {
- my $fname=$env{'form.returndoc'.$file_counter.'.filename'};
- $request->print("
".$fname." will be the uploaded file name");
- $request->print("Will upload document".$env{'form.returndocorig'.$file_counter});
- $file_counter ++;
- }
- }
$ctr++;
}
}
@@ -2234,6 +2224,7 @@ sub saveHandGrade {
my @parts = split(/:/,$env{'form.partlist'.$newflg});
foreach my $new_part (@parts) {
#collaborator may vary for different parts
+ $request->print('form.part'.$new_part.'_returndoc1');
if ($submitter && $new_part ne $part) { next; }
my $dropMenu = $env{'form.GD_SEL'.$newflg.'_'.$new_part};
if ($dropMenu eq 'excused') {
@@ -2302,6 +2293,27 @@ sub saveHandGrade {
$newrecord{'resource.'.$new_part.'.regrader'}=
"$env{'user.name'}:$env{'user.domain'}";
}
+ if ($env{'form.part'.$new_part.'_returndoc1'}) {
+ # if multiple files are uploaded names will be 'returndoc2','returndoc3'
+
+ my $portfolio_root = &Apache::loncommon::propath($domain,
+ $stuname).
+ '/userfiles/portfolio';
+ $request->print('
'.$portfolio_root.'
');
+
+ # my $result=&Apache::lonnet::userfileupload('uploaddoc','',
+ # 'portfolio'.$env{'form.currentpath'});
+
+ my $file_counter = 1;
+ while ($env{'form.part'.$new_part.'_returndoc'.$file_counter}) {
+ my $fname=$env{'form.returndoc'.$file_counter.'.filename'};
+ $newrecord{'resource.'.$new_part.'.handback'} = $env{'form.returndocorig'.$file_counter};
+ $request->print("
".$fname." will be the uploaded file name");
+ $request->print("Will upload document".$env{'form.returndocorig'.$file_counter});
+ $file_counter++;
+ }
+ }
+
# unless problem has been graded, set flag to version the submitted files
unless ($record{'resource.'.$new_part.'.solved'} =~ /^correct_/ ||
$record{'resource.'.$new_part.'.solved'} eq 'incorrect_by_override' ||
@@ -2418,22 +2430,7 @@ sub version_portfiles {
my ($answer_name,$answer_ver,$answer_ext) =
&file_name_version_ext($answer_file);
my @dir_list = &Apache::lonnet::dirlist($directory,$domain,$stu_name,$portfolio_root);
- foreach my $row (@dir_list) {
- my ($file) = split(/\&/,$row,2);
- my ($file_name,$file_version,$file_ext) =
- &file_name_version_ext($file);
- if (($file_name eq $answer_name) &&
- ($file_ext eq $answer_ext)) {
- # gets here if filename and extension match, regardless of version
- if ($file_version ne '') {
- # a versioned file is found so save it for later
- if ($file_version > $version) {
- $version = $file_version;
- }
- }
- }
- }
- $version++;
+ $version = &get_next_version($answer_name, $answer_ext, \@dir_list);
my $new_answer = &version_selected_portfile($domain, $stu_name, $directory, $answer_file, $version);
if ($new_answer ne 'problem getting file') {
push(@v_portfiles, $directory.$new_answer);
@@ -2449,6 +2446,28 @@ sub version_portfiles {
return 'ok';
}
+sub get_next_version {
+ my ($answer_name, $answer_ext, $dir_list);
+ my $version;
+ foreach my $row (@$dir_list) {
+ my ($file) = split(/\&/,$row,2);
+ my ($file_name,$file_version,$file_ext) =
+ &file_name_version_ext($file);
+ if (($file_name eq $answer_name) &&
+ ($file_ext eq $answer_ext)) {
+ # gets here if filename and extension match, regardless of version
+ if ($file_version ne '') {
+ # a versioned file is found so save it for later
+ if ($file_version > $version) {
+ $version = $file_version;
+ }
+ }
+ }
+ }
+ $version ++;
+ return($version);
+}
+
sub version_selected_portfile {
my ($domain,$stu_name,$directory,$file_name,$version) = @_;
my ($answer_name,$answer_ver,$answer_ext) =
@@ -3319,8 +3338,13 @@ sub csvuploadmap {
unshift(@fields,['none','']);
$i=&Apache::loncommon::csv_samples_select_table($request,\@records,
\@fields);
- my %sone=&Apache::loncommon::record_sep($records[0]);
- $keyfields=join(',',sort(keys(%sone)));
+ foreach my $rec (@records) {
+ my %temp = &Apache::loncommon::record_sep($rec);
+ if (%temp) {
+ $keyfields=join(',',sort(keys(%temp)));
+ last;
+ }
+ }
}
}
&csvuploadmap_footer($request,$i,$keyfields);
@@ -4086,11 +4110,11 @@ sub scantron_CODElist {
sub scantron_CODEunique {
my $result='
+ value="yes" checked="checked" /> Yes
+ value="no" /> No
';
return $result;
}