--- loncom/interface/Attic/londropadd.pm 2003/07/14 15:25:59 1.74 +++ loncom/interface/Attic/londropadd.pm 2003/11/05 20:55:59 1.87 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to drop and add students in courses # -# $Id: londropadd.pm,v 1.74 2003/07/14 15:25:59 matthew Exp $ +# $Id: londropadd.pm,v 1.87 2003/11/05 20:55:59 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -32,7 +32,7 @@ # (TeX Content Handler # ############################################################### -############################################################### +############################################################## package Apache::londropadd; @@ -42,6 +42,7 @@ use Apache::loncommon(); use Apache::lonhtmlcommon(); use Apache::Constants qw(:common :http REDIRECT); use Spreadsheet::WriteExcel; +use Apache::lonlocal; ############################################################### ############################################################### @@ -79,7 +80,7 @@ sub modifystudent { # We are in this course my $section=$1; $section='' if ($course eq $courseid.'_st'); - if ($section eq $csec) { + if (defined($csec) && $section eq $csec) { $result .= 'ok:'; } elsif ( ((!$section) && (!$csec)) || ($section ne $csec) ) { my (undef,$end,$start)=split(/\_/,$roles{$course}); @@ -154,7 +155,7 @@ sub print_main_menu {
- View Classlist + View Class List
@@ -185,6 +186,7 @@ sub print_upload_manager_header {
$javascript=&upload_manager_javascript_forward_associate();
}
my $javascript_validations=&javascript_validations($krbdefdom);
+ my $checked=(($ENV{'form.noFirstLine'})?' checked="1"':'');
$r->print(< ERROR '.
- 'Invalid login mode or password. '.
- 'Unable to enroll '.$ENV{'form.cuname'}.'. 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'}.'.
$krbform
-
+
+
-Current Classlist
+Current Class List
END
if ($ENV{'form.action'} ne 'modifystudent') {
@@ -1028,7 +1037,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);
#
@@ -1140,6 +1149,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.'
@@ -198,6 +200,7 @@ to this page if the data selected is ins
+Ignore First Line
@@ -505,7 +508,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);
@@ -514,11 +517,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);
@@ -553,6 +557,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
@@ -620,10 +626,14 @@ sub enroll_single_student {
$r->print("unable to enroll: ".$login_result);
}
} else {
- $r->print('
$intform
-
$locform
Error
');
+ $r->print('
$create_classlist_help
$create_csv_help
@@ -1532,6 +1550,7 @@ sub upfile_drop_add {
my $r=shift;
&Apache::loncommon::load_tmp_file($r);
my @studentdata=&Apache::loncommon::upfile_record_sep();
+ if($ENV{'form.noFirstLine'}){shift(@studentdata);}
my @keyfields = split(/\,/,$ENV{'form.keyfields'});
my $cid = $ENV{'request.course.id'};
my %fields=();
@@ -1580,6 +1599,14 @@ sub upfile_drop_add {
$genpwd=$ENV{'form.locarg'};
}
}
+ if ($amode =~ /^krb/) {
+ if (! defined($genpwd) || $genpwd eq '') {
+ $r->print(''.
+ 'Unable to enroll students:'.' '.
+ 'No Kerberos domain was specified.');
+ $amode = ''; # This causes the loop below to be skipped
+ }
+ }
unless (($domain=~/\W/) || ($amode eq '')) {
#######################################
## Enroll Students ##
@@ -1625,6 +1652,8 @@ sub upfile_drop_add {
$sec=$entries{$fields{'sec'}};
}
}
+ # remove non alphanumeric values from section
+ $sec =~ s/\W//g;
# determine student id number
my $id='';
if (defined($fields{'id'})) {
@@ -1657,7 +1686,7 @@ sub upfile_drop_add {
\$lname,\$gen,\$sec) {
$$_ =~ s/(\s+$|^\s+)//g;
}
- if ($password) {
+ if ($password || $ENV{'form.login'} eq 'loc') {
&modifystudent($domain,$username,$cid,$sec,
$desiredhost);
my $reply=&Apache::lonnet::modifystudent
@@ -1777,7 +1806,7 @@ The response to the request is governed
sub handler {
my $r=shift;
if ($r->header_only) {
- $r->content_type('text/html');
+ &Apache::loncommon::content_type($r,'text/html');
$r->send_http_header;
return OK;
}
@@ -1798,7 +1827,7 @@ sub handler {
$r->content_type('text/csv');
} else {
# Start page
- $r->content_type('text/html');
+ &Apache::loncommon::content_type($r,'text/html');
$r->send_http_header;
$r->print(&header());
}