--- loncom/interface/Attic/londropadd.pm 2002/10/15 14:41:31 1.56
+++ loncom/interface/Attic/londropadd.pm 2002/12/10 00:54:37 1.63
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to drop and add students in courses
#
-# $Id: londropadd.pm,v 1.56 2002/10/15 14:41:31 matthew Exp $
+# $Id: londropadd.pm,v 1.63 2002/12/10 00:54:37 matthew Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -41,6 +41,7 @@ use Apache::lonnet();
use Apache::loncommon();
use Apache::lonhtmlcommon();
use Apache::Constants qw(:common :http REDIRECT);
+use Spreadsheet::WriteExcel;
###############################################################
###############################################################
@@ -92,7 +93,7 @@ sub modifystudent {
}
}
if ($result eq '') {
- $result eq 'Unable to find section for this student';
+ $result = 'Unable to find section for this student';
} else {
$result =~ s/(ok:)+/ok/g;
}
@@ -220,6 +221,7 @@ function verify_message (vf,founduname,f
alert('You need to specify the username field');
return;
}
+ // alert('current.radiovalue = '+current.radiovalue);
if (current.radiovalue == null || current.radiovalue == 'nochange') {
// They did not check any of the login radiobuttons.
alert('You must choose an authentication type');
@@ -752,12 +754,33 @@ sub print_drop_menu {
# ============================================== view classlist
sub print_html_classlist {
my $r=shift;
+ if (! exists($ENV{'form.sortby'})) {
+ $ENV{'form.sortby'} = 'username';
+ }
+ if ($ENV{'form.Status'} !~ /^(Any|Expired|Active)$/) {
+ $ENV{'form.Status'} = 'Active';
+ }
+ my $status_select = &Apache::lonhtmlcommon::StatusOptions
+ ($ENV{'form.Status'},'studentform');
$r->print(<
-Current Classlist -CSV format -
+Current Classlist + END + if ($ENV{'form.action'} ne 'modifystudent') { + $r->print(<
- username + username | - domain + domain | - ID + ID | - student name + student name | - section + section |
---|---|---|---|---|
\n "); if ($linkto eq 'nothing') { @@ -859,9 +912,12 @@ END $username, $domain)); } elsif ($linkto eq 'modify') { - $r->print(''. + $r->print(''. $username."\n"); } $r->print(<<"END"); @@ -878,13 +934,25 @@ 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"); $" = $tmp; + } elsif ($mode eq 'excel') { + $excel_sheet->write($row++,0,[$username,$domain,$id, + $name,$section,$status]); } } - $r->print(' |
'. + 'Your Excel spreadsheet is ready for download.
'."\n"); + } } @@ -894,7 +962,7 @@ END sub print_modify_student_form { my $r = shift(); &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, - ['sdom','sname','sortby']); + ['sdom','sname']); my $sname = $ENV{'form.sname'}; my $sdom = $ENV{'form.sdom'}; my $sortby = $ENV{'form.sortby'}; @@ -922,6 +990,11 @@ sub print_modify_student_form { my $enddateform = &Apache::lonhtmlcommon::date_setter('studentform', 'enddate', $endtime); + # + if (! exists($ENV{'form.Status'}) || + $ENV{'form.Status'} !~ /^(Any|Expired|Active)$/) { + $ENV{'form.Status'} = 'crap'; + } # Make sure student is enrolled in course $r->print(<@@ -971,8 +1046,10 @@ END # sub modify_single_student { my $r = shift; - # Get the 'sortby' variable so the user does not need to re-sort + # Get the 'sortby' and 'Status' variables so the user goes back to their + # previous screen my $sortby = $ENV{'form.sortby'}; + my $status = $ENV{'form.Status'}; # # We always need this information my $slogin = $ENV{'form.slogin'}; @@ -983,6 +1060,8 @@ sub modify_single_student { ['firstname','middlename', 'lastname','generation','id'], $sdom, $slogin); + $old{'section'} = &Apache::lonnet::getsection($sdom,$slogin, + $ENV{'request.course.id'}); my ($tmp) = keys(%old); if ($tmp =~ /^(con_lost|error|no_such_host)/i) { $r->print("There was an error determining the environment values ". @@ -1007,7 +1086,8 @@ sub modify_single_student { my $displayable_endtime = localtime($endtime); # # check for forceid override - if (($sid ne $old{'id'}) && (! exists($ENV{'form.forceid'}))) { + if ((defined($old{'id'})) && ($old{'id'} ne '') && + ($sid ne $old{'id'}) && (! exists($ENV{'form.forceid'}))) { $r->print("You changed the students id ". " but did not disable the ID change safeguard.". " The students id will not be changed."); @@ -1044,18 +1124,29 @@ sub modify_single_student {
Section | $section |
Start Time | $displayable_starttime |
End Time | $displayable_endtime |
END
#
- # Send request(s) to modify data
+ # Send request(s) to modify data (final undef is for 'desiredhost',
+ # which is a moot point because the student already has an account.
+ my $modify_section_results = &modifystudent($sdom,$slogin,
+ $ENV{'request.course.id'},
+ $section,undef);
+ if ($modify_section_results !~ /^ok/) {
+ $r->print("An error occured during the attempt to change the ".
+ "section for this student.
-Modify another students data
+
+
+
+Modify another students data
");
+ }
my $roleresults = &Apache::lonnet::modifystudent
($sdom,$slogin,$sid,undef,undef,$firstname,$middlename,$lastname,
$generation,$section,$endtime,$starttime,$ENV{'form.forceid'});
@@ -1079,7 +1170,10 @@ END
}
$r->print(<