--- loncom/interface/lonmodifycourse.pm 2004/07/15 18:58:20 1.11 +++ loncom/interface/lonmodifycourse.pm 2006/07/11 02:28:22 1.26 @@ -1,3 +1,8 @@ +# The LearningOnline Network with CAPA +# automated enrollment course setup handler +# +# $Id: lonmodifycourse.pm,v 1.26 2006/07/11 02:28:22 raeburn Exp $ +# # Copyright Michigan State University Board of Trustees # # This file is part of the LearningOnline Network with CAPA (LON-CAPA). @@ -30,11 +35,11 @@ use Apache::lonlocal; use Apache::londropadd; use LONCAPA::Enrollment; use lib '/home/httpd/lib/perl'; -use localenroll; +use LONCAPA; sub print_course_selection_page { my ($r,$tasklongref) = @_; - my $dom = $ENV{'user.domain'}; + my $dom = $env{'request.role.domain'}; my %lt=&Apache::lonlocal::texthash( 'csae' => "Course settings for automated enrollment", 'unst' => "Unlike standard LON-CAPA course parameters, such as course description, feedback addresses, and top level map, which are displayed and/or modified using the 'Course Environment Parameters' screen, settings that control automated enrollment based on classlist data available from your institution's student information system are handled differently. Automated enrollment settings fall into two groups: (a) settings that can be modified by a Course Coordinator using the Automated Enrollment Manager and (b) settings that may only be modified by a Domain Coordinator via the 'View/Modify Course settings' menu accessed from this page.", @@ -46,7 +51,7 @@ sub print_course_selection_page { ); # Determine the courses - my %courseIDs = &Apache::lonnet::courseiddump($dom,'.',1); + my %courseIDs = &Apache::lonnet::courseiddump($dom,'.',1,'.','.','.',undef,undef,'.'); &print_header($r,$tasklongref); $r->print(< @@ -66,23 +71,19 @@ ENDBLOCK foreach my $key (sort keys %courseIDs) { # Get current code my $crs; - my $currcode; - if ($key =~ m/^($dom)_(\w+)$/) { + my ($description,$currcode,$owner); + if ($courseIDs{$key} =~ m/^([^:]*):([^:]+)/ ) { + $currcode = $2; + } elsif ($key =~ m/^($dom)_(\w+)$/) { $crs = $2; my %settings = &Apache::lonnet::get('environment',['internal.coursecode'],$dom,$crs); if (defined($settings{'internal.coursecode'}) ) { $currcode = $settings{'internal.coursecode'}; - if ($currcode eq '') { - $currcode = "___".$iter; - $iter ++; - } - } else { - $currcode = "___".$iter; - $iter ++; } - } else { + } + if ($currcode eq '') { $currcode = "___".$iter; - $iter ++; + $iter ++; } unless (grep/^$currcode$/,@codes) { push @codes,$currcode; @@ -100,16 +101,35 @@ ENDBLOCK unless ($code =~m/^___\d+$/) { $showcode = $code; } if ($item =~ m/^($dom)_(\w+)$/) { $crs = $2; - if ($courseIDs{$item} =~ /^([^:]*):/) { - $description = &Apache::lonnet::unescape($1); + if ($courseIDs{$item} =~ /^([^:]*):([^:]*):([^:]*)/) { + $description = &unescape($1); + $owner = &unescape($3); + if (($owner ne '') && ($owner !~ /^([^:]+):([^:]+)$/)) { + $owner = $owner.':'.$dom; + } + } elsif ($courseIDs{$item} =~ /^([^:]*):([^:]*)$/) { + $description = &unescape($1); } else { - $description = &Apache::lonnet::unescape($courseIDs{$item}); + $description = &unescape($courseIDs{$item}); } # Get course owner - my %settings = &Apache::lonnet::get('environment',['internal.courseowner'],$dom,$crs); - if ( defined($settings{'internal.courseowner'}) ) { - $owner = $settings{'internal.courseowner'}; - $ownername = &Apache::loncommon::plainname($owner,$dom); + if ($owner eq '') { + my %settings = &Apache::lonnet::get('environment',['internal.courseowner'],$dom,$crs); + if ( defined($settings{'internal.courseowner'}) ) { + $owner = $settings{'internal.courseowner'}; + } + } + unless ($owner eq '') { + my ($owneruname,$ownerdom); + if ($owner =~ /^([^:]+):([^:]+)$/) { + $owneruname = $1; + $ownerdom = $2; + } else { + $owneruname = $owner; + $ownerdom = $dom; + } + $ownername = &Apache::loncommon::plainname($owneruname, + $ownerdom); } $r->print("