--- loncom/interface/Attic/londropadd.pm 2002/04/16 21:02:17 1.26
+++ loncom/interface/Attic/londropadd.pm 2002/07/31 14:56:34 1.43
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to drop and add students in courses
#
-# $Id: londropadd.pm,v 1.26 2002/04/16 21:02:17 matthew Exp $
+# $Id: londropadd.pm,v 1.43 2002/07/31 14:56:34 bowersj2 Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -59,24 +59,23 @@ use Apache::Constants qw(:common :http R
# ================================================================ Print header
sub header {
- my $r=shift;
- $r->print(<
-
Drop/Add Students
-
+ + +
+END } # ================================================= Drop/Add from uploaded file @@ -739,18 +912,29 @@ sub upfile_drop_add { my $enddate = $ENV{'form.enddate'}; if ($startdate=~/\D/) { $startdate=''; } if ($enddate=~/\D/) { $enddate=''; } - # + # Determine domain and desired host (home server) my $domain=$ENV{'form.lcdomain'}; + my $desiredhost = $ENV{'form.lcserver'}; + if (lc($desiredhost) eq 'default') { + $desiredhost = undef; + } else { + my %home_servers = &Apache::loncommon::get_home_servers($domain); + if (! exists($home_servers{$desiredhost})) { + $r->print('Error:'. + 'Invalid home server specified'); + return; + } + } # Determine authentication mechanism my $amode = ''; my $genpwd = ''; if ($ENV{'form.login'} eq 'krb') { $amode='krb4'; - $genpwd=$ENV{'form.krbdom'}; + $genpwd=$ENV{'form.krbarg'}; } elsif ($ENV{'form.login'} eq 'int') { $amode='internal'; - if ((defined($ENV{'form.intpwd'})) && ($ENV{'form.intpwd'})) { - $genpwd=$ENV{'form.intpwd'}; + if ((defined($ENV{'form.intarg'})) && ($ENV{'form.intarg'})) { + $genpwd=$ENV{'form.intarg'}; } } elsif ($ENV{'form.login'} eq 'loc') { $amode='localauth'; @@ -823,11 +1007,12 @@ sub upfile_drop_add { } } if ($password) { - &modifystudent($domain,$username,$cid,$sec); + &modifystudent($domain,$username,$cid,$sec, + $desiredhost); my $reply=&Apache::lonnet::modifystudent ($domain,$username,$id,$amode,$password, $fname,$mname,$lname,$gen,$sec,$enddate, - $startdate,$ENV{'form.forceid'}); + $startdate,$ENV{'form.forceid'},$desiredhost); if ($reply ne 'ok') { $r->print(''.
'Error enrolling '.$username.': '.
@@ -854,9 +1039,12 @@ sub upfile_drop_add {
if ($ENV{'form.fullup'} eq 'yes') {
$r->print('Dropping Students
');
# Get current classlist
- my %currentlist=&get_current_classlist
+ my ($error,%currentlist)=&get_current_classlist
($ENV{'course.'.$cid.'.domain'},
$ENV{'course.'.$cid.'.num'});
+ if (defined($error)) {
+ $r->print('ERROR:$error
');
+ }
if (defined(%currentlist)) {
# Drop the students
foreach (@studentdata) {
@@ -870,8 +1058,7 @@ sub upfile_drop_add {
# Print out list of dropped students
&show_drop_list($r,%currentlist);
} else {
- $r->print(''.
- 'Could not access classlist
');
+ $r->print("There are no students currently enrolled.\n");
}
}
} # end of unless
@@ -881,10 +1068,21 @@ sub upfile_drop_add {
sub drop_student_list {
my $r=shift;
my $count=0;
- foreach (@{$ENV{'form.droplist'}}) {
+ my @droplist;
+ if (ref($ENV{'form.droplist'})) {
+ @droplist = @{$ENV{'form.droplist'}};
+ } else {
+ @droplist = ($ENV{'form.droplist'});
+ }
+ foreach (@droplist) {
my ($uname,$udom)=split(/\:/,$_);
- &modifystudent($udom,$uname,$ENV{'request.course.id'});
- $r->print('Dropped '.$uname.' at '.$udom.'
');
+ my $result = &modifystudent($udom,$uname,$ENV{'request.course.id'});
+ if ($result eq 'ok' || $result eq 'ok:') {
+ $r->print('Dropped '.$uname.' at '.$udom.'
');
+ } else {
+ $r->print('Error dropping '.$uname.' at '.$udom.': '.$result.
+ '
');
+ }
$count++;
}
$r->print('
Dropped '.$count.' student(s).'); @@ -894,7 +1092,6 @@ sub drop_student_list { # ================================================================ Main Handler sub handler { my $r=shift; - $Apache::lonxml::debug=1; if ($r->header_only) { $r->content_type('text/html'); $r->send_http_header; @@ -904,9 +1101,9 @@ sub handler { if (($ENV{'request.course.fn'}) && (&Apache::lonnet::allowed('cst',$ENV{'request.course.id'}))) { # Start page - $r->content_type('text/html'); + $r->content_type('text/html') if (! exists($ENV{'form.viewcsv'})); $r->send_http_header; - &header($r); + $r->print(&header()) if (! exists($ENV{'form.viewcsv'})); # Phase one, initial screen unless ($ENV{'form.phase'}) { &menu_phase_one($r); @@ -927,6 +1124,10 @@ sub handler { &menu_phase_two_enroll($r); } elsif ($ENV{'form.drop'}) { &menu_phase_two_drop($r); + } elsif ($ENV{'form.view'}) { + &menu_phase_two_view($r); + } elsif ($ENV{'form.viewcsv'}) { + &menu_phase_two_viewcsv($r); } } # Phase three @@ -944,7 +1145,7 @@ sub handler { &enroll_single_student($r); } # End - $r->print('