--- loncom/misc/refresh_courseids_db.pl 2016/01/27 22:23:09 1.20 +++ loncom/misc/refresh_courseids_db.pl 2021/03/31 02:19:59 1.23 @@ -1,7 +1,7 @@ #!/usr/bin/perl # The LearningOnline Network # -# $Id: refresh_courseids_db.pl,v 1.20 2016/01/27 22:23:09 raeburn Exp $ +# $Id: refresh_courseids_db.pl,v 1.23 2021/03/31 02:19:59 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -183,6 +183,7 @@ sub recurse_courses { my $creator = $courseinfo{'internal.creator'}; my $creationcontext = $courseinfo{'internal.creationcontext'}; my $inst_code = $courseinfo{'internal.coursecode'}; + my $xlists = $courseinfo{'internal.crosslistings'}; my $releaserequired = $courseinfo{'internal.releaserequired'}; my $uniquecode = $courseinfo{'internal.uniquecode'}; $inst_code = '' if (!defined($inst_code)); @@ -224,11 +225,13 @@ sub recurse_courses { if (($chome ne '') && ($lastaccess->{$cid} > $twodaysago)) { $env{'request.course.id'} = $cdom.'_'.$cnum; $env{'request.role'} = 'cc./'.$cdom.'/'.$cnum; + $env{'request.role.adv'} = 1; my $readmap = 1; ($reqdmajor,$reqdminor) = &Apache::lonrelrequtils::get_release_req($cnum,$cdom, $crstype,$readmap, $globals_set); + delete($env{'request.role.adv'}); delete($env{'request.course.id'}); delete($env{'request.role'}); } elsif ($releaserequired) { @@ -279,9 +282,20 @@ sub recurse_courses { my $cc = $1; unless ($cc eq $owner) { my ($result,$desc) = &Apache::lonnet::auto_validate_instcode($cnum,$cdom,$inst_code,$cc); + unless ($result eq 'valid') { + if ($xlists ne '') { + foreach my $xlist (split(',',$xlists)) { + my ($inst_crosslist,$lcsec) = split(':',$xlist); + $result = + &Apache::lonnet::auto_validate_inst_crosslist($cnum,$cdom,$inst_code, + $inst_crosslist,$cc); + last if ($result eq 'valid'); + } + } + } if ($result eq 'valid') { if (@newcoowners > 0) { - unless (grep(/^\Q$cc\E$/,@newcoowners)) { + unless (grep(/^\Q$cc\E$/,@newcoowners)) { push(@newcoowners,$cc); } } else { @@ -333,7 +347,6 @@ sub recurse_courses { $changes{'internal.releaserequired'} = $releasereq; } else { if ($courseinfo{'internal.releaserequired'} ne $releasereq) { - $changes{'internal.releaserequired'} = $releasereq; } }