Diff for /loncom/enrollment/Autoenroll.pl between versions 1.11 and 1.24

version 1.11, 2004/06/17 18:31:24 version 1.24, 2007/03/01 18:58:42
Line 33 Line 33
     use Apache::lonnet;      use Apache::lonnet;
     use Apache::loncoursedata;      use Apache::loncoursedata;
     use Apache::lonmsg;      use Apache::lonmsg;
       use Apache::longroup;
       use Apache::loncommon;
       use Apache::lonlocal;
     use HTML::Entities;      use HTML::Entities;
   
 # Determine the library server's domain and hostID  # Determine the library server's domain and hostID
Line 48 Line 51
     foreach my $dom (@domains) {      foreach my $dom (@domains) {
     #only run if configured to      #only run if configured to
         if (! &localenroll::run($dom)) { next; }          if (! &localenroll::run($dom)) { next; }
         $ENV{'user.domain'} = $dom;          $env{'user.domain'} = $dom;
     # Determine the courses          # Initialize language handler
         my %courses = &Apache::lonnet::courseiddump($dom,'.',1,1,\@hostids);           &Apache::lonlocal::get_language_handle();
           # Determine the courses
           my %courses = &Apache::lonnet::courseiddump($dom,'.',1,'.','.','.',1,\@hostids,'Course'); 
         my %affiliates = ();          my %affiliates = ();
         my %enrollvar = ();          my %enrollvar = ();
         my %reply = ();          my %reply = ();
Line 105 Line 110
                         }                          }
                     }                      }
                     foreach my $xlist (@crosslistings) {                      foreach my $xlist (@crosslistings) {
                         if ($xlist =~ m/^(\w+):(\w*)$/) {                          if ($xlist =~ m/^([^:]+):(\w*)$/) {
                             my $course_id = $1;                              my $course_id = $1;
                             my $gp = $2;                              my $gp = $2;
                             if (!grep/^$course_id$/,@{$affiliates{$crs}}) {                              if (!grep/^$course_id$/,@{$affiliates{$crs}}) {
Line 122 Line 127
 # Now go through classes and perform required enrollment changes.  # Now go through classes and perform required enrollment changes.
         open (my $fh,">>$logfile");          open (my $fh,">>$logfile");
         print $fh "********************\n".localtime(time)." Enrollment messages start --\n";          print $fh "********************\n".localtime(time)." Enrollment messages start --\n";
           print $fh "Response from fetch_enrollment_query was $outcome\n";
         foreach my $crs (sort keys %enrollvar) {          foreach my $crs (sort keys %enrollvar) {
             my $logmsg = '';              my $logmsg = '';
             my $newusermsg = '';              my $newusermsg = '';
Line 135 Line 141
                         if ($changecount > 0) {                          if ($changecount > 0) {
                             unless ($enrollvar{$crs}{notifylist}  eq '') {                              unless ($enrollvar{$crs}{notifylist}  eq '') {
 # Send message about enrollment changes to notifylist.  # Send message about enrollment changes to notifylist.
 # Set $ENV{'user.name'}, $ENV{'user.home'} for use by logging in lonmsg  # Set $env{'user.name'}, $env{'user.domain'}, $env{'user.home'}
   # for use by logging in lonmsg
                                 unless ( ($enrollvar{$crs}{'courseowner'} eq '') || (!defined($enrollvar{$crs}{'courseowner'}) )  ) {                                  unless ( ($enrollvar{$crs}{'courseowner'} eq '') || (!defined($enrollvar{$crs}{'courseowner'}) )  ) {
                                     $ENV{'user.name'} = $enrollvar{$crs}{'courseowner'};                                      if ($enrollvar{$crs}{'courseowner'} =~ /:/) {
                                     $ENV{'user.home'} = &Apache::lonnet::homeserver($ENV{'user.name'},$dom);                                          ($env{'user.name'},$env{'user.domain'}) = split(/:/,$enrollvar{$crs}{'courseowner'});
                                       } else {
                                           $env{'user.name'} = $enrollvar{$crs}{'courseowner'};
                                           $env{'user.domain'} = $dom;
                                       }
                                       $env{'user.home'} = &Apache::lonnet::homeserver($env{'user.name'},$env{'user.domain'});
   
                                     my $subject = "Student enrollment changes in $enrollvar{$crs}{coursecode}";                                      my $subject = "Student enrollment changes in $enrollvar{$crs}{coursecode}";
                                     my $message = "The following $changecount change(s) occurred in $enrollvar{$crs}{description} - $enrollvar{$crs}{coursecode} as a result of the automated classlist update:\n\n".$response;                                      my $message = "The following $changecount change(s) occurred in $enrollvar{$crs}{description} - $enrollvar{$crs}{coursecode} as a result of the automated classlist update:\n\n".$response;
Line 152 Line 164
                                         $to_notify[0] = $enrollvar{$crs}{notifylist};                                          $to_notify[0] = $enrollvar{$crs}{notifylist};
                                     }                                      }
                                     foreach my $cc (@to_notify) {                                      foreach my $cc (@to_notify) {
                                         my ($ccname,$ccdom) = split/@/,$cc;                                          my ($ccname,$ccdom);
                                           if ($cc =~ /:/) {
                                               ($ccname,$ccdom) = split(/:/,$cc);
                                           } elsif ($cc =~ /\@/) {
                                               ($ccname,$ccdom) = split(/\@/,$cc);
                                           }
                                         my $status =  &Apache::lonmsg::user_normal_msg($ccname,$ccdom,$subject,$message);                                          my $status =  &Apache::lonmsg::user_normal_msg($ccname,$ccdom,$subject,$message);
                                     }                                      }
                                     if ( ($enrollvar{$crs}{notifylist} eq '') && ($newusermsg ne '') ) {                                      if ( ($enrollvar{$crs}{notifylist} eq '') && ($newusermsg ne '') ) {
                                         my $subject = "New user accounts in  $enrollvar{$crs}{'coursecode'}";                                          my $subject = "New user accounts in  $enrollvar{$crs}{'coursecode'}";
                                         my $status =  &Apache::lonmsg::user_normal_msg($ENV{'user.name'},$dom,$subject,$newusermsg);                                          my $status =  &Apache::lonmsg::user_normal_msg($env{'user.name'},$env{'user.domain'},$subject,$newusermsg);
                                     }                                      }
                                     delete($ENV{'user.name'});                                      delete($env{'user.name'});
                                     delete($ENV{'user.home'});                                      delete($env{'user.home'});
                                       $env{'user.domain'} = $dom;
                                 }                                  }
                             }                              }
                         }                          }
Line 180 Line 198
         }          }
         print $fh "-- ".localtime(time)." Enrollment messages end\n*******************\n\n";          print $fh "-- ".localtime(time)." Enrollment messages end\n*******************\n\n";
         close($fh);          close($fh);
         delete($ENV{'user.domain'});          delete($env{'user.domain'});
 # Check for photos  # Check for photos
     }      }
   

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


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