[LON-CAPA-cvs] cvs: loncom /homework grades.pm
banghart
lon-capa-cvs@mail.lon-capa.org
Fri, 27 Jan 2006 01:52:26 -0000
banghart Thu Jan 26 20:52:26 2006 EDT
Modified files:
/loncom/homework grades.pm
Log:
Refactored sub version_portfiles first pass. Replicates original
behavior. (At least, I think it does.)
Index: loncom/homework/grades.pm
diff -u loncom/homework/grades.pm:1.305 loncom/homework/grades.pm:1.306
--- loncom/homework/grades.pm:1.305 Thu Jan 26 19:26:18 2006
+++ loncom/homework/grades.pm Thu Jan 26 20:52:25 2006
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# The LON-CAPA Grading handler
#
-# $Id: grades.pm,v 1.305 2006/01/27 00:26:18 banghart Exp $
+# $Id: grades.pm,v 1.306 2006/01/27 01:52:25 banghart Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -2400,25 +2400,24 @@
# ----------- Handles creating versions for portfolio files as answers
sub version_portfiles {
- my ($record, $parts_graded, $courseid, $symb, $domain, $stuname, $v_flag) = @_;
+ my ($record, $parts_graded, $courseid, $symb, $domain, $stu_name, $v_flag) = @_;
my $version_parts = join('|',@$v_flag);
my $parts = join('|', @$parts_graded);
my $portfolio_root = &Apache::loncommon::propath($domain,
- $stuname).
+ $stu_name).
'/userfiles/portfolio';
foreach my $key (keys(%$record)) {
my $new_portfiles;
-
if ($key =~ /^resource\.($version_parts)\./ && $key =~ /\.portfiles$/ ) {
my @v_portfiles;
my @portfiles = split(/,/,$$record{$key});
foreach my $file (@portfiles) {
- &Apache::lonnet::unmark_as_readonly($domain,$stuname,[$symb,$env{'request.course.id'}],$file);
+ &Apache::lonnet::unmark_as_readonly($domain,$stu_name,[$symb,$env{'request.course.id'}],$file);
my ($directory,$answer_file) =($file =~ /^(.*?)([^\/]*)$/);
my $version = 0;
my ($answer_name,$answer_ver,$answer_ext) =
&file_name_version_ext($answer_file);
- my @dir_list = &Apache::lonnet::dirlist($directory,$domain,$stuname,$portfolio_root);
+ 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) =
@@ -2435,19 +2434,14 @@
}
}
$version++;
- $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 $new_answer = $answer_name.'.'.$version.'.'.$answer_ext;
- my $copy_result = &Apache::lonnet::finishuserfileupload(
- $stuname,$domain,'copy',
- '/portfolio'.$directory.$new_answer);
+ 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);
- &Apache::lonnet::mark_as_readonly($domain,$stuname,
- ['/portfolio'.$directory.$new_answer],
- [$symb,$env{'request.course.id'},'graded']);
+ &Apache::lonnet::mark_as_readonly($domain,$stu_name,
+ ['/portfolio'.$directory.$new_answer],
+ [$symb,$env{'request.course.id'},'graded']);
}
+
}
$$record{$key} = join(',',@v_portfiles);
}
@@ -2456,8 +2450,21 @@
}
sub version_selected_portfile {
- my ($file_name,$domain,$stu_name) = @_;
- return 'ok';
+ my ($domain,$stu_name,$directory,$file_name,$version) = @_;
+ my ($answer_name,$answer_ver,$answer_ext) =
+ &file_name_version_ext($file_name);
+ my $new_answer;
+ $env{'form.copy'} = &Apache::lonnet::getfile("/uploaded/$domain/$stu_name/portfolio$directory$file_name");
+ if($env{'form.copy'} eq '-1') {
+ &Apache::lonnet::logthis('problem getting file '.$file_name);
+ $new_answer = 'problem getting file';
+ } else {
+ $new_answer = $answer_name.'.'.$version.'.'.$answer_ext;
+ my $copy_result = &Apache::lonnet::finishuserfileupload(
+ $stu_name,$domain,'copy',
+ '/portfolio'.$directory.$new_answer);
+ }
+ return ($new_answer);
}
sub file_name_version_ext {