--- loncom/interface/Attic/londropadd.pm 2003/12/27 23:38:13 1.96
+++ loncom/interface/Attic/londropadd.pm 2004/02/10 22:15:53 1.100
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to drop and add students in courses
#
-# $Id: londropadd.pm,v 1.96 2003/12/27 23:38:13 raeburn Exp $
+# $Id: londropadd.pm,v 1.100 2004/02/10 22:15:53 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -42,7 +42,9 @@ use Apache::lonlocal;
###############################################################
###############################################################
sub header {
- my $bodytag=&Apache::loncommon::bodytag('Enrollment Manager');
+ my $bodytag=&Apache::loncommon::bodytag('Enrollment Manager').
+ &Apache::loncommon::help_open_faq(9).
+ &Apache::loncommon::help_open_bug('Instructor Interface');
my $title = &mt('LON-CAPA Enrollment Manager');
return(<
@@ -143,28 +145,34 @@ sub print_main_menu {
'view' => 'View Class List',
'drop' => 'Drop Students',
'populate' => 'Automated Enrollment Manager');
+ my %help=();
+ foreach ('Course_Drop_Student','Course_Add_Student',
+ 'Course_Modify_Student_Data','Course_View_Class_List',
+ 'Course_Create_Class_List') {
+ $help{$_}=&Apache::loncommon::help_open_topic($_);
+ }
$r->print(<
- $Text{'upload'}
-
+$Text{'upload'}
+$help{'Course_Create_Class_List'}
$Text{'enrollone'}
-
+ $help{'Course_Add_Student'}
$Text{'modify'}
-
+ $help{'Course_Modify_Student_Data'}
$Text{'view'}
-
+ $help{'Course_View_Class_List'}
$Text{'drop'}
-
+ $help{'Course_Drop_Student'}
$Text{'populate'}
@@ -182,6 +190,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';
}
@@ -197,7 +206,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".
@@ -231,11 +253,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',
@@ -263,12 +287,10 @@ sub javascript_validations {
my $function_name =(< $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);
@@ -595,6 +622,7 @@ sub print_upload_manager_footer {
###############################################################
sub print_upload_manager_form {
my $r=shift;
+
my $firstLine;
my $datatoken;
if (!$ENV{'form.datatoken'}) {
@@ -611,23 +639,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,
@@ -1065,6 +1111,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(''.$_.' | ');
+ foreach (split(/\,/,$coursepersonnel{$_})) {
+ my ($puname,$pudom)=split(/\:/,$_);
+ $r->print(' '.&Apache::loncommon::aboutmewrapper(
+ &Apache::loncommon::plainname($puname,
+ $pudom),$puname,$pudom));
+ }
+ $r->print(' |
');
+ }
+ $r->print('
');
+# --------------------------------------------------------------- Student roles
my $CCL=&mt('Current Class List');
$r->print(<
@@ -1089,7 +1153,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");
@@ -1747,6 +1810,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));