version 1.457, 2010/09/26 14:27:56
|
version 1.459, 2010/09/27 00:21:02
|
Line 3202 sub dump_with_regexp {
|
Line 3202 sub dump_with_regexp {
|
if (!$end || $end > $now) { |
if (!$end || $end > $now) { |
next unless (&releasereqd_check($cnum,$cdom,$key,$value,$major, |
next unless (&releasereqd_check($cnum,$cdom,$key,$value,$major, |
$minor,\%homecourses,\@ids)); |
$minor,\%homecourses,\@ids)); |
|
} |
} |
} |
} |
} |
} |
} |
Line 7363 sub get_courseinfo_hash {
|
Line 7364 sub get_courseinfo_hash {
|
sub check_homecourses { |
sub check_homecourses { |
my ($homecourses,$udom,$regexp,$count,$range,$start,$end,$major,$minor) = @_; |
my ($homecourses,$udom,$regexp,$count,$range,$start,$end,$major,$minor) = @_; |
my ($result,%addtocache); |
my ($result,%addtocache); |
|
my $yesterday = time - 24*3600; |
if (ref($homecourses) eq 'HASH') { |
if (ref($homecourses) eq 'HASH') { |
my %okcourses; |
my (%okcourses,%courseinfo,%recent); |
my $hashref = &tie_domain_hash($udom, "nohist_courseids", &GDBM_WRCREAT()); |
my $hashref = &tie_domain_hash($udom, "nohist_courseids", &GDBM_WRCREAT()); |
if ($hashref) { |
if ($hashref) { |
while (my ($key,$value) = each(%$hashref)) { |
while (my ($key,$value) = each(%$hashref)) { |
my $unesc_key = &unescape($key); |
my $unesc_key = &unescape($key); |
next if ($unesc_key =~ /^lasttime:/); |
if ($unesc_key =~ /^lasttime:(\w+)$/) { |
|
my $cid = $1; |
|
$cid =~ s/_/:/; |
|
if ($value > $yesterday ) { |
|
$recent{$cid} = 1; |
|
} |
|
next; |
|
} |
my $items = &Apache::lonnet::thaw_unescape($value); |
my $items = &Apache::lonnet::thaw_unescape($value); |
if (ref($items) eq 'HASH') { |
if (ref($items) eq 'HASH') { |
my $hashid = $unesc_key; |
my $hashid = $unesc_key; |
$hashid =~ s/_/:/; |
$hashid =~ s/_/:/; |
&Apache::lonnet::do_cache_new('courseinfo',$hashid,$items,600); |
$courseinfo{$hashid} = $items; |
if (ref($homecourses->{$hashid}) eq 'ARRAY') { |
if (ref($homecourses->{$hashid}) eq 'ARRAY') { |
my ($reqdmajor,$reqdminor) = split(/\./,$items->{'releaserequired'}); |
my ($reqdmajor,$reqdminor) = split(/\./,$items->{'releaserequired'}); |
if (&useable_role($reqdmajor,$reqdminor,$major,$minor)) { |
if (&useable_role($reqdmajor,$reqdminor,$major,$minor)) { |
Line 7390 sub check_homecourses {
|
Line 7399 sub check_homecourses {
|
&logthis('Failed to tie hash for nohist_courseids.db'); |
&logthis('Failed to tie hash for nohist_courseids.db'); |
return; |
return; |
} |
} |
|
foreach my $hashid (keys(%recent)) { |
|
&Apache::lonnet::do_cache_new('courseinfo',$hashid,$courseinfo{$hashid},600); |
|
} |
|
foreach my $hashid (keys(%{$homecourses})) { |
|
next if ($recent{$hashid}); |
|
&Apache::lonnet::do_cache_new('courseinfo',$hashid,$courseinfo{$hashid},600); |
|
} |
foreach my $hashid (keys(%okcourses)) { |
foreach my $hashid (keys(%okcourses)) { |
if (ref($homecourses->{$hashid}) eq 'ARRAY') { |
if (ref($homecourses->{$hashid}) eq 'ARRAY') { |
foreach my $role (@{$homecourses->{$hashid}}) { |
foreach my $role (@{$homecourses->{$hashid}}) { |