--- loncom/interface/Attic/londropadd.pm 2004/01/15 03:18:19 1.98 +++ loncom/interface/Attic/londropadd.pm 2004/02/20 19:44:59 1.102 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to drop and add students in courses # -# $Id: londropadd.pm,v 1.98 2004/01/15 03:18:19 www Exp $ +# $Id: londropadd.pm,v 1.102 2004/02/20 19:44:59 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -42,9 +42,7 @@ use Apache::lonlocal; ############################################################### ############################################################### sub header { - my $bodytag=&Apache::loncommon::bodytag('Enrollment Manager'). - &Apache::loncommon::help_open_faq(9). - &Apache::loncommon::help_open_bug('Instructor Interface'); + my $bodytag=&Apache::loncommon::bodytag('Enrollment Manager'); my $title = &mt('LON-CAPA Enrollment Manager'); return(< @@ -190,6 +188,7 @@ sub hidden_input { sub print_upload_manager_header { my ($r,$datatoken,$distotal,$krbdefdom)=@_; my $javascript; + # if (! exists($ENV{'form.upfile_associate'})) { $ENV{'form.upfile_associate'} = 'forward'; } @@ -205,7 +204,20 @@ sub print_upload_manager_header { } else { $javascript=&upload_manager_javascript_forward_associate(); } - my $javascript_validations=&javascript_validations('auth',$krbdefdom); + # + # Deal with restored settings + my $password_choice = ''; + if (exists($ENV{'form.ipwd_choice'}) && + $ENV{'form.ipwd_choice'} ne '') { + # If a column was specified for password, assume it is for an + # internal password. This is a bug waiting to be filed (could be + # local or krb auth instead of internal) but I do not have the + # time to mess around with this now. + $password_choice = 'int'; + } + # + my $javascript_validations=&javascript_validations('auth',$krbdefdom, + $password_choice); my $checked=(($ENV{'form.noFirstLine'})?' checked="1"':''); $r->print('

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

\n". "
\n". @@ -239,11 +251,13 @@ sub javascript_validations { my $authheader; if ($mode eq 'auth') { my %param = ( formname => 'studentform', - kerb_def_dom => $krbdefdom ); + kerb_def_dom => $krbdefdom, + curr_authtype => $curr_authtype); $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') { my %param = ( formname => 'cmod', @@ -561,6 +575,11 @@ sub print_upload_manager_footer { kerb_def_dom => $krbdefdom, kerb_def_auth => $krbdef ); + if (exists($ENV{'form.ipwd_choice'}) && + defined($ENV{'form.ipwd_choice'}) && + $ENV{'form.ipwd_choice'} ne '') { + $param{'curr_authtype'} = 'int'; + } my $krbform = &Apache::loncommon::authform_kerberos(%param); my $intform = &Apache::loncommon::authform_internal(%param); my $locform = &Apache::loncommon::authform_local(%param); @@ -601,6 +620,7 @@ sub print_upload_manager_footer { ############################################################### sub print_upload_manager_form { my $r=shift; + my $firstLine; my $datatoken; if (!$ENV{'form.datatoken'}) { @@ -617,23 +637,41 @@ sub print_upload_manager_form { my $distotal=$total+1; my $today=time; my $halfyear=$today+15552000; + # + # Restore memorized settings + &Apache::loncommon::restore_course_settings + ('enrollment_upload',{ 'username_choice' => 'scalar', # column settings + 'names_choice' => 'scalar', + 'fname_choice' => 'scalar', + 'mname_choice' => 'scalar', + 'lname_choice' => 'scalar', + 'gen_choice' => 'scalar', + 'id_choice' => 'scalar', + 'sec_choice' => 'scalar', + 'ipwd_choice' => 'scalar', + 'email_choice' => 'scalar', + }); + # + # Determine kerberos parameters as appropriate 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); my $i; my $keyfields; if ($total>=0) { - my @field=(['username',&mt('Username')], - ['names',&mt('Last Name, First Names')], - ['fname',&mt('First Name')], - ['mname',&mt('Middle Names/Initials')], - ['lname',&mt('Last Name')], - ['gen',&mt('Generation')], - ['id',&mt('ID/Student Number')], - ['sec',&mt('Group/Section')], - ['ipwd',&mt('Initial Password')], - ['email',&mt('EMail Address')]); + my @field= + (['username',&mt('Username'), $ENV{'form.username_choice'}], + ['names',&mt('Last Name, First Names'),$ENV{'form.names_choice'}], + ['fname',&mt('First Name'), $ENV{'form.fname_choice'}], + ['mname',&mt('Middle Names/Initials'),$ENV{'form.mname_choice'}], + ['lname',&mt('Last Name'), $ENV{'form.lname_choice'}], + ['gen', &mt('Generation'), $ENV{'form.gen_choice'}], + ['id', &mt('ID/Student Number'),$ENV{'form.id_choice'}], + ['sec', &mt('Group/Section'), $ENV{'form.sec_choice'}], + ['ipwd', &mt('Initial Password'),$ENV{'form.ipwd_choice'}], + ['email',&mt('EMail Address'), $ENV{'form.email_choice'}]); if ($ENV{'form.upfile_associate'} eq 'reverse') { &Apache::loncommon::csv_print_samples($r,\@records); $i=&Apache::loncommon::csv_print_select_table($r,\@records, @@ -1071,6 +1109,24 @@ sub print_html_classlist { } my $status_select = &Apache::lonhtmlcommon::StatusOptions ($ENV{'form.Status'},'studentform'); + my $cid=$ENV{'request.course.id'}; + my $cdom=$ENV{'course.'.$cid.'.domain'}; + my $cnum=$ENV{'course.'.$cid.'.num'}; +# -------------------------------------------------------- Get course personnel + my %coursepersonnel=&Apache::lonnet::get_course_adv_roles($cdom.'/'.$cnum); + $r->print(''); + foreach (sort keys %coursepersonnel) { + $r->print(''); + } + $r->print('
'.$_.''); + foreach (split(/\,/,$coursepersonnel{$_})) { + my ($puname,$pudom)=split(/\:/,$_); + $r->print(' '.&Apache::loncommon::aboutmewrapper( + &Apache::loncommon::plainname($puname, + $pudom),$puname,$pudom)); + } + $r->print('
'); +# --------------------------------------------------------------- Student roles my $CCL=&mt('Current Class List'); $r->print(< @@ -1095,7 +1151,6 @@ $lt{'ss'}: END } $r->print($status_select."

