--- loncom/enrollment/Enrollment.pm 2006/01/12 01:30:44 1.27 +++ loncom/enrollment/Enrollment.pm 2006/08/11 21:55:15 1.32 @@ -1,5 +1,5 @@ # Automated Enrollment manager -# $Id: Enrollment.pm,v 1.27 2006/01/12 01:30:44 raeburn Exp $ +# $Id: Enrollment.pm,v 1.32 2006/08/11 21:55:15 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -27,7 +27,9 @@ package LONCAPA::Enrollment; use Apache::loncoursedata; use Apache::lonnet; +use Apache::loncommon(); use Apache::lonmsg; +use Apache::lonlocal; use HTML::Entities; use LONCAPA::Configuration; use Time::Local; @@ -36,7 +38,7 @@ use lib '/home/httpd/lib/perl'; use strict; sub update_LC { - my ($dom,$crs,$adds,$drops,$startdate,$enddate,$authtype,$autharg,$classesref,$groupref,$logmsg,$newusermsg,$context) = @_; + my ($dom,$crs,$adds,$drops,$startdate,$enddate,$authtype,$autharg,$classesref,$groupref,$logmsg,$newusermsg,$context,$phototypes) = @_; # Get institutional code and title of this class my %courseinfo = (); &get_courseinfo($dom,$crs,\%courseinfo); @@ -75,6 +77,7 @@ sub update_LC { my $addresult = ''; my $dropresult = ''; my $switchresult = ''; + my $photoresult = ''; if ($context eq "updatenow") { $linefeed = "\n
  • "; } elsif ($context eq "automated") { @@ -192,6 +195,7 @@ sub update_LC { @{$unameFromINid{$stuID}} = $uname; } } + # Explicitly allow access to creation/modification of students if called as an automated process. if ($context eq 'automated') { $env{'allowed.cst'}='F'; @@ -323,10 +327,46 @@ sub update_LC { } else { &execute_add($context,'newstudent',$uname,$dom,$auth,$authparam,$first,$middle,$last,$gene,$pid,$usec,$end,$start,$emailenc,$cid,\$addresult,\$enrollcount,$linefeed,$logmsg); } + if ($courseinfo{'showphoto'}) { + my ($result,$resulttype) = + &Apache::lonnet::auto_checkphotos($uname,$dom,$pid); + if ($resulttype) { + push(@{$$phototypes{$resulttype}},$uname); + } + } + } + } + } + } + if ($courseinfo{'showphoto'}) { + if (keys(%{$phototypes})>0) { + my %lt = &photo_response_types(); + foreach my $type (sort(keys(%{$phototypes}))) { + my $numphoto = @{$$phototypes{$type}}; + if ($numphoto > 0) { + if ($context eq 'updatenow') { + $photoresult .= '
    '. + &mt('For [_1] students, photos ',$numphoto). + $lt{$type}.'
    '; + } else { + $photoresult .= "\n"; + } } } } } + # Do drops if ( ($drops == 1) && (@reg_students > 0) ) { foreach my $uname (@localstudents) { @@ -402,7 +442,7 @@ sub update_LC { } } my $changecount = $enrollcount + $dropcount + $switchcount; - return ($changecount,$addresult.$dropresult.$switchresult); + return ($changecount,$addresult.$photoresult.$dropresult.$switchresult); } sub create_newuser { @@ -463,7 +503,7 @@ sub create_newuser { if ($context eq 'createowner' || $context eq 'createcourse') { my $result = &Apache::lonnet::modifyuser($udom,$uname,$pid,$auth,$authparam,$first,$middle,$last,$gene,'1',undef,$emailaddr); if ($result eq 'ok' && $context eq 'createcourse') { - $outcome = &Apache::loncreateuser::commit_standardrole($udom,$uname,$userurl,$role,$start,$end,$cdom,$crs,$usec); + $outcome = &Apache::loncommon::commit_standardrole($udom,$uname,$userurl,$role,$start,$end,$cdom,$crs,$usec); unless ($outcome =~ /^Error:/) { $outcome = 'ok'; } @@ -787,14 +827,16 @@ sub get_courseinfo { my ($dom,$crs,$courseinfo) = @_; my $owner; if (defined($dom) && defined($crs)) { - my %settings = &Apache::lonnet::get('environment',['internal.coursecode','description'],$dom,$crs); + my %settings = &Apache::lonnet::get('environment',['internal.coursecode','internal.showphoto','description'],$dom,$crs); if ( defined($settings{'internal.coursecode'}) ) { $$courseinfo{'inst_code'} = $settings{'internal.coursecode'}; - } if ( defined($settings{'description'}) ) { $$courseinfo{'description'} = $settings{'description'}; } + if ( defined($settings{'internal.showphoto'}) ) { + $$courseinfo{'showphoto'} = $settings{'internal.showphoto'}; + } } return; } @@ -811,4 +853,18 @@ sub CL_middlename { return 8;} sub CL_startdate { return 9; } sub CL_studentID { return 10; } +sub photo_response_types { + my %lt = &Apache::lonlocal::texthash( + 'same' => 'remained unchanged', + 'update' => 'were updated', + 'new' => 'were added', + 'missing' => 'were missing', + 'error' => 'were not imported because an error occurred', + 'nouser' => 'were for users without accounts', + 'noid' => 'were for users without student IDs', + ); + return %lt; +} + + 1;