--- loncom/interface/lonpopulate.pm 2004/04/16 13:26:44 1.11 +++ loncom/interface/lonpopulate.pm 2004/06/08 22:09:44 1.12 @@ -1,5 +1,5 @@ # automated enrollment configuration handler -# $Id: lonpopulate.pm,v 1.11 2004/04/16 13:26:44 albertel Exp $ +# $Id: lonpopulate.pm,v 1.12 2004/06/08 22:09:44 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -207,7 +207,7 @@ ENDONE ############################################################### sub print_main_frame { - my ($r,$realm,$dom,$crs,$tasktitleref) = @_; + my ($r,$realm,$dom,$crs,$tasktitleref,$homeserver,$server) = @_; my $action = "information"; if (exists($ENV{'form.action'}) ) { $action = $ENV{'form.action'}; @@ -641,7 +641,8 @@ ENDTWO "); } elsif ($action eq "sections") { - my @sections = &localenroll::get_sections($enrollvar{coursecode}); + my @sections = (); + @sections = &Apache::lonnet::auto_get_sections($homeserver,$enrollvar{coursecode}); my @storedsections = (); my @currsections = (); my %sec_id = (); @@ -1156,7 +1157,7 @@ sub print_notify_response { } sub print_crosslistings_menu () { - my ($r,$realm,$dom,$crs,$action,$tasktitleref) = @_; + my ($r,$realm,$dom,$crs,$action,$tasktitleref,$homeserver,$server) = @_; my %settings = &Apache::lonnet::get('environment',['internal.crosslistings','internal.coursecode'],$dom,$crs); my @currxlists = (); my @xlists = (); @@ -1259,7 +1260,7 @@ sub print_crosslistings_menu () { } sub print_crosslistings_response () { - my ($r,$realm,$dom,$crs,$action,$tasktitleref) = @_; + my ($r,$realm,$dom,$crs,$action,$tasktitleref,$homeserver,$server) = @_; my %settings = &Apache::lonnet::get('environment',['internal.crosslistings','internal.coursecode','internal.courseowner'],$dom,$crs); my @currxlists = (); my @xlists = (); @@ -1289,14 +1290,24 @@ sub print_crosslistings_response () { my $xl = "newcross_".$i; my $gp = "newgroupid_".$i; if ( exists($ENV{"form.$xl"}) ) { - my $coursecheck = &localenroll::validate_courseID($ENV{"form.$xl"}); + my $coursecheck = ''; +# if ($homeserver eq $server) { +# $coursecheck = &localenroll::validate_courseID($ENV{"form.$xl"}); +# } else { + $coursecheck = &Apache::lonnet::auto_validate_courseID($homeserver,$ENV{"form.$xl"}); +# } if ($coursecheck eq 'ok') { - my $addcheck = &localenroll::new_course($ENV{"form.$xl"},$owner); + my $addcheck = ''; +# if ($homeserver eq $server) { +# $addcheck = &localenroll::new_course($ENV{"form.$xl"},$owner); +# } else { + $addcheck = &Apache::lonnet::auto_new_course($homeserver,$ENV{"form.$xl"},$owner); +# } if ($addcheck eq 'ok') { push @xlists,$ENV{"form.$xl"}.":".$ENV{"form.$gp"}; } else { push @badowner,$ENV{"form.$xl"}.":".$ENV{"form.$gp"}; - } + } } else { push @badxlists, $ENV{"form.$xl"}.":".$ENV{"form.$gp"}.":".$coursecheck; } @@ -1371,7 +1382,7 @@ sub print_crosslistings_response () { } sub print_sections_menu () { - my ($r,$realm,$dom,$crs,$action,$tasktitleref) = @_; + my ($r,$realm,$dom,$crs,$action,$tasktitleref,$homeserver,$server) = @_; my %settings = &Apache::lonnet::get('environment',['internal.sectionnums','internal.coursecode','internal.courseowner'],$dom,$crs); my @currsections = (); my @sections = (); @@ -1410,9 +1421,19 @@ sub print_sections_menu () { $seccount ++; } else { my $newsec = $coursecode.$ENV{"form.$secnum"}; - my $coursecheck = &localenroll::validate_courseID($newsec); + my $coursecheck = ''; +# if ($homeserver eq $server) { +# $coursecheck = &localenroll::validate_courseID($newsec); +# } else { + $coursecheck = &Apache::lonnet::auto_validate_courseID($homeserver,$newsec); +# } if ($coursecheck eq 'ok') { - my $addcheck = &localenroll::new_course($newsec,$owner); + my $addcheck = ''; +# if ($homeserver eq $server) { +# $addcheck = &localenroll::new_course($newsec,$owner); +# } else { + $addcheck = &Apache::lonnet::auto_new_course($homeserver,$newsec,$owner); +# } if ($addcheck eq 'ok') { push @sections,$ENV{"form.$secnum"}.":".$ENV{"form.$gp"}; $seccount ++; @@ -1555,7 +1576,7 @@ sections which contribute to enrollment } sub print_sections_response () { - my ($r,$realm,$dom,$crs,$action,$tasktitleref) = @_; + my ($r,$realm,$dom,$crs,$action,$tasktitleref,$homeserver,$server) = @_; my %settings = &Apache::lonnet::get('environment',['internal.sectionnums','internal.coursecode','internal.courseowner'],$dom,$crs); my @currsections = (); my @sections = (); @@ -1587,9 +1608,19 @@ sub print_sections_response () { if ( exists($ENV{"form.$sec"}) ) { unless ( (grep/^$ENV{"form.$sec"}:/,@allsections) || (grep/^$ENV{"form.$sec"}:/,@sections) ) { my $newsec = $coursecode.$ENV{"form.$sec"}; - my $coursecheck = &localenroll::validate_courseID($newsec); + my $coursecheck = ''; +# if ($homeserver eq $server) { +# $coursecheck = &localenroll::validate_courseID($newsec); +# } else { + $coursecheck = &Apache::lonnet::auto_validate_courseID($homeserver,$newsec); +# } if ($coursecheck eq 'ok') { - my $addcheck = &localenroll::new_course($newsec,$owner); + my $addcheck = ''; +# if ($homeserver eq $server) { +# $addcheck = &localenroll::new_course($newsec,$owner); +# } else { + $addcheck = &Apache::lonnet::auto_new_course($homeserver,$newsec,$owner); +# } if ($addcheck eq 'ok') { push @sections,$ENV{"form.$sec"}.":".$ENV{"form.$gp"}; } else { @@ -1691,7 +1722,7 @@ sub print_photos_response () { } sub print_update_result () { - my ($r,$realm,$dom,$crs,$action,$tasktitleref) = @_; + my ($r,$realm,$dom,$crs,$action,$tasktitleref,$homeserver,$server) = @_; my $response = ''; my $updateadds = 0; my $updatedrops = 0; @@ -1763,7 +1794,11 @@ sub print_update_result () { if (@allcourses > 0) { @{$affiliates{$crs}} = @allcourses; - &localenroll::fetch_enrollment($dom,\%affiliates,\%reply); +# if ($homeserver eq $server) { +# &localenroll::fetch_enrollment($dom,\%affiliates,\%reply); +# } else { + &Apache::lonnet::fetch_enrollment_query($homeserver,$dom,\%affiliates,\%reply); +# } if ($reply{$crs} > 0) { ($changecount,$response) = &LONCAPA::Enrollment::update_LC($dom,$crs,$updateadds,$updatedrops,$autostart,$autoend,$authtype,$autharg,\@allcourses,\%LC_code,\$logmsg,\$newusermsg,"updatenow"); } else { @@ -2004,6 +2039,10 @@ sub handler { } } } + +# Determine course home server and current server + my $homeserver = &Apache::lonnet::homeserver($crs,$dom); + my $server = $Apache::lonnet::perlvar{'lonHostID'}; my $reply = 0; unless ($state eq "choose") { $reply = 1; } @@ -2012,7 +2051,7 @@ sub handler { &print_navmenu($r,\@tasks,\%tasklong); if (($state eq "choose") || ($action eq "information")) { - &print_main_frame($r,$realm,$dom,$crs,\%tasktitle); + &print_main_frame($r,$realm,$dom,$crs,\%tasktitle,$homeserver,$server); } elsif ($action eq "chgsettings") { &print_chgsettings_response($r,$realm,$dom,$crs,$action,\%tasktitle); } elsif ($action eq "setdates") { @@ -2020,17 +2059,17 @@ sub handler { } elsif ($action eq "notify") { &print_notify_response($r,$realm,$dom,$crs,$action,\%tasktitle); } elsif ($action eq "sections") { - &print_sections_menu($r,$realm,$dom,$crs,$action,\%tasktitle); + &print_sections_menu($r,$realm,$dom,$crs,$action,\%tasktitle,$homeserver,$server); } elsif ($action eq "crosslist") { - &print_crosslistings_menu($r,$realm,$dom,$crs,$action,\%tasktitle); + &print_crosslistings_menu($r,$realm,$dom,$crs,$action,\%tasktitle,$homeserver,$server); } elsif ($action eq "updatenow") { - &print_update_result($r,$realm,$dom,$crs,$action,\%tasktitle); + &print_update_result($r,$realm,$dom,$crs,$action,\%tasktitle,$homeserver,$server); } elsif ($action eq "photos") { &print_photos_response($r,$realm,$dom,$crs,$action,\%tasktitle); } elsif ($action eq "newcross") { - &print_crosslistings_response($r,$realm,$dom,$crs,$action,\%tasktitle); + &print_crosslistings_response($r,$realm,$dom,$crs,$action,\%tasktitle,$homeserver,$server); } elsif ($action eq "newsections") { - &print_sections_response($r,$realm,$dom,$crs,$action,\%tasktitle); + &print_sections_response($r,$realm,$dom,$crs,$action,\%tasktitle,$homeserver,$server); } &print_doc_base($r); return OK;