--- loncom/enrollment/Autoenroll.pl 2004/06/17 18:31:24 1.11 +++ loncom/enrollment/Autoenroll.pl 2006/05/16 21:55:56 1.18 @@ -1,7 +1,7 @@ #!/usr/bin/perl # #Automated Enrollment script -# $Id: Autoenroll.pl,v 1.11 2004/06/17 18:31:24 raeburn Exp $ +# $Id: Autoenroll.pl,v 1.18 2006/05/16 21:55:56 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -48,9 +48,9 @@ foreach my $dom (@domains) { #only run if configured to if (! &localenroll::run($dom)) { next; } - $ENV{'user.domain'} = $dom; + $env{'user.domain'} = $dom; # Determine the courses - my %courses = &Apache::lonnet::courseiddump($dom,'.',1,1,\@hostids); + my %courses = &Apache::lonnet::courseiddump($dom,'.',1,'.','.','.',1,\@hostids); my %affiliates = (); my %enrollvar = (); my %reply = (); @@ -105,7 +105,7 @@ } } foreach my $xlist (@crosslistings) { - if ($xlist =~ m/^(\w+):(\w*)$/) { + if ($xlist =~ m/^([^:]+):(\w*)$/) { my $course_id = $1; my $gp = $2; if (!grep/^$course_id$/,@{$affiliates{$crs}}) { @@ -122,6 +122,7 @@ # Now go through classes and perform required enrollment changes. open (my $fh,">>$logfile"); 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) { my $logmsg = ''; my $newusermsg = ''; @@ -135,10 +136,10 @@ if ($changecount > 0) { unless ($enrollvar{$crs}{notifylist} eq '') { # 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.home'} for use by logging in lonmsg unless ( ($enrollvar{$crs}{'courseowner'} eq '') || (!defined($enrollvar{$crs}{'courseowner'}) ) ) { - $ENV{'user.name'} = $enrollvar{$crs}{'courseowner'}; - $ENV{'user.home'} = &Apache::lonnet::homeserver($ENV{'user.name'},$dom); + $env{'user.name'} = $enrollvar{$crs}{'courseowner'}; + $env{'user.home'} = &Apache::lonnet::homeserver($env{'user.name'},$dom); 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; @@ -152,15 +153,20 @@ $to_notify[0] = $enrollvar{$crs}{notifylist}; } 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); } if ( ($enrollvar{$crs}{notifylist} eq '') && ($newusermsg ne '') ) { 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'},$dom,$subject,$newusermsg); } - delete($ENV{'user.name'}); - delete($ENV{'user.home'}); + delete($env{'user.name'}); + delete($env{'user.home'}); } } } @@ -180,7 +186,7 @@ } print $fh "-- ".localtime(time)." Enrollment messages end\n*******************\n\n"; close($fh); - delete($ENV{'user.domain'}); + delete($env{'user.domain'}); # Check for photos }