Diff for /loncom/misc/refresh_courseids_db.pl between versions 1.20 and 1.24

version 1.20, 2016/01/27 22:23:09 version 1.24, 2023/10/02 21:01:21
Line 183  sub recurse_courses { Line 183  sub recurse_courses {
                 my $creator = $courseinfo{'internal.creator'};                  my $creator = $courseinfo{'internal.creator'};
                 my $creationcontext = $courseinfo{'internal.creationcontext'};                  my $creationcontext = $courseinfo{'internal.creationcontext'};
                 my $inst_code = $courseinfo{'internal.coursecode'};                  my $inst_code = $courseinfo{'internal.coursecode'};
                   my $xlists = $courseinfo{'internal.crosslistings'};
                 my $releaserequired = $courseinfo{'internal.releaserequired'};                  my $releaserequired = $courseinfo{'internal.releaserequired'};
                 my $uniquecode = $courseinfo{'internal.uniquecode'};                  my $uniquecode = $courseinfo{'internal.uniquecode'};
                 $inst_code = '' if (!defined($inst_code));                  $inst_code = '' if (!defined($inst_code));
Line 224  sub recurse_courses { Line 225  sub recurse_courses {
                 if (($chome ne '')  && ($lastaccess->{$cid} > $twodaysago)) {                  if (($chome ne '')  && ($lastaccess->{$cid} > $twodaysago)) {
                     $env{'request.course.id'} = $cdom.'_'.$cnum;                      $env{'request.course.id'} = $cdom.'_'.$cnum;
                     $env{'request.role'} = 'cc./'.$cdom.'/'.$cnum;                      $env{'request.role'} = 'cc./'.$cdom.'/'.$cnum;
                       $env{'request.role.adv'} = 1;
   
                     my $readmap = 1;                      my $readmap = 1;
                     ($reqdmajor,$reqdminor) = &Apache::lonrelrequtils::get_release_req($cnum,$cdom,                      ($reqdmajor,$reqdminor) = &Apache::lonrelrequtils::get_release_req($cnum,$cdom,
                                                                                        $crstype,$readmap,                                                                                         $crstype,$readmap,
                                                                                        $globals_set);                                                                                         $globals_set);
                       delete($env{'request.role.adv'});
                     delete($env{'request.course.id'});                      delete($env{'request.course.id'});
                     delete($env{'request.role'});                      delete($env{'request.role'});
                 } elsif ($releaserequired) {                  } elsif ($releaserequired) {
Line 279  sub recurse_courses { Line 282  sub recurse_courses {
                                 my $cc = $1;                                  my $cc = $1;
                                 unless ($cc eq $owner) {                                  unless ($cc eq $owner) {
                                     my ($result,$desc) = &Apache::lonnet::auto_validate_instcode($cnum,$cdom,$inst_code,$cc);                                      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 ($result eq 'valid') {
                                         if (@newcoowners > 0) {                                          if (@newcoowners > 0) {
                                             unless (grep(/^\Q$cc\E$/,@newcoowners)) {                                               unless (grep(/^\Q$cc\E$/,@newcoowners)) {
                                                 push(@newcoowners,$cc);                                                  push(@newcoowners,$cc);
                                             }                                              }
                                         } else {                                          } else {
Line 333  sub recurse_courses { Line 347  sub recurse_courses {
                             $changes{'internal.releaserequired'} = $releasereq;                              $changes{'internal.releaserequired'} = $releasereq;
                         } else {                          } else {
                             if ($courseinfo{'internal.releaserequired'} ne $releasereq) {                              if ($courseinfo{'internal.releaserequired'} ne $releasereq) {
                           
                                 $changes{'internal.releaserequired'} = $releasereq;                                  $changes{'internal.releaserequired'} = $releasereq;
                             }                              }
                         }                          }
                     }                      }
                       my $curruserdoms = $courseinfo{'internal.userdomains'};
                       my $updateduserdoms = &get_unique_domains($cdom,$cnum);
                       if ($curruserdoms ne $updateduserdoms) {
                           $changes{'internal.userdomains'} = $updateduserdoms;
                       }
                     if (keys(%changes)) {                      if (keys(%changes)) {
                         if (&Apache::lonnet::put('environment',\%changes,$cdom,$cnum) eq 'ok') {                          if (&Apache::lonnet::put('environment',\%changes,$cdom,$cnum) eq 'ok') {
                             print $fh "Course's environment.db for ".$cdom."_".$cnum." successfully updated with following entries: ";                              print $fh "Course's environment.db for ".$cdom."_".$cnum." successfully updated with following entries: ";
Line 374  sub last_map_update { Line 392  sub last_map_update {
     return $lastupdate;      return $lastupdate;
 }  }
   
   sub get_unique_domains {
       my ($cdom,$cnum) = @_;
       my %classlist = &Apache::lonnet::dump('classlist',$cdom,$cnum);
       my (%uniquedom,$udomstr);
       foreach my $key (keys(%classlist)) {
           my $udom = (split(/:/,$key))[1];
           $uniquedom{$udom} = 1;
       }
       my %dumphash =
           &Apache::lonnet::dump('nohist_userroles',$cdom,$cnum);
       foreach my $entry (keys(%dumphash)) {
           my $udom = (split(/\:/,$entry))[2];
           $uniquedom{$udom} = 1;
       }
       foreach my $udom (keys(%uniquedom)) {
           if (&Apache::lonnet::domain($udom) eq '') {
               delete($uniquedom{$udom});
           }
       }
       if (keys(%uniquedom) > 0) {
           $udomstr = join(',',sort(keys(%uniquedom)));
       }
       return $udomstr;
   }
   

Removed from v.1.20  
changed lines
  Added in v.1.24


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