--- loncom/interface/Attic/londropadd.pm 2007/09/27 18:58:52 1.170 +++ loncom/interface/Attic/londropadd.pm 2012/04/24 21:05:15 1.179 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to drop and add students in courses # -# $Id: londropadd.pm,v 1.170 2007/09/27 18:58:52 www Exp $ +# $Id: londropadd.pm,v 1.179 2012/04/24 21:05:15 droeschl Exp $ # # Copyright Michigan State University Board of Trustees # @@ -26,8 +26,23 @@ # http://www.lon-capa.org/ # # -############################################################### -############################################################## + +=head1 NAME + +Apache::londropadd.pm + +=head1 SYNOPSIS + +drop & add students + +This is part of the LearningOnline Network with CAPA project +described at http://www.lon-capa.org. + +=head1 SUBROUTINES + +=over + +=cut package Apache::londropadd; @@ -42,8 +57,6 @@ use Apache::lonlocal; use Apache::longroup; use LONCAPA(); -############################################################### -############################################################### sub header { my ($jscript,$loaditems) = @_; my $start_page; @@ -59,54 +72,14 @@ $start_page ENDHEAD } -############################################################### -############################################################### -# Drop student from all sections of a course, except optional $csec -sub modifystudent { - my ($udom,$unam,$courseid,$csec,$desiredhost)=@_; - # if $csec is undefined, drop the student from all the courses matching - # this one. If $csec is defined, drop them from all other sections of - # this course and add them to section $csec - my $cdom = $env{'course.'.$courseid.'.domain'}; - my $cnum = $env{'course.'.$courseid.'.num'}; - my %roles = &Apache::lonnet::dump('roles',$udom,$unam); - my ($tmp) = keys(%roles); - # Bail out if we were unable to get the students roles - return "$1" if ($tmp =~ /^(con_lost|error|no_such_host)/i); - # Go through the roles looking for enrollment in this course - my $result = ''; - foreach my $course (keys(%roles)) { - if ($course=~m{^/\Q$cdom\E/\Q$cnum\E(?:\/)*(?:\s+)*(\w+)*\_st$}) { - # We are in this course - my $section=$1; - $section='' if ($course eq "/$cdom/$cnum".'_st'); - if (defined($csec) && $section eq $csec) { - $result .= 'ok:'; - } elsif ( ((!$section) && (!$csec)) || ($section ne $csec) ) { - my (undef,$end,$start)=split(/\_/,$roles{$course}); - my $now=time; - # if this is an active role - if (!($start && ($now<$start)) || !($end && ($now>$end))) { - my $reply=&Apache::lonnet::modifystudent - # dom name id mode pass f m l g - ($udom,$unam,'', '', '',undef,undef,undef,undef, - $section,time,undef,undef,$desiredhost); - $result .= $reply.':'; - } - } - } - } - if ($result eq '') { - $result = 'Unable to find section for this student'; - } else { - $result =~ s/(ok:)+/ok/g; - } - return $result; -} +=pod + +=item domain_form() + + build a domain and server selection form + +=cut -############################################################### -############################################################### -# build a domain and server selection form sub domain_form { my ($defdom) = @_; # Set up domain and server selection forms @@ -135,9 +108,14 @@ sub domain_form { return $result; } -############################################################### -############################################################### -# Menu Phase One +=pod + +=item print_main_menu() + + Menu Phase One + +=cut + sub print_main_menu { my ($r,$permission)=@_; # @@ -224,13 +202,15 @@ sub print_main_menu { return; } -############################################################### -############################################################### + + sub hidden_input { my ($name,$value) = @_; return ''."\n"; } + + sub print_upload_manager_header { my ($r,$datatoken,$distotal,$krbdefdom)=@_; my $javascript; @@ -262,8 +242,9 @@ sub print_upload_manager_header { $password_choice = 'int'; } # - my $javascript_validations=&javascript_validations('auth',$krbdefdom, - $password_choice); + my $javascript_validations = + &javascript_validations('auth',$krbdefdom,$password_choice,undef, + $env{'request.role.domain'}); my $checked=(($env{'form.noFirstLine'})?' checked="checked" ':''); $r->print('

'.&mt('Uploading Class List')."

\n". "
\n". @@ -290,10 +271,12 @@ sub print_upload_manager_header { $javascript."\n".$javascript_validations.''); } -############################################################### -############################################################### + + + + sub javascript_validations { - my ($mode,$krbdefdom,$curr_authtype,$curr_authfield)=@_; + my ($mode,$krbdefdom,$curr_authtype,$curr_authfield,$domain)=@_; my $authheader; if ($mode eq 'auth') { my %param = ( formname => 'studentform', @@ -302,7 +285,7 @@ sub javascript_validations { $authheader = &Apache::loncommon::authform_header(%param); } elsif ($mode eq 'createcourse') { my %param = ( formname => 'ccrs', - kerb_def_dom => $krbdefdom, + kerb_def_dom => $krbdefdom, curr_authtype => $curr_authtype ); $authheader = &Apache::loncommon::authform_header(%param); } elsif ($mode eq 'modifycourse') { @@ -323,7 +306,7 @@ sub javascript_validations { name => 'The optional name field was not specified.', snum => 'The optional student number field was not specified.', section => 'The optional section field was not specified.', - email => 'The optional email address field was not specified.', + email => 'The optional e-mail address field was not specified.', continue => 'Continue enrollment?', ); @@ -331,6 +314,7 @@ sub javascript_validations { my $function_name =(< 1) { + $auth_checks .= (< "Personal Data", 'fn' => "First Name", 'mn' => "Middle Name", 'ln' => "Last Name", 'gen' => "Generation", 'hs' => "Home Server", - 'pswd' => "Password", + 'pswd' => "Login Data", 'psam' => "Please select an authentication mechanism", - 'mail' => "Email Address" + 'mail' => "E-mail Address" ); my $authhelp=&Apache::loncommon::help_open_topic('Auth_Options'); $user_data_html = <

