--- loncom/interface/loncoursedata.pm 2007/01/16 22:50:12 1.180 +++ loncom/interface/loncoursedata.pm 2007/04/03 20:04:54 1.181 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: loncoursedata.pm,v 1.180 2007/01/16 22:50:12 albertel Exp $ +# $Id: loncoursedata.pm,v 1.181 2007/04/03 20:04:54 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -38,26 +38,24 @@ Set of functions that download and proce =head1 PACKAGES USED - Apache::Constants qw(:common :http) - Apache::lonnet() - Apache::lonhtmlcommon - HTML::TokeParser - GDBM_File - + Apache::lonnet + Apache::longroup + Time::HiRes + Apache::lonmysql + LONCAPA + Digest::MD5 + =cut package Apache::loncoursedata; use strict; use Apache::lonnet; -use Apache::lonhtmlcommon; -use Apache::longroup; -use Time::HiRes; -use Apache::lonmysql; -use HTML::TokeParser; -use GDBM_File; -use lib '/home/httpd/lib/perl/'; +use Apache::longroup(); +use Time::HiRes(); +use Apache::lonmysql(); use LONCAPA; +use Digest::MD5(); =pod @@ -2007,7 +2005,7 @@ sub get_problem_statistics { &setup_table_names($courseid); my $symb_id = &get_symb_id($symb); my $part_id = &get_part_id($part); - my $stats_table = $courseid.'_problem_stats'; + my $stats_table = &temp_table_name($courseid,'problem_stats'); # my $dbh = &Apache::lonmysql::get_dbh(); return undef if (! defined($dbh)); @@ -2520,7 +2518,7 @@ sub score_stats { my $time_limits = &limit_by_start_end_time($starttime,$endtime,'a'); my @Symbids = map { &get_symb_id($_); } @{$symbs}; # - my $stats_table = $courseid.'_problem_stats'; + my $stats_table = &temp_table_name($courseid,'problem_stats'); my $symb_restriction = join(' OR ',map {'a.symb_id='.$_;} @Symbids); my $request = 'DROP TABLE '.$stats_table; $dbh->do($request); @@ -2599,7 +2597,7 @@ sub count_stats { my $time_limits = &limit_by_start_end_time($starttime,$endtime,'a'); my @Symbids = map { &get_symb_id($_); } @{$symbs}; # - my $stats_table = $courseid.'_problem_stats'; + my $stats_table = &temp_table_name($courseid,'problem_stats'); my $symb_restriction = join(' OR ',map {'a.symb_id='.$_;} @Symbids); my $request = 'DROP TABLE '.$stats_table; $dbh->do($request); @@ -2897,7 +2895,7 @@ sub get_student_scores { &setup_table_names($courseid); my $dbh = &Apache::lonmysql::get_dbh(); return (undef) if (! defined($dbh)); - my $tmptable = $courseid.'_temp_'.time; + my $tmptable = &temp_table_name($courseid,'temp_'.time); my $request = 'DROP TABLE IF EXISTS '.$tmptable; # &Apache::lonnet::logthis('request = '.$/.$request); $dbh->do($request); @@ -3009,7 +3007,7 @@ sub setup_table_names { } # # Set up database names - my $base_id = $courseid; + my $base_id = 'md5_'.&Digest::MD5::md5_hex($courseid); $symb_table = $base_id.'_'.'symb'; $part_table = $base_id.'_'.'part'; $student_table = $base_id.'_'.'student'; @@ -3038,6 +3036,12 @@ sub setup_table_names { return; } +sub temp_table_name { + my ($courseid,$affix) = @_; + my $base_id = 'md5_'.&Digest::MD5::md5_hex($courseid); + return $base_id.'_'.$affix; +} + ################################################ ################################################