--- loncom/interface/Attic/londropadd.pm 2002/10/15 14:41:31 1.56 +++ loncom/interface/Attic/londropadd.pm 2002/10/16 18:45:10 1.59 @@ -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.59 2002/10/16 18:45:10 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -752,12 +752,30 @@ 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(< +CSV format + +      END + } + $r->print($status_select."

\n"); my $cid=$ENV{'request.course.id'}; my ($classlist,$keylist)=&Apache::loncoursedata::get_classlist(); if (! defined($classlist)) { @@ -766,10 +784,10 @@ END # Print out the available choices if ($ENV{'form.action'} eq 'modifystudent') { &show_class_list($r,'view','modify','modifystudent', - 'Active',$classlist,$keylist); + $ENV{'form.Status'},$classlist,$keylist); } else { &show_class_list($r,'view','aboutme','classlist', - 'Active',$classlist,$keylist); + $ENV{'form.Status'},$classlist,$keylist); } } } @@ -783,7 +801,7 @@ sub print_csv_classlist { $r->print("There are no students currently enrolled.\n"); } else { &show_class_list($r,'csv','nolink','csv', - 'Active',$classlist,$keylist); + $ENV{'form.Status'},$classlist,$keylist); } } @@ -791,8 +809,8 @@ sub print_csv_classlist { sub show_class_list { 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'; @@ -805,25 +823,36 @@ sub show_class_list { $r->print('Select a user name to modify the students information'); } $r->print(< + +

END } elsif ($mode eq 'csv') { - $r->print('"'.join('","',("username","domain","ID","student name", - "section")).'"'."\n"); + if($statusmode eq 'Expired') { + $r->print('"Students with expired roles"'); + } + if ($statusmode eq 'Any') { + $r->print('"'.join('","',("username","domain","ID","student name", + "section","status")).'"'."\n"); + } else { + $r->print('"'.join('","',("username","domain","ID","student name", + "section")).'"'."\n"); + } } # # Sort the students @@ -849,7 +878,7 @@ END my $name = $classlist->{$student}->[$index{'fullname'}]; my $id = $classlist->{$student}->[$index{'id'}]; my $status = $classlist->{$student}->[$index{'status'}]; - next if (($statusmode ne 'any') && ($status ne $statusmode)); + next if (($statusmode ne 'Any') && ($status ne $statusmode)); if ($mode eq 'view') { $r->print("\n + + + +
- username + username - domain + domain - ID + ID - student name + student name - section + section
\n "); if ($linkto eq 'nothing') { @@ -859,9 +888,12 @@ END $username, $domain)); } elsif ($linkto eq 'modify') { - $r->print(''. + $r->print(''. $username."\n"); } $r->print(<<"END"); @@ -878,6 +910,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"); @@ -894,7 +929,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 +957,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(< @@ -934,6 +974,8 @@ Only domain coordinators can change a us + +

Modify Enrollment for $info{'firstname'} $info{'middlename'} $info{'lastname'} $info{'generation'}, $sname\@$sdom

@@ -971,8 +1013,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 +1027,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 ". @@ -1044,11 +1090,14 @@ sub modify_single_student {

ID $old{'id'} $sid
Section $old{'section'} $section

Role Information

-
Section $section
Start Time $displayable_starttime
End Time $displayable_endtime
@@ -1079,7 +1128,10 @@ END } $r->print(<

-Modify another students data + + + +Modify another students data END return; @@ -1148,8 +1200,10 @@ which describes the order elements are s sub show_drop_list { my ($r,$classlist,$keylist,$nosort)=@_; my $cid=$ENV{'request.course.id'}; - &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, - ['sortby']); + if (! exists($ENV{'form.sortby'})) { + &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, + ['sortby']); + } my $sortby = $ENV{'form.sortby'}; if ($sortby !~ /^(username|domain|section|fullname|id)$/) { $sortby = 'username'; @@ -1475,14 +1529,14 @@ sub drop_student_list { my $result = &modifystudent($udom,$uname,$ENV{'request.course.id'}); if ($result eq 'ok' || $result eq 'ok:') { $r->print('Dropped '.$uname.' @ '.$udom.'
'); + $count++; } else { $r->print('Error dropping '.$uname.' @ '.$udom.': '.$result. '
'); } - $count++; } $r->print('

Dropped '.$count.' student(s).'); - $r->print('

Re-enrollment will re-activate data.'); + $r->print('

Re-enrollment will re-activate data.') if ($count); } ###################################################################