--- loncom/interface/Attic/londropadd.pm 2002/11/13 19:16:34 1.61 +++ loncom/interface/Attic/londropadd.pm 2003/06/20 18:34:52 1.67 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to drop and add students in courses # -# $Id: londropadd.pm,v 1.61 2002/11/13 19:16:34 matthew Exp $ +# $Id: londropadd.pm,v 1.67 2003/06/20 18:34:52 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -93,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; } @@ -213,6 +213,7 @@ sub javascript_validations { my %param = ( formname => 'studentform', kerb_def_dom => $krbdefdom ); my $authheader = &Apache::loncommon::authform_header(%param); + my $pjump_def = &Apache::lonhtmlcommon::pjump_javascript_definition(); return (< 'document.studentform'); + + my ($krbdef,$krbdefdom) = + &Apache::loncommon::get_kerberos_defaults($defdom); + my %param = ( formname => 'document.studentform', + kerb_def_dom => $krbdefdom, + kerb_def_auth => $krbdef + ); my $krbform = &Apache::loncommon::authform_kerberos(%param); my $intform = &Apache::loncommon::authform_internal(%param); my $locform = &Apache::loncommon::authform_local(%param); @@ -522,12 +522,11 @@ sub print_upload_manager_form { my @records=&Apache::loncommon::upfile_record_sep(); my $total=$#records; my $distotal=$total+1; - $ENV{'SERVER_NAME'}=~/(\w+\.\w+)$/; - my $krbdefdom=$1; - $krbdefdom=~tr/a-z/A-Z/; my $today=time; my $halfyear=$today+15552000; my $defdom=$r->dir_config('lonDefDomain'); + my ($krbdef,$krbdefdom) = + &Apache::loncommon::get_kerberos_defaults($defdom); &print_upload_manager_header($r,$datatoken,$distotal,$krbdefdom); my $i; my $keyfields; @@ -600,13 +599,19 @@ sub enroll_single_student { &modifystudent($ENV{'form.lcdomain'},$ENV{'form.cuname'}, $ENV{'request.course.id'},$ENV{'form.csec'}, $desiredhost); + my $startdate = + &Apache::lonhtmlcommon::get_date_from_form('startdate'); + my $enddate = + &Apache::lonhtmlcommon::get_date_from_form('enddate'); + &Apache::lonnet::logthis('startdate = '.$startdate); + &Apache::lonnet::logthis('enddate = '.$enddate); my $login_result = &Apache::lonnet::modifystudent ($ENV{'form.lcdomain'},$ENV{'form.cuname'}, $ENV{'form.cstid'},$amode,$genpwd, $ENV{'form.cfirst'},$ENV{'form.cmiddle'}, $ENV{'form.clast'},$ENV{'form.cgen'}, - $ENV{'form.csec'},$ENV{'form.enddate'}, - $ENV{'form.startdate'},$ENV{'form.forceid'}, + $ENV{'form.csec'},$enddate, + $startdate,$ENV{'form.forceid'}, $desiredhost); if ($login_result =~ /^ok/) { $r->print($login_result); @@ -629,19 +634,40 @@ sub enroll_single_student { sub print_enroll_single_student_form { my $r=shift; $r->print("

Enroll One Student

"); - my ($krbdefdom) = $ENV{'SERVER_NAME'}=~/(\w+\.\w+)$/; - $krbdefdom=~tr/a-z/A-Z/; my $today = time; my $halfyear = $today+15552000; my $defdom=$r->dir_config('lonDefDomain'); - my $javascript_validations=&javascript_validations($krbdefdom); # Set up authentication forms - my %param = ( formname => 'document.studentform'); + my ($krbdef,$krbdefdom) = + &Apache::loncommon::get_kerberos_defaults($defdom); + my $javascript_validations=&javascript_validations($krbdefdom); + my %param = ( formname => 'document.studentform', + kerb_def_dom => $krbdefdom, + kerb_def_auth => $krbdef + ); my $krbform = &Apache::loncommon::authform_kerberos(%param); my $intform = &Apache::loncommon::authform_internal(%param); my $locform = &Apache::loncommon::authform_local(%param); # Set up domain selection form my $domform = &domain_form($defdom); + my $starttime = 'now'; + if (exists($ENV{'course.'.$ENV{'request.course.id'}. + '.default_enrollment_start_date'})) { + $starttime = $ENV{'course.'.$ENV{'request.course.id'}. + '.default_enrollment_start_date'}; + } + my $endtime = time+(6*30*24*60*60); # 6 months from now, approx + if (exists($ENV{'course.'.$ENV{'request.course.id'}. + '.default_enrollment_end_date'})) { + $endtime = $ENV{'course.'.$ENV{'request.course.id'}. + '.default_enrollment_end_date'}; + } + my $startdateform = &Apache::lonhtmlcommon::date_setter('studentform', + 'startdate', + $starttime); + my $enddateform = &Apache::lonhtmlcommon::date_setter('studentform', + 'enddate', + $endtime); # Print it all out $r->print(< @@ -714,13 +740,10 @@ $locform

-Set Starting Date -

-Set Ending Date + + + +
Starting Date$startdateform
Ending Date$enddateform

ID/Student Number

@@ -1078,15 +1101,14 @@ sub modify_single_student { my $section = $ENV{'form.section'}; my $courseid = $ENV{'request.course.id'}; my $sid = $ENV{'form.id'}; - my $starttime = &Apache::lonhtmlcommon::get_date_from_form('startdate', - time); - my $endtime = &Apache::lonhtmlcommon::get_date_from_form('enddate', - time); + my $starttime = &Apache::lonhtmlcommon::get_date_from_form('startdate'); + my $endtime = &Apache::lonhtmlcommon::get_date_from_form('enddate'); my $displayable_starttime = localtime($starttime); 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."); @@ -1137,7 +1159,15 @@ sub modify_single_student {

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.
"); + } my $roleresults = &Apache::lonnet::modifystudent ($sdom,$slogin,$sid,undef,undef,$firstname,$middlename,$lastname, $generation,$section,$endtime,$starttime,$ENV{'form.forceid'});