version 1.1162, 2012/03/31 23:10:55
|
version 1.1163, 2012/04/01 16:19:20
|
Line 6365 sub has_comm_blocking {
|
Line 6365 sub has_comm_blocking {
|
); |
); |
my @blockers; |
my @blockers; |
my $now = time; |
my $now = time; |
|
my $navmap = Apache::lonnavmaps::navmap->new(); |
foreach my $block (keys(%commblocks)) { |
foreach my $block (keys(%commblocks)) { |
if ($block =~ /^(\d+)____(\d+)$/) { |
if ($block =~ /^(\d+)____(\d+)$/) { |
my ($start,$end) = ($1,$2); |
my ($start,$end) = ($1,$2); |
Line 6390 sub has_comm_blocking {
|
Line 6391 sub has_comm_blocking {
|
} |
} |
} elsif ($block =~ /^firstaccess____(.+)$/) { |
} elsif ($block =~ /^firstaccess____(.+)$/) { |
my $item = $1; |
my $item = $1; |
|
my @to_test; |
if (ref($commblocks{$block}{'blocks'}) eq 'HASH') { |
if (ref($commblocks{$block}{'blocks'}) eq 'HASH') { |
if (ref($commblocks{$block}{'blocks'}{'docs'}) eq 'HASH') { |
if (ref($commblocks{$block}{'blocks'}{'docs'}) eq 'HASH') { |
my $check_interval; |
my $check_interval; |
Line 6403 sub has_comm_blocking {
|
Line 6405 sub has_comm_blocking {
|
if ($item =~ /___\d+___/) { |
if ($item =~ /___\d+___/) { |
$type = 'resource'; |
$type = 'resource'; |
@interval=&EXT("resource.0.interval",$item); |
@interval=&EXT("resource.0.interval",$item); |
|
if (ref($navmap)) { |
|
my $res = $navmap->getBySymb($item); |
|
push(@to_test,$res); |
|
} |
} else { |
} else { |
my $mapsymb = &symbread($item,1); |
my $mapsymb = &symbread($item,1); |
if ($mapsymb) { |
if ($mapsymb) { |
my $navmap = Apache::lonnavmaps::navmap->new(); |
|
if (ref($navmap)) { |
if (ref($navmap)) { |
my $mapres = $navmap->getBySymb($mapsymb); |
my $mapres = $navmap->getBySymb($mapsymb); |
my @resources = $mapres->retrieveResources($mapres,undef,0,1); |
@to_test = $mapres->retrieveResources($mapres,undef,0,1); |
foreach my $res (@resources) { |
foreach my $res (@to_test) { |
my $symb = $res->symb(); |
my $symb = $res->symb(); |
next if ($symb eq $mapsymb); |
next if ($symb eq $mapsymb); |
if ($symb ne '') { |
if ($symb ne '') { |
Line 6434 sub has_comm_blocking {
|
Line 6439 sub has_comm_blocking {
|
if ($first_access) { |
if ($first_access) { |
my $timesup = $first_access+$interval[0]; |
my $timesup = $first_access+$interval[0]; |
if ($timesup > $now) { |
if ($timesup > $now) { |
unless (grep(/^\Q$block\E$/,@blockers)) { |
foreach my $res (@to_test) { |
push(@blockers,$block); |
if ($res->is_problem()) { |
|
if ($res->completable()) { |
|
unless (grep(/^\Q$block\E$/,@blockers)) { |
|
push(@blockers,$block); |
|
} |
|
last; |
|
} |
|
} |
} |
} |
} |
} |
} |
} |