Diff for /loncom/enrollment/Autoenroll.pl between versions 1.12 and 1.25

version 1.12, 2004/11/27 17:23:09 version 1.25, 2007/03/02 21:38:18
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 121 Line 126
   
 # 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).' '.&mt('Enrollment messages start').' --'."\n";
         print $fh "Response from fetch_enrollment_query was $outcome\n";          print $fh &mt("Response from [_1] was [_2]",'fetch_enrollment_query',$outcome)."\n";
         foreach my $crs (sort keys %enrollvar) {          foreach my $crs (sort keys %enrollvar) {
             my $logmsg = '';              my $logmsg = '';
             my $newusermsg = '';              my $newusermsg = '';
Line 130 Line 135
                 if ( ($enrollvar{$crs}{autostart} < $timenow) && ( ($enrollvar{$crs}{autoend} > $timenow) || ($enrollvar{$crs}{autoend} == 0) ) ) {                  if ( ($enrollvar{$crs}{autostart} < $timenow) && ( ($enrollvar{$crs}{autoend} > $timenow) || ($enrollvar{$crs}{autoend} == 0) ) ) {
                     if (($enrollvar{$crs}{autoadds} == 1) || ($enrollvar{$crs}{autodrops} == 1)) {                      if (($enrollvar{$crs}{autoadds} == 1) || ($enrollvar{$crs}{autodrops} == 1)) {
                         my ($changecount,$response) = &LONCAPA::Enrollment::update_LC($dom,$crs,$enrollvar{$crs}{autoadds},$enrollvar{$crs}{autodrops},$enrollvar{$crs}{startdate},$enrollvar{$crs}{enddate},$enrollvar{$crs}{authtype},$enrollvar{$crs}{autharg},\@{$affiliates{$crs}},\%{$LC_code{$crs}},\$logmsg,\$newusermsg,'automated');                          my ($changecount,$response) = &LONCAPA::Enrollment::update_LC($dom,$crs,$enrollvar{$crs}{autoadds},$enrollvar{$crs}{autodrops},$enrollvar{$crs}{startdate},$enrollvar{$crs}{enddate},$enrollvar{$crs}{authtype},$enrollvar{$crs}{autharg},\@{$affiliates{$crs}},\%{$LC_code{$crs}},\$logmsg,\$newusermsg,'automated');
                         print $fh "Messages start for $crs\n";                          print $fh &mt('Messages start for [_1]',$crs)."\n";
                         print $fh "$logmsg\n";                          print $fh "$logmsg\n";
                         print $fh "Messages end for $crs\n";                          print $fh &mt('Messages end for [_1]',$crs)."\n";
                         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 = &mt('Student enrollment changes in [_1]',$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 = &mt('The following [quant,_1,change] occurred in [_2] - [_3] as a result of the automated classlist update:',$changecount,$enrollvar{$crs}{description},$enrollvar{$crs}{coursecode})."\n\n".$response;
                                     unless ($newusermsg eq '') {                                       unless ($newusermsg eq '') { 
                                         $message .= "\n".$newusermsg;                                          $message .= "\n".$newusermsg;
                                     }                                      }
Line 153 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 = &mt('New user accounts in [_1]',$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 170 Line 187
             } else {              } else {
                 if ( ($enrollvar{$crs}{autoadds} == 1) || ($enrollvar{$crs}{autodrops} == 1) ) {                  if ( ($enrollvar{$crs}{autoadds} == 1) || ($enrollvar{$crs}{autodrops} == 1) ) {
                     if ( ($enrollvar{$crs}{autostart} < $timenow) && ( ($enrollvar{$crs}{autoend} > $timenow) || ($enrollvar{$crs}{autoend} == 0) ) ) {                      if ( ($enrollvar{$crs}{autostart} < $timenow) && ( ($enrollvar{$crs}{autoend} > $timenow) || ($enrollvar{$crs}{autoend} == 0) ) ) {
                         print $fh "No institutional classlist data could be retrieved for $crs\n";                          print $fh &mt('No institutional classlist data could be retrieved for [_1]',$crs)."\n";
                     } else {                      } else {
                         print $fh "Not within time window for auto-enrollment in $crs\n";                          print $fh ('Not within time window for auto-enrollment in [_1]',$crs)."\n";
                     }                      }
                 } else {                  } else {
                     print $fh "Auto-enrollment not currently enabled for $crs\n";                      print $fh &mt('Auto-enrollment not currently enabled for [_1]',$crs)."\n";
                 }                  }
             }              }
         }          }
         print $fh "-- ".localtime(time)." Enrollment messages end\n*******************\n\n";          print $fh "-- ".localtime(time).' '.&mt('Enrollment messages end')."\n*******************\n\n";
         close($fh);          close($fh);
         delete($ENV{'user.domain'});          delete($env{'user.domain'});
 # Check for photos  
     }      }
   
 1;  1;

Removed from v.1.12  
changed lines
  Added in v.1.25


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