Diff for /loncom/lonnet/perl/lonnet.pm between versions 1.1162 and 1.1163

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;
                                               }
                                           }
                                     }                                      }
                                 }                                  }
                             }                              }

Removed from v.1.1162  
changed lines
  Added in v.1.1163


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>