--- loncom/interface/loncoursedata.pm 2006/04/28 21:18:15 1.160 +++ loncom/interface/loncoursedata.pm 2006/04/28 21:58:37 1.164 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: loncoursedata.pm,v 1.160 2006/04/28 21:18:15 albertel Exp $ +# $Id: loncoursedata.pm,v 1.164 2006/04/28 21:58:37 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -902,6 +902,15 @@ sub clear_internal_caches { undef(%students_by_id); } + +################################################ +################################################ + +sub symb_is_for_task { + my ($symb) = @_; + return ($symb =~ /\.task$/); +} + ################################################ ################################################ @@ -1091,7 +1100,7 @@ sub update_full_student_data { $transaction, $data->{'awarddetail'}, $data->{'response_specific'}, - $data->{'response_specific_value'}), + $data->{'response_specific_value'}, $data->{'response_specific_2'}, $data->{'response_specific_value_2'}). "',".$submission."),"; @@ -1272,19 +1281,30 @@ sub store_student_data { my %stored; while (my ($parameter,$value) = each(%$param_hash)) { next if ($parameter !~ /^resource\.(.*)\.(solved|awarded)$/); - my $part = $1; + my $part = $1; + my $which = $2; next if ($part =~ /\./); next if (exists($stored{$part})); $stored{$part}++; # my $part_id = &get_part_id($part); next if (!defined($part_id)); - my $solved = $value; - my $tries = $param_hash->{'resource.'.$part.'.tries'}; - my $awarded = $param_hash->{'resource.'.$part.'.awarded'}; + + my ($solved,$awarded); + if ($which eq 'solved') { + $solved = $value; + $awarded = $param_hash->{'resource.'.$part.'.awarded'}; + } else { + $solved = $param_hash->{'resource.'.$part.'.solved'}; + $awarded = $value; + } my $award = $param_hash->{'resource.'.$part.'.award'}; my $awarddetail = $param_hash->{'resource.'.$part.'.awarddetail'}; my $timestamp = $param_hash->{'timestamp'}; + my $tries = $param_hash->{'resource.'.$part.'.tries'}; + if (&symb_is_for_task($current_symb)) { + $tries = $param_hash->{'resource.'.$part.'.version'}; + } # $solved = '' if (! defined($solved)); $tries = '' if (! defined($tries));