--- loncom/interface/Attic/londropadd.pm 2002/09/26 13:29:44 1.54 +++ loncom/interface/Attic/londropadd.pm 2002/10/16 15:02:28 1.58 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to drop and add students in courses # -# $Id: londropadd.pm,v 1.54 2002/09/26 13:29:44 matthew Exp $ +# $Id: londropadd.pm,v 1.58 2002/10/16 15:02:28 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -594,17 +594,25 @@ sub enroll_single_student { my $home = &Apache::lonnet::homeserver($ENV{'form.cuname'}, $ENV{'form.lcdomain'}); if ((($amode) && ($genpwd)) || ($home ne 'no_host')) { + # Clean out any old roles the student has in this class. &modifystudent($ENV{'form.lcdomain'},$ENV{'form.cuname'}, $ENV{'request.course.id'},$ENV{'form.csec'}, $desiredhost); - $r->print(&Apache::lonnet::modifystudent( - $ENV{'form.lcdomain'},$ENV{'form.cuname'}, - $ENV{'form.cstid'},$amode,$genpwd, - $ENV{'form.cfirst'},$ENV{'form.cmiddle'}, - $ENV{'form.clast'},$ENV{'form.cgen'}, - $ENV{'form.csec'},$ENV{'form.enddate'}, - $ENV{'form.startdate'},$ENV{'form.forceid'}, - $desiredhost)); + my $login_result = &Apache::lonnet::modifystudent + ($ENV{'form.lcdomain'},$ENV{'form.cuname'}, + $ENV{'form.cstid'},$amode,$genpwd, + $ENV{'form.cfirst'},$ENV{'form.cmiddle'}, + $ENV{'form.clast'},$ENV{'form.cgen'}, + $ENV{'form.csec'},$ENV{'form.enddate'}, + $ENV{'form.startdate'},$ENV{'form.forceid'}, + $desiredhost); + if ($login_result =~ /^ok/) { + $r->print($login_result); + $r->print("
If active, the new role will be available ". + "when the student next logs in to LON-CAPA.
"); + } else { + $r->print("unable to enroll: ".$login_result); + } } else { $r->print('ERROR '. 'Invalid login mode or password. '. @@ -726,58 +734,58 @@ END return; } -# =================================================== get the current classlist -sub get_current_classlist { - my $r = shift; - # Call DownloadClasslist - my $cid = $ENV{'request.course.id'}; - my $c = $r->connection; - my $classlisthash = &Apache::loncoursedata::DownloadClasslist - ($cid,'Not downloaded',$c); - # Call ProcessClasslist - my %cache; - my @students = &Apache::loncoursedata::ProcessClasslist(\%cache, - $classlisthash, - $cid,$c); - return (\@students,\%cache); -} - # ========================================================= Menu Phase Two Drop sub print_drop_menu { my $r=shift; $r->print("
-Current Classlist -CSV format +Current Classlist + + +CSV format + + +$status_select
END my $cid=$ENV{'request.course.id'}; - my ($student_array,$student_data)=&get_current_classlist($r); - if (! scalar(@$student_array)) { + my ($classlist,$keylist)=&Apache::loncoursedata::get_classlist(); + if (! defined($classlist)) { $r->print("There are no students currently enrolled.\n"); } else { # Print out the available choices if ($ENV{'form.action'} eq 'modifystudent') { &show_class_list($r,'view','modify','modifystudent', - 'any',$student_array,$student_data); + $ENV{'form.Status'},$classlist,$keylist); } else { &show_class_list($r,'view','aboutme','classlist', - 'any',$student_array,$student_data); + $ENV{'form.Status'},$classlist,$keylist); } } } @@ -786,21 +794,21 @@ END sub print_csv_classlist { my $r=shift; my $cid=$ENV{'request.course.id'}; - my ($student_array,$student_data)=&get_current_classlist($r); - if (! scalar(@$student_array)) { + my ($classlist,$keylist)=&Apache::loncoursedata::get_classlist(); + if (! defined($classlist)) { $r->print("There are no students currently enrolled.\n"); } else { &show_class_list($r,'csv','nolink','csv', - 'any',$student_array,$student_data); + $ENV{'form.Status'},$classlist,$keylist); } } # =================================================== Show student list to drop sub show_class_list { - my ($r,$mode,$linkto,$action,$statusmode,$students,$s_data)=@_; + my ($r,$mode,$linkto,$action,$statusmode,$classlist,$keylist)=@_; my $cid=$ENV{'request.course.id'}; - &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, - ['sortby']); +# &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, +# ['sortby']); my $sortby = $ENV{'form.sortby'}; if ($sortby !~ /^(username|domain|section|fullname|id)$/) { $sortby = 'username'; @@ -808,7 +816,7 @@ sub show_class_list { # Print out header if ($mode eq 'view') { if ($linkto eq 'aboutme') { - $r->print('Select a user name to view the users page.'); + $r->print('Select a user name to view the users personal page.'); } elsif ($linkto eq 'modify') { $r->print('Select a user name to modify the students information'); } @@ -817,49 +825,55 @@ sub show_class_list {
- username + username | - domain + domain | - ID + ID | - student name + student name | - section + section | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
'. - 'Error'. - 'Error retrieving data for '. - join('@',split(/:/,$student)). - ', '.$error.' | ||||||||||||||
\n ");
if ($linkto eq 'nothing') {
@@ -888,6 +902,9 @@ END
foreach ($username,$domain,$id,$name,$section) {
push @line,&Apache::loncommon::csv_translate($_);
}
+ if ($statusmode eq 'Any') {
+ push @line,&Apache::loncommon::csv_translate($status);
+ }
my $tmp = $";
$" = '","';
$r->print("\"@line\"\n");
@@ -1128,9 +1145,35 @@ sub get_enrollment_data {
return ($start,$end,$section);
}
-# =================================================== Show student list to drop
+#################################################
+#################################################
+
+=pod
+
+=item show_drop_list
+
+Display a list of students to drop
+Inputs:
+
+=over 4
+
+=item $r, Apache request
+
+=item $classlist, hash pointer returned from loncoursedata::get_classlist();
+
+=item $keylist, array pointer returned from loncoursedata::get_classlist()
+which describes the order elements are stored in the %$classlist values.
+
+=item $nosort, if true, sorting links are omitted.
+
+=back
+
+=cut
+
+#################################################
+#################################################
sub show_drop_list {
- my ($students,$s_data,$r)=@_;
+ my ($r,$classlist,$keylist,$nosort)=@_;
my $cid=$ENV{'request.course.id'};
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
['sortby']);
@@ -1138,6 +1181,7 @@ sub show_drop_list {
if ($sortby !~ /^(username|domain|section|fullname|id)$/) {
$sortby = 'username';
}
+ #
my $action = "drop";
$r->print(<
+END
+
+ if ($nosort) {
+ $r->print(< Processed Students: '.$count);
+ $r->print(' Processed Students: '.$count.' If active, the new role will be available when the ".
+ "students next log in to LON-CAPA. |