\n"); - my $cid=$ENV{'request.course.id'}; my ($classlist,$keylist)=&Apache::loncoursedata::get_classlist(); if (! defined($classlist)) { $r->print(&mt('There are no students currently enrolled.')."\n"); @@ -1308,7 +1363,28 @@ sub print_modify_student_form { $r->print('

'.$starttime.'

'); return; } + # # Deal with date forms + my $current_date_description = ''; + my $textdate = ''; + + if (! defined($starttime) || $starttime == 0) { + $current_date_description = &mt('Current Starting Date: not set'). + '
'; + } else { + $current_date_description = + &mt('Current Starting Date: [_1]', + &Apache::lonlocal::locallocaltime($starttime)).'
'; + } + if (! defined($endtime) || $endtime == 0) { + $current_date_description.= &mt('Current Ending Date: not set'). + '
'; + } else { + $current_date_description.= + &mt('Current Ending Date: [_1]', + &Apache::lonlocal::locallocaltime($endtime)).'
'; + + } my $date_table = &date_setting_table($starttime,$endtime); # if (! exists($ENV{'form.Status'}) || @@ -1341,7 +1417,6 @@ $lt{'odcc'} -

$lt{'mef'} $info{'firstname'} $info{'middlename'} $info{'lastname'} $info{'generation'}, $sname\@$sdom

@@ -1360,8 +1435,9 @@ $info{'lastname'} $info{'generation'}, $ $lt{'disn'}

-$lt{'sec'}: +$lt{'sec'}:

+

$current_date_description

$date_table

