version 1.154, 2006/02/05 19:10:19
|
version 1.160, 2006/04/28 21:18:15
|
Line 49 Set of functions that download and proce
|
Line 49 Set of functions that download and proce
|
package Apache::loncoursedata; |
package Apache::loncoursedata; |
|
|
use strict; |
use strict; |
use Apache::Constants qw(:common :http); |
|
use Apache::lonnet; |
use Apache::lonnet; |
use Apache::lonhtmlcommon; |
use Apache::lonhtmlcommon; |
use Time::HiRes; |
use Time::HiRes; |
Line 66 and/or itself.
|
Line 65 and/or itself.
|
|
|
=cut |
=cut |
|
|
sub LoadDiscussion { |
|
my ($courseID)=@_; |
|
my %Discuss=(); |
|
my %contrib=&Apache::lonnet::dump( |
|
$courseID, |
|
$env{'course.'.$courseID.'.domain'}, |
|
$env{'course.'.$courseID.'.num'}); |
|
|
|
#my %contrib=&DownloadCourseInformation($name, $courseID, 0); |
|
|
|
foreach my $temp(keys %contrib) { |
|
if ($temp=~/^version/) { |
|
my $ver=$contrib{$temp}; |
|
my ($dummy,$prb)=split(':',$temp); |
|
for (my $idx=1; $idx<=$ver; $idx++ ) { |
|
my $name=$contrib{"$idx:$prb:sendername"}; |
|
$Discuss{"$name:$prb"}=$idx; |
|
} |
|
} |
|
} |
|
|
|
return \%Discuss; |
|
} |
|
|
|
################################################ |
################################################ |
################################################ |
################################################ |
|
|
Line 229 The response table holds data (documente
|
Line 204 The response table holds data (documente
|
associated with a particular response id which is stored when a student |
associated with a particular response id which is stored when a student |
attempts a problem. The following are the columns of the table, in order: |
attempts a problem. The following are the columns of the table, in order: |
'symb_id','part_id','response_id','student_id','transaction','tries', |
'symb_id','part_id','response_id','student_id','transaction','tries', |
'awarddetail', 'response_specific' (data particular to the response |
'awarddetail', 'response_specific', 'response_specific_value', |
type), 'response_specific_value', and 'submission (the text of the students |
'response_specific_2', 'response_specific_value_2', and 'submission |
submission). The primary key is based on the first five columns listed above. |
(the text of the students submission). The primary key is based on the |
|
first five columns listed above. |
|
|
=item $fulldump_part_table |
=item $fulldump_part_table |
|
|
Line 491 sub init_dbs {
|
Line 467 sub init_dbs {
|
type => 'TINYTEXT' }, |
type => 'TINYTEXT' }, |
{ name => 'response_specific_value', |
{ name => 'response_specific_value', |
type => 'TINYTEXT' }, |
type => 'TINYTEXT' }, |
|
{ name => 'response_specific_2', |
|
type => 'TINYTEXT' }, |
|
{ name => 'response_specific_value_2', |
|
type => 'TINYTEXT' }, |
{ name => 'submission', |
{ name => 'submission', |
type => 'TEXT'}, |
type => 'TEXT'}, |
], |
], |
Line 973 sub update_full_student_data {
|
Line 953 sub update_full_student_data {
|
# |
# |
# Download students data |
# Download students data |
my $time_of_retrieval = time; |
my $time_of_retrieval = time; |
my @tmp = &Apache::lonnet::dump($courseid,$sdom,$sname); |
my @tmp = &Apache::lonnet::dumpstore($courseid,$sdom,$sname); |
if (@tmp && $tmp[0] =~ /^error/) { |
if (@tmp && $tmp[0] =~ /^error/) { |
$returnstatus = 'error retrieving full student data'; |
$returnstatus = 'error retrieving full student data'; |
return $returnstatus; |
return $returnstatus; |
Line 1111 sub update_full_student_data {
|
Line 1091 sub update_full_student_data {
|
$transaction, |
$transaction, |
$data->{'awarddetail'}, |
$data->{'awarddetail'}, |
$data->{'response_specific'}, |
$data->{'response_specific'}, |
$data->{'response_specific_value'}). |
$data->{'response_specific_value'}), |
|
$data->{'response_specific_2'}, |
|
$data->{'response_specific_value_2'}). |
"',".$submission."),"; |
"',".$submission."),"; |
$store_rows++; |
$store_rows++; |
} |
} |
Line 2067 sub rank_students_by_scores_on_resources
|
Line 2049 sub rank_students_by_scores_on_resources
|
} @$resources |
} @$resources |
).')'; |
).')'; |
my ($award_col, $award_join, $award_clause) = ('', '', ''); |
my ($award_col, $award_join, $award_clause) = ('', '', ''); |
if ($has_award_for) |
if ($has_award_for) { |
{ |
|
my $resource_id = &get_symb_id($has_award_for); |
my $resource_id = &get_symb_id($has_award_for); |
$award_col = ", perf.awarded"; |
$award_col = ", perf.awarded"; |
$award_join = "LEFT JOIN $performance_table AS perf ON perf.symb_id" |
$award_join = "LEFT JOIN $performance_table AS perf ON perf.symb_id" |
Line 2348 sub get_student_data {
|
Line 2329 sub get_student_data {
|
} |
} |
} |
} |
|
|
sub RD_student_id { return 0; } |
sub RD_student_id { return 0; } |
sub RD_awarddetail { return 1; } |
sub RD_awarddetail { return 1; } |
sub RD_response_eval { return 2; } |
sub RD_response_eval { return 2; } |
sub RD_submission { return 3; } |
sub RD_response_eval_2 { return 3; } |
sub RD_timestamp { return 4; } |
sub RD_submission { return 4; } |
sub RD_tries { return 5; } |
sub RD_timestamp { return 5; } |
sub RD_sname { return 6; } |
sub RD_tries { return 6; } |
|
sub RD_sname { return 7; } |
|
|
sub get_response_data { |
sub get_response_data { |
my ($Sections,$enrollment,$symb,$response,$courseid) = @_; |
my ($Sections,$enrollment,$symb,$response,$courseid) = @_; |
Line 2381 sub get_response_data {
|
Line 2363 sub get_response_data {
|
&limit_by_section_and_status($Sections,$enrollment,'d'); |
&limit_by_section_and_status($Sections,$enrollment,'d'); |
my $request = 'SELECT '. |
my $request = 'SELECT '. |
'a.student_id, a.awarddetail, a.response_specific_value, '. |
'a.student_id, a.awarddetail, a.response_specific_value, '. |
'a.submission, b.timestamp, c.tries, d.student '. |
'a.response_specific_value_2, a.submission, b.timestamp, '. |
|
'c.tries, d.student '. |
'FROM '.$fulldump_response_table.' AS a '. |
'FROM '.$fulldump_response_table.' AS a '. |
'LEFT JOIN '.$fulldump_timestamp_table.' AS b '. |
'LEFT JOIN '.$fulldump_timestamp_table.' AS b '. |
'ON a.symb_id=b.symb_id AND a.student_id=b.student_id AND '. |
'ON a.symb_id=b.symb_id AND a.student_id=b.student_id AND '. |
Line 2423 sub get_response_data {
|
Line 2406 sub get_response_data {
|
} |
} |
|
|
|
|
sub RDs_awarddetail { return 3; } |
sub RDs_awarddetail { return 3; } |
sub RDs_submission { return 2; } |
sub RDs_submission { return 2; } |
sub RDs_timestamp { return 1; } |
sub RDs_timestamp { return 1; } |
sub RDs_tries { return 0; } |
sub RDs_tries { return 0; } |
sub RDs_awarded { return 4; } |
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 { |
sub get_response_data_by_student { |
my ($student,$symb,$response,$courseid) = @_; |
my ($student,$symb,$response,$courseid) = @_; |
Line 2445 sub get_response_data_by_student {
|
Line 2431 sub get_response_data_by_student {
|
my $dbh = &Apache::lonmysql::get_dbh(); |
my $dbh = &Apache::lonmysql::get_dbh(); |
return undef if (! defined($dbh)); |
return undef if (! defined($dbh)); |
my $request = 'SELECT '. |
my $request = 'SELECT '. |
'c.tries, b.timestamp, a.submission, a.awarddetail, e.awarded '. |
'c.tries, b.timestamp, a.submission, a.awarddetail, c.awarded, '. |
|
'a.response_specific_value, a.response_specific_value_2, c.award '. |
'FROM '.$fulldump_response_table.' AS a '. |
'FROM '.$fulldump_response_table.' AS a '. |
'LEFT JOIN '.$fulldump_timestamp_table.' AS b '. |
'LEFT JOIN '.$fulldump_timestamp_table.' AS b '. |
'ON a.symb_id=b.symb_id AND a.student_id=b.student_id AND '. |
'ON a.symb_id=b.symb_id AND a.student_id=b.student_id AND '. |