--- loncom/interface/Attic/londropadd.pm 2003/07/02 15:25:46 1.70
+++ loncom/interface/Attic/londropadd.pm 2003/11/06 22:49:59 1.89
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to drop and add students in courses
#
-# $Id: londropadd.pm,v 1.70 2003/07/02 15:25:46 matthew Exp $
+# $Id: londropadd.pm,v 1.89 2003/11/06 22:49:59 matthew Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -32,7 +32,7 @@
# (TeX Content Handler
#
###############################################################
-###############################################################
+##############################################################
package Apache::londropadd;
@@ -42,15 +42,17 @@ use Apache::loncommon();
use Apache::lonhtmlcommon();
use Apache::Constants qw(:common :http REDIRECT);
use Spreadsheet::WriteExcel;
+use Apache::lonlocal;
###############################################################
###############################################################
sub header {
my $bodytag=&Apache::loncommon::bodytag('Enrollment Manager');
+ my $title = &mt('LON-CAPA Enrollment Manager');
return(<
- Enroll a single student + $Text{'enrollone'}
- Modify student data + $Text{'modify'}
- View Classlist + $Text{'view'}
- Drop Students + $Text{'drop'}
END @@ -164,6 +175,11 @@ END ############################################################### ############################################################### +sub hidden_input { + my ($name,$value) = @_; + return ''."\n"; +} + sub print_upload_manager_header { my ($r,$datatoken,$distotal,$krbdefdom)=@_; my $javascript; @@ -182,51 +198,72 @@ sub print_upload_manager_header { } else { $javascript=&upload_manager_javascript_forward_associate(); } - my $javascript_validations=&javascript_validations($krbdefdom); - $r->print(<\n". + &mt('Total number of records found in file: [_1].',$distotal). + "\n". + "
Note: this will not take effect if the user already exists
@@ -469,7 +536,7 @@ ENDPICK # ======================================================= Menu Phase Two Upload sub print_upload_manager_form { my $r=shift; - + my $firstLine; my $datatoken; if (!$ENV{'form.datatoken'}) { $datatoken=&Apache::loncommon::upfile_store($r); @@ -478,11 +545,12 @@ sub print_upload_manager_form { &Apache::loncommon::load_tmp_file($r); } my @records=&Apache::loncommon::upfile_record_sep(); + if($ENV{'form.noFirstLine'}){$firstLine=shift(@records);} my $total=$#records; my $distotal=$total+1; my $today=time; my $halfyear=$today+15552000; - my $defdom=$r->dir_config('lonDefDomain'); + my $defdom=$ENV{'course.'.$ENV{'request.course.id'}.'.domain'}; my ($krbdef,$krbdefdom) = &Apache::loncommon::get_kerberos_defaults($defdom); &print_upload_manager_header($r,$datatoken,$distotal,$krbdefdom); @@ -497,7 +565,8 @@ sub print_upload_manager_form { ['gen','Generation'], ['id','ID/Student Number'], ['sec','Group/Section'], - ['ipwd','Initial Password']); + ['ipwd','Initial Password'], + ['email','EMail Address']); if ($ENV{'form.upfile_associate'} eq 'reverse') { &Apache::loncommon::csv_print_samples($r,\@records); $i=&Apache::loncommon::csv_print_select_table($r,\@records,\@d); @@ -516,6 +585,8 @@ sub print_upload_manager_form { # ======================================================= Enroll single student sub enroll_single_student { my $r=shift; + # Remove non alphanumeric values from section + $ENV{'form.csec'}=~s/\W//g; # # We do the dates first because the action of making them the defaul # in the course is entirely seperate from the action of enrolling the @@ -583,10 +654,14 @@ sub enroll_single_student { $r->print("unable to enroll: ".$login_result); } } else { - $r->print('
ERROR '. - 'Invalid login mode or password. '. - 'Unable to enroll '.$ENV{'form.cuname'}.'.
'); - } + $r->print('ERROR '); + if ($amode =~ /^krb/) { + $r->print('Missing Kerberos domain information. '); + } else { + $r->print('Invalid login mode or password. '); + } + $r->print('Unable to enroll '.$ENV{'form.cuname'}.'.
'); + } } else { $r->print('Invalid username or domain'); } @@ -671,32 +746,131 @@ sub make_dates_default { return $result; } -# ======================================================= Menu Phase Two Enroll +## +## Single student enrollment routines (some of them) +## +sub get_student_username_domain_form { + my $r = shift; + my $domform = &Apache::loncommon::select_dom_form + ($ENV{'course.'.$ENV{'request.course.id'}.'.domain'},'cudomain',0); + $r->print(<Username: | +|
---|---|
Domain: | +$domform |
+ | + + |
First Name: | +|
---|---|
Middle Name: | +|
Last Name: | +|
Generation: | +|
Home Server: | +$homeserver_form |
First Name: | ++ + |
---|---|
Middle Name: | ++ + |
Last Name: | ++ + |
Generation: | ++ + |
First Name: | |
Middle Name: | |
Last Name: | |
Generation: |
Username:
-Domain: $domform
-Note: login settings below will not take effect if the user already exists -
-$krbform -
-$intform -
-$locform -
+$user_data_html
-Current Classlist +Current Class List END if ($ENV{'form.action'} ne 'modifystudent') { @@ -908,7 +1065,7 @@ END $excel_workbook->set_tempdir('/home/httpd/perl/tmp'); $excel_sheet = $excel_workbook->addworksheet('classlist'); # - my $description = 'Classlist for '. + my $description = 'Class List for '. $ENV{'course.'.$ENV{'request.course.id'}.'.description'}; $excel_sheet->write($row++,0,$description); # @@ -1020,6 +1177,11 @@ sub print_modify_student_form { } # determine the students starting and ending times and section my ($starttime,$endtime,$section) = &get_enrollment_data($sname,$sdom); + if ($starttime =~ /^error/) { + $r->print('
'.$starttime.'
'); + return; + } # Deal with date forms my $date_table = &date_setting_table($starttime,$endtime); # @@ -1075,6 +1237,9 @@ END sub modify_single_student { my $r = shift; # + # Remove non alphanumeric values from the section + $ENV{'form.section'} =~ s/\W//g; + # # Do the date defaults first my ($starttime,$endtime) = &get_dates_from_form(); if ($ENV{'form.makedatesdefault'}) { @@ -1216,7 +1381,7 @@ sub get_enrollment_data { my %roles = &Apache::lonnet::dump('roles',$sdomain,$sname); my ($tmp) = keys(%roles); # Bail out if we were unable to get the students roles - return "666" if ($tmp =~ /^(con_lost|error|no_such_host)/i); + return ('error'.$tmp) if ($tmp =~ /^(con_lost|error|no_such_host)/i); # Go through the roles looking for enrollment in this course my ($end,$start) = (undef,undef); my $section = ''; @@ -1384,26 +1549,25 @@ END # sub print_first_courselist_upload_form { my $r=shift; - my $upfile_select=&Apache::loncommon::upfile_select_html(); - my $create_classlist_help = - &Apache::loncommon::help_open_topic("Course_Create_Class_List", - "How do I create a class list from a spreadsheet"); - my $create_csv_help = - &Apache::loncommon::help_open_topic("Course_Convert_To_CSV", - "How do I create a CSV file from a spreadsheet"); - $r->print(<- - - -
-$create_classlist_help