$lt{'pswd'}

$lt{'psam'}$authhelp -

-$krbform -
-$intform -
-$locform -

END + if ($krbform ne '') { + $user_data_html .= $krbform.'
'; + } + if ($intform ne '') { + $user_data_html .= $intform.'
'; + } + if ($locform ne '') { + $user_data_html .= $locform.'
'; + } + $user_data_html .= "\n

\n" } else { # User already exists. Do not worry about authentication my %uenv = &Apache::lonnet::dump('environment',$ccdomain,$ccuname); - $javascript_validations = &javascript_validations('noauth'); + $javascript_validations = &Apache::lonuserutils::javascript_validations('noauth'); my %lt=&Apache::lonlocal::texthash( 'udf' => "User Data for", 'fn' => "First Name", 'mn' => "Middle Name", 'ln' => "Last Name", 'gen' => "Generation", - 'mail' => "Email Address", + 'mail' => "E-mail Address", ); $user_data_html = <$lt{'udf'} $ccuname:$ccdomain @@ -1147,7 +1153,7 @@ END
END } - my $date_table = &date_setting_table(); + my $date_table = &Apache::lonuserutils::date_setting_table(); # Print it all out my %lt=&Apache::lonlocal::texthash( 'cd' => "Course Data", @@ -1236,7 +1242,14 @@ END return; } -# ========================================================= Menu Phase Two Drop +=pod + +=item print_drop_menu() + + Menu Phase Two Drop + +=cut + sub print_drop_menu { my $r=shift; $r->print("

".&mt('Drop Students')."

"); @@ -1251,7 +1264,15 @@ sub print_drop_menu { return; } -# ============================================== view classlist + +=pod + +=item print_html_classlist() + + view classlist + +=cut + sub print_html_classlist { my ($r,$mode,$permission) = @_; if (! exists($env{'form.sortby'})) { @@ -1341,7 +1362,15 @@ sub print_html_classlist { } } -# =================================================== Show student list to drop + +=pod + +=item show_class_list() + + Show student list to drop + +=cut + sub show_class_list { my ($r,$mode,$linkto,$statusmode,$classlist,$keylist)=@_; my $cid=$env{'request.course.id'}; @@ -1396,7 +1425,7 @@ END 'start' => "start date", 'end' => "end date", 'type' => "enroll type/action", - 'email' => "email address", + 'email' => "e-mail address", 'clicker'=> "clicker id", 'photo' => "photo", ); @@ -1499,9 +1528,9 @@ END time.'_'.rand(1000000000).'.csv'; unless ($CSVfile = Apache::File->new('>/home/httpd'.$CSVfilename)) { $r->log_error("Couldn't open $CSVfilename for output $!"); - $r->print("Problems occured in writing the csv file. ". - "This error has been logged. ". - "Please alert your LON-CAPA administrator."); + $r->print(&mt('Problems occurred in writing the csv file. ' + .'This error has been logged. ' + .'Please alert your LON-CAPA administrator.')); $CSVfile = undef; } # @@ -1743,9 +1772,14 @@ END } -# -# print out form for modification of a single students data -# +=pod + +=item print_modify_student_form() + + print out form for modification of a single students data + +=cut + sub print_modify_student_form { my $r = shift(); &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, @@ -1796,7 +1830,8 @@ sub print_modify_student_form { &Apache::lonlocal::locallocaltime($endtime)).'
'; } - my $date_table = &date_setting_table($starttime,$endtime); + my $date_table = + &Apache::lonuserutils::date_setting_table($starttime,$endtime); # if (! exists($env{'form.Status'}) || $env{'form.Status'} !~ /^(Any|Expired|Active|Future)$/) { @@ -1818,7 +1853,7 @@ sub print_modify_student_form { 'sm' => "Submit Modifications", ); # Check if section name is valid - my $section_check = §ion_check_js(); + my $section_check = &Apache::lonuserutils::section_check_js(); $r->print(<<"END"); '; + &Apache::loncreateuser::restore_prev_selections(); + my $srch; + foreach my $item (@search) { + $srch->{$item} = $env{'form.'.$item}; + } + if ($env{'form.state'} eq 'gotusername') { - my $srch; - foreach my $item (@search) { - $srch->{$item} = $env{'form.'.$item}; - } if ($env{'form.phase'} eq 'get_user_info') { my ($currstate,$response,$forcenewuser,$results) = &Apache::loncreateuser::user_search_result($srch); + if ($env{'form.currstate'} eq 'modify') { + $currstate = $env{'form.currstate'}; + } if ($currstate eq 'select') { $r->print(&header()); &Apache::lonhtmlcommon::add_breadcrumb @@ -2797,7 +2852,7 @@ sub handler { &print_enroll_single_student_form($r,$jscript,$ccuname, $ccdomain,$srch); } else { - &get_student_username_domain_form($r,$elements); + &get_student_username_domain_form($r,$elements,undef,$srch); } } elsif ($env{'form.state'} eq 'enrolling') { $r->print(&header($jscript)); @@ -2818,7 +2873,7 @@ sub handler { 'Course_Add_Student')); &enroll_single_student($r,\@search); } else { - &get_student_username_domain_form($r,$elements); + &get_student_username_domain_form($r,$elements,undef,$srch); } } elsif ($env{'form.action'} eq 'classlist' && $permission->{'view'}) { $r->print(&header()); @@ -2867,10 +2922,12 @@ sub handler { return OK; } -################################################################### -################################################################### 1; __END__ +=pod + +=back +=cut