--- 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 .= "\nFor $numphoto students, photos ".
+ $lt{$type}."\n";
+ }
+ foreach my $user (@{$$phototypes{$type}}) {
+ $photoresult .= $user.$linefeed;
+ }
+ if ($context eq 'updatenow') {
+ $photoresult = substr($photoresult,0,
+ rindex($photoresult,"
- "));
+ $photoresult .= '
';
+ } 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;