Diff for /loncom/lond between versions 1.456 and 1.457

version 1.456, 2010/09/26 01:50:28 version 1.457, 2010/09/26 14:27:56
Line 3198  sub dump_with_regexp { Line 3198  sub dump_with_regexp {
                     my $cdom = $1;                      my $cdom = $1;
                     my $cnum = $2;                      my $cnum = $2;
                     unless ($skipcheck) {                      unless ($skipcheck) {
                         next unless (&releasereqd_check($cnum,$cdom,$key,$value,$major,$minor,                          my ($role,$end,$start) = split(/\_/,$value);
                                                         $now,\%homecourses,\@ids));                          if (!$end || $end > $now) {
                               next unless (&releasereqd_check($cnum,$cdom,$key,$value,$major,
                                                               $minor,\%homecourses,\@ids));
                     }                      }
                 }                  }
             }              }
Line 7300  sub get_usersession_config { Line 7302  sub get_usersession_config {
 }  }
   
 sub releasereqd_check {  sub releasereqd_check {
     my ($cnum,$cdom,$key,$value,$major,$minor,$now,$homecourses,$ids) = @_;      my ($cnum,$cdom,$key,$value,$major,$minor,$homecourses,$ids) = @_;
     my $home = &Apache::lonnet::homeserver($cnum,$cdom);      my $home = &Apache::lonnet::homeserver($cnum,$cdom);
     return if ($home eq 'no_host');      return if ($home eq 'no_host');
     my ($reqdmajor,$reqdminor,$displayrole);      my ($reqdmajor,$reqdminor,$displayrole);
Line 7314  sub releasereqd_check { Line 7316  sub releasereqd_check {
             return unless (&useable_role($reqdmajor,$reqdminor,$major,$minor));              return unless (&useable_role($reqdmajor,$reqdminor,$major,$minor));
         }          }
     }      }
     my ($role,$end,$start) = split(/_/,$value);      my $hashid = $cdom.':'.$cnum;
     if (!$end || $end > $now) {      my ($courseinfo,$cached) =
         my $hashid = $cdom.':'.$cnum;          &Apache::lonnet::is_cached_new('courseinfo',$hashid);
         my ($courseinfo,$cached) =      if (defined($cached)) {
             &Apache::lonnet::is_cached_new('courseinfo',$hashid);          if (ref($courseinfo) eq 'HASH') {
         if (defined($cached)) {              if (exists($courseinfo->{'releaserequired'})) {
             if (ref($courseinfo) eq 'HASH') {                  my ($reqdmajor,$reqdminor) = split(/\./,$courseinfo->{'releaserequired'});
                 if (exists($courseinfo->{'releaserequired'})) {                  return unless (&useable_role($reqdmajor,$reqdminor,$major,$minor));
                     my ($reqdmajor,$reqdminor) = split(/\./,$courseinfo->{'releaserequired'});  
                     return unless (&useable_role($reqdmajor,$reqdminor,$major,$minor));  
                 }  
             }              }
         } else {          }
             if (ref($ids) eq 'ARRAY') {      } else {
                 if (grep(/^\Q$home\E$/,@{$ids})) {          if (ref($ids) eq 'ARRAY') {
                     if (ref($homecourses) eq 'HASH') {              if (grep(/^\Q$home\E$/,@{$ids})) {
                         if (ref($homecourses->{$hashid}) eq 'ARRAY') {                  if (ref($homecourses) eq 'HASH') {
                             push(@{$homecourses->{$hashid}},{$key=>$value});                      if (ref($homecourses->{$hashid}) eq 'ARRAY') {
                         } else {                          push(@{$homecourses->{$hashid}},{$key=>$value});
                             $homecourses->{$hashid} = [{$key=>$value}];                      } else {
                         }                          $homecourses->{$hashid} = [{$key=>$value}];
                     }                      }
                     return;  
                 }                  }
                   return;
             }              }
             my $courseinfo = &get_courseinfo_hash($cnum,$cdom,$home);          }
             if (ref($courseinfo) eq 'HASH') {          my $courseinfo = &get_courseinfo_hash($cnum,$cdom,$home);
                 if (exists($courseinfo->{'releaserequired'})) {          if (ref($courseinfo) eq 'HASH') {
                     my ($reqdmajor,$reqdminor) = split(/\./,$courseinfo->{'releaserequired'});              if (exists($courseinfo->{'releaserequired'})) {
                     return unless (&useable_role($reqdmajor,$reqdminor,$major,$minor));                  my ($reqdmajor,$reqdminor) = split(/\./,$courseinfo->{'releaserequired'});
                 }                  return unless (&useable_role($reqdmajor,$reqdminor,$major,$minor));
             }              }
         }          }
     }      }

Removed from v.1.456  
changed lines
  Added in v.1.457


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