@@ -1753,6 +1829,24 @@ sub upfile_drop_add { } } # + # Store the field choices away + foreach my $field (qw/username names + fname mname lname gen id sec ipwd email/) { + $ENV{'form.'.$field.'_choice'}=$fields{$field}; + } + &Apache::loncommon::store_course_settings('enrollment_upload', + { 'username_choice' => 'scalar', + 'names_choice' => 'scalar', + 'fname_choice' => 'scalar', + 'mname_choice' => 'scalar', + 'lname_choice' => 'scalar', + 'gen_choice' => 'scalar', + 'id_choice' => 'scalar', + 'sec_choice' => 'scalar', + 'ipwd_choice' => 'scalar', + 'email_choice' => 'scalar' }); + + # my ($startdate,$enddate) = &get_dates_from_form(); if ($ENV{'form.makedatesdefault'}) { $r->print(&make_dates_default($startdate,$enddate)); @@ -2008,6 +2102,12 @@ sub handler { } &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, ['action','state']); + + &Apache::lonhtmlcommon::clear_breadcrumbs(); + &Apache::lonhtmlcommon::add_breadcrumb + ({href=>"/adm/dropadd", + text=>"Enrollment Manager", + faq=>9,bug=>'Instructor Interface',}); # Needs to be in a course if (! (($ENV{'request.course.fn'}) && (&Apache::lonnet::allowed('cst',$ENV{'request.course.id'})))) { @@ -2019,6 +2119,8 @@ sub handler { # # Only output the header information if they did not request csv format # + &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, + ['state','action']); if (exists($ENV{'form.state'}) && ($ENV{'form.state'} eq 'csv')) { $r->content_type('text/csv'); } else { @@ -2030,8 +2132,16 @@ sub handler { # # Main switch on form.action and form.state, as appropriate if (! exists($ENV{'form.action'})) { + $r->print(&Apache::lonhtmlcommon::breadcrumbs + (undef,'Enrollment Manager')); &print_main_menu($r); } elsif ($ENV{'form.action'} eq 'upload') { + &Apache::lonhtmlcommon::add_breadcrumb + ({href=>'/adm/dropadd?action=upload&state=', + text=>"Upload Classlist", + faq=>9,bug=>'Instructor Interface',}); + $r->print(&Apache::lonhtmlcommon::breadcrumbs + (undef,'Upload Classlist')); if (! exists($ENV{'form.state'})) { &print_first_courselist_upload_form($r); } elsif ($ENV{'form.state'} eq 'got_file') { @@ -2046,6 +2156,12 @@ sub handler { &print_first_courselist_upload_form($r); } } elsif ($ENV{'form.action'} eq 'drop') { + &Apache::lonhtmlcommon::add_breadcrumb + ({href=>'/adm/dropadd?action=drop', + text=>"Drop Students", + faq=>9,bug=>'Instructor Interface',}); + $r->print(&Apache::lonhtmlcommon::breadcrumbs + (undef,'Drop Students')); if (! exists($ENV{'form.state'})) { &print_drop_menu($r); } elsif ($ENV{'form.state'} eq 'done') { @@ -2054,6 +2170,12 @@ sub handler { &print_drop_menu($r); } } elsif ($ENV{'form.action'} eq 'enrollstudent') { + &Apache::lonhtmlcommon::add_breadcrumb + ({href=>'/adm/dropadd?action=enrollstudent', + text=>"Enroll Student", + faq=>9,bug=>'Instructor Interface',}); + $r->print(&Apache::lonhtmlcommon::breadcrumbs + (undef,'Enroll Student')); if (! exists($ENV{'form.state'})) { &get_student_username_domain_form($r); } elsif ($ENV{'form.state'} eq 'gotusername') { @@ -2064,6 +2186,12 @@ sub handler { &get_student_username_domain_form($r); } } elsif ($ENV{'form.action'} eq 'classlist') { + &Apache::lonhtmlcommon::add_breadcrumb + ({href=>'/adm/dropadd?action=classlist', + text=>"View Classlist", + faq=>9,bug=>'Instructor Interface',}); + $r->print(&Apache::lonhtmlcommon::breadcrumbs + (undef,'View Classlist')); if (! exists($ENV{'form.state'})) { &print_html_classlist($r); } elsif ($ENV{'form.state'} eq 'csv') { @@ -2074,6 +2202,12 @@ sub handler { &print_html_classlist($r); } } elsif ($ENV{'form.action'} eq 'modifystudent') { + &Apache::lonhtmlcommon::add_breadcrumb + ({href=>'/adm/dropadd?action=modifystudent', + text=>"Modify Student Data", + faq=>9,bug=>'Instructor Interface',}); + $r->print(&Apache::lonhtmlcommon::breadcrumbs + (undef,'Modify Student Data')); if (! exists($ENV{'form.state'})) { &print_html_classlist($r); } elsif ($ENV{'form.state'} eq 'selected') { @@ -2088,6 +2222,8 @@ sub handler { &Apache::lonnet::logthis("Undetermined state in londropadd.pm. ". "form.action = ".$ENV{'form.action'}. "Someone should fix this."); + $r->print(&Apache::lonhtmlcommon::breadcrumbs + (undef,'Enrollment Manager')); &print_main_menu($r); } #