--- loncom/interface/loncoursedata.pm 2006/04/28 21:14:03 1.159 +++ 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.159 2006/04/28 21:14:03 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)); @@ -2413,6 +2433,7 @@ sub RDs_tries { return 0; } sub RDs_awarded { return 4; } sub RDs_response_eval { return 5; } sub RDs_response_eval_2 { return 6; } +sub RDs_part_award { return 7; } sub get_response_data_by_student { my ($student,$symb,$response,$courseid) = @_; @@ -2431,7 +2452,7 @@ sub get_response_data_by_student { return undef if (! defined($dbh)); my $request = 'SELECT '. 'c.tries, b.timestamp, a.submission, a.awarddetail, c.awarded, '. - 'a.response_specific_value, a.response_specific_value_2, '. + 'a.response_specific_value, a.response_specific_value_2, c.award '. 'FROM '.$fulldump_response_table.' AS a '. 'LEFT JOIN '.$fulldump_timestamp_table.' AS b '. 'ON a.symb_id=b.symb_id AND a.student_id=b.student_id AND '.