version 1.113, 2004/02/02 19:50:33
|
version 1.114, 2004/02/02 21:45:12
|
Line 2164 sub get_response_time_data {
|
Line 2164 sub get_response_time_data {
|
|
|
=pod |
=pod |
|
|
=item &get_student_scores($Students,$Symbs,$courseid) |
=item &get_student_scores($Students,$Symbs,$enrollment,$courseid) |
|
|
=cut |
=cut |
|
|
################################################ |
################################################ |
################################################ |
################################################ |
sub get_student_scores { |
sub get_student_scores { |
my ($Students,$Symbs,$courseid) = @_; |
my ($Sections,$Symbs,$enrollment,$courseid) = @_; |
$courseid = $ENV{'request.course.id'} if (! defined($courseid)); |
$courseid = $ENV{'request.course.id'} if (! defined($courseid)); |
&setup_table_names($courseid); |
&setup_table_names($courseid); |
my $dbh = &Apache::lonmysql::get_dbh(); |
my $dbh = &Apache::lonmysql::get_dbh(); |
return (undef) if (! defined($dbh)); |
return (undef) if (! defined($dbh)); |
my $tmptable = $courseid.'_temp_'.time; |
my $tmptable = $courseid.'_temp_'.time; |
my ($symb_requirements,$student_requirements); |
# |
|
my $symb_requirements; |
if (defined($Symbs) && @$Symbs) { |
if (defined($Symbs) && @$Symbs) { |
$symb_requirements = '('. |
$symb_requirements = '('. |
join(' OR ', map{ "(symb_id='".&get_symb_id($_->{'symb'}). |
join(' OR ', map{ "(a.symb_id='".&get_symb_id($_->{'symb'}). |
"' AND part_id='".&get_part_id($_->{'part'}). |
"' AND a.part_id='".&get_part_id($_->{'part'}). |
"')" |
"')" |
} @$Symbs).')'; |
} @$Symbs).')'; |
} |
} |
if (defined($Students)) { |
# |
|
my $student_requirements; |
|
if ( (defined($Sections) && $Sections->[0] ne 'all')) { |
$student_requirements = '('. |
$student_requirements = '('. |
join(' OR ', map {'student_id='. |
join(' OR ', map { "b.section='".$_."'" } @$Sections |
&get_student_id($_->{'username'}, |
|
$_->{'domain'}) |
|
} @$Students |
|
).')'; |
).')'; |
} |
} |
|
# |
|
my $enrollment_requirements=undef; |
|
if (defined($enrollment) && $enrollment ne 'Any') { |
|
$enrollment_requirements = "b.status='".$enrollment."'"; |
|
} |
|
## |
|
## |
my $request = 'CREATE TEMPORARY TABLE IF NOT EXISTS '.$tmptable. |
my $request = 'CREATE TEMPORARY TABLE IF NOT EXISTS '.$tmptable. |
' SELECT student_id,SUM(awarded) AS score FROM '.$performance_table; |
' SELECT a.student_id,SUM(a.awarded) AS score FROM '. |
if (defined($symb_requirements) || defined($student_requirements)) { |
$performance_table.' AS a '; |
|
if (defined($student_requirements) || defined($enrollment_requirements)) { |
|
$request .= ' NATURAL LEFT JOIN '.$student_table.' AS b '; |
|
} |
|
if (defined($symb_requirements) || |
|
defined($student_requirements) || |
|
defined($enrollment_requirements) ) { |
$request .= ' WHERE '; |
$request .= ' WHERE '; |
if (defined($symb_requirements)) { |
|
$request .= $symb_requirements; |
|
if (defined($student_requirements)) { |
|
$request .= ' AND '.$student_requirements; |
|
} |
|
} elsif (defined($student_requirements)) { |
|
$request .= $student_requirements; |
|
} |
|
} |
} |
$request .= ' GROUP BY student_id'; |
if (defined($symb_requirements)) { |
&Apache::lonnet::logthis("request = \n".$request); |
$request .= $symb_requirements.' AND '; |
|
} |
|
if (defined($student_requirements)) { |
|
$request .= $student_requirements.' AND '; |
|
} |
|
if (defined($enrollment_requirements)) { |
|
$request .= $enrollment_requirements.' AND '; |
|
} |
|
$request =~ s/ AND $//; |
|
$request .= ' GROUP BY a.student_id'; |
|
# &Apache::lonnet::logthis("request = \n".$request); |
my $sth = $dbh->prepare($request); |
my $sth = $dbh->prepare($request); |
$sth->execute(); |
$sth->execute(); |
if ($dbh->err) { |
if ($dbh->err